summaryrefslogtreecommitdiff
path: root/indra/newview
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview')
-rw-r--r--indra/newview/CMakeLists.txt50
-rw-r--r--indra/newview/English.lproj/InfoPlist.strings4
-rw-r--r--indra/newview/Info-SecondLife.plist50
-rw-r--r--indra/newview/VertexCache.h36
-rw-r--r--indra/newview/ViewerInstall.cmake4
-rw-r--r--indra/newview/VorbisFramework.h36
-rw-r--r--indra/newview/app_settings/CA.pem5402
-rw-r--r--indra/newview/app_settings/cmd_line.xml2
-rw-r--r--indra/newview/app_settings/high_graphics.xml11
-rw-r--r--indra/newview/app_settings/ignorable_dialogs.xml198
-rw-r--r--indra/newview/app_settings/low_graphics.xml11
-rw-r--r--indra/newview/app_settings/mid_graphics.xml11
-rw-r--r--indra/newview/app_settings/settings.xml406
-rw-r--r--indra/newview/app_settings/shaders/class1/avatar/avatarF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/avatar/avatarSkinV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/avatar/avatarV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/avatar/eyeballF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/avatar/eyeballV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/avatar/pickAvatarF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/avatar/pickAvatarV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl15
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/alphaV.glsl29
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/avatarAlphaF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/avatarAlphaV.glsl29
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/avatarF.glsl7
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/avatarShadowF.glsl8
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/avatarShadowV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/avatarV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/blurLightF.glsl27
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/blurLightV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/bumpF.glsl18
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/bumpV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/diffuseF.glsl14
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/diffuseV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/fullbrightF.glsl15
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/fullbrightV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/giF.glsl7
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/giV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/impostorF.glsl7
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/impostorV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/luminanceF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/luminanceV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/multiPointLightF.glsl8
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl107
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl7
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/pointLightV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/postDeferredF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/postDeferredV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/postgiF.glsl13
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/postgiV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/shadowF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/shadowV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl103
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/softenLightV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl18
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/sunLightF.glsl195
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/sunLightSSAOF.glsl124
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/sunLightV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/terrainF.glsl7
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/terrainV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/treeF.glsl7
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/treeV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/waterF.glsl18
-rw-r--r--indra/newview/app_settings/shaders/class1/deferred/waterV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/effects/glowExtractF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/effects/glowExtractV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/effects/glowF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/effects/glowV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/environment/terrainF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/environment/terrainV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/environment/terrainWaterF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/environment/underWaterF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/environment/waterF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/environment/waterFogF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/environment/waterV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/interface/highlightF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/interface/highlightV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/lighting/lightF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/lighting/lightFullbrightF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/lighting/lightFuncSpecularV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/lighting/lightFuncV.glsl13
-rw-r--r--indra/newview/app_settings/shaders/class1/lighting/lightShinyF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/lighting/lightShinyWaterF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/lighting/lightSpecularV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/lighting/lightV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/lighting/lightWaterF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/lighting/sumLightsSpecularV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/lighting/sumLightsV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/objects/fullbrightF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/objects/fullbrightShinyF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/objects/fullbrightShinyV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/objects/fullbrightV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/objects/fullbrightWaterF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/objects/shinyF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/objects/shinyV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/objects/shinyWaterF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/objects/simpleF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/objects/simpleV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/objects/simpleWaterF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/windlight/atmosphericsF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/windlight/atmosphericsHelpersV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/windlight/atmosphericsV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/windlight/gammaF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class1/windlight/transportF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class2/avatar/eyeballV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class2/deferred/alphaF.glsl15
-rw-r--r--indra/newview/app_settings/shaders/class2/deferred/alphaV.glsl28
-rw-r--r--indra/newview/app_settings/shaders/class2/deferred/avatarAlphaF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class2/deferred/avatarAlphaV.glsl29
-rw-r--r--indra/newview/app_settings/shaders/class2/deferred/blurLightF.glsl7
-rw-r--r--indra/newview/app_settings/shaders/class2/deferred/blurLightV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class2/deferred/edgeF.glsl15
-rw-r--r--indra/newview/app_settings/shaders/class2/deferred/edgeV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl68
-rw-r--r--indra/newview/app_settings/shaders/class2/deferred/postDeferredF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class2/deferred/postDeferredV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl90
-rw-r--r--indra/newview/app_settings/shaders/class2/deferred/softenLightV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl22
-rw-r--r--indra/newview/app_settings/shaders/class2/deferred/sunLightF.glsl84
-rw-r--r--indra/newview/app_settings/shaders/class2/deferred/sunLightSSAOF.glsl257
-rw-r--r--indra/newview/app_settings/shaders/class2/deferred/sunLightV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class2/effects/blurF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class2/effects/blurV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class2/effects/colorFilterF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class2/effects/drawQuadV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class2/effects/extractF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class2/effects/nightVisionF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class2/effects/simpleF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class2/environment/terrainF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class2/environment/terrainV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class2/environment/terrainWaterF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class2/environment/underWaterF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class2/environment/waterF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class2/environment/waterFogF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class2/lighting/lightF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class2/lighting/lightFullbrightF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class2/lighting/lightFullbrightShinyF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class2/lighting/lightFullbrightWaterF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class2/lighting/lightShinyF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class2/lighting/lightShinyWaterF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class2/lighting/lightSpecularV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class2/lighting/lightV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class2/lighting/lightWaterF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class2/lighting/sumLightsSpecularV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class2/lighting/sumLightsV.glsl13
-rw-r--r--indra/newview/app_settings/shaders/class2/objects/shinyV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class2/windlight/atmosphericsF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class2/windlight/atmosphericsHelpersV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class2/windlight/atmosphericsV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class2/windlight/cloudsF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class2/windlight/cloudsV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class2/windlight/gammaF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class2/windlight/skyF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class2/windlight/skyV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class2/windlight/transportF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class3/avatar/avatarV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class3/deferred/giDownsampleF.glsl14
-rw-r--r--indra/newview/app_settings/shaders/class3/deferred/giDownsampleV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class3/deferred/giF.glsl7
-rw-r--r--indra/newview/app_settings/shaders/class3/deferred/giFinalF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class3/deferred/giFinalV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class3/deferred/giV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class3/deferred/luminanceF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class3/deferred/luminanceV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class3/deferred/postDeferredF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class3/deferred/postDeferredV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class3/deferred/postgiF.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class3/deferred/postgiV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class3/deferred/softenLightF.glsl81
-rw-r--r--indra/newview/app_settings/shaders/class3/deferred/softenLightV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class3/deferred/treeF.glsl7
-rw-r--r--indra/newview/app_settings/shaders/class3/lighting/sumLightsSpecularV.glsl4
-rw-r--r--indra/newview/app_settings/shaders/class3/lighting/sumLightsV.glsl31
-rw-r--r--indra/newview/app_settings/static_data.db2bin0 -> 576578 bytes
-rw-r--r--indra/newview/app_settings/static_index.db2bin0 -> 9894 bytes
-rw-r--r--indra/newview/app_settings/ultra_graphics.xml13
-rw-r--r--indra/newview/build_win32_appConfig.py36
-rw-r--r--indra/newview/character/avatar_lad.xml6
-rw-r--r--indra/newview/featuretable.txt64
-rw-r--r--indra/newview/featuretable_linux.txt91
-rw-r--r--indra/newview/featuretable_mac.txt6
-rw-r--r--indra/newview/featuretable_solaris.txt2
-rw-r--r--indra/newview/featuretable_xp.txt554
-rw-r--r--indra/newview/fmodwrapper.cpp36
-rw-r--r--indra/newview/generate_breakpad_symbols.py36
-rw-r--r--indra/newview/gpu_table.txt47
-rw-r--r--indra/newview/installers/windows/installer_template.nsi6
-rw-r--r--indra/newview/installers/windows/lang_da.nsibin0 -> 7108 bytes
-rw-r--r--indra/newview/installers/windows/lang_pl.nsibin0 -> 7450 bytes
-rw-r--r--indra/newview/installers/windows/language_menu.nsibin1302 -> 1444 bytes
-rw-r--r--indra/newview/llagent.cpp151
-rw-r--r--indra/newview/llagent.h56
-rw-r--r--indra/newview/llagentaccess.cpp36
-rw-r--r--indra/newview/llagentaccess.h36
-rw-r--r--indra/newview/llagentcamera.cpp180
-rw-r--r--indra/newview/llagentcamera.h43
-rw-r--r--indra/newview/llagentdata.cpp36
-rw-r--r--indra/newview/llagentdata.h36
-rw-r--r--indra/newview/llagentlanguage.cpp62
-rw-r--r--indra/newview/llagentlanguage.h46
-rw-r--r--indra/newview/llagentlistener.cpp21
-rw-r--r--indra/newview/llagentlistener.h21
-rw-r--r--indra/newview/llagentpicksinfo.cpp36
-rw-r--r--indra/newview/llagentpicksinfo.h36
-rw-r--r--indra/newview/llagentpilot.cpp36
-rw-r--r--indra/newview/llagentpilot.h36
-rw-r--r--indra/newview/llagentui.cpp36
-rw-r--r--indra/newview/llagentui.h36
-rw-r--r--indra/newview/llagentwearables.cpp131
-rw-r--r--indra/newview/llagentwearables.h39
-rw-r--r--indra/newview/llagentwearablesfetch.cpp67
-rw-r--r--indra/newview/llagentwearablesfetch.h36
-rw-r--r--indra/newview/llanimstatelabels.cpp36
-rw-r--r--indra/newview/llanimstatelabels.h36
-rw-r--r--indra/newview/llappearance.h36
-rw-r--r--indra/newview/llappearancemgr.cpp612
-rw-r--r--indra/newview/llappearancemgr.h251
-rw-r--r--indra/newview/llappviewer.cpp258
-rw-r--r--indra/newview/llappviewer.h40
-rw-r--r--indra/newview/llappviewerlinux.cpp36
-rw-r--r--indra/newview/llappviewerlinux.h36
-rw-r--r--indra/newview/llappviewerlinux_api.h36
-rw-r--r--indra/newview/llappviewerlinux_api_dbus.cpp36
-rw-r--r--indra/newview/llappviewerlinux_api_dbus.h36
-rw-r--r--indra/newview/llappviewerlistener.cpp21
-rw-r--r--indra/newview/llappviewerlistener.h21
-rw-r--r--indra/newview/llappviewermacosx.cpp36
-rw-r--r--indra/newview/llappviewermacosx.h36
-rw-r--r--indra/newview/llappviewerwin32.cpp44
-rw-r--r--indra/newview/llappviewerwin32.h36
-rw-r--r--indra/newview/llassetuploadqueue.cpp36
-rw-r--r--indra/newview/llassetuploadqueue.h36
-rw-r--r--indra/newview/llassetuploadresponders.cpp36
-rw-r--r--indra/newview/llassetuploadresponders.h36
-rw-r--r--indra/newview/llattachmentsmgr.cpp131
-rw-r--r--indra/newview/llattachmentsmgr.h73
-rw-r--r--indra/newview/llaudiosourcevo.cpp95
-rw-r--r--indra/newview/llaudiosourcevo.h39
-rw-r--r--indra/newview/llavataractions.cpp81
-rw-r--r--indra/newview/llavataractions.h48
-rw-r--r--indra/newview/llavatariconctrl.cpp36
-rw-r--r--indra/newview/llavatariconctrl.h36
-rw-r--r--indra/newview/llavatarlist.cpp61
-rw-r--r--indra/newview/llavatarlist.h43
-rw-r--r--indra/newview/llavatarlistitem.cpp144
-rw-r--r--indra/newview/llavatarlistitem.h64
-rw-r--r--indra/newview/llavatarpropertiesprocessor.cpp36
-rw-r--r--indra/newview/llavatarpropertiesprocessor.h36
-rw-r--r--indra/newview/llbottomtray.cpp483
-rw-r--r--indra/newview/llbottomtray.h149
-rw-r--r--indra/newview/llbox.cpp36
-rw-r--r--indra/newview/llbox.h36
-rw-r--r--indra/newview/llbreadcrumbview.cpp36
-rw-r--r--indra/newview/llbreadcrumbview.h36
-rw-r--r--indra/newview/llbrowsernotification.cpp48
-rw-r--r--indra/newview/llbuycurrencyhtml.cpp36
-rw-r--r--indra/newview/llbuycurrencyhtml.h36
-rw-r--r--indra/newview/llcallbacklist.cpp36
-rw-r--r--indra/newview/llcallbacklist.h36
-rw-r--r--indra/newview/llcallfloater.cpp50
-rw-r--r--indra/newview/llcallfloater.h36
-rw-r--r--indra/newview/llcallingcard.cpp36
-rw-r--r--indra/newview/llcallingcard.h38
-rw-r--r--indra/newview/llcapabilitylistener.cpp36
-rw-r--r--indra/newview/llcapabilitylistener.h36
-rw-r--r--indra/newview/llcapabilityprovider.h36
-rw-r--r--indra/newview/llcaphttpsender.cpp36
-rw-r--r--indra/newview/llcaphttpsender.h36
-rw-r--r--indra/newview/llchannelmanager.cpp36
-rw-r--r--indra/newview/llchannelmanager.h37
-rw-r--r--indra/newview/llchatbar.cpp75
-rw-r--r--indra/newview/llchatbar.h36
-rw-r--r--indra/newview/llchathistory.cpp95
-rw-r--r--indra/newview/llchathistory.h38
-rw-r--r--indra/newview/llchatitemscontainerctrl.cpp38
-rw-r--r--indra/newview/llchatitemscontainerctrl.h36
-rw-r--r--indra/newview/llchatmsgbox.cpp36
-rw-r--r--indra/newview/llchatmsgbox.h36
-rw-r--r--indra/newview/llchiclet.cpp40
-rw-r--r--indra/newview/llchiclet.h36
-rw-r--r--indra/newview/llclassifiedinfo.cpp36
-rw-r--r--indra/newview/llclassifiedinfo.h36
-rw-r--r--indra/newview/llclassifiedstatsresponder.cpp36
-rw-r--r--indra/newview/llclassifiedstatsresponder.h36
-rw-r--r--indra/newview/llcloud.cpp36
-rw-r--r--indra/newview/llcloud.h36
-rw-r--r--indra/newview/llcofwearables.cpp275
-rw-r--r--indra/newview/llcofwearables.h62
-rw-r--r--indra/newview/llcolorswatch.cpp36
-rw-r--r--indra/newview/llcolorswatch.h36
-rw-r--r--indra/newview/llcommanddispatcherlistener.cpp21
-rw-r--r--indra/newview/llcommanddispatcherlistener.h21
-rw-r--r--indra/newview/llcommandhandler.cpp36
-rw-r--r--indra/newview/llcommandhandler.h36
-rw-r--r--indra/newview/llcommandlineparser.cpp45
-rw-r--r--indra/newview/llcommandlineparser.h36
-rw-r--r--indra/newview/llcompilequeue.cpp41
-rw-r--r--indra/newview/llcompilequeue.h36
-rw-r--r--indra/newview/llconfirmationmanager.cpp36
-rw-r--r--indra/newview/llconfirmationmanager.h36
-rw-r--r--indra/newview/llcurrencyuimanager.cpp75
-rw-r--r--indra/newview/llcurrencyuimanager.h36
-rw-r--r--indra/newview/llcylinder.cpp36
-rw-r--r--indra/newview/llcylinder.h36
-rw-r--r--indra/newview/lldateutil.cpp36
-rw-r--r--indra/newview/lldateutil.h36
-rw-r--r--indra/newview/lldebugmessagebox.cpp36
-rw-r--r--indra/newview/lldebugmessagebox.h36
-rw-r--r--indra/newview/lldebugview.cpp36
-rw-r--r--indra/newview/lldebugview.h36
-rw-r--r--indra/newview/lldelayedgestureerror.cpp36
-rw-r--r--indra/newview/lldelayedgestureerror.h36
-rw-r--r--indra/newview/lldirpicker.cpp36
-rw-r--r--indra/newview/lldirpicker.h36
-rw-r--r--indra/newview/lldndbutton.cpp38
-rw-r--r--indra/newview/lldndbutton.h38
-rw-r--r--indra/newview/lldrawable.cpp38
-rw-r--r--indra/newview/lldrawable.h52
-rw-r--r--indra/newview/lldrawpool.cpp37
-rw-r--r--indra/newview/lldrawpool.h37
-rw-r--r--indra/newview/lldrawpoolalpha.cpp221
-rw-r--r--indra/newview/lldrawpoolalpha.h43
-rw-r--r--indra/newview/lldrawpoolavatar.cpp67
-rw-r--r--indra/newview/lldrawpoolavatar.h40
-rw-r--r--indra/newview/lldrawpoolbump.cpp162
-rw-r--r--indra/newview/lldrawpoolbump.h52
-rw-r--r--indra/newview/lldrawpoolclouds.cpp36
-rw-r--r--indra/newview/lldrawpoolclouds.h36
-rw-r--r--indra/newview/lldrawpoolground.cpp36
-rw-r--r--indra/newview/lldrawpoolground.h36
-rw-r--r--indra/newview/lldrawpoolsimple.cpp43
-rw-r--r--indra/newview/lldrawpoolsimple.h36
-rw-r--r--indra/newview/lldrawpoolsky.cpp36
-rw-r--r--indra/newview/lldrawpoolsky.h36
-rw-r--r--indra/newview/lldrawpoolterrain.cpp36
-rw-r--r--indra/newview/lldrawpoolterrain.h36
-rw-r--r--indra/newview/lldrawpooltree.cpp36
-rw-r--r--indra/newview/lldrawpooltree.h36
-rw-r--r--indra/newview/lldrawpoolwater.cpp36
-rw-r--r--indra/newview/lldrawpoolwater.h36
-rw-r--r--indra/newview/lldrawpoolwlsky.cpp36
-rw-r--r--indra/newview/lldrawpoolwlsky.h36
-rw-r--r--indra/newview/lldriverparam.cpp36
-rw-r--r--indra/newview/lldriverparam.h36
-rw-r--r--indra/newview/lldynamictexture.cpp67
-rw-r--r--indra/newview/lldynamictexture.h36
-rw-r--r--indra/newview/llemote.cpp36
-rw-r--r--indra/newview/llemote.h36
-rw-r--r--indra/newview/lleventinfo.cpp36
-rw-r--r--indra/newview/lleventinfo.h36
-rw-r--r--indra/newview/lleventnotifier.cpp36
-rw-r--r--indra/newview/lleventnotifier.h36
-rw-r--r--indra/newview/lleventpoll.cpp36
-rw-r--r--indra/newview/lleventpoll.h36
-rw-r--r--indra/newview/llexpandabletextbox.cpp40
-rw-r--r--indra/newview/llexpandabletextbox.h36
-rw-r--r--indra/newview/llface.cpp170
-rw-r--r--indra/newview/llface.h46
-rw-r--r--indra/newview/llface.inl36
-rw-r--r--indra/newview/llfasttimerview.cpp54
-rw-r--r--indra/newview/llfasttimerview.h37
-rw-r--r--indra/newview/llfavoritesbar.cpp97
-rw-r--r--indra/newview/llfavoritesbar.h40
-rw-r--r--indra/newview/llfeaturemanager.cpp98
-rw-r--r--indra/newview/llfeaturemanager.h36
-rw-r--r--indra/newview/llfilepicker.cpp36
-rw-r--r--indra/newview/llfilepicker.h36
-rw-r--r--indra/newview/llfilteredwearablelist.cpp41
-rw-r--r--indra/newview/llfilteredwearablelist.h41
-rw-r--r--indra/newview/llfirstuse.cpp250
-rw-r--r--indra/newview/llfirstuse.h77
-rw-r--r--indra/newview/llflexibleobject.cpp36
-rw-r--r--indra/newview/llflexibleobject.h36
-rw-r--r--indra/newview/llfloaterabout.cpp37
-rw-r--r--indra/newview/llfloaterabout.h36
-rw-r--r--indra/newview/llfloateranimpreview.cpp340
-rw-r--r--indra/newview/llfloateranimpreview.h64
-rw-r--r--indra/newview/llfloaterauction.cpp72
-rw-r--r--indra/newview/llfloaterauction.h36
-rw-r--r--indra/newview/llfloateravatarpicker.cpp81
-rw-r--r--indra/newview/llfloateravatarpicker.h36
-rw-r--r--indra/newview/llfloateravatartextures.cpp37
-rw-r--r--indra/newview/llfloateravatartextures.h36
-rw-r--r--indra/newview/llfloaterbeacons.cpp38
-rw-r--r--indra/newview/llfloaterbeacons.h36
-rw-r--r--indra/newview/llfloaterbuildoptions.cpp37
-rw-r--r--indra/newview/llfloaterbuildoptions.h36
-rw-r--r--indra/newview/llfloaterbulkpermission.cpp37
-rw-r--r--indra/newview/llfloaterbulkpermission.h36
-rw-r--r--indra/newview/llfloaterbump.cpp37
-rw-r--r--indra/newview/llfloaterbump.h36
-rw-r--r--indra/newview/llfloaterbuy.cpp45
-rw-r--r--indra/newview/llfloaterbuy.h36
-rw-r--r--indra/newview/llfloaterbuycontents.cpp66
-rw-r--r--indra/newview/llfloaterbuycontents.h36
-rw-r--r--indra/newview/llfloaterbuycurrency.cpp116
-rw-r--r--indra/newview/llfloaterbuycurrency.h36
-rw-r--r--indra/newview/llfloaterbuycurrencyhtml.cpp36
-rw-r--r--indra/newview/llfloaterbuycurrencyhtml.h36
-rw-r--r--indra/newview/llfloaterbuyland.cpp143
-rw-r--r--indra/newview/llfloaterbuyland.h36
-rw-r--r--indra/newview/llfloatercamera.cpp88
-rw-r--r--indra/newview/llfloatercamera.h42
-rw-r--r--indra/newview/llfloaterchat.cpp36
-rw-r--r--indra/newview/llfloaterchat.h36
-rw-r--r--indra/newview/llfloaterchatterbox.cpp36
-rw-r--r--indra/newview/llfloaterchatterbox.h36
-rw-r--r--indra/newview/llfloatercolorpicker.cpp53
-rw-r--r--indra/newview/llfloatercolorpicker.h36
-rw-r--r--indra/newview/llfloaterdaycycle.cpp41
-rw-r--r--indra/newview/llfloaterdaycycle.h36
-rw-r--r--indra/newview/llfloaterenvsettings.cpp69
-rw-r--r--indra/newview/llfloaterenvsettings.h36
-rw-r--r--indra/newview/llfloaterevent.cpp68
-rw-r--r--indra/newview/llfloaterevent.h36
-rw-r--r--indra/newview/llfloaterfonttest.cpp36
-rw-r--r--indra/newview/llfloaterfonttest.h36
-rw-r--r--indra/newview/llfloaterfriends.cpp36
-rw-r--r--indra/newview/llfloaterfriends.h36
-rw-r--r--indra/newview/llfloatergesture.cpp48
-rw-r--r--indra/newview/llfloatergesture.h36
-rw-r--r--indra/newview/llfloatergodtools.cpp310
-rw-r--r--indra/newview/llfloatergodtools.h36
-rw-r--r--indra/newview/llfloatergroupinvite.cpp36
-rw-r--r--indra/newview/llfloatergroupinvite.h36
-rw-r--r--indra/newview/llfloatergroups.cpp72
-rw-r--r--indra/newview/llfloatergroups.h36
-rw-r--r--indra/newview/llfloaterhandler.cpp36
-rw-r--r--indra/newview/llfloaterhandler.h36
-rw-r--r--indra/newview/llfloaterhardwaresettings.cpp51
-rw-r--r--indra/newview/llfloaterhardwaresettings.h36
-rw-r--r--indra/newview/llfloaterhelpbrowser.cpp40
-rw-r--r--indra/newview/llfloaterhelpbrowser.h36
-rw-r--r--indra/newview/llfloaterhud.cpp38
-rw-r--r--indra/newview/llfloaterhud.h36
-rw-r--r--indra/newview/llfloaterimagepreview.cpp48
-rw-r--r--indra/newview/llfloaterimagepreview.h36
-rw-r--r--indra/newview/llfloaterinspect.cpp45
-rw-r--r--indra/newview/llfloaterinspect.h36
-rw-r--r--indra/newview/llfloaterinventory.cpp38
-rw-r--r--indra/newview/llfloaterinventory.h36
-rw-r--r--indra/newview/llfloaterjoystick.cpp44
-rw-r--r--indra/newview/llfloaterjoystick.h36
-rw-r--r--indra/newview/llfloaterlagmeter.cpp55
-rw-r--r--indra/newview/llfloaterlagmeter.h36
-rw-r--r--indra/newview/llfloaterland.cpp229
-rw-r--r--indra/newview/llfloaterland.h41
-rw-r--r--indra/newview/llfloaterlandholdings.cpp56
-rw-r--r--indra/newview/llfloaterlandholdings.h36
-rw-r--r--indra/newview/llfloatermap.cpp55
-rw-r--r--indra/newview/llfloatermap.h38
-rw-r--r--indra/newview/llfloatermediabrowser.cpp216
-rw-r--r--indra/newview/llfloatermediabrowser.h49
-rw-r--r--indra/newview/llfloatermediasettings.cpp36
-rw-r--r--indra/newview/llfloatermediasettings.h36
-rw-r--r--indra/newview/llfloatermemleak.cpp56
-rw-r--r--indra/newview/llfloatermemleak.h36
-rw-r--r--indra/newview/llfloaternamedesc.cpp46
-rw-r--r--indra/newview/llfloaternamedesc.h36
-rw-r--r--indra/newview/llfloaternotificationsconsole.cpp63
-rw-r--r--indra/newview/llfloaternotificationsconsole.h36
-rw-r--r--indra/newview/llfloateropenobject.cpp87
-rw-r--r--indra/newview/llfloateropenobject.h36
-rw-r--r--indra/newview/llfloaterparcel.cpp128
-rw-r--r--indra/newview/llfloaterparcel.h59
-rw-r--r--indra/newview/llfloaterpay.cpp105
-rw-r--r--indra/newview/llfloaterpay.h36
-rw-r--r--indra/newview/llfloaterperms.cpp39
-rw-r--r--indra/newview/llfloaterperms.h36
-rw-r--r--indra/newview/llfloaterpostcard.cpp79
-rw-r--r--indra/newview/llfloaterpostcard.h36
-rw-r--r--indra/newview/llfloaterpostprocess.cpp71
-rw-r--r--indra/newview/llfloaterpostprocess.h36
-rw-r--r--indra/newview/llfloaterpreference.cpp279
-rw-r--r--indra/newview/llfloaterpreference.h37
-rw-r--r--indra/newview/llfloaterproperties.cpp218
-rw-r--r--indra/newview/llfloaterproperties.h36
-rw-r--r--indra/newview/llfloaterregioninfo.cpp470
-rw-r--r--indra/newview/llfloaterregioninfo.h62
-rw-r--r--indra/newview/llfloaterreporter.cpp141
-rw-r--r--indra/newview/llfloaterreporter.h36
-rw-r--r--indra/newview/llfloaterscriptdebug.cpp46
-rw-r--r--indra/newview/llfloaterscriptdebug.h36
-rw-r--r--indra/newview/llfloaterscriptlimits.cpp147
-rw-r--r--indra/newview/llfloaterscriptlimits.h36
-rw-r--r--indra/newview/llfloatersearch.cpp50
-rw-r--r--indra/newview/llfloatersearch.h36
-rw-r--r--indra/newview/llfloatersellland.cpp106
-rw-r--r--indra/newview/llfloatersellland.h36
-rw-r--r--indra/newview/llfloatersettingsdebug.cpp95
-rw-r--r--indra/newview/llfloatersettingsdebug.h36
-rw-r--r--indra/newview/llfloatersidetraytab.cpp45
-rw-r--r--indra/newview/llfloatersidetraytab.h47
-rw-r--r--indra/newview/llfloatersnapshot.cpp332
-rw-r--r--indra/newview/llfloatersnapshot.h36
-rw-r--r--indra/newview/llfloatertelehub.cpp63
-rw-r--r--indra/newview/llfloatertelehub.h36
-rw-r--r--indra/newview/llfloatertestinspectors.cpp36
-rw-r--r--indra/newview/llfloatertestinspectors.h36
-rw-r--r--indra/newview/llfloatertestlistview.cpp36
-rw-r--r--indra/newview/llfloatertestlistview.h36
-rw-r--r--indra/newview/llfloatertools.cpp113
-rw-r--r--indra/newview/llfloatertools.h37
-rw-r--r--indra/newview/llfloatertopobjects.cpp55
-rw-r--r--indra/newview/llfloatertopobjects.h36
-rw-r--r--indra/newview/llfloatertos.cpp40
-rw-r--r--indra/newview/llfloatertos.h36
-rw-r--r--indra/newview/llfloateruipreview.cpp49
-rw-r--r--indra/newview/llfloateruipreview.h36
-rw-r--r--indra/newview/llfloaterurldisplay.cpp109
-rw-r--r--indra/newview/llfloaterurldisplay.h64
-rw-r--r--indra/newview/llfloaterurlentry.cpp52
-rw-r--r--indra/newview/llfloaterurlentry.h36
-rw-r--r--indra/newview/llfloatervoicedevicesettings.h89
-rw-r--r--indra/newview/llfloatervoiceeffect.cpp45
-rw-r--r--indra/newview/llfloatervoiceeffect.h36
-rw-r--r--indra/newview/llfloaterwater.cpp79
-rw-r--r--indra/newview/llfloaterwater.h36
-rw-r--r--indra/newview/llfloaterwhitelistentry.cpp37
-rw-r--r--indra/newview/llfloaterwhitelistentry.h36
-rw-r--r--indra/newview/llfloaterwindlight.cpp169
-rw-r--r--indra/newview/llfloaterwindlight.h36
-rw-r--r--indra/newview/llfloaterwindowsize.cpp37
-rw-r--r--indra/newview/llfloaterwindowsize.h36
-rw-r--r--indra/newview/llfloaterworldmap.cpp250
-rw-r--r--indra/newview/llfloaterworldmap.h47
-rw-r--r--indra/newview/llfolderview.cpp169
-rw-r--r--indra/newview/llfolderview.h57
-rw-r--r--indra/newview/llfoldervieweventlistener.h36
-rw-r--r--indra/newview/llfolderviewitem.cpp178
-rw-r--r--indra/newview/llfolderviewitem.h95
-rw-r--r--indra/newview/llfollowcam.cpp36
-rw-r--r--indra/newview/llfollowcam.h36
-rw-r--r--indra/newview/llfriendcard.cpp47
-rw-r--r--indra/newview/llfriendcard.h36
-rw-r--r--indra/newview/llgesturemgr.cpp45
-rw-r--r--indra/newview/llgesturemgr.h36
-rw-r--r--indra/newview/llgiveinventory.cpp42
-rw-r--r--indra/newview/llgiveinventory.h42
-rw-r--r--indra/newview/llglsandbox.cpp36
-rw-r--r--indra/newview/llgroupactions.cpp36
-rw-r--r--indra/newview/llgroupactions.h36
-rw-r--r--indra/newview/llgroupiconctrl.cpp36
-rw-r--r--indra/newview/llgroupiconctrl.h36
-rw-r--r--indra/newview/llgrouplist.cpp52
-rw-r--r--indra/newview/llgrouplist.h36
-rw-r--r--indra/newview/llgroupmgr.cpp50
-rw-r--r--indra/newview/llgroupmgr.h36
-rw-r--r--indra/newview/llhints.cpp381
-rw-r--r--indra/newview/llhints.h50
-rw-r--r--indra/newview/llhomelocationresponder.cpp36
-rw-r--r--indra/newview/llhomelocationresponder.h36
-rw-r--r--indra/newview/llhudeffect.cpp36
-rw-r--r--indra/newview/llhudeffect.h36
-rw-r--r--indra/newview/llhudeffectbeam.cpp41
-rw-r--r--indra/newview/llhudeffectbeam.h37
-rw-r--r--indra/newview/llhudeffectlookat.cpp36
-rw-r--r--indra/newview/llhudeffectlookat.h36
-rw-r--r--indra/newview/llhudeffectpointat.cpp36
-rw-r--r--indra/newview/llhudeffectpointat.h36
-rw-r--r--indra/newview/llhudeffecttrail.cpp41
-rw-r--r--indra/newview/llhudeffecttrail.h37
-rw-r--r--indra/newview/llhudicon.cpp36
-rw-r--r--indra/newview/llhudicon.h36
-rw-r--r--indra/newview/llhudmanager.cpp36
-rw-r--r--indra/newview/llhudmanager.h36
-rw-r--r--indra/newview/llhudobject.cpp57
-rw-r--r--indra/newview/llhudobject.h38
-rw-r--r--indra/newview/llhudrender.cpp36
-rw-r--r--indra/newview/llhudrender.h36
-rw-r--r--indra/newview/llhudtext.cpp36
-rw-r--r--indra/newview/llhudtext.h36
-rw-r--r--indra/newview/llhudview.cpp38
-rw-r--r--indra/newview/llhudview.h36
-rw-r--r--indra/newview/llimfloater.cpp50
-rw-r--r--indra/newview/llimfloater.h36
-rw-r--r--indra/newview/llimfloatercontainer.cpp44
-rw-r--r--indra/newview/llimfloatercontainer.h36
-rw-r--r--indra/newview/llimhandler.cpp38
-rw-r--r--indra/newview/llimpanel.cpp38
-rw-r--r--indra/newview/llimpanel.h36
-rw-r--r--indra/newview/llimview.cpp130
-rw-r--r--indra/newview/llimview.h41
-rw-r--r--indra/newview/llinspect.cpp36
-rw-r--r--indra/newview/llinspect.h36
-rw-r--r--indra/newview/llinspectavatar.cpp40
-rw-r--r--indra/newview/llinspectavatar.h36
-rw-r--r--indra/newview/llinspectgroup.cpp38
-rw-r--r--indra/newview/llinspectgroup.h36
-rw-r--r--indra/newview/llinspectobject.cpp39
-rw-r--r--indra/newview/llinspectobject.h36
-rw-r--r--indra/newview/llinspectremoteobject.cpp47
-rw-r--r--indra/newview/llinspectremoteobject.h36
-rw-r--r--indra/newview/llinspecttoast.cpp40
-rw-r--r--indra/newview/llinspecttoast.h36
-rw-r--r--indra/newview/llinventoryactions.h36
-rw-r--r--indra/newview/llinventorybridge.cpp764
-rw-r--r--indra/newview/llinventorybridge.h66
-rw-r--r--indra/newview/llinventoryclipboard.cpp36
-rw-r--r--indra/newview/llinventoryclipboard.h36
-rw-r--r--indra/newview/llinventoryfilter.cpp83
-rw-r--r--indra/newview/llinventoryfilter.h54
-rw-r--r--indra/newview/llinventoryfunctions.cpp149
-rw-r--r--indra/newview/llinventoryfunctions.h76
-rw-r--r--indra/newview/llinventoryicon.cpp39
-rw-r--r--indra/newview/llinventoryicon.h38
-rw-r--r--indra/newview/llinventoryitemslist.cpp423
-rw-r--r--indra/newview/llinventoryitemslist.h229
-rw-r--r--indra/newview/llinventorylistitem.cpp462
-rw-r--r--indra/newview/llinventorylistitem.h238
-rw-r--r--indra/newview/llinventorymodel.cpp87
-rw-r--r--indra/newview/llinventorymodel.h40
-rw-r--r--indra/newview/llinventorymodelbackgroundfetch.cpp36
-rw-r--r--indra/newview/llinventorymodelbackgroundfetch.h36
-rw-r--r--indra/newview/llinventoryobserver.cpp84
-rw-r--r--indra/newview/llinventoryobserver.h46
-rw-r--r--indra/newview/llinventorypanel.cpp81
-rw-r--r--indra/newview/llinventorypanel.h42
-rw-r--r--indra/newview/lljoystickbutton.cpp36
-rw-r--r--indra/newview/lljoystickbutton.h36
-rw-r--r--indra/newview/lllandmarkactions.cpp36
-rw-r--r--indra/newview/lllandmarkactions.h36
-rw-r--r--indra/newview/lllandmarklist.cpp41
-rw-r--r--indra/newview/lllandmarklist.h40
-rw-r--r--indra/newview/lllightconstants.h36
-rw-r--r--indra/newview/lllistbrowser.cpp36
-rw-r--r--indra/newview/lllistbrowser.h36
-rw-r--r--indra/newview/lllistcontextmenu.cpp36
-rw-r--r--indra/newview/lllistcontextmenu.h36
-rw-r--r--indra/newview/lllistview.cpp36
-rw-r--r--indra/newview/lllistview.h36
-rw-r--r--indra/newview/lllocaltextureobject.cpp36
-rw-r--r--indra/newview/lllocaltextureobject.h36
-rw-r--r--indra/newview/lllocationhistory.cpp36
-rw-r--r--indra/newview/lllocationhistory.h36
-rw-r--r--indra/newview/lllocationinputctrl.cpp52
-rw-r--r--indra/newview/lllocationinputctrl.h36
-rw-r--r--indra/newview/lllogchat.cpp36
-rw-r--r--indra/newview/lllogchat.h36
-rw-r--r--indra/newview/llloginhandler.cpp36
-rw-r--r--indra/newview/llloginhandler.h36
-rw-r--r--indra/newview/lllogininstance.cpp63
-rw-r--r--indra/newview/lllogininstance.h36
-rw-r--r--indra/newview/lllookshistorypanel.h35
-rw-r--r--indra/newview/llmachineid.cpp36
-rw-r--r--indra/newview/llmachineid.h36
-rw-r--r--indra/newview/llmanip.cpp42
-rw-r--r--indra/newview/llmanip.h36
-rw-r--r--indra/newview/llmaniprotate.cpp36
-rw-r--r--indra/newview/llmaniprotate.h36
-rw-r--r--indra/newview/llmanipscale.cpp36
-rw-r--r--indra/newview/llmanipscale.h36
-rw-r--r--indra/newview/llmaniptranslate.cpp36
-rw-r--r--indra/newview/llmaniptranslate.h36
-rw-r--r--indra/newview/llmediactrl.cpp326
-rw-r--r--indra/newview/llmediactrl.h62
-rw-r--r--[-rwxr-xr-x]indra/newview/llmediadataclient.cpp1066
-rw-r--r--[-rwxr-xr-x]indra/newview/llmediadataclient.h284
-rw-r--r--indra/newview/llmemoryview.cpp36
-rw-r--r--indra/newview/llmemoryview.h36
-rw-r--r--indra/newview/llmenucommands.cpp36
-rw-r--r--indra/newview/llmenucommands.h36
-rw-r--r--indra/newview/llmetricperformancetester.cpp36
-rw-r--r--indra/newview/llmetricperformancetester.h36
-rw-r--r--indra/newview/llmimetypes.cpp36
-rw-r--r--indra/newview/llmimetypes.h36
-rw-r--r--indra/newview/llmorphview.cpp38
-rw-r--r--indra/newview/llmorphview.h44
-rw-r--r--indra/newview/llmoveview.cpp82
-rw-r--r--indra/newview/llmoveview.h39
-rw-r--r--indra/newview/llmutelist.cpp36
-rw-r--r--indra/newview/llmutelist.h36
-rw-r--r--indra/newview/llnamebox.cpp36
-rw-r--r--indra/newview/llnamebox.h36
-rw-r--r--indra/newview/llnameeditor.cpp36
-rw-r--r--indra/newview/llnameeditor.h36
-rw-r--r--indra/newview/llnamelistctrl.cpp39
-rw-r--r--indra/newview/llnamelistctrl.h38
-rw-r--r--indra/newview/llnavigationbar.cpp67
-rw-r--r--indra/newview/llnavigationbar.h49
-rw-r--r--indra/newview/llnearbychat.cpp42
-rw-r--r--indra/newview/llnearbychat.h36
-rw-r--r--indra/newview/llnearbychatbar.cpp113
-rw-r--r--indra/newview/llnearbychatbar.h41
-rw-r--r--indra/newview/llnearbychathandler.cpp229
-rw-r--r--indra/newview/llnearbychathandler.h36
-rw-r--r--indra/newview/llnetmap.cpp296
-rw-r--r--indra/newview/llnetmap.h64
-rw-r--r--indra/newview/llnotificationalerthandler.cpp38
-rw-r--r--indra/newview/llnotificationgrouphandler.cpp38
-rw-r--r--indra/newview/llnotificationhandler.h59
-rw-r--r--indra/newview/llnotificationhandlerutil.cpp44
-rw-r--r--indra/newview/llnotificationhinthandler.cpp58
-rw-r--r--indra/newview/llnotificationmanager.cpp40
-rw-r--r--indra/newview/llnotificationmanager.h36
-rw-r--r--indra/newview/llnotificationofferhandler.cpp44
-rw-r--r--indra/newview/llnotificationscripthandler.cpp38
-rw-r--r--indra/newview/llnotificationstorage.cpp42
-rw-r--r--indra/newview/llnotificationstorage.h42
-rw-r--r--indra/newview/llnotificationtiphandler.cpp42
-rw-r--r--indra/newview/lloutfitobserver.cpp62
-rw-r--r--indra/newview/lloutfitobserver.h45
-rw-r--r--indra/newview/lloutfitslist.cpp556
-rw-r--r--indra/newview/lloutfitslist.h92
-rw-r--r--indra/newview/lloutputmonitorctrl.cpp36
-rw-r--r--indra/newview/lloutputmonitorctrl.h36
-rw-r--r--indra/newview/lloverlaybar.cpp36
-rw-r--r--indra/newview/lloverlaybar.h36
-rw-r--r--indra/newview/llpanelappearancetab.cpp51
-rw-r--r--indra/newview/llpanelappearancetab.h67
-rw-r--r--indra/newview/llpanelavatar.cpp217
-rw-r--r--indra/newview/llpanelavatar.h47
-rw-r--r--indra/newview/llpanelavatartag.cpp38
-rw-r--r--indra/newview/llpanelavatartag.h36
-rw-r--r--indra/newview/llpanelblockedlist.cpp40
-rw-r--r--indra/newview/llpanelblockedlist.h36
-rw-r--r--indra/newview/llpanelclassified.cpp1208
-rw-r--r--indra/newview/llpanelclassified.h204
-rw-r--r--indra/newview/llpanelcontents.cpp40
-rw-r--r--indra/newview/llpanelcontents.h36
-rw-r--r--indra/newview/llpaneleditwearable.cpp180
-rw-r--r--indra/newview/llpaneleditwearable.h46
-rw-r--r--indra/newview/llpanelface.cpp345
-rw-r--r--indra/newview/llpanelface.h37
-rw-r--r--indra/newview/llpanelgenerictip.cpp46
-rw-r--r--indra/newview/llpanelgenerictip.h36
-rw-r--r--indra/newview/llpanelgroup.cpp60
-rw-r--r--indra/newview/llpanelgroup.h37
-rw-r--r--indra/newview/llpanelgroupgeneral.cpp60
-rw-r--r--indra/newview/llpanelgroupgeneral.h37
-rw-r--r--indra/newview/llpanelgroupinvite.cpp38
-rw-r--r--indra/newview/llpanelgroupinvite.h36
-rw-r--r--indra/newview/llpanelgrouplandmoney.cpp54
-rw-r--r--indra/newview/llpanelgrouplandmoney.h36
-rw-r--r--indra/newview/llpanelgroupnotices.cpp36
-rw-r--r--indra/newview/llpanelgroupnotices.h36
-rw-r--r--indra/newview/llpanelgrouproles.cpp48
-rw-r--r--indra/newview/llpanelgrouproles.h36
-rw-r--r--indra/newview/llpanelhome.cpp37
-rw-r--r--indra/newview/llpanelhome.h36
-rw-r--r--indra/newview/llpanelimcontrolpanel.cpp78
-rw-r--r--indra/newview/llpanelimcontrolpanel.h37
-rw-r--r--indra/newview/llpanelland.cpp105
-rw-r--r--indra/newview/llpanelland.h55
-rw-r--r--indra/newview/llpanellandaudio.cpp41
-rw-r--r--indra/newview/llpanellandaudio.h41
-rw-r--r--indra/newview/llpanellandmarkinfo.cpp107
-rw-r--r--indra/newview/llpanellandmarkinfo.h42
-rw-r--r--indra/newview/llpanellandmarks.cpp117
-rw-r--r--indra/newview/llpanellandmarks.h45
-rw-r--r--indra/newview/llpanellandmedia.cpp56
-rw-r--r--indra/newview/llpanellandmedia.h36
-rw-r--r--indra/newview/llpanellogin.cpp94
-rw-r--r--indra/newview/llpanellogin.h36
-rw-r--r--indra/newview/llpanelloginlistener.cpp21
-rw-r--r--indra/newview/llpanelloginlistener.h21
-rw-r--r--indra/newview/llpanelmaininventory.cpp179
-rw-r--r--indra/newview/llpanelmaininventory.h37
-rw-r--r--indra/newview/llpanelme.cpp74
-rw-r--r--indra/newview/llpanelme.h36
-rw-r--r--indra/newview/llpanelmediasettingsgeneral.cpp64
-rw-r--r--indra/newview/llpanelmediasettingsgeneral.h36
-rw-r--r--indra/newview/llpanelmediasettingspermissions.cpp60
-rw-r--r--indra/newview/llpanelmediasettingspermissions.h36
-rw-r--r--indra/newview/llpanelmediasettingssecurity.cpp38
-rw-r--r--indra/newview/llpanelmediasettingssecurity.h36
-rw-r--r--indra/newview/llpanelnearbymedia.cpp42
-rw-r--r--indra/newview/llpanelnearbymedia.h36
-rw-r--r--indra/newview/llpanelobject.cpp101
-rw-r--r--indra/newview/llpanelobject.h38
-rw-r--r--indra/newview/llpanelobjectinventory.cpp38
-rw-r--r--indra/newview/llpanelobjectinventory.h36
-rw-r--r--indra/newview/llpanelonlinestatus.cpp53
-rw-r--r--indra/newview/llpanelonlinestatus.h42
-rw-r--r--indra/newview/llpaneloutfitedit.cpp711
-rw-r--r--indra/newview/llpaneloutfitedit.h69
-rw-r--r--indra/newview/llpaneloutfitsinventory.cpp644
-rw-r--r--indra/newview/llpaneloutfitsinventory.h98
-rw-r--r--indra/newview/llpanelpeople.cpp137
-rw-r--r--indra/newview/llpanelpeople.h41
-rw-r--r--indra/newview/llpanelpeoplemenus.cpp43
-rw-r--r--indra/newview/llpanelpeoplemenus.h36
-rw-r--r--indra/newview/llpanelpermissions.cpp392
-rw-r--r--indra/newview/llpanelpermissions.h36
-rw-r--r--indra/newview/llpanelpick.cpp71
-rw-r--r--indra/newview/llpanelpick.h36
-rw-r--r--indra/newview/llpanelpicks.cpp106
-rw-r--r--indra/newview/llpanelpicks.h40
-rw-r--r--indra/newview/llpanelplace.cpp425
-rw-r--r--indra/newview/llpanelplace.h120
-rw-r--r--indra/newview/llpanelplaceinfo.cpp71
-rw-r--r--indra/newview/llpanelplaceinfo.h36
-rw-r--r--indra/newview/llpanelplaceprofile.cpp51
-rw-r--r--indra/newview/llpanelplaceprofile.h44
-rw-r--r--indra/newview/llpanelplaces.cpp93
-rw-r--r--indra/newview/llpanelplaces.h35
-rw-r--r--indra/newview/llpanelplacestab.cpp35
-rw-r--r--indra/newview/llpanelplacestab.h35
-rw-r--r--indra/newview/llpanelprimmediacontrols.cpp46
-rw-r--r--indra/newview/llpanelprimmediacontrols.h35
-rw-r--r--indra/newview/llpanelprofile.cpp40
-rw-r--r--indra/newview/llpanelprofile.h36
-rw-r--r--indra/newview/llpanelprofileview.cpp42
-rw-r--r--indra/newview/llpanelprofileview.h36
-rw-r--r--indra/newview/llpanelteleporthistory.cpp45
-rw-r--r--indra/newview/llpanelteleporthistory.h35
-rw-r--r--indra/newview/llpaneltiptoast.cpp42
-rw-r--r--indra/newview/llpaneltiptoast.h42
-rw-r--r--indra/newview/llpaneltopinfobar.cpp67
-rw-r--r--indra/newview/llpaneltopinfobar.h62
-rw-r--r--indra/newview/llpanelvoicedevicesettings.cpp (renamed from indra/newview/llfloatervoicedevicesettings.cpp)170
-rw-r--r--indra/newview/llpanelvoicedevicesettings.h61
-rw-r--r--indra/newview/llpanelvoiceeffect.cpp38
-rw-r--r--indra/newview/llpanelvoiceeffect.h36
-rw-r--r--indra/newview/llpanelvolume.cpp290
-rw-r--r--indra/newview/llpanelvolume.h36
-rw-r--r--indra/newview/llpanelvolumepulldown.cpp42
-rw-r--r--indra/newview/llpanelvolumepulldown.h36
-rw-r--r--indra/newview/llpanelwearing.cpp292
-rw-r--r--indra/newview/llpanelwearing.h80
-rw-r--r--indra/newview/llparcelselection.cpp36
-rw-r--r--indra/newview/llparcelselection.h36
-rw-r--r--indra/newview/llparticipantlist.cpp42
-rw-r--r--indra/newview/llparticipantlist.h36
-rw-r--r--indra/newview/llpatchvertexarray.cpp36
-rw-r--r--indra/newview/llpatchvertexarray.h36
-rw-r--r--indra/newview/llplacesinventorybridge.cpp38
-rw-r--r--indra/newview/llplacesinventorybridge.h36
-rw-r--r--indra/newview/llplacesinventorypanel.cpp36
-rw-r--r--indra/newview/llplacesinventorypanel.h36
-rw-r--r--indra/newview/llpolymesh.cpp36
-rw-r--r--indra/newview/llpolymesh.h36
-rw-r--r--indra/newview/llpolymorph.cpp36
-rw-r--r--indra/newview/llpolymorph.h36
-rw-r--r--indra/newview/llpopupview.cpp36
-rw-r--r--indra/newview/llpopupview.h36
-rw-r--r--indra/newview/llpreview.cpp48
-rw-r--r--indra/newview/llpreview.h36
-rw-r--r--indra/newview/llpreviewanim.cpp49
-rw-r--r--indra/newview/llpreviewanim.h36
-rw-r--r--indra/newview/llpreviewgesture.cpp64
-rw-r--r--indra/newview/llpreviewgesture.h36
-rw-r--r--indra/newview/llpreviewnotecard.cpp59
-rw-r--r--indra/newview/llpreviewnotecard.h36
-rw-r--r--indra/newview/llpreviewscript.cpp90
-rw-r--r--indra/newview/llpreviewscript.h38
-rw-r--r--indra/newview/llpreviewsound.cpp41
-rw-r--r--indra/newview/llpreviewsound.h36
-rw-r--r--indra/newview/llpreviewtexture.cpp78
-rw-r--r--indra/newview/llpreviewtexture.h46
-rw-r--r--indra/newview/llproductinforequest.cpp36
-rw-r--r--indra/newview/llproductinforequest.h36
-rw-r--r--indra/newview/llprogressview.cpp59
-rw-r--r--indra/newview/llprogressview.h37
-rw-r--r--indra/newview/llrecentpeople.cpp36
-rw-r--r--indra/newview/llrecentpeople.h36
-rw-r--r--indra/newview/llregionposition.cpp36
-rw-r--r--indra/newview/llregionposition.h36
-rw-r--r--indra/newview/llremoteparcelrequest.cpp37
-rw-r--r--indra/newview/llremoteparcelrequest.h36
-rw-r--r--indra/newview/llresourcedata.h36
-rw-r--r--indra/newview/llrootview.h36
-rw-r--r--indra/newview/llsavedsettingsglue.cpp36
-rw-r--r--indra/newview/llsavedsettingsglue.h36
-rw-r--r--indra/newview/llsaveoutfitcombobtn.cpp38
-rw-r--r--indra/newview/llsaveoutfitcombobtn.h36
-rw-r--r--indra/newview/llscreenchannel.cpp103
-rw-r--r--indra/newview/llscreenchannel.h38
-rw-r--r--indra/newview/llscriptfloater.cpp65
-rw-r--r--indra/newview/llscriptfloater.h41
-rw-r--r--indra/newview/llscrollingpanelparam.cpp76
-rw-r--r--indra/newview/llscrollingpanelparam.h36
-rw-r--r--indra/newview/llsearchcombobox.cpp36
-rw-r--r--indra/newview/llsearchcombobox.h36
-rw-r--r--indra/newview/llsearchhistory.cpp36
-rw-r--r--indra/newview/llsearchhistory.h36
-rw-r--r--indra/newview/llsecapi.cpp35
-rw-r--r--indra/newview/llsecapi.h35
-rw-r--r--indra/newview/llsechandler_basic.cpp35
-rw-r--r--indra/newview/llsechandler_basic.h35
-rw-r--r--indra/newview/llselectmgr.cpp77
-rw-r--r--indra/newview/llselectmgr.h39
-rw-r--r--indra/newview/llsidepanelappearance.cpp89
-rw-r--r--indra/newview/llsidepanelappearance.h35
-rw-r--r--indra/newview/llsidepanelinventory.cpp75
-rw-r--r--indra/newview/llsidepanelinventory.h41
-rw-r--r--indra/newview/llsidepanelinventorysubpanel.cpp36
-rw-r--r--indra/newview/llsidepanelinventorysubpanel.h36
-rw-r--r--indra/newview/llsidepaneliteminfo.cpp320
-rw-r--r--indra/newview/llsidepaneliteminfo.h41
-rw-r--r--indra/newview/llsidepaneltaskinfo.cpp394
-rw-r--r--indra/newview/llsidepaneltaskinfo.h38
-rw-r--r--indra/newview/llsidetray.cpp638
-rw-r--r--indra/newview/llsidetray.h80
-rw-r--r--indra/newview/llsidetraypanelcontainer.cpp36
-rw-r--r--indra/newview/llsidetraypanelcontainer.h36
-rw-r--r--indra/newview/llsky.cpp36
-rw-r--r--indra/newview/llsky.h36
-rw-r--r--indra/newview/llslurl.cpp56
-rw-r--r--indra/newview/llslurl.h35
-rw-r--r--indra/newview/llspatialpartition.cpp80
-rw-r--r--indra/newview/llspatialpartition.h56
-rw-r--r--indra/newview/llspeakbutton.cpp44
-rw-r--r--indra/newview/llspeakbutton.h45
-rw-r--r--indra/newview/llspeakers.cpp41
-rw-r--r--indra/newview/llspeakers.h36
-rw-r--r--indra/newview/llspeakingindicatormanager.cpp36
-rw-r--r--indra/newview/llspeakingindicatormanager.h36
-rw-r--r--indra/newview/llsplitbutton.cpp40
-rw-r--r--indra/newview/llsplitbutton.h36
-rw-r--r--indra/newview/llsprite.cpp36
-rw-r--r--indra/newview/llsprite.h36
-rw-r--r--indra/newview/llsrv.cpp36
-rw-r--r--indra/newview/llsrv.h36
-rw-r--r--indra/newview/llstartup.cpp63
-rw-r--r--indra/newview/llstartup.h36
-rw-r--r--indra/newview/llstartuplistener.cpp21
-rw-r--r--indra/newview/llstartuplistener.h21
-rw-r--r--indra/newview/llstatusbar.cpp243
-rw-r--r--indra/newview/llstatusbar.h46
-rw-r--r--indra/newview/llstylemap.cpp48
-rw-r--r--indra/newview/llstylemap.h36
-rw-r--r--indra/newview/llsurface.cpp38
-rw-r--r--indra/newview/llsurface.h36
-rw-r--r--indra/newview/llsurfacepatch.cpp36
-rw-r--r--indra/newview/llsurfacepatch.h36
-rw-r--r--indra/newview/llsyswellitem.cpp42
-rw-r--r--indra/newview/llsyswellitem.h37
-rw-r--r--indra/newview/llsyswellwindow.cpp54
-rw-r--r--indra/newview/llsyswellwindow.h36
-rw-r--r--indra/newview/lltable.h36
-rw-r--r--indra/newview/llteleporthistory.cpp36
-rw-r--r--indra/newview/llteleporthistory.h36
-rw-r--r--indra/newview/llteleporthistorystorage.cpp42
-rw-r--r--indra/newview/llteleporthistorystorage.h42
-rw-r--r--indra/newview/lltexglobalcolor.cpp35
-rw-r--r--indra/newview/lltexglobalcolor.h35
-rw-r--r--indra/newview/lltexlayer.cpp187
-rw-r--r--indra/newview/lltexlayer.h114
-rw-r--r--indra/newview/lltexlayerparams.cpp37
-rw-r--r--indra/newview/lltexlayerparams.h35
-rw-r--r--indra/newview/lltextureatlas.cpp35
-rw-r--r--indra/newview/lltextureatlas.h35
-rw-r--r--indra/newview/lltextureatlasmanager.cpp35
-rw-r--r--indra/newview/lltextureatlasmanager.h35
-rw-r--r--indra/newview/lltexturecache.cpp147
-rw-r--r--indra/newview/lltexturecache.h45
-rw-r--r--indra/newview/lltexturectrl.cpp157
-rw-r--r--indra/newview/lltexturectrl.h91
-rw-r--r--indra/newview/lltexturefetch.cpp170
-rw-r--r--indra/newview/lltexturefetch.h41
-rw-r--r--indra/newview/lltextureinfo.cpp36
-rw-r--r--indra/newview/lltextureinfo.h36
-rw-r--r--indra/newview/lltextureinfodetails.cpp36
-rw-r--r--indra/newview/lltextureinfodetails.h36
-rw-r--r--indra/newview/lltexturestats.cpp36
-rw-r--r--indra/newview/lltexturestats.h36
-rw-r--r--indra/newview/lltexturestatsuploader.cpp36
-rw-r--r--indra/newview/lltexturestatsuploader.h36
-rw-r--r--indra/newview/lltextureview.cpp48
-rw-r--r--indra/newview/lltextureview.h36
-rw-r--r--indra/newview/lltoast.cpp46
-rw-r--r--indra/newview/lltoast.h42
-rw-r--r--indra/newview/lltoastalertpanel.cpp42
-rw-r--r--indra/newview/lltoastalertpanel.h42
-rw-r--r--indra/newview/lltoastgroupnotifypanel.cpp46
-rw-r--r--indra/newview/lltoastgroupnotifypanel.h42
-rw-r--r--indra/newview/lltoastimpanel.cpp38
-rw-r--r--indra/newview/lltoastimpanel.h36
-rw-r--r--indra/newview/lltoastnotifypanel.cpp52
-rw-r--r--indra/newview/lltoastnotifypanel.h46
-rw-r--r--indra/newview/lltoastpanel.cpp36
-rw-r--r--indra/newview/lltoastpanel.h36
-rw-r--r--indra/newview/lltool.cpp36
-rw-r--r--indra/newview/lltool.h36
-rw-r--r--indra/newview/lltoolbar.cpp36
-rw-r--r--indra/newview/lltoolbar.h36
-rw-r--r--indra/newview/lltoolbrush.cpp36
-rw-r--r--indra/newview/lltoolbrush.h36
-rw-r--r--indra/newview/lltoolcomp.cpp36
-rw-r--r--indra/newview/lltoolcomp.h36
-rw-r--r--indra/newview/lltooldraganddrop.cpp120
-rw-r--r--indra/newview/lltooldraganddrop.h36
-rw-r--r--indra/newview/lltoolface.cpp36
-rw-r--r--indra/newview/lltoolface.h36
-rw-r--r--indra/newview/lltoolfocus.cpp37
-rw-r--r--indra/newview/lltoolfocus.h36
-rw-r--r--indra/newview/lltoolgrab.cpp36
-rw-r--r--indra/newview/lltoolgrab.h36
-rw-r--r--indra/newview/lltoolgun.cpp36
-rw-r--r--indra/newview/lltoolgun.h36
-rw-r--r--indra/newview/lltoolindividual.cpp36
-rw-r--r--indra/newview/lltoolindividual.h36
-rw-r--r--indra/newview/lltoolmgr.cpp36
-rw-r--r--indra/newview/lltoolmgr.h36
-rw-r--r--indra/newview/lltoolmorph.cpp38
-rw-r--r--indra/newview/lltoolmorph.h36
-rw-r--r--indra/newview/lltoolobjpicker.cpp36
-rw-r--r--indra/newview/lltoolobjpicker.h36
-rw-r--r--indra/newview/lltoolpie.cpp67
-rw-r--r--indra/newview/lltoolpie.h36
-rw-r--r--indra/newview/lltoolpipette.cpp36
-rw-r--r--indra/newview/lltoolpipette.h36
-rw-r--r--indra/newview/lltoolplacer.cpp36
-rw-r--r--indra/newview/lltoolplacer.h36
-rw-r--r--indra/newview/lltoolselect.cpp36
-rw-r--r--indra/newview/lltoolselect.h36
-rw-r--r--indra/newview/lltoolselectland.cpp36
-rw-r--r--indra/newview/lltoolselectland.h36
-rw-r--r--indra/newview/lltoolselectrect.cpp36
-rw-r--r--indra/newview/lltoolselectrect.h36
-rw-r--r--indra/newview/lltoolview.cpp36
-rw-r--r--indra/newview/lltoolview.h36
-rw-r--r--indra/newview/lltracker.cpp36
-rw-r--r--indra/newview/lltracker.h36
-rw-r--r--indra/newview/lltransientdockablefloater.cpp36
-rw-r--r--indra/newview/lltransientdockablefloater.h36
-rw-r--r--indra/newview/lltransientfloatermgr.cpp36
-rw-r--r--indra/newview/lltransientfloatermgr.h36
-rw-r--r--indra/newview/lltranslate.cpp123
-rw-r--r--indra/newview/lltranslate.h124
-rw-r--r--indra/newview/lluiconstants.h36
-rw-r--r--indra/newview/lluilistener.cpp21
-rw-r--r--indra/newview/lluilistener.h21
-rw-r--r--indra/newview/lluploaddialog.cpp36
-rw-r--r--indra/newview/lluploaddialog.h36
-rw-r--r--indra/newview/llurl.cpp36
-rw-r--r--indra/newview/llurl.h36
-rw-r--r--indra/newview/llurldispatcher.cpp55
-rw-r--r--indra/newview/llurldispatcher.h35
-rw-r--r--indra/newview/llurldispatcherlistener.cpp21
-rw-r--r--indra/newview/llurldispatcherlistener.h21
-rw-r--r--indra/newview/llurlhistory.cpp36
-rw-r--r--indra/newview/llurlhistory.h36
-rw-r--r--indra/newview/llurllineeditorctrl.cpp41
-rw-r--r--indra/newview/llurllineeditorctrl.h36
-rw-r--r--indra/newview/llurlwhitelist.cpp36
-rw-r--r--indra/newview/llurlwhitelist.h36
-rw-r--r--indra/newview/llvectorperfoptions.cpp36
-rw-r--r--indra/newview/llvectorperfoptions.h36
-rw-r--r--indra/newview/llversioninfo.cpp36
-rw-r--r--indra/newview/llversioninfo.h36
-rw-r--r--indra/newview/llviewchildren.cpp40
-rw-r--r--indra/newview/llviewchildren.h36
-rw-r--r--indra/newview/llviewerassetstorage.cpp36
-rw-r--r--indra/newview/llviewerassetstorage.h36
-rw-r--r--indra/newview/llviewerassettype.cpp36
-rw-r--r--indra/newview/llviewerassettype.h36
-rw-r--r--indra/newview/llviewerattachmenu.cpp40
-rw-r--r--indra/newview/llviewerattachmenu.h36
-rw-r--r--indra/newview/llvieweraudio.cpp40
-rw-r--r--indra/newview/llvieweraudio.h36
-rw-r--r--indra/newview/llviewercamera.cpp36
-rw-r--r--indra/newview/llviewercamera.h36
-rw-r--r--indra/newview/llviewerchat.cpp36
-rw-r--r--indra/newview/llviewerchat.h36
-rw-r--r--indra/newview/llviewercontrol.cpp62
-rw-r--r--indra/newview/llviewercontrol.h36
-rw-r--r--indra/newview/llviewercontrollistener.cpp21
-rw-r--r--indra/newview/llviewercontrollistener.h21
-rw-r--r--indra/newview/llviewerdisplay.cpp68
-rw-r--r--indra/newview/llviewerdisplay.h36
-rw-r--r--indra/newview/llviewerfloaterreg.cpp44
-rw-r--r--indra/newview/llviewerfloaterreg.h36
-rw-r--r--indra/newview/llviewerfoldertype.cpp36
-rw-r--r--indra/newview/llviewerfoldertype.h36
-rw-r--r--indra/newview/llviewergenericmessage.cpp36
-rw-r--r--indra/newview/llviewergenericmessage.h36
-rw-r--r--indra/newview/llviewergesture.cpp36
-rw-r--r--indra/newview/llviewergesture.h36
-rw-r--r--indra/newview/llviewerhelp.cpp36
-rw-r--r--indra/newview/llviewerhelp.h36
-rw-r--r--indra/newview/llviewerhelputil.cpp36
-rw-r--r--indra/newview/llviewerhelputil.h36
-rw-r--r--indra/newview/llviewerhome.cpp36
-rw-r--r--indra/newview/llviewerhome.h36
-rw-r--r--indra/newview/llviewerinventory.cpp131
-rw-r--r--indra/newview/llviewerinventory.h50
-rw-r--r--indra/newview/llviewerjoint.cpp40
-rw-r--r--indra/newview/llviewerjoint.h38
-rw-r--r--indra/newview/llviewerjointattachment.cpp73
-rw-r--r--indra/newview/llviewerjointattachment.h36
-rw-r--r--indra/newview/llviewerjointmesh.cpp139
-rw-r--r--indra/newview/llviewerjointmesh.h38
-rw-r--r--indra/newview/llviewerjointmesh_sse.cpp36
-rw-r--r--indra/newview/llviewerjointmesh_sse2.cpp36
-rw-r--r--indra/newview/llviewerjointmesh_vec.cpp36
-rw-r--r--indra/newview/llviewerjoystick.cpp44
-rw-r--r--indra/newview/llviewerjoystick.h36
-rw-r--r--indra/newview/llviewerkeyboard.cpp36
-rw-r--r--indra/newview/llviewerkeyboard.h36
-rw-r--r--indra/newview/llviewerlayer.cpp36
-rw-r--r--indra/newview/llviewerlayer.h36
-rw-r--r--indra/newview/llviewermedia.cpp226
-rw-r--r--indra/newview/llviewermedia.h51
-rw-r--r--indra/newview/llviewermedia_streamingaudio.cpp36
-rw-r--r--indra/newview/llviewermedia_streamingaudio.h36
-rw-r--r--indra/newview/llviewermediafocus.cpp35
-rw-r--r--indra/newview/llviewermediafocus.h35
-rw-r--r--indra/newview/llviewermediaobserver.h36
-rw-r--r--indra/newview/llviewermenu.cpp305
-rw-r--r--indra/newview/llviewermenu.h36
-rw-r--r--indra/newview/llviewermenufile.cpp36
-rw-r--r--indra/newview/llviewermenufile.h36
-rw-r--r--indra/newview/llviewermessage.cpp219
-rw-r--r--indra/newview/llviewermessage.h36
-rw-r--r--indra/newview/llviewernetwork.cpp65
-rw-r--r--indra/newview/llviewernetwork.h38
-rw-r--r--indra/newview/llviewerobject.cpp101
-rw-r--r--indra/newview/llviewerobject.h46
-rw-r--r--indra/newview/llviewerobjectlist.cpp40
-rw-r--r--indra/newview/llviewerobjectlist.h36
-rw-r--r--indra/newview/llviewerparcelmedia.cpp54
-rw-r--r--indra/newview/llviewerparcelmedia.h36
-rw-r--r--indra/newview/llviewerparcelmediaautoplay.cpp36
-rw-r--r--indra/newview/llviewerparcelmediaautoplay.h36
-rw-r--r--indra/newview/llviewerparcelmgr.cpp36
-rw-r--r--indra/newview/llviewerparcelmgr.h36
-rw-r--r--indra/newview/llviewerparceloverlay.cpp36
-rw-r--r--indra/newview/llviewerparceloverlay.h36
-rw-r--r--indra/newview/llviewerpartsim.cpp36
-rw-r--r--indra/newview/llviewerpartsim.h36
-rw-r--r--indra/newview/llviewerpartsource.cpp36
-rw-r--r--indra/newview/llviewerpartsource.h36
-rw-r--r--indra/newview/llviewerprecompiledheaders.cpp36
-rw-r--r--indra/newview/llviewerprecompiledheaders.h36
-rw-r--r--indra/newview/llviewerregion.cpp196
-rw-r--r--indra/newview/llviewerregion.h50
-rw-r--r--indra/newview/llviewershadermgr.cpp91
-rw-r--r--indra/newview/llviewershadermgr.h36
-rw-r--r--indra/newview/llviewerstats.cpp46
-rw-r--r--indra/newview/llviewerstats.h93
-rw-r--r--indra/newview/llviewertexteditor.cpp86
-rw-r--r--indra/newview/llviewertexteditor.h43
-rw-r--r--indra/newview/llviewertexture.cpp486
-rw-r--r--indra/newview/llviewertexture.h107
-rw-r--r--indra/newview/llviewertextureanim.cpp36
-rw-r--r--indra/newview/llviewertextureanim.h36
-rw-r--r--indra/newview/llviewertexturelist.cpp78
-rw-r--r--indra/newview/llviewertexturelist.h36
-rw-r--r--indra/newview/llviewerthrottle.cpp36
-rw-r--r--indra/newview/llviewerthrottle.h36
-rw-r--r--indra/newview/llviewervisualparam.cpp36
-rw-r--r--indra/newview/llviewervisualparam.h36
-rw-r--r--indra/newview/llviewerwindow.cpp253
-rw-r--r--indra/newview/llviewerwindow.h39
-rw-r--r--indra/newview/llviewerwindowlistener.cpp21
-rw-r--r--indra/newview/llviewerwindowlistener.h21
-rw-r--r--indra/newview/llvlcomposition.cpp36
-rw-r--r--indra/newview/llvlcomposition.h36
-rw-r--r--indra/newview/llvlmanager.cpp36
-rw-r--r--indra/newview/llvlmanager.h36
-rw-r--r--indra/newview/llvoavatar.cpp496
-rw-r--r--indra/newview/llvoavatar.h56
-rw-r--r--indra/newview/llvoavatardefines.cpp36
-rw-r--r--indra/newview/llvoavatardefines.h36
-rw-r--r--indra/newview/llvoavatarself.cpp174
-rw-r--r--indra/newview/llvoavatarself.h46
-rw-r--r--indra/newview/llvocache.cpp619
-rw-r--r--indra/newview/llvocache.h122
-rw-r--r--indra/newview/llvoclouds.cpp36
-rw-r--r--indra/newview/llvoclouds.h36
-rw-r--r--indra/newview/llvograss.cpp92
-rw-r--r--indra/newview/llvograss.h36
-rw-r--r--indra/newview/llvoground.cpp36
-rw-r--r--indra/newview/llvoground.h36
-rw-r--r--indra/newview/llvoicechannel.cpp36
-rw-r--r--indra/newview/llvoicechannel.h36
-rw-r--r--indra/newview/llvoiceclient.cpp35
-rw-r--r--indra/newview/llvoiceclient.h35
-rw-r--r--indra/newview/llvoicevisualizer.cpp36
-rw-r--r--indra/newview/llvoicevisualizer.h36
-rw-r--r--indra/newview/llvoicevivox.cpp80
-rw-r--r--indra/newview/llvoicevivox.h41
-rw-r--r--indra/newview/llvoinventorylistener.cpp36
-rw-r--r--indra/newview/llvoinventorylistener.h36
-rw-r--r--indra/newview/llvopartgroup.cpp36
-rw-r--r--indra/newview/llvopartgroup.h36
-rw-r--r--indra/newview/llvosky.cpp41
-rw-r--r--indra/newview/llvosky.h42
-rw-r--r--indra/newview/llvosurfacepatch.cpp36
-rw-r--r--indra/newview/llvosurfacepatch.h36
-rw-r--r--indra/newview/llvotextbubble.cpp36
-rw-r--r--indra/newview/llvotextbubble.h36
-rw-r--r--indra/newview/llvotree.cpp80
-rw-r--r--indra/newview/llvotree.h37
-rw-r--r--indra/newview/llvotreenew.h36
-rw-r--r--indra/newview/llvovolume.cpp186
-rw-r--r--indra/newview/llvovolume.h42
-rw-r--r--indra/newview/llvowater.cpp36
-rw-r--r--indra/newview/llvowater.h36
-rw-r--r--indra/newview/llvowlsky.cpp36
-rw-r--r--indra/newview/llvowlsky.h36
-rw-r--r--indra/newview/llwatchdog.cpp36
-rw-r--r--indra/newview/llwatchdog.h36
-rw-r--r--indra/newview/llwaterparammanager.cpp36
-rw-r--r--indra/newview/llwaterparammanager.h36
-rw-r--r--indra/newview/llwaterparamset.cpp36
-rw-r--r--indra/newview/llwaterparamset.h36
-rw-r--r--indra/newview/llwearable.cpp54
-rw-r--r--indra/newview/llwearable.h38
-rw-r--r--indra/newview/llwearableitemslist.cpp535
-rw-r--r--indra/newview/llwearableitemslist.h218
-rw-r--r--indra/newview/llwearablelist.cpp36
-rw-r--r--indra/newview/llwearablelist.h36
-rw-r--r--indra/newview/llwearabletype.cpp48
-rw-r--r--indra/newview/llwearabletype.h35
-rw-r--r--indra/newview/llweb.cpp60
-rw-r--r--indra/newview/llweb.h50
-rw-r--r--indra/newview/llwebsharing.cpp603
-rw-r--r--indra/newview/llwebsharing.h224
-rw-r--r--indra/newview/llwind.cpp36
-rw-r--r--indra/newview/llwind.h36
-rw-r--r--indra/newview/llwindebug.cpp191
-rw-r--r--indra/newview/llwindebug.h43
-rw-r--r--indra/newview/llwlanimator.cpp36
-rw-r--r--indra/newview/llwlanimator.h36
-rw-r--r--indra/newview/llwldaycycle.cpp36
-rw-r--r--indra/newview/llwldaycycle.h36
-rw-r--r--indra/newview/llwlparammanager.cpp36
-rw-r--r--indra/newview/llwlparammanager.h36
-rw-r--r--indra/newview/llwlparamset.cpp36
-rw-r--r--indra/newview/llwlparamset.h36
-rw-r--r--indra/newview/llworld.cpp41
-rw-r--r--indra/newview/llworld.h36
-rw-r--r--indra/newview/llworldmap.cpp45
-rw-r--r--indra/newview/llworldmap.h38
-rw-r--r--indra/newview/llworldmapmessage.cpp36
-rw-r--r--indra/newview/llworldmapmessage.h36
-rw-r--r--indra/newview/llworldmapview.cpp36
-rw-r--r--indra/newview/llworldmapview.h36
-rw-r--r--indra/newview/llworldmipmap.cpp36
-rw-r--r--indra/newview/llworldmipmap.h36
-rw-r--r--indra/newview/llworldview.cpp36
-rw-r--r--indra/newview/llxmlrpclistener.cpp21
-rw-r--r--indra/newview/llxmlrpclistener.h21
-rw-r--r--indra/newview/llxmlrpctransaction.cpp36
-rw-r--r--indra/newview/llxmlrpctransaction.h36
-rw-r--r--indra/newview/macmain.h36
-rw-r--r--indra/newview/macutil_Prefix.h36
-rw-r--r--indra/newview/macview_Prefix.h36
-rw-r--r--indra/newview/noise.cpp37
-rw-r--r--indra/newview/noise.h36
-rw-r--r--indra/newview/pipeline.cpp998
-rw-r--r--indra/newview/pipeline.h71
-rw-r--r--indra/newview/res/have_artwork_bundle.marker1
-rw-r--r--indra/newview/res/resource.h36
-rw-r--r--indra/newview/res/viewerRes.rc10
-rw-r--r--indra/newview/secondlife-i686.supp35
-rw-r--r--indra/newview/skins/default/colors.xml14
-rw-r--r--indra/newview/skins/default/textures/ff_edit_mine.tgabin1068 -> 0 bytes
-rw-r--r--indra/newview/skins/default/textures/ff_edit_mine_button.tgabin4140 -> 0 bytes
-rw-r--r--indra/newview/skins/default/textures/ff_edit_theirs.tgabin1068 -> 0 bytes
-rw-r--r--indra/newview/skins/default/textures/ff_edit_theirs_button.tgabin4140 -> 0 bytes
-rw-r--r--indra/newview/skins/default/textures/ff_online_status_button.tgabin4140 -> 0 bytes
-rw-r--r--indra/newview/skins/default/textures/ff_visible_map.tgabin812 -> 0 bytes
-rw-r--r--indra/newview/skins/default/textures/ff_visible_map_button.tgabin4140 -> 0 bytes
-rw-r--r--indra/newview/skins/default/textures/ff_visible_online.tgabin1068 -> 0 bytes
-rw-r--r--indra/newview/skins/default/textures/ff_visible_online_button.tgabin4140 -> 0 bytes
-rw-r--r--indra/newview/skins/default/textures/icons/Edit_Wrench.pngbin724 -> 3713 bytes
-rw-r--r--indra/newview/skins/default/textures/icons/Generic_Group_Large.pngbin7061 -> 7507 bytes
-rw-r--r--indra/newview/skins/default/textures/icons/Generic_Person_Large.pngbin1630 -> 51508 bytes
-rw-r--r--indra/newview/skins/default/textures/icons/Hierarchy_View_On.pngbin183 -> 2839 bytes
-rw-r--r--indra/newview/skins/default/textures/icons/Inv_Invalid.pngbin0 -> 329 bytes
-rw-r--r--indra/newview/skins/default/textures/icons/Shop.pngbin647 -> 3052 bytes
-rw-r--r--indra/newview/skins/default/textures/icons/edit_mine.pngbin0 -> 639 bytes
-rw-r--r--indra/newview/skins/default/textures/icons/edit_theirs.pngbin0 -> 634 bytes
-rw-r--r--indra/newview/skins/default/textures/icons/pop_up_caution.pngbin0 -> 3158 bytes
-rw-r--r--indra/newview/skins/default/textures/icons/see_me_online.pngbin0 -> 330 bytes
-rw-r--r--indra/newview/skins/default/textures/icons/see_on_map.pngbin0 -> 613 bytes
-rw-r--r--indra/newview/skins/default/textures/navbar/NavBar_BG_NoFav_Bevel.pngbin0 -> 231 bytes
-rw-r--r--indra/newview/skins/default/textures/navbar/NavBar_BG_NoNav_Bevel.pngbin0 -> 218 bytes
-rw-r--r--indra/newview/skins/default/textures/taskpanel/Sidebar_Icon_Dock_Foreground.pngbin0 -> 2899 bytes
-rw-r--r--indra/newview/skins/default/textures/taskpanel/Sidebar_Icon_Dock_Press.pngbin0 -> 2886 bytes
-rw-r--r--indra/newview/skins/default/textures/taskpanel/Sidebar_Icon_Undock_Foreground.pngbin0 -> 2896 bytes
-rw-r--r--indra/newview/skins/default/textures/taskpanel/Sidebar_Icon_Undock_Press.pngbin0 -> 2920 bytes
-rw-r--r--indra/newview/skins/default/textures/textures.xml39
-rw-r--r--indra/newview/skins/default/textures/widgets/ScrollArrow_Down_Opaque.pngbin0 -> 355 bytes
-rw-r--r--indra/newview/skins/default/textures/widgets/ScrollArrow_Down_Over_Opaque.pngbin0 -> 315 bytes
-rw-r--r--indra/newview/skins/default/textures/widgets/ScrollArrow_Up_Opaque.pngbin0 -> 352 bytes
-rw-r--r--indra/newview/skins/default/textures/widgets/ScrollArrow_Up_Over_Opaque.pngbin0 -> 329 bytes
-rw-r--r--indra/newview/skins/default/textures/windows/hint_arrow_down.pngbin0 -> 3170 bytes
-rw-r--r--indra/newview/skins/default/textures/windows/hint_arrow_left.pngbin0 -> 3059 bytes
-rw-r--r--indra/newview/skins/default/textures/windows/hint_arrow_lower_left.pngbin0 -> 3081 bytes
-rw-r--r--indra/newview/skins/default/textures/windows/hint_arrow_right.pngbin0 -> 3112 bytes
-rw-r--r--indra/newview/skins/default/textures/windows/hint_arrow_up.pngbin0 -> 3219 bytes
-rw-r--r--indra/newview/skins/default/textures/windows/hint_background.pngbin0 -> 4316 bytes
-rw-r--r--indra/newview/skins/default/textures/windows/yellow_gradient.pngbin0 -> 3634 bytes
-rw-r--r--indra/newview/skins/default/xui/da/floater_about_land.xml2
-rw-r--r--indra/newview/skins/default/xui/da/floater_camera.xml54
-rw-r--r--indra/newview/skins/default/xui/da/floater_customize.xml530
-rw-r--r--indra/newview/skins/default/xui/da/floater_device_settings.xml2
-rw-r--r--indra/newview/skins/default/xui/da/floater_im.xml45
-rw-r--r--indra/newview/skins/default/xui/da/floater_im_session.xml1
-rw-r--r--indra/newview/skins/default/xui/da/floater_incoming_call.xml8
-rw-r--r--indra/newview/skins/default/xui/da/floater_map.xml3
-rw-r--r--indra/newview/skins/default/xui/da/floater_my_friends.xml7
-rw-r--r--indra/newview/skins/default/xui/da/floater_outfit_save_as.xml11
-rw-r--r--indra/newview/skins/default/xui/da/floater_preview_classified.xml6
-rw-r--r--indra/newview/skins/default/xui/da/floater_preview_event.xml6
-rw-r--r--indra/newview/skins/default/xui/da/floater_preview_gesture.xml15
-rw-r--r--indra/newview/skins/default/xui/da/floater_preview_gesture_info.xml2
-rw-r--r--indra/newview/skins/default/xui/da/floater_preview_gesture_shortcut.xml15
-rw-r--r--indra/newview/skins/default/xui/da/floater_preview_gesture_steps.xml2
-rw-r--r--indra/newview/skins/default/xui/da/floater_publish_classified.xml2
-rw-r--r--indra/newview/skins/default/xui/da/floater_snapshot.xml79
-rw-r--r--indra/newview/skins/default/xui/da/floater_statistics.xml2
-rw-r--r--indra/newview/skins/default/xui/da/floater_voice_controls.xml8
-rw-r--r--indra/newview/skins/default/xui/da/floater_voice_effect.xml30
-rw-r--r--indra/newview/skins/default/xui/da/floater_wearable_save_as.xml11
-rw-r--r--indra/newview/skins/default/xui/da/floater_world_map.xml15
-rw-r--r--indra/newview/skins/default/xui/da/inspect_object.xml11
-rw-r--r--indra/newview/skins/default/xui/da/language_settings.xml1
-rw-r--r--indra/newview/skins/default/xui/da/menu_attachment_self.xml4
-rw-r--r--indra/newview/skins/default/xui/da/menu_avatar_self.xml8
-rw-r--r--indra/newview/skins/default/xui/da/menu_cof_attachment.xml4
-rw-r--r--indra/newview/skins/default/xui/da/menu_cof_body_part.xml5
-rw-r--r--indra/newview/skins/default/xui/da/menu_cof_clothing.xml6
-rw-r--r--indra/newview/skins/default/xui/da/menu_cof_gear.xml5
-rw-r--r--indra/newview/skins/default/xui/da/menu_hide_navbar.xml1
-rw-r--r--indra/newview/skins/default/xui/da/menu_inventory.xml5
-rw-r--r--indra/newview/skins/default/xui/da/menu_inventory_add.xml1
-rw-r--r--indra/newview/skins/default/xui/da/menu_inventory_gear_default.xml3
-rw-r--r--indra/newview/skins/default/xui/da/menu_object.xml12
-rw-r--r--indra/newview/skins/default/xui/da/menu_outfit_gear.xml27
-rw-r--r--indra/newview/skins/default/xui/da/menu_outfit_tab.xml9
-rw-r--r--indra/newview/skins/default/xui/da/menu_participant_list.xml2
-rw-r--r--indra/newview/skins/default/xui/da/menu_save_outfit.xml2
-rw-r--r--indra/newview/skins/default/xui/da/menu_topinfobar.xml7
-rw-r--r--indra/newview/skins/default/xui/da/menu_viewer.xml20
-rw-r--r--indra/newview/skins/default/xui/da/menu_wearable_list_item.xml14
-rw-r--r--indra/newview/skins/default/xui/da/menu_wearing_gear.xml4
-rw-r--r--indra/newview/skins/default/xui/da/menu_wearing_tab.xml4
-rw-r--r--indra/newview/skins/default/xui/da/notifications.xml114
-rw-r--r--indra/newview/skins/default/xui/da/panel_audio_device.xml25
-rw-r--r--indra/newview/skins/default/xui/da/panel_body_parts_list_item.xml4
-rw-r--r--indra/newview/skins/default/xui/da/panel_clothing_list_item.xml5
-rw-r--r--indra/newview/skins/default/xui/da/panel_deletable_wearable_list_item.xml1
-rw-r--r--indra/newview/skins/default/xui/da/panel_dummy_clothing_list_item.xml3
-rw-r--r--indra/newview/skins/default/xui/da/panel_edit_shape.xml13
-rw-r--r--indra/newview/skins/default/xui/da/panel_edit_wearable.xml10
-rw-r--r--indra/newview/skins/default/xui/da/panel_friends.xml20
-rw-r--r--indra/newview/skins/default/xui/da/panel_group_general.xml2
-rw-r--r--indra/newview/skins/default/xui/da/panel_group_notices.xml2
-rw-r--r--indra/newview/skins/default/xui/da/panel_group_roles.xml18
-rw-r--r--indra/newview/skins/default/xui/da/panel_groups.xml18
-rw-r--r--indra/newview/skins/default/xui/da/panel_nearby_chat.xml9
-rw-r--r--indra/newview/skins/default/xui/da/panel_nearby_media.xml22
-rw-r--r--indra/newview/skins/default/xui/da/panel_notes.xml8
-rw-r--r--indra/newview/skins/default/xui/da/panel_online_status.xml2
-rw-r--r--indra/newview/skins/default/xui/da/panel_outfit_edit.xml30
-rw-r--r--indra/newview/skins/default/xui/da/panel_outfits_inventory.xml13
-rw-r--r--indra/newview/skins/default/xui/da/panel_outfits_list.xml7
-rw-r--r--indra/newview/skins/default/xui/da/panel_outfits_wearing.xml6
-rw-r--r--indra/newview/skins/default/xui/da/panel_places.xml4
-rw-r--r--indra/newview/skins/default/xui/da/panel_preferences_advanced.xml2
-rw-r--r--indra/newview/skins/default/xui/da/panel_preferences_chat.xml23
-rw-r--r--indra/newview/skins/default/xui/da/panel_preferences_general.xml2
-rw-r--r--indra/newview/skins/default/xui/da/panel_preferences_graphics1.xml5
-rw-r--r--indra/newview/skins/default/xui/da/panel_preferences_sound.xml10
-rw-r--r--indra/newview/skins/default/xui/da/panel_prim_media_controls.xml4
-rw-r--r--indra/newview/skins/default/xui/da/panel_region_general_layout.xml43
-rw-r--r--indra/newview/skins/default/xui/da/panel_status_bar.xml6
-rw-r--r--indra/newview/skins/default/xui/da/panel_teleport_history.xml3
-rw-r--r--indra/newview/skins/default/xui/da/panel_voice_effect.xml15
-rw-r--r--indra/newview/skins/default/xui/da/sidepanel_appearance.xml2
-rw-r--r--indra/newview/skins/default/xui/da/sidepanel_inventory.xml10
-rw-r--r--indra/newview/skins/default/xui/da/sidepanel_item_info.xml28
-rw-r--r--indra/newview/skins/default/xui/da/sidepanel_task_info.xml2
-rw-r--r--indra/newview/skins/default/xui/da/strings.xml203
-rw-r--r--indra/newview/skins/default/xui/de/floater_about.xml4
-rw-r--r--indra/newview/skins/default/xui/de/floater_about_land.xml15
-rw-r--r--indra/newview/skins/default/xui/de/floater_avatar_textures.xml78
-rw-r--r--indra/newview/skins/default/xui/de/floater_bulk_perms.xml2
-rw-r--r--indra/newview/skins/default/xui/de/floater_buy_currency.xml2
-rw-r--r--indra/newview/skins/default/xui/de/floater_buy_currency_html.xml2
-rw-r--r--indra/newview/skins/default/xui/de/floater_camera.xml29
-rw-r--r--indra/newview/skins/default/xui/de/floater_customize.xml529
-rw-r--r--indra/newview/skins/default/xui/de/floater_device_settings.xml2
-rw-r--r--indra/newview/skins/default/xui/de/floater_first_time_tip.xml4
-rw-r--r--indra/newview/skins/default/xui/de/floater_im.xml46
-rw-r--r--indra/newview/skins/default/xui/de/floater_im_session.xml1
-rw-r--r--indra/newview/skins/default/xui/de/floater_map.xml5
-rw-r--r--indra/newview/skins/default/xui/de/floater_moveview.xml36
-rw-r--r--indra/newview/skins/default/xui/de/floater_my_friends.xml7
-rw-r--r--indra/newview/skins/default/xui/de/floater_outfit_save_as.xml12
-rw-r--r--indra/newview/skins/default/xui/de/floater_preview_classified.xml6
-rw-r--r--indra/newview/skins/default/xui/de/floater_preview_event.xml6
-rw-r--r--indra/newview/skins/default/xui/de/floater_preview_gesture.xml20
-rw-r--r--indra/newview/skins/default/xui/de/floater_preview_gesture_info.xml2
-rw-r--r--indra/newview/skins/default/xui/de/floater_preview_gesture_shortcut.xml15
-rw-r--r--indra/newview/skins/default/xui/de/floater_preview_gesture_steps.xml2
-rw-r--r--indra/newview/skins/default/xui/de/floater_preview_notecard.xml4
-rw-r--r--indra/newview/skins/default/xui/de/floater_publish_classified.xml2
-rw-r--r--indra/newview/skins/default/xui/de/floater_snapshot.xml86
-rw-r--r--indra/newview/skins/default/xui/de/floater_statistics.xml2
-rw-r--r--indra/newview/skins/default/xui/de/floater_tools.xml8
-rw-r--r--indra/newview/skins/default/xui/de/floater_voice_controls.xml12
-rw-r--r--indra/newview/skins/default/xui/de/floater_voice_effect.xml15
-rw-r--r--indra/newview/skins/default/xui/de/floater_wearable_save_as.xml11
-rw-r--r--indra/newview/skins/default/xui/de/floater_world_map.xml17
-rw-r--r--indra/newview/skins/default/xui/de/language_settings.xml1
-rw-r--r--indra/newview/skins/default/xui/de/menu_attachment_self.xml6
-rw-r--r--indra/newview/skins/default/xui/de/menu_avatar_self.xml12
-rw-r--r--indra/newview/skins/default/xui/de/menu_bottomtray.xml5
-rw-r--r--indra/newview/skins/default/xui/de/menu_cof_clothing.xml1
-rw-r--r--indra/newview/skins/default/xui/de/menu_inspect_self_gear.xml2
-rw-r--r--indra/newview/skins/default/xui/de/menu_inventory.xml6
-rw-r--r--indra/newview/skins/default/xui/de/menu_inventory_add.xml1
-rw-r--r--indra/newview/skins/default/xui/de/menu_inventory_gear_default.xml3
-rw-r--r--indra/newview/skins/default/xui/de/menu_object.xml12
-rw-r--r--indra/newview/skins/default/xui/de/menu_outfit_gear.xml1
-rw-r--r--indra/newview/skins/default/xui/de/menu_outfit_tab.xml2
-rw-r--r--indra/newview/skins/default/xui/de/menu_participant_list.xml6
-rw-r--r--indra/newview/skins/default/xui/de/menu_topinfobar.xml7
-rw-r--r--indra/newview/skins/default/xui/de/menu_viewer.xml3
-rw-r--r--indra/newview/skins/default/xui/de/menu_wearable_list_item.xml7
-rw-r--r--indra/newview/skins/default/xui/de/menu_wearing_gear.xml4
-rw-r--r--indra/newview/skins/default/xui/de/menu_wearing_tab.xml4
-rw-r--r--indra/newview/skins/default/xui/de/notifications.xml104
-rw-r--r--indra/newview/skins/default/xui/de/panel_audio_device.xml25
-rw-r--r--indra/newview/skins/default/xui/de/panel_body_parts_list_item.xml8
-rw-r--r--indra/newview/skins/default/xui/de/panel_bodyparts_list_button_bar.xml5
-rw-r--r--indra/newview/skins/default/xui/de/panel_bottomtray.xml25
-rw-r--r--indra/newview/skins/default/xui/de/panel_clothing_list_button_bar.xml5
-rw-r--r--indra/newview/skins/default/xui/de/panel_clothing_list_item.xml9
-rw-r--r--indra/newview/skins/default/xui/de/panel_cof_wearables.xml8
-rw-r--r--indra/newview/skins/default/xui/de/panel_deletable_wearable_list_item.xml5
-rw-r--r--indra/newview/skins/default/xui/de/panel_dummy_clothing_list_item.xml7
-rw-r--r--indra/newview/skins/default/xui/de/panel_edit_alpha.xml12
-rw-r--r--indra/newview/skins/default/xui/de/panel_edit_shape.xml1
-rw-r--r--indra/newview/skins/default/xui/de/panel_edit_tattoo.xml7
-rw-r--r--indra/newview/skins/default/xui/de/panel_edit_wearable.xml9
-rw-r--r--indra/newview/skins/default/xui/de/panel_friends.xml31
-rw-r--r--indra/newview/skins/default/xui/de/panel_group_land_money.xml3
-rw-r--r--indra/newview/skins/default/xui/de/panel_group_notices.xml3
-rw-r--r--indra/newview/skins/default/xui/de/panel_group_roles.xml3
-rw-r--r--indra/newview/skins/default/xui/de/panel_groups.xml15
-rw-r--r--indra/newview/skins/default/xui/de/panel_login.xml14
-rw-r--r--indra/newview/skins/default/xui/de/panel_main_inventory.xml66
-rw-r--r--indra/newview/skins/default/xui/de/panel_navigation_bar.xml4
-rw-r--r--indra/newview/skins/default/xui/de/panel_nearby_chat.xml9
-rw-r--r--indra/newview/skins/default/xui/de/panel_nearby_media.xml8
-rw-r--r--indra/newview/skins/default/xui/de/panel_notifications_channel.xml24
-rw-r--r--indra/newview/skins/default/xui/de/panel_online_status.xml2
-rw-r--r--indra/newview/skins/default/xui/de/panel_outfit_edit.xml20
-rw-r--r--indra/newview/skins/default/xui/de/panel_outfits_inventory.xml10
-rw-r--r--indra/newview/skins/default/xui/de/panel_outfits_list.xml7
-rw-r--r--indra/newview/skins/default/xui/de/panel_outfits_wearing.xml6
-rw-r--r--indra/newview/skins/default/xui/de/panel_people.xml12
-rw-r--r--indra/newview/skins/default/xui/de/panel_preferences_advanced.xml2
-rw-r--r--indra/newview/skins/default/xui/de/panel_preferences_chat.xml25
-rw-r--r--indra/newview/skins/default/xui/de/panel_preferences_graphics1.xml19
-rw-r--r--indra/newview/skins/default/xui/de/panel_preferences_sound.xml10
-rw-r--r--indra/newview/skins/default/xui/de/panel_prim_media_controls.xml4
-rw-r--r--indra/newview/skins/default/xui/de/panel_region_general_layout.xml43
-rw-r--r--indra/newview/skins/default/xui/de/panel_teleport_history.xml2
-rw-r--r--indra/newview/skins/default/xui/de/panel_voice_effect.xml4
-rw-r--r--indra/newview/skins/default/xui/de/sidepanel_appearance.xml13
-rw-r--r--indra/newview/skins/default/xui/de/sidepanel_inventory.xml2
-rw-r--r--indra/newview/skins/default/xui/de/sidepanel_item_info.xml28
-rw-r--r--indra/newview/skins/default/xui/de/sidepanel_task_info.xml2
-rw-r--r--indra/newview/skins/default/xui/de/strings.xml297
-rw-r--r--indra/newview/skins/default/xui/en/alert_button.xml2
-rw-r--r--indra/newview/skins/default/xui/en/alert_check_box.xml4
-rw-r--r--indra/newview/skins/default/xui/en/favorites_bar_button.xml2
-rw-r--r--indra/newview/skins/default/xui/en/floater_aaa.xml63
-rw-r--r--indra/newview/skins/default/xui/en/floater_about.xml2
-rw-r--r--indra/newview/skins/default/xui/en/floater_about_land.xml23
-rw-r--r--indra/newview/skins/default/xui/en/floater_bulk_perms.xml37
-rw-r--r--indra/newview/skins/default/xui/en/floater_buy_currency_html.xml1
-rw-r--r--indra/newview/skins/default/xui/en/floater_buy_land.xml25
-rw-r--r--indra/newview/skins/default/xui/en/floater_camera.xml15
-rw-r--r--indra/newview/skins/default/xui/en/floater_customize.xml3389
-rw-r--r--indra/newview/skins/default/xui/en/floater_day_cycle_options.xml24
-rw-r--r--indra/newview/skins/default/xui/en/floater_device_settings.xml18
-rw-r--r--indra/newview/skins/default/xui/en/floater_event.xml3
-rw-r--r--indra/newview/skins/default/xui/en/floater_first_time_tip.xml22
-rw-r--r--indra/newview/skins/default/xui/en/floater_help_browser.xml4
-rw-r--r--indra/newview/skins/default/xui/en/floater_im.xml80
-rw-r--r--indra/newview/skins/default/xui/en/floater_im_session.xml19
-rw-r--r--indra/newview/skins/default/xui/en/floater_map.xml41
-rw-r--r--indra/newview/skins/default/xui/en/floater_media_browser.xml10
-rw-r--r--indra/newview/skins/default/xui/en/floater_my_friends.xml45
-rw-r--r--indra/newview/skins/default/xui/en/floater_nearby_chat.xml44
-rw-r--r--indra/newview/skins/default/xui/en/floater_notifications_console.xml1
-rw-r--r--indra/newview/skins/default/xui/en/floater_outfit_save_as.xml58
-rw-r--r--indra/newview/skins/default/xui/en/floater_preview_classified.xml24
-rw-r--r--indra/newview/skins/default/xui/en/floater_preview_event.xml24
-rw-r--r--indra/newview/skins/default/xui/en/floater_preview_gesture.xml22
-rw-r--r--indra/newview/skins/default/xui/en/floater_preview_gesture_info.xml57
-rw-r--r--indra/newview/skins/default/xui/en/floater_preview_gesture_shortcut.xml88
-rw-r--r--indra/newview/skins/default/xui/en/floater_preview_gesture_steps.xml242
-rw-r--r--indra/newview/skins/default/xui/en/floater_preview_notecard.xml2
-rw-r--r--indra/newview/skins/default/xui/en/floater_publish_classified.xml27
-rw-r--r--indra/newview/skins/default/xui/en/floater_search.xml9
-rw-r--r--indra/newview/skins/default/xui/en/floater_side_bar_tab.xml10
-rw-r--r--indra/newview/skins/default/xui/en/floater_snapshot.xml34
-rw-r--r--indra/newview/skins/default/xui/en/floater_statistics.xml12
-rw-r--r--indra/newview/skins/default/xui/en/floater_stats.xml3
-rw-r--r--indra/newview/skins/default/xui/en/floater_test_checkbox.xml4
-rw-r--r--indra/newview/skins/default/xui/en/floater_test_widgets.xml2
-rw-r--r--indra/newview/skins/default/xui/en/floater_tools.xml215
-rw-r--r--indra/newview/skins/default/xui/en/floater_tos.xml1
-rw-r--r--indra/newview/skins/default/xui/en/floater_voice_controls.xml16
-rw-r--r--indra/newview/skins/default/xui/en/floater_wearable_save_as.xml56
-rw-r--r--indra/newview/skins/default/xui/en/floater_world_map.xml131
-rw-r--r--indra/newview/skins/default/xui/en/inspect_object.xml2
-rw-r--r--indra/newview/skins/default/xui/en/language_settings.xml1
-rw-r--r--indra/newview/skins/default/xui/en/main_view.xml73
-rw-r--r--indra/newview/skins/default/xui/en/menu_add_wearable_gear.xml41
-rw-r--r--indra/newview/skins/default/xui/en/menu_attachment_self.xml16
-rw-r--r--indra/newview/skins/default/xui/en/menu_avatar_self.xml20
-rw-r--r--indra/newview/skins/default/xui/en/menu_cof_clothing.xml26
-rw-r--r--indra/newview/skins/default/xui/en/menu_edit.xml1
-rw-r--r--indra/newview/skins/default/xui/en/menu_inspect_object_gear.xml11
-rw-r--r--indra/newview/skins/default/xui/en/menu_inspect_self_gear.xml10
-rw-r--r--indra/newview/skins/default/xui/en/menu_inventory.xml19
-rw-r--r--indra/newview/skins/default/xui/en/menu_inventory_add.xml9
-rw-r--r--indra/newview/skins/default/xui/en/menu_inventory_gear_default.xml11
-rw-r--r--indra/newview/skins/default/xui/en/menu_login.xml3
-rw-r--r--indra/newview/skins/default/xui/en/menu_mini_map.xml10
-rw-r--r--indra/newview/skins/default/xui/en/menu_object.xml31
-rw-r--r--indra/newview/skins/default/xui/en/menu_outfit_gear.xml24
-rw-r--r--indra/newview/skins/default/xui/en/menu_outfit_tab.xml3
-rw-r--r--indra/newview/skins/default/xui/en/menu_participant_list.xml2
-rw-r--r--indra/newview/skins/default/xui/en/menu_people_friends_view_sort.xml8
-rw-r--r--indra/newview/skins/default/xui/en/menu_people_nearby_multiselect.xml9
-rw-r--r--indra/newview/skins/default/xui/en/menu_places_gear_folder.xml6
-rw-r--r--indra/newview/skins/default/xui/en/menu_viewer.xml245
-rw-r--r--indra/newview/skins/default/xui/en/menu_wearable_list_item.xml21
-rw-r--r--indra/newview/skins/default/xui/en/menu_wearing_gear.xml23
-rw-r--r--indra/newview/skins/default/xui/en/menu_wearing_tab.xml30
-rw-r--r--indra/newview/skins/default/xui/en/notifications.xml196
-rw-r--r--indra/newview/skins/default/xui/en/outfit_accordion_tab.xml3
-rw-r--r--indra/newview/skins/default/xui/en/panel_audio_device.xml152
-rw-r--r--indra/newview/skins/default/xui/en/panel_avatar_list_item.xml55
-rw-r--r--indra/newview/skins/default/xui/en/panel_bars.xml18
-rw-r--r--indra/newview/skins/default/xui/en/panel_body_parts_list_item.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_bottomtray.xml85
-rw-r--r--indra/newview/skins/default/xui/en/panel_bottomtray_lite.xml36
-rw-r--r--indra/newview/skins/default/xui/en/panel_chat_header.xml27
-rw-r--r--indra/newview/skins/default/xui/en/panel_classified.xml138
-rw-r--r--indra/newview/skins/default/xui/en/panel_classified_info.xml102
-rw-r--r--indra/newview/skins/default/xui/en/panel_classifieds_list_item.xml3
-rw-r--r--indra/newview/skins/default/xui/en/panel_clothing_list_item.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_cof_wearables.xml20
-rw-r--r--indra/newview/skins/default/xui/en/panel_deletable_wearable_list_item.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_dummy_clothing_list_item.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_edit_classified.xml93
-rw-r--r--indra/newview/skins/default/xui/en/panel_edit_pick.xml72
-rw-r--r--indra/newview/skins/default/xui/en/panel_edit_profile.xml53
-rw-r--r--indra/newview/skins/default/xui/en/panel_edit_wearable.xml856
-rw-r--r--indra/newview/skins/default/xui/en/panel_friends.xml124
-rw-r--r--indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml168
-rw-r--r--indra/newview/skins/default/xui/en/panel_group_land_money.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_group_list_item.xml4
-rw-r--r--indra/newview/skins/default/xui/en/panel_group_notices.xml13
-rw-r--r--indra/newview/skins/default/xui/en/panel_group_notify.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_group_roles.xml6
-rw-r--r--indra/newview/skins/default/xui/en/panel_groups.xml111
-rw-r--r--indra/newview/skins/default/xui/en/panel_hint.xml31
-rw-r--r--indra/newview/skins/default/xui/en/panel_im_control_panel.xml40
-rw-r--r--indra/newview/skins/default/xui/en/panel_inventory_item.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_landmark_info.xml10
-rw-r--r--indra/newview/skins/default/xui/en/panel_landmarks.xml137
-rw-r--r--indra/newview/skins/default/xui/en/panel_login.xml5
-rw-r--r--indra/newview/skins/default/xui/en/panel_main_inventory.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_me.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_media_settings_permissions.xml15
-rw-r--r--indra/newview/skins/default/xui/en/panel_my_profile.xml82
-rw-r--r--indra/newview/skins/default/xui/en/panel_navigation_bar.xml23
-rw-r--r--indra/newview/skins/default/xui/en/panel_nearby_chat.xml27
-rw-r--r--indra/newview/skins/default/xui/en/panel_nearby_media.xml6
-rw-r--r--indra/newview/skins/default/xui/en/panel_notes.xml173
-rw-r--r--indra/newview/skins/default/xui/en/panel_notification.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_notifications_channel.xml10
-rw-r--r--indra/newview/skins/default/xui/en/panel_online_status.xml35
-rw-r--r--indra/newview/skins/default/xui/en/panel_outfit_edit.xml126
-rw-r--r--indra/newview/skins/default/xui/en/panel_outfits_inventory.xml189
-rw-r--r--indra/newview/skins/default/xui/en/panel_outfits_list.xml53
-rw-r--r--indra/newview/skins/default/xui/en/panel_outfits_wearing.xml54
-rw-r--r--indra/newview/skins/default/xui/en/panel_people.xml385
-rw-r--r--indra/newview/skins/default/xui/en/panel_pick_info.xml98
-rw-r--r--indra/newview/skins/default/xui/en/panel_pick_list_item.xml3
-rw-r--r--indra/newview/skins/default/xui/en/panel_picks.xml227
-rw-r--r--indra/newview/skins/default/xui/en/panel_place_profile.xml10
-rw-r--r--indra/newview/skins/default/xui/en/panel_places.xml360
-rw-r--r--indra/newview/skins/default/xui/en/panel_preferences_alerts.xml4
-rw-r--r--indra/newview/skins/default/xui/en/panel_preferences_chat.xml120
-rw-r--r--indra/newview/skins/default/xui/en/panel_preferences_general.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml274
-rw-r--r--indra/newview/skins/default/xui/en/panel_preferences_privacy.xml7
-rw-r--r--indra/newview/skins/default/xui/en/panel_preferences_setup.xml14
-rw-r--r--indra/newview/skins/default/xui/en/panel_preferences_sound.xml8
-rw-r--r--indra/newview/skins/default/xui/en/panel_prim_media_controls.xml5
-rw-r--r--indra/newview/skins/default/xui/en/panel_profile.xml212
-rw-r--r--indra/newview/skins/default/xui/en/panel_profile_view.xml4
-rw-r--r--indra/newview/skins/default/xui/en/panel_progress.xml1
-rw-r--r--indra/newview/skins/default/xui/en/panel_region_general_layout.xml242
-rw-r--r--indra/newview/skins/default/xui/en/panel_script_limits_region_memory.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_scrolling_param.xml4
-rw-r--r--indra/newview/skins/default/xui/en/panel_side_tray_tab_caption.xml29
-rw-r--r--indra/newview/skins/default/xui/en/panel_sidetray_home_tab.xml3
-rw-r--r--indra/newview/skins/default/xui/en/panel_status_bar.xml8
-rw-r--r--indra/newview/skins/default/xui/en/panel_teleport_history.xml10
-rw-r--r--indra/newview/skins/default/xui/en/panel_teleport_history_item.xml3
-rw-r--r--indra/newview/skins/default/xui/en/panel_toast.xml2
-rw-r--r--indra/newview/skins/default/xui/en/panel_topinfo_bar.xml11
-rw-r--r--indra/newview/skins/default/xui/en/sidepanel_appearance.xml27
-rw-r--r--indra/newview/skins/default/xui/en/sidepanel_inventory.xml175
-rw-r--r--indra/newview/skins/default/xui/en/sidepanel_item_info.xml676
-rw-r--r--indra/newview/skins/default/xui/en/sidepanel_task_info.xml5
-rw-r--r--indra/newview/skins/default/xui/en/strings.xml87
-rw-r--r--indra/newview/skins/default/xui/en/widgets/accordion.xml6
-rw-r--r--indra/newview/skins/default/xui/en/widgets/accordion_tab.xml2
-rw-r--r--indra/newview/skins/default/xui/en/widgets/bodyparts_list_item.xml73
-rw-r--r--indra/newview/skins/default/xui/en/widgets/check_box.xml8
-rw-r--r--indra/newview/skins/default/xui/en/widgets/clothing_list_item.xml93
-rw-r--r--indra/newview/skins/default/xui/en/widgets/deletable_wearable_list_item.xml43
-rw-r--r--indra/newview/skins/default/xui/en/widgets/dummy_clothing_list_item.xml52
-rw-r--r--indra/newview/skins/default/xui/en/widgets/expandable_text.xml3
-rw-r--r--indra/newview/skins/default/xui/en/widgets/hint_popup.xml21
-rw-r--r--indra/newview/skins/default/xui/en/widgets/inventory_list_item.xml42
-rw-r--r--indra/newview/skins/default/xui/en/widgets/location_input.xml2
-rw-r--r--indra/newview/skins/default/xui/en/widgets/scroll_bar.xml8
-rw-r--r--indra/newview/skins/default/xui/en/widgets/scroll_list.xml1
-rw-r--r--indra/newview/skins/default/xui/en/widgets/search_combo_box.xml7
-rw-r--r--indra/newview/skins/default/xui/en/widgets/simple_text_editor.xml7
-rw-r--r--indra/newview/skins/default/xui/en/widgets/text.xml4
-rw-r--r--indra/newview/skins/default/xui/en/widgets/text_editor.xml2
-rw-r--r--indra/newview/skins/default/xui/en/widgets/textbase.xml2
-rw-r--r--indra/newview/skins/default/xui/es/floater_about_land.xml44
-rw-r--r--indra/newview/skins/default/xui/es/floater_camera.xml29
-rw-r--r--indra/newview/skins/default/xui/es/floater_customize.xml530
-rw-r--r--indra/newview/skins/default/xui/es/floater_device_settings.xml2
-rw-r--r--indra/newview/skins/default/xui/es/floater_im.xml45
-rw-r--r--indra/newview/skins/default/xui/es/floater_im_session.xml1
-rw-r--r--indra/newview/skins/default/xui/es/floater_map.xml3
-rw-r--r--indra/newview/skins/default/xui/es/floater_my_friends.xml7
-rw-r--r--indra/newview/skins/default/xui/es/floater_outfit_save_as.xml12
-rw-r--r--indra/newview/skins/default/xui/es/floater_preview_classified.xml6
-rw-r--r--indra/newview/skins/default/xui/es/floater_preview_event.xml6
-rw-r--r--indra/newview/skins/default/xui/es/floater_preview_gesture.xml16
-rw-r--r--indra/newview/skins/default/xui/es/floater_preview_gesture_info.xml2
-rw-r--r--indra/newview/skins/default/xui/es/floater_preview_gesture_shortcut.xml15
-rw-r--r--indra/newview/skins/default/xui/es/floater_preview_gesture_steps.xml2
-rw-r--r--indra/newview/skins/default/xui/es/floater_publish_classified.xml2
-rw-r--r--indra/newview/skins/default/xui/es/floater_snapshot.xml86
-rw-r--r--indra/newview/skins/default/xui/es/floater_statistics.xml2
-rw-r--r--indra/newview/skins/default/xui/es/floater_tools.xml2
-rw-r--r--indra/newview/skins/default/xui/es/floater_voice_controls.xml12
-rw-r--r--indra/newview/skins/default/xui/es/floater_voice_effect.xml15
-rw-r--r--indra/newview/skins/default/xui/es/floater_wearable_save_as.xml11
-rw-r--r--indra/newview/skins/default/xui/es/floater_world_map.xml15
-rw-r--r--indra/newview/skins/default/xui/es/language_settings.xml1
-rw-r--r--indra/newview/skins/default/xui/es/menu_attachment_self.xml4
-rw-r--r--indra/newview/skins/default/xui/es/menu_avatar_self.xml8
-rw-r--r--indra/newview/skins/default/xui/es/menu_cof_clothing.xml3
-rw-r--r--indra/newview/skins/default/xui/es/menu_inventory.xml5
-rw-r--r--indra/newview/skins/default/xui/es/menu_inventory_add.xml1
-rw-r--r--indra/newview/skins/default/xui/es/menu_inventory_gear_default.xml3
-rw-r--r--indra/newview/skins/default/xui/es/menu_object.xml12
-rw-r--r--indra/newview/skins/default/xui/es/menu_outfit_gear.xml1
-rw-r--r--indra/newview/skins/default/xui/es/menu_outfit_tab.xml2
-rw-r--r--indra/newview/skins/default/xui/es/menu_participant_list.xml2
-rw-r--r--indra/newview/skins/default/xui/es/menu_topinfobar.xml7
-rw-r--r--indra/newview/skins/default/xui/es/menu_viewer.xml1
-rw-r--r--indra/newview/skins/default/xui/es/menu_wearable_list_item.xml7
-rw-r--r--indra/newview/skins/default/xui/es/menu_wearing_gear.xml4
-rw-r--r--indra/newview/skins/default/xui/es/menu_wearing_tab.xml4
-rw-r--r--indra/newview/skins/default/xui/es/notifications.xml22
-rw-r--r--indra/newview/skins/default/xui/es/panel_audio_device.xml25
-rw-r--r--indra/newview/skins/default/xui/es/panel_body_parts_list_item.xml4
-rw-r--r--indra/newview/skins/default/xui/es/panel_clothing_list_item.xml5
-rw-r--r--indra/newview/skins/default/xui/es/panel_deletable_wearable_list_item.xml1
-rw-r--r--indra/newview/skins/default/xui/es/panel_dummy_clothing_list_item.xml3
-rw-r--r--indra/newview/skins/default/xui/es/panel_edit_wearable.xml3
-rw-r--r--indra/newview/skins/default/xui/es/panel_friends.xml20
-rw-r--r--indra/newview/skins/default/xui/es/panel_group_general.xml2
-rw-r--r--indra/newview/skins/default/xui/es/panel_group_notices.xml2
-rw-r--r--indra/newview/skins/default/xui/es/panel_group_roles.xml18
-rw-r--r--indra/newview/skins/default/xui/es/panel_groups.xml17
-rw-r--r--indra/newview/skins/default/xui/es/panel_nearby_chat.xml9
-rw-r--r--indra/newview/skins/default/xui/es/panel_nearby_media.xml14
-rw-r--r--indra/newview/skins/default/xui/es/panel_notes.xml8
-rw-r--r--indra/newview/skins/default/xui/es/panel_online_status.xml2
-rw-r--r--indra/newview/skins/default/xui/es/panel_outfit_edit.xml18
-rw-r--r--indra/newview/skins/default/xui/es/panel_outfits_inventory.xml10
-rw-r--r--indra/newview/skins/default/xui/es/panel_outfits_list.xml7
-rw-r--r--indra/newview/skins/default/xui/es/panel_outfits_wearing.xml6
-rw-r--r--indra/newview/skins/default/xui/es/panel_preferences_chat.xml23
-rw-r--r--indra/newview/skins/default/xui/es/panel_preferences_general.xml2
-rw-r--r--indra/newview/skins/default/xui/es/panel_preferences_graphics1.xml5
-rw-r--r--indra/newview/skins/default/xui/es/panel_preferences_sound.xml12
-rw-r--r--indra/newview/skins/default/xui/es/panel_prim_media_controls.xml4
-rw-r--r--indra/newview/skins/default/xui/es/panel_region_general_layout.xml43
-rw-r--r--indra/newview/skins/default/xui/es/panel_teleport_history.xml3
-rw-r--r--indra/newview/skins/default/xui/es/panel_voice_effect.xml6
-rw-r--r--indra/newview/skins/default/xui/es/sidepanel_appearance.xml2
-rw-r--r--indra/newview/skins/default/xui/es/sidepanel_item_info.xml32
-rw-r--r--indra/newview/skins/default/xui/es/sidepanel_task_info.xml2
-rw-r--r--indra/newview/skins/default/xui/es/strings.xml159
-rw-r--r--indra/newview/skins/default/xui/fr/floater_about_land.xml67
-rw-r--r--indra/newview/skins/default/xui/fr/floater_bulk_perms.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/floater_buy_currency.xml4
-rw-r--r--indra/newview/skins/default/xui/fr/floater_camera.xml54
-rw-r--r--indra/newview/skins/default/xui/fr/floater_customize.xml530
-rw-r--r--indra/newview/skins/default/xui/fr/floater_day_cycle_options.xml4
-rw-r--r--indra/newview/skins/default/xui/fr/floater_device_settings.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/floater_first_time_tip.xml4
-rw-r--r--indra/newview/skins/default/xui/fr/floater_im.xml45
-rw-r--r--indra/newview/skins/default/xui/fr/floater_im_session.xml1
-rw-r--r--indra/newview/skins/default/xui/fr/floater_incoming_call.xml8
-rw-r--r--indra/newview/skins/default/xui/fr/floater_inventory_item_properties.xml4
-rw-r--r--indra/newview/skins/default/xui/fr/floater_map.xml3
-rw-r--r--indra/newview/skins/default/xui/fr/floater_my_friends.xml7
-rw-r--r--indra/newview/skins/default/xui/fr/floater_outfit_save_as.xml12
-rw-r--r--indra/newview/skins/default/xui/fr/floater_pay.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/floater_pay_object.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/floater_postcard.xml4
-rw-r--r--indra/newview/skins/default/xui/fr/floater_preview_classified.xml6
-rw-r--r--indra/newview/skins/default/xui/fr/floater_preview_event.xml6
-rw-r--r--indra/newview/skins/default/xui/fr/floater_preview_gesture.xml19
-rw-r--r--indra/newview/skins/default/xui/fr/floater_preview_gesture_info.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/floater_preview_gesture_shortcut.xml15
-rw-r--r--indra/newview/skins/default/xui/fr/floater_preview_gesture_steps.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/floater_publish_classified.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/floater_sell_land.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/floater_snapshot.xml79
-rw-r--r--indra/newview/skins/default/xui/fr/floater_statistics.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/floater_tools.xml14
-rw-r--r--indra/newview/skins/default/xui/fr/floater_voice_controls.xml8
-rw-r--r--indra/newview/skins/default/xui/fr/floater_voice_effect.xml30
-rw-r--r--indra/newview/skins/default/xui/fr/floater_water.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/floater_wearable_save_as.xml11
-rw-r--r--indra/newview/skins/default/xui/fr/floater_windlight_options.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/floater_world_map.xml15
-rw-r--r--indra/newview/skins/default/xui/fr/inspect_object.xml10
-rw-r--r--indra/newview/skins/default/xui/fr/language_settings.xml1
-rw-r--r--indra/newview/skins/default/xui/fr/menu_attachment_self.xml6
-rw-r--r--indra/newview/skins/default/xui/fr/menu_avatar_self.xml8
-rw-r--r--indra/newview/skins/default/xui/fr/menu_bottomtray.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/menu_cof_attachment.xml4
-rw-r--r--indra/newview/skins/default/xui/fr/menu_cof_body_part.xml5
-rw-r--r--indra/newview/skins/default/xui/fr/menu_cof_clothing.xml6
-rw-r--r--indra/newview/skins/default/xui/fr/menu_cof_gear.xml5
-rw-r--r--indra/newview/skins/default/xui/fr/menu_gesture_gear.xml4
-rw-r--r--indra/newview/skins/default/xui/fr/menu_hide_navbar.xml1
-rw-r--r--indra/newview/skins/default/xui/fr/menu_inspect_object_gear.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/menu_inventory.xml8
-rw-r--r--indra/newview/skins/default/xui/fr/menu_inventory_add.xml1
-rw-r--r--indra/newview/skins/default/xui/fr/menu_inventory_gear_default.xml3
-rw-r--r--indra/newview/skins/default/xui/fr/menu_landmark.xml4
-rw-r--r--indra/newview/skins/default/xui/fr/menu_object.xml14
-rw-r--r--indra/newview/skins/default/xui/fr/menu_outfit_gear.xml27
-rw-r--r--indra/newview/skins/default/xui/fr/menu_outfit_tab.xml9
-rw-r--r--indra/newview/skins/default/xui/fr/menu_participant_list.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/menu_picks.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/menu_picks_plus.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/menu_place.xml4
-rw-r--r--indra/newview/skins/default/xui/fr/menu_places_gear_landmark.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/menu_save_outfit.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/menu_topinfobar.xml7
-rw-r--r--indra/newview/skins/default/xui/fr/menu_viewer.xml26
-rw-r--r--indra/newview/skins/default/xui/fr/menu_wearable_list_item.xml14
-rw-r--r--indra/newview/skins/default/xui/fr/menu_wearing_gear.xml4
-rw-r--r--indra/newview/skins/default/xui/fr/menu_wearing_tab.xml4
-rw-r--r--indra/newview/skins/default/xui/fr/notifications.xml123
-rw-r--r--indra/newview/skins/default/xui/fr/panel_audio_device.xml25
-rw-r--r--indra/newview/skins/default/xui/fr/panel_body_parts_list_item.xml4
-rw-r--r--indra/newview/skins/default/xui/fr/panel_clothing_list_item.xml5
-rw-r--r--indra/newview/skins/default/xui/fr/panel_deletable_wearable_list_item.xml1
-rw-r--r--indra/newview/skins/default/xui/fr/panel_dummy_clothing_list_item.xml3
-rw-r--r--indra/newview/skins/default/xui/fr/panel_edit_shape.xml13
-rw-r--r--indra/newview/skins/default/xui/fr/panel_edit_tattoo.xml6
-rw-r--r--indra/newview/skins/default/xui/fr/panel_edit_wearable.xml12
-rw-r--r--indra/newview/skins/default/xui/fr/panel_friends.xml20
-rw-r--r--indra/newview/skins/default/xui/fr/panel_group_general.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/panel_group_land_money.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/panel_group_notices.xml4
-rw-r--r--indra/newview/skins/default/xui/fr/panel_group_roles.xml3
-rw-r--r--indra/newview/skins/default/xui/fr/panel_groups.xml16
-rw-r--r--indra/newview/skins/default/xui/fr/panel_landmark_info.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/panel_landmarks.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/panel_login.xml4
-rw-r--r--indra/newview/skins/default/xui/fr/panel_me.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/panel_nearby_chat.xml9
-rw-r--r--indra/newview/skins/default/xui/fr/panel_nearby_media.xml8
-rw-r--r--indra/newview/skins/default/xui/fr/panel_notifications_channel.xml24
-rw-r--r--indra/newview/skins/default/xui/fr/panel_online_status.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/panel_outfit_edit.xml30
-rw-r--r--indra/newview/skins/default/xui/fr/panel_outfits_inventory.xml13
-rw-r--r--indra/newview/skins/default/xui/fr/panel_outfits_list.xml7
-rw-r--r--indra/newview/skins/default/xui/fr/panel_outfits_wearing.xml6
-rw-r--r--indra/newview/skins/default/xui/fr/panel_pick_info.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/panel_picks.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/panel_places.xml6
-rw-r--r--indra/newview/skins/default/xui/fr/panel_preferences_advanced.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/panel_preferences_chat.xml23
-rw-r--r--indra/newview/skins/default/xui/fr/panel_preferences_general.xml4
-rw-r--r--indra/newview/skins/default/xui/fr/panel_preferences_graphics1.xml9
-rw-r--r--indra/newview/skins/default/xui/fr/panel_preferences_sound.xml10
-rw-r--r--indra/newview/skins/default/xui/fr/panel_prim_media_controls.xml4
-rw-r--r--indra/newview/skins/default/xui/fr/panel_region_general.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/panel_region_general_layout.xml43
-rw-r--r--indra/newview/skins/default/xui/fr/panel_script_ed.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/panel_status_bar.xml8
-rw-r--r--indra/newview/skins/default/xui/fr/panel_teleport_history.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/panel_voice_effect.xml15
-rw-r--r--indra/newview/skins/default/xui/fr/role_actions.xml10
-rw-r--r--indra/newview/skins/default/xui/fr/sidepanel_appearance.xml2
-rw-r--r--indra/newview/skins/default/xui/fr/sidepanel_inventory.xml10
-rw-r--r--indra/newview/skins/default/xui/fr/sidepanel_item_info.xml44
-rw-r--r--indra/newview/skins/default/xui/fr/strings.xml219
-rw-r--r--indra/newview/skins/default/xui/it/floater_about_land.xml56
-rw-r--r--indra/newview/skins/default/xui/it/floater_buy_currency.xml6
-rw-r--r--indra/newview/skins/default/xui/it/floater_camera.xml29
-rw-r--r--indra/newview/skins/default/xui/it/floater_customize.xml530
-rw-r--r--indra/newview/skins/default/xui/it/floater_device_settings.xml2
-rw-r--r--indra/newview/skins/default/xui/it/floater_im.xml45
-rw-r--r--indra/newview/skins/default/xui/it/floater_im_session.xml1
-rw-r--r--indra/newview/skins/default/xui/it/floater_map.xml3
-rw-r--r--indra/newview/skins/default/xui/it/floater_my_friends.xml7
-rw-r--r--indra/newview/skins/default/xui/it/floater_outfit_save_as.xml12
-rw-r--r--indra/newview/skins/default/xui/it/floater_preview_classified.xml6
-rw-r--r--indra/newview/skins/default/xui/it/floater_preview_event.xml6
-rw-r--r--indra/newview/skins/default/xui/it/floater_preview_gesture.xml25
-rw-r--r--indra/newview/skins/default/xui/it/floater_preview_gesture_info.xml2
-rw-r--r--indra/newview/skins/default/xui/it/floater_preview_gesture_shortcut.xml15
-rw-r--r--indra/newview/skins/default/xui/it/floater_preview_gesture_steps.xml2
-rw-r--r--indra/newview/skins/default/xui/it/floater_publish_classified.xml2
-rw-r--r--indra/newview/skins/default/xui/it/floater_snapshot.xml86
-rw-r--r--indra/newview/skins/default/xui/it/floater_statistics.xml2
-rw-r--r--indra/newview/skins/default/xui/it/floater_voice_controls.xml12
-rw-r--r--indra/newview/skins/default/xui/it/floater_voice_effect.xml15
-rw-r--r--indra/newview/skins/default/xui/it/floater_wearable_save_as.xml11
-rw-r--r--indra/newview/skins/default/xui/it/floater_world_map.xml15
-rw-r--r--indra/newview/skins/default/xui/it/language_settings.xml1
-rw-r--r--indra/newview/skins/default/xui/it/menu_attachment_self.xml4
-rw-r--r--indra/newview/skins/default/xui/it/menu_avatar_self.xml8
-rw-r--r--indra/newview/skins/default/xui/it/menu_cof_clothing.xml3
-rw-r--r--indra/newview/skins/default/xui/it/menu_inventory.xml5
-rw-r--r--indra/newview/skins/default/xui/it/menu_inventory_add.xml1
-rw-r--r--indra/newview/skins/default/xui/it/menu_inventory_gear_default.xml3
-rw-r--r--indra/newview/skins/default/xui/it/menu_object.xml12
-rw-r--r--indra/newview/skins/default/xui/it/menu_outfit_gear.xml1
-rw-r--r--indra/newview/skins/default/xui/it/menu_outfit_tab.xml2
-rw-r--r--indra/newview/skins/default/xui/it/menu_participant_list.xml2
-rw-r--r--indra/newview/skins/default/xui/it/menu_topinfobar.xml7
-rw-r--r--indra/newview/skins/default/xui/it/menu_viewer.xml1
-rw-r--r--indra/newview/skins/default/xui/it/menu_wearable_list_item.xml7
-rw-r--r--indra/newview/skins/default/xui/it/menu_wearing_gear.xml4
-rw-r--r--indra/newview/skins/default/xui/it/menu_wearing_tab.xml4
-rw-r--r--indra/newview/skins/default/xui/it/notifications.xml20
-rw-r--r--indra/newview/skins/default/xui/it/panel_audio_device.xml25
-rw-r--r--indra/newview/skins/default/xui/it/panel_body_parts_list_item.xml4
-rw-r--r--indra/newview/skins/default/xui/it/panel_clothing_list_item.xml5
-rw-r--r--indra/newview/skins/default/xui/it/panel_deletable_wearable_list_item.xml1
-rw-r--r--indra/newview/skins/default/xui/it/panel_dummy_clothing_list_item.xml3
-rw-r--r--indra/newview/skins/default/xui/it/panel_edit_wearable.xml3
-rw-r--r--indra/newview/skins/default/xui/it/panel_friends.xml20
-rw-r--r--indra/newview/skins/default/xui/it/panel_group_notices.xml2
-rw-r--r--indra/newview/skins/default/xui/it/panel_group_roles.xml18
-rw-r--r--indra/newview/skins/default/xui/it/panel_groups.xml17
-rw-r--r--indra/newview/skins/default/xui/it/panel_nearby_chat.xml9
-rw-r--r--indra/newview/skins/default/xui/it/panel_nearby_media.xml8
-rw-r--r--indra/newview/skins/default/xui/it/panel_notes.xml8
-rw-r--r--indra/newview/skins/default/xui/it/panel_online_status.xml2
-rw-r--r--indra/newview/skins/default/xui/it/panel_outfit_edit.xml18
-rw-r--r--indra/newview/skins/default/xui/it/panel_outfits_inventory.xml10
-rw-r--r--indra/newview/skins/default/xui/it/panel_outfits_list.xml7
-rw-r--r--indra/newview/skins/default/xui/it/panel_outfits_wearing.xml6
-rw-r--r--indra/newview/skins/default/xui/it/panel_people.xml2
-rw-r--r--indra/newview/skins/default/xui/it/panel_preferences_chat.xml23
-rw-r--r--indra/newview/skins/default/xui/it/panel_preferences_general.xml2
-rw-r--r--indra/newview/skins/default/xui/it/panel_preferences_graphics1.xml5
-rw-r--r--indra/newview/skins/default/xui/it/panel_preferences_sound.xml10
-rw-r--r--indra/newview/skins/default/xui/it/panel_prim_media_controls.xml4
-rw-r--r--indra/newview/skins/default/xui/it/panel_region_general_layout.xml43
-rw-r--r--indra/newview/skins/default/xui/it/panel_teleport_history.xml3
-rw-r--r--indra/newview/skins/default/xui/it/panel_voice_effect.xml6
-rw-r--r--indra/newview/skins/default/xui/it/sidepanel_appearance.xml2
-rw-r--r--indra/newview/skins/default/xui/it/sidepanel_item_info.xml18
-rw-r--r--indra/newview/skins/default/xui/it/strings.xml157
-rw-r--r--indra/newview/skins/default/xui/ja/floater_about_land.xml48
-rw-r--r--indra/newview/skins/default/xui/ja/floater_camera.xml29
-rw-r--r--indra/newview/skins/default/xui/ja/floater_customize.xml529
-rw-r--r--indra/newview/skins/default/xui/ja/floater_device_settings.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/floater_first_time_tip.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/floater_im.xml46
-rw-r--r--indra/newview/skins/default/xui/ja/floater_im_session.xml1
-rw-r--r--indra/newview/skins/default/xui/ja/floater_map.xml3
-rw-r--r--indra/newview/skins/default/xui/ja/floater_my_friends.xml7
-rw-r--r--indra/newview/skins/default/xui/ja/floater_outfit_save_as.xml12
-rw-r--r--indra/newview/skins/default/xui/ja/floater_preview_classified.xml6
-rw-r--r--indra/newview/skins/default/xui/ja/floater_preview_event.xml6
-rw-r--r--indra/newview/skins/default/xui/ja/floater_preview_gesture.xml15
-rw-r--r--indra/newview/skins/default/xui/ja/floater_preview_gesture_info.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/floater_preview_gesture_shortcut.xml15
-rw-r--r--indra/newview/skins/default/xui/ja/floater_preview_gesture_steps.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/floater_publish_classified.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/floater_snapshot.xml86
-rw-r--r--indra/newview/skins/default/xui/ja/floater_statistics.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/floater_voice_controls.xml12
-rw-r--r--indra/newview/skins/default/xui/ja/floater_voice_effect.xml15
-rw-r--r--indra/newview/skins/default/xui/ja/floater_wearable_save_as.xml11
-rw-r--r--indra/newview/skins/default/xui/ja/floater_world_map.xml17
-rw-r--r--indra/newview/skins/default/xui/ja/language_settings.xml1
-rw-r--r--indra/newview/skins/default/xui/ja/menu_attachment_self.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/menu_avatar_self.xml8
-rw-r--r--indra/newview/skins/default/xui/ja/menu_cof_clothing.xml3
-rw-r--r--indra/newview/skins/default/xui/ja/menu_inventory.xml5
-rw-r--r--indra/newview/skins/default/xui/ja/menu_inventory_add.xml1
-rw-r--r--indra/newview/skins/default/xui/ja/menu_inventory_gear_default.xml3
-rw-r--r--indra/newview/skins/default/xui/ja/menu_object.xml12
-rw-r--r--indra/newview/skins/default/xui/ja/menu_outfit_gear.xml1
-rw-r--r--indra/newview/skins/default/xui/ja/menu_outfit_tab.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/menu_participant_list.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/menu_topinfobar.xml7
-rw-r--r--indra/newview/skins/default/xui/ja/menu_viewer.xml3
-rw-r--r--indra/newview/skins/default/xui/ja/menu_wearable_list_item.xml7
-rw-r--r--indra/newview/skins/default/xui/ja/menu_wearing_gear.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/menu_wearing_tab.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/notifications.xml22
-rw-r--r--indra/newview/skins/default/xui/ja/panel_audio_device.xml26
-rw-r--r--indra/newview/skins/default/xui/ja/panel_body_parts_list_item.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/panel_clothing_list_item.xml5
-rw-r--r--indra/newview/skins/default/xui/ja/panel_deletable_wearable_list_item.xml1
-rw-r--r--indra/newview/skins/default/xui/ja/panel_dummy_clothing_list_item.xml3
-rw-r--r--indra/newview/skins/default/xui/ja/panel_edit_tattoo.xml6
-rw-r--r--indra/newview/skins/default/xui/ja/panel_edit_wearable.xml3
-rw-r--r--indra/newview/skins/default/xui/ja/panel_friends.xml32
-rw-r--r--indra/newview/skins/default/xui/ja/panel_group_general.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/panel_group_notices.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/panel_group_roles.xml3
-rw-r--r--indra/newview/skins/default/xui/ja/panel_groups.xml16
-rw-r--r--indra/newview/skins/default/xui/ja/panel_login.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/panel_nearby_chat.xml9
-rw-r--r--indra/newview/skins/default/xui/ja/panel_nearby_media.xml8
-rw-r--r--indra/newview/skins/default/xui/ja/panel_notifications_channel.xml24
-rw-r--r--indra/newview/skins/default/xui/ja/panel_online_status.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/panel_outfit_edit.xml18
-rw-r--r--indra/newview/skins/default/xui/ja/panel_outfits_inventory.xml10
-rw-r--r--indra/newview/skins/default/xui/ja/panel_outfits_list.xml7
-rw-r--r--indra/newview/skins/default/xui/ja/panel_outfits_wearing.xml6
-rw-r--r--indra/newview/skins/default/xui/ja/panel_preferences_chat.xml23
-rw-r--r--indra/newview/skins/default/xui/ja/panel_preferences_graphics1.xml5
-rw-r--r--indra/newview/skins/default/xui/ja/panel_preferences_sound.xml6
-rw-r--r--indra/newview/skins/default/xui/ja/panel_prim_media_controls.xml4
-rw-r--r--indra/newview/skins/default/xui/ja/panel_region_general_layout.xml43
-rw-r--r--indra/newview/skins/default/xui/ja/panel_teleport_history.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/panel_voice_effect.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/sidepanel_appearance.xml2
-rw-r--r--indra/newview/skins/default/xui/ja/sidepanel_item_info.xml34
-rw-r--r--indra/newview/skins/default/xui/ja/strings.xml157
-rw-r--r--indra/newview/skins/default/xui/nl/floater_about_land.xml78
-rw-r--r--indra/newview/skins/default/xui/nl/floater_animation_preview.xml85
-rw-r--r--indra/newview/skins/default/xui/nl/floater_avatar_picker.xml42
-rw-r--r--indra/newview/skins/default/xui/nl/floater_avatar_textures.xml30
-rw-r--r--indra/newview/skins/default/xui/nl/floater_build_options.xml8
-rw-r--r--indra/newview/skins/default/xui/nl/floater_customize.xml469
-rw-r--r--indra/newview/skins/default/xui/nl/floater_day_cycle_options.xml94
-rw-r--r--indra/newview/skins/default/xui/nl/floater_hardware_settings.xml28
-rw-r--r--indra/newview/skins/default/xui/nl/floater_im.xml45
-rw-r--r--indra/newview/skins/default/xui/nl/floater_image_preview.xml33
-rw-r--r--indra/newview/skins/default/xui/nl/floater_inventory_item_properties.xml81
-rw-r--r--indra/newview/skins/default/xui/nl/floater_inventory_view_finder.xml24
-rw-r--r--indra/newview/skins/default/xui/nl/floater_land_holdings.xml39
-rw-r--r--indra/newview/skins/default/xui/nl/floater_live_lsleditor.xml12
-rw-r--r--indra/newview/skins/default/xui/nl/floater_media_browser.xml19
-rw-r--r--indra/newview/skins/default/xui/nl/floater_my_friends.xml7
-rw-r--r--indra/newview/skins/default/xui/nl/floater_preview_animation.xml8
-rw-r--r--indra/newview/skins/default/xui/nl/floater_preview_gesture.xml58
-rw-r--r--indra/newview/skins/default/xui/nl/floater_preview_notecard.xml16
-rw-r--r--indra/newview/skins/default/xui/nl/floater_preview_sound.xml8
-rw-r--r--indra/newview/skins/default/xui/nl/floater_preview_texture.xml9
-rw-r--r--indra/newview/skins/default/xui/nl/floater_script_preview.xml6
-rw-r--r--indra/newview/skins/default/xui/nl/floater_script_search.xml15
-rw-r--r--indra/newview/skins/default/xui/nl/floater_settings_debug.xml13
-rw-r--r--indra/newview/skins/default/xui/nl/floater_sound_preview.xml11
-rw-r--r--indra/newview/skins/default/xui/nl/floater_statistics.xml2
-rw-r--r--indra/newview/skins/default/xui/nl/floater_windlight_options.xml192
-rw-r--r--indra/newview/skins/default/xui/nl/floater_world_map.xml4
-rw-r--r--indra/newview/skins/default/xui/nl/language_settings.xml1
-rw-r--r--indra/newview/skins/default/xui/nl/menu_places_gear_landmark.xml18
-rw-r--r--indra/newview/skins/default/xui/nl/panel_audio_device.xml25
-rw-r--r--indra/newview/skins/default/xui/nl/panel_block_list_sidetray.xml10
-rw-r--r--indra/newview/skins/default/xui/nl/panel_friends.xml20
-rw-r--r--indra/newview/skins/default/xui/nl/panel_group_land_money.xml84
-rw-r--r--indra/newview/skins/default/xui/nl/panel_groups.xml15
-rw-r--r--indra/newview/skins/default/xui/nl/panel_preferences_advanced.xml48
-rw-r--r--indra/newview/skins/default/xui/nl/panel_preferences_alerts.xml14
-rw-r--r--indra/newview/skins/default/xui/nl/panel_preferences_chat.xml42
-rw-r--r--indra/newview/skins/default/xui/nl/panel_preferences_general.xml90
-rw-r--r--indra/newview/skins/default/xui/nl/panel_preferences_graphics1.xml145
-rw-r--r--indra/newview/skins/default/xui/nl/panel_preferences_privacy.xml32
-rw-r--r--indra/newview/skins/default/xui/nl/panel_preferences_setup.xml31
-rw-r--r--indra/newview/skins/default/xui/nl/panel_preferences_sound.xml38
-rw-r--r--indra/newview/skins/default/xui/nl/panel_region_covenant.xml84
-rw-r--r--indra/newview/skins/default/xui/nl/panel_scrolling_param.xml10
-rw-r--r--indra/newview/skins/default/xui/nl/strings.xml3
-rw-r--r--indra/newview/skins/default/xui/pl/floater_about.xml15
-rw-r--r--indra/newview/skins/default/xui/pl/floater_about_land.xml21
-rw-r--r--indra/newview/skins/default/xui/pl/floater_animation_preview.xml70
-rw-r--r--indra/newview/skins/default/xui/pl/floater_avatar_textures.xml71
-rw-r--r--indra/newview/skins/default/xui/pl/floater_bulk_perms.xml10
-rw-r--r--indra/newview/skins/default/xui/pl/floater_buy_currency_html.xml2
-rw-r--r--indra/newview/skins/default/xui/pl/floater_camera.xml50
-rw-r--r--indra/newview/skins/default/xui/pl/floater_customize.xml529
-rw-r--r--indra/newview/skins/default/xui/pl/floater_day_cycle_options.xml45
-rw-r--r--indra/newview/skins/default/xui/pl/floater_device_settings.xml2
-rw-r--r--indra/newview/skins/default/xui/pl/floater_event.xml6
-rw-r--r--indra/newview/skins/default/xui/pl/floater_gesture.xml4
-rw-r--r--indra/newview/skins/default/xui/pl/floater_god_tools.xml35
-rw-r--r--indra/newview/skins/default/xui/pl/floater_im.xml45
-rw-r--r--indra/newview/skins/default/xui/pl/floater_im_session.xml1
-rw-r--r--indra/newview/skins/default/xui/pl/floater_image_preview.xml20
-rw-r--r--indra/newview/skins/default/xui/pl/floater_incoming_call.xml8
-rw-r--r--indra/newview/skins/default/xui/pl/floater_inventory.xml2
-rw-r--r--indra/newview/skins/default/xui/pl/floater_map.xml5
-rw-r--r--indra/newview/skins/default/xui/pl/floater_moveview.xml36
-rw-r--r--indra/newview/skins/default/xui/pl/floater_my_friends.xml7
-rw-r--r--indra/newview/skins/default/xui/pl/floater_outfit_save_as.xml12
-rw-r--r--indra/newview/skins/default/xui/pl/floater_outgoing_call.xml2
-rw-r--r--indra/newview/skins/default/xui/pl/floater_pay.xml2
-rw-r--r--indra/newview/skins/default/xui/pl/floater_pay_object.xml4
-rw-r--r--indra/newview/skins/default/xui/pl/floater_post_process.xml2
-rw-r--r--indra/newview/skins/default/xui/pl/floater_postcard.xml8
-rw-r--r--indra/newview/skins/default/xui/pl/floater_preview_classified.xml6
-rw-r--r--indra/newview/skins/default/xui/pl/floater_preview_event.xml6
-rw-r--r--indra/newview/skins/default/xui/pl/floater_preview_gesture.xml17
-rw-r--r--indra/newview/skins/default/xui/pl/floater_preview_gesture_info.xml2
-rw-r--r--indra/newview/skins/default/xui/pl/floater_preview_gesture_shortcut.xml15
-rw-r--r--indra/newview/skins/default/xui/pl/floater_preview_gesture_steps.xml2
-rw-r--r--indra/newview/skins/default/xui/pl/floater_preview_notecard.xml4
-rw-r--r--indra/newview/skins/default/xui/pl/floater_preview_sound.xml2
-rw-r--r--indra/newview/skins/default/xui/pl/floater_publish_classified.xml2
-rw-r--r--indra/newview/skins/default/xui/pl/floater_report_abuse.xml6
-rw-r--r--indra/newview/skins/default/xui/pl/floater_script_search.xml2
-rw-r--r--indra/newview/skins/default/xui/pl/floater_sell_land.xml12
-rw-r--r--indra/newview/skins/default/xui/pl/floater_snapshot.xml44
-rw-r--r--indra/newview/skins/default/xui/pl/floater_statistics.xml2
-rw-r--r--indra/newview/skins/default/xui/pl/floater_stats.xml14
-rw-r--r--indra/newview/skins/default/xui/pl/floater_tools.xml43
-rw-r--r--indra/newview/skins/default/xui/pl/floater_top_objects.xml8
-rw-r--r--indra/newview/skins/default/xui/pl/floater_tos.xml12
-rw-r--r--indra/newview/skins/default/xui/pl/floater_voice_controls.xml8
-rw-r--r--indra/newview/skins/default/xui/pl/floater_voice_effect.xml30
-rw-r--r--indra/newview/skins/default/xui/pl/floater_wearable_save_as.xml11
-rw-r--r--indra/newview/skins/default/xui/pl/floater_windlight_options.xml6
-rw-r--r--indra/newview/skins/default/xui/pl/floater_world_map.xml33
-rw-r--r--indra/newview/skins/default/xui/pl/inspect_avatar.xml4
-rw-r--r--indra/newview/skins/default/xui/pl/inspect_group.xml2
-rw-r--r--indra/newview/skins/default/xui/pl/inspect_object.xml11
-rw-r--r--indra/newview/skins/default/xui/pl/language_settings.xml1
-rw-r--r--indra/newview/skins/default/xui/pl/menu_attachment_other.xml8
-rw-r--r--indra/newview/skins/default/xui/pl/menu_attachment_self.xml13
-rw-r--r--indra/newview/skins/default/xui/pl/menu_avatar_icon.xml2
-rw-r--r--indra/newview/skins/default/xui/pl/menu_avatar_other.xml8
-rw-r--r--indra/newview/skins/default/xui/pl/menu_avatar_self.xml25
-rw-r--r--indra/newview/skins/default/xui/pl/menu_bottomtray.xml13
-rw-r--r--indra/newview/skins/default/xui/pl/menu_cof_attachment.xml4
-rw-r--r--indra/newview/skins/default/xui/pl/menu_cof_body_part.xml5
-rw-r--r--indra/newview/skins/default/xui/pl/menu_cof_clothing.xml6
-rw-r--r--indra/newview/skins/default/xui/pl/menu_cof_gear.xml5
-rw-r--r--indra/newview/skins/default/xui/pl/menu_edit.xml12
-rw-r--r--indra/newview/skins/default/xui/pl/menu_favorites.xml2
-rw-r--r--indra/newview/skins/default/xui/pl/menu_group_plus.xml4
-rw-r--r--indra/newview/skins/default/xui/pl/menu_hide_navbar.xml1
-rw-r--r--indra/newview/skins/default/xui/pl/menu_imchiclet_group.xml2
-rw-r--r--indra/newview/skins/default/xui/pl/menu_imchiclet_p2p.xml4
-rw-r--r--indra/newview/skins/default/xui/pl/menu_inspect_avatar_gear.xml8
-rw-r--r--indra/newview/skins/default/xui/pl/menu_inspect_self_gear.xml9
-rw-r--r--indra/newview/skins/default/xui/pl/menu_inv_offer_chiclet.xml4
-rw-r--r--indra/newview/skins/default/xui/pl/menu_inventory.xml21
-rw-r--r--indra/newview/skins/default/xui/pl/menu_inventory_add.xml7
-rw-r--r--indra/newview/skins/default/xui/pl/menu_inventory_gear_default.xml5
-rw-r--r--indra/newview/skins/default/xui/pl/menu_land.xml2
-rw-r--r--indra/newview/skins/default/xui/pl/menu_login.xml16
-rw-r--r--indra/newview/skins/default/xui/pl/menu_navbar.xml4
-rw-r--r--indra/newview/skins/default/xui/pl/menu_object.xml12
-rw-r--r--indra/newview/skins/default/xui/pl/menu_outfit_gear.xml27
-rw-r--r--indra/newview/skins/default/xui/pl/menu_outfit_tab.xml9
-rw-r--r--indra/newview/skins/default/xui/pl/menu_participant_list.xml11
-rw-r--r--indra/newview/skins/default/xui/pl/menu_people_groups.xml2
-rw-r--r--indra/newview/skins/default/xui/pl/menu_people_groups_view_sort.xml4
-rw-r--r--indra/newview/skins/default/xui/pl/menu_people_nearby.xml6
-rw-r--r--indra/newview/skins/default/xui/pl/menu_people_nearby_multiselect.xml4
-rw-r--r--indra/newview/skins/default/xui/pl/menu_picks_plus.xml2
-rw-r--r--indra/newview/skins/default/xui/pl/menu_place.xml4
-rw-r--r--indra/newview/skins/default/xui/pl/menu_place_add_button.xml2
-rw-r--r--indra/newview/skins/default/xui/pl/menu_places_gear_folder.xml2
-rw-r--r--indra/newview/skins/default/xui/pl/menu_places_gear_landmark.xml4
-rw-r--r--indra/newview/skins/default/xui/pl/menu_save_outfit.xml5
-rw-r--r--indra/newview/skins/default/xui/pl/menu_script_chiclet.xml4
-rw-r--r--indra/newview/skins/default/xui/pl/menu_slurl.xml4
-rw-r--r--indra/newview/skins/default/xui/pl/menu_teleport_history_gear.xml2
-rw-r--r--indra/newview/skins/default/xui/pl/menu_text_editor.xml2
-rw-r--r--indra/newview/skins/default/xui/pl/menu_topinfobar.xml7
-rw-r--r--indra/newview/skins/default/xui/pl/menu_url_agent.xml2
-rw-r--r--indra/newview/skins/default/xui/pl/menu_url_group.xml4
-rw-r--r--indra/newview/skins/default/xui/pl/menu_url_inventory.xml2
-rw-r--r--indra/newview/skins/default/xui/pl/menu_url_parcel.xml2
-rw-r--r--indra/newview/skins/default/xui/pl/menu_url_slurl.xml2
-rw-r--r--indra/newview/skins/default/xui/pl/menu_url_teleport.xml2
-rw-r--r--indra/newview/skins/default/xui/pl/menu_viewer.xml384
-rw-r--r--indra/newview/skins/default/xui/pl/menu_wearable_list_item.xml14
-rw-r--r--indra/newview/skins/default/xui/pl/menu_wearing_gear.xml4
-rw-r--r--indra/newview/skins/default/xui/pl/menu_wearing_tab.xml4
-rw-r--r--indra/newview/skins/default/xui/pl/mime_types_mac.xml8
-rw-r--r--indra/newview/skins/default/xui/pl/notifications.xml352
-rw-r--r--indra/newview/skins/default/xui/pl/outfit_accordion_tab.xml4
-rw-r--r--indra/newview/skins/default/xui/pl/panel_active_object_row.xml4
-rw-r--r--indra/newview/skins/default/xui/pl/panel_adhoc_control_panel.xml4
-rw-r--r--indra/newview/skins/default/xui/pl/panel_audio_device.xml26
-rw-r--r--indra/newview/skins/default/xui/pl/panel_block_list_sidetray.xml6
-rw-r--r--indra/newview/skins/default/xui/pl/panel_body_parts_list_item.xml8
-rw-r--r--indra/newview/skins/default/xui/pl/panel_bodyparts_list_button_bar.xml5
-rw-r--r--indra/newview/skins/default/xui/pl/panel_bottomtray.xml31
-rw-r--r--indra/newview/skins/default/xui/pl/panel_bottomtray_lite.xml2
-rw-r--r--indra/newview/skins/default/xui/pl/panel_clothing_list_button_bar.xml5
-rw-r--r--indra/newview/skins/default/xui/pl/panel_clothing_list_item.xml9
-rw-r--r--indra/newview/skins/default/xui/pl/panel_cof_wearables.xml8
-rw-r--r--indra/newview/skins/default/xui/pl/panel_deletable_wearable_list_item.xml5
-rw-r--r--indra/newview/skins/default/xui/pl/panel_dummy_clothing_list_item.xml7
-rw-r--r--indra/newview/skins/default/xui/pl/panel_edit_alpha.xml10
-rw-r--r--indra/newview/skins/default/xui/pl/panel_edit_classified.xml10
-rw-r--r--indra/newview/skins/default/xui/pl/panel_edit_eyes.xml8
-rw-r--r--indra/newview/skins/default/xui/pl/panel_edit_gloves.xml8
-rw-r--r--indra/newview/skins/default/xui/pl/panel_edit_hair.xml14
-rw-r--r--indra/newview/skins/default/xui/pl/panel_edit_jacket.xml8
-rw-r--r--indra/newview/skins/default/xui/pl/panel_edit_pants.xml8
-rw-r--r--indra/newview/skins/default/xui/pl/panel_edit_profile.xml4
-rw-r--r--indra/newview/skins/default/xui/pl/panel_edit_shape.xml41
-rw-r--r--indra/newview/skins/default/xui/pl/panel_edit_shirt.xml8
-rw-r--r--indra/newview/skins/default/xui/pl/panel_edit_shoes.xml8
-rw-r--r--indra/newview/skins/default/xui/pl/panel_edit_skin.xml14
-rw-r--r--indra/newview/skins/default/xui/pl/panel_edit_skirt.xml8
-rw-r--r--indra/newview/skins/default/xui/pl/panel_edit_socks.xml8
-rw-r--r--indra/newview/skins/default/xui/pl/panel_edit_tattoo.xml1
-rw-r--r--indra/newview/skins/default/xui/pl/panel_edit_underpants.xml8
-rw-r--r--indra/newview/skins/default/xui/pl/panel_edit_undershirt.xml8
-rw-r--r--indra/newview/skins/default/xui/pl/panel_edit_wearable.xml17
-rw-r--r--indra/newview/skins/default/xui/pl/panel_friends.xml20
-rw-r--r--indra/newview/skins/default/xui/pl/panel_group_control_panel.xml4
-rw-r--r--indra/newview/skins/default/xui/pl/panel_group_general.xml11
-rw-r--r--indra/newview/skins/default/xui/pl/panel_group_info_sidetray.xml4
-rw-r--r--indra/newview/skins/default/xui/pl/panel_group_invite.xml6
-rw-r--r--indra/newview/skins/default/xui/pl/panel_group_land_money.xml19
-rw-r--r--indra/newview/skins/default/xui/pl/panel_group_notices.xml9
-rw-r--r--indra/newview/skins/default/xui/pl/panel_group_notify.xml2
-rw-r--r--indra/newview/skins/default/xui/pl/panel_group_roles.xml58
-rw-r--r--indra/newview/skins/default/xui/pl/panel_groups.xml18
-rw-r--r--indra/newview/skins/default/xui/pl/panel_im_control_panel.xml4
-rw-r--r--indra/newview/skins/default/xui/pl/panel_inventory_item.xml4
-rw-r--r--indra/newview/skins/default/xui/pl/panel_landmark_info.xml8
-rw-r--r--indra/newview/skins/default/xui/pl/panel_login.xml19
-rw-r--r--indra/newview/skins/default/xui/pl/panel_main_inventory.xml66
-rw-r--r--indra/newview/skins/default/xui/pl/panel_media_settings_general.xml10
-rw-r--r--indra/newview/skins/default/xui/pl/panel_media_settings_permissions.xml17
-rw-r--r--indra/newview/skins/default/xui/pl/panel_my_profile.xml8
-rw-r--r--indra/newview/skins/default/xui/pl/panel_nearby_chat.xml9
-rw-r--r--indra/newview/skins/default/xui/pl/panel_nearby_chat_bar.xml2
-rw-r--r--indra/newview/skins/default/xui/pl/panel_nearby_media.xml24
-rw-r--r--indra/newview/skins/default/xui/pl/panel_notes.xml8
-rw-r--r--indra/newview/skins/default/xui/pl/panel_online_status.xml2
-rw-r--r--indra/newview/skins/default/xui/pl/panel_outfit_edit.xml51
-rw-r--r--indra/newview/skins/default/xui/pl/panel_outfits_inventory.xml15
-rw-r--r--indra/newview/skins/default/xui/pl/panel_outfits_inventory_gear_default.xml10
-rw-r--r--indra/newview/skins/default/xui/pl/panel_outfits_list.xml7
-rw-r--r--indra/newview/skins/default/xui/pl/panel_outfits_wearing.xml6
-rw-r--r--indra/newview/skins/default/xui/pl/panel_people.xml49
-rw-r--r--indra/newview/skins/default/xui/pl/panel_place_profile.xml8
-rw-r--r--indra/newview/skins/default/xui/pl/panel_places.xml7
-rw-r--r--indra/newview/skins/default/xui/pl/panel_preferences_advanced.xml13
-rw-r--r--indra/newview/skins/default/xui/pl/panel_preferences_alerts.xml2
-rw-r--r--indra/newview/skins/default/xui/pl/panel_preferences_chat.xml24
-rw-r--r--indra/newview/skins/default/xui/pl/panel_preferences_general.xml16
-rw-r--r--indra/newview/skins/default/xui/pl/panel_preferences_graphics1.xml20
-rw-r--r--indra/newview/skins/default/xui/pl/panel_preferences_privacy.xml4
-rw-r--r--indra/newview/skins/default/xui/pl/panel_preferences_setup.xml8
-rw-r--r--indra/newview/skins/default/xui/pl/panel_preferences_sound.xml24
-rw-r--r--indra/newview/skins/default/xui/pl/panel_prim_media_controls.xml16
-rw-r--r--indra/newview/skins/default/xui/pl/panel_profile.xml4
-rw-r--r--indra/newview/skins/default/xui/pl/panel_region_covenant.xml2
-rw-r--r--indra/newview/skins/default/xui/pl/panel_region_estate.xml8
-rw-r--r--indra/newview/skins/default/xui/pl/panel_region_general.xml6
-rw-r--r--indra/newview/skins/default/xui/pl/panel_region_general_layout.xml43
-rw-r--r--indra/newview/skins/default/xui/pl/panel_region_terrain.xml6
-rw-r--r--indra/newview/skins/default/xui/pl/panel_region_texture.xml4
-rw-r--r--indra/newview/skins/default/xui/pl/panel_script_ed.xml4
-rw-r--r--indra/newview/skins/default/xui/pl/panel_script_limits_my_avatar.xml4
-rw-r--r--indra/newview/skins/default/xui/pl/panel_script_limits_region_memory.xml4
-rw-r--r--indra/newview/skins/default/xui/pl/panel_side_tray.xml4
-rw-r--r--indra/newview/skins/default/xui/pl/panel_stand_stop_flying.xml2
-rw-r--r--indra/newview/skins/default/xui/pl/panel_status_bar.xml12
-rw-r--r--indra/newview/skins/default/xui/pl/panel_teleport_history.xml3
-rw-r--r--indra/newview/skins/default/xui/pl/panel_voice_effect.xml15
-rw-r--r--indra/newview/skins/default/xui/pl/panel_world_map.xml6
-rw-r--r--indra/newview/skins/default/xui/pl/role_actions.xml76
-rw-r--r--indra/newview/skins/default/xui/pl/sidepanel_appearance.xml14
-rw-r--r--indra/newview/skins/default/xui/pl/sidepanel_inventory.xml8
-rw-r--r--indra/newview/skins/default/xui/pl/sidepanel_item_info.xml34
-rw-r--r--indra/newview/skins/default/xui/pl/sidepanel_task_info.xml4
-rw-r--r--indra/newview/skins/default/xui/pl/strings.xml992
-rw-r--r--indra/newview/skins/default/xui/pl/teleport_strings.xml14
-rw-r--r--indra/newview/skins/default/xui/pt/floater_about_land.xml58
-rw-r--r--indra/newview/skins/default/xui/pt/floater_camera.xml29
-rw-r--r--indra/newview/skins/default/xui/pt/floater_customize.xml530
-rw-r--r--indra/newview/skins/default/xui/pt/floater_day_cycle_options.xml4
-rw-r--r--indra/newview/skins/default/xui/pt/floater_device_settings.xml2
-rw-r--r--indra/newview/skins/default/xui/pt/floater_im.xml45
-rw-r--r--indra/newview/skins/default/xui/pt/floater_im_session.xml1
-rw-r--r--indra/newview/skins/default/xui/pt/floater_land_holdings.xml10
-rw-r--r--indra/newview/skins/default/xui/pt/floater_map.xml3
-rw-r--r--indra/newview/skins/default/xui/pt/floater_my_friends.xml7
-rw-r--r--indra/newview/skins/default/xui/pt/floater_outfit_save_as.xml11
-rw-r--r--indra/newview/skins/default/xui/pt/floater_preview_classified.xml6
-rw-r--r--indra/newview/skins/default/xui/pt/floater_preview_event.xml6
-rw-r--r--indra/newview/skins/default/xui/pt/floater_preview_gesture.xml37
-rw-r--r--indra/newview/skins/default/xui/pt/floater_preview_gesture_info.xml2
-rw-r--r--indra/newview/skins/default/xui/pt/floater_preview_gesture_shortcut.xml15
-rw-r--r--indra/newview/skins/default/xui/pt/floater_preview_gesture_steps.xml2
-rw-r--r--indra/newview/skins/default/xui/pt/floater_publish_classified.xml2
-rw-r--r--indra/newview/skins/default/xui/pt/floater_snapshot.xml86
-rw-r--r--indra/newview/skins/default/xui/pt/floater_statistics.xml2
-rw-r--r--indra/newview/skins/default/xui/pt/floater_tools.xml70
-rw-r--r--indra/newview/skins/default/xui/pt/floater_voice_controls.xml12
-rw-r--r--indra/newview/skins/default/xui/pt/floater_voice_effect.xml15
-rw-r--r--indra/newview/skins/default/xui/pt/floater_wearable_save_as.xml11
-rw-r--r--indra/newview/skins/default/xui/pt/floater_world_map.xml25
-rw-r--r--indra/newview/skins/default/xui/pt/language_settings.xml1
-rw-r--r--indra/newview/skins/default/xui/pt/menu_attachment_self.xml4
-rw-r--r--indra/newview/skins/default/xui/pt/menu_avatar_self.xml8
-rw-r--r--indra/newview/skins/default/xui/pt/menu_cof_clothing.xml3
-rw-r--r--indra/newview/skins/default/xui/pt/menu_inventory.xml13
-rw-r--r--indra/newview/skins/default/xui/pt/menu_inventory_add.xml1
-rw-r--r--indra/newview/skins/default/xui/pt/menu_inventory_gear_default.xml3
-rw-r--r--indra/newview/skins/default/xui/pt/menu_object.xml10
-rw-r--r--indra/newview/skins/default/xui/pt/menu_outfit_gear.xml1
-rw-r--r--indra/newview/skins/default/xui/pt/menu_outfit_tab.xml2
-rw-r--r--indra/newview/skins/default/xui/pt/menu_participant_list.xml2
-rw-r--r--indra/newview/skins/default/xui/pt/menu_topinfobar.xml7
-rw-r--r--indra/newview/skins/default/xui/pt/menu_viewer.xml3
-rw-r--r--indra/newview/skins/default/xui/pt/menu_wearable_list_item.xml7
-rw-r--r--indra/newview/skins/default/xui/pt/menu_wearing_gear.xml4
-rw-r--r--indra/newview/skins/default/xui/pt/menu_wearing_tab.xml4
-rw-r--r--indra/newview/skins/default/xui/pt/notifications.xml20
-rw-r--r--indra/newview/skins/default/xui/pt/panel_audio_device.xml25
-rw-r--r--indra/newview/skins/default/xui/pt/panel_body_parts_list_item.xml4
-rw-r--r--indra/newview/skins/default/xui/pt/panel_clothing_list_item.xml5
-rw-r--r--indra/newview/skins/default/xui/pt/panel_deletable_wearable_list_item.xml1
-rw-r--r--indra/newview/skins/default/xui/pt/panel_dummy_clothing_list_item.xml3
-rw-r--r--indra/newview/skins/default/xui/pt/panel_edit_wearable.xml3
-rw-r--r--indra/newview/skins/default/xui/pt/panel_friends.xml20
-rw-r--r--indra/newview/skins/default/xui/pt/panel_group_general.xml2
-rw-r--r--indra/newview/skins/default/xui/pt/panel_group_notices.xml2
-rw-r--r--indra/newview/skins/default/xui/pt/panel_group_roles.xml18
-rw-r--r--indra/newview/skins/default/xui/pt/panel_groups.xml15
-rw-r--r--indra/newview/skins/default/xui/pt/panel_landmark_info.xml16
-rw-r--r--indra/newview/skins/default/xui/pt/panel_nearby_chat.xml9
-rw-r--r--indra/newview/skins/default/xui/pt/panel_nearby_media.xml8
-rw-r--r--indra/newview/skins/default/xui/pt/panel_notes.xml8
-rw-r--r--indra/newview/skins/default/xui/pt/panel_online_status.xml2
-rw-r--r--indra/newview/skins/default/xui/pt/panel_outfit_edit.xml18
-rw-r--r--indra/newview/skins/default/xui/pt/panel_outfits_inventory.xml10
-rw-r--r--indra/newview/skins/default/xui/pt/panel_outfits_list.xml7
-rw-r--r--indra/newview/skins/default/xui/pt/panel_outfits_wearing.xml6
-rw-r--r--indra/newview/skins/default/xui/pt/panel_place_profile.xml20
-rw-r--r--indra/newview/skins/default/xui/pt/panel_preferences_chat.xml23
-rw-r--r--indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml5
-rw-r--r--indra/newview/skins/default/xui/pt/panel_preferences_privacy.xml4
-rw-r--r--indra/newview/skins/default/xui/pt/panel_preferences_sound.xml10
-rw-r--r--indra/newview/skins/default/xui/pt/panel_prim_media_controls.xml4
-rw-r--r--indra/newview/skins/default/xui/pt/panel_region_general.xml28
-rw-r--r--indra/newview/skins/default/xui/pt/panel_region_general_layout.xml43
-rw-r--r--indra/newview/skins/default/xui/pt/panel_teleport_history.xml3
-rw-r--r--indra/newview/skins/default/xui/pt/panel_voice_effect.xml4
-rw-r--r--indra/newview/skins/default/xui/pt/role_actions.xml4
-rw-r--r--indra/newview/skins/default/xui/pt/sidepanel_appearance.xml2
-rw-r--r--indra/newview/skins/default/xui/pt/sidepanel_item_info.xml18
-rw-r--r--indra/newview/skins/default/xui/pt/sidepanel_task_info.xml2
-rw-r--r--indra/newview/skins/default/xui/pt/strings.xml157
-rw-r--r--indra/newview/skins/paths.xml10
-rw-r--r--indra/newview/tests/llagentaccess_test.cpp38
-rw-r--r--indra/newview/tests/llcapabilitylistener_test.cpp36
-rw-r--r--indra/newview/tests/lldateutil_test.cpp38
-rw-r--r--indra/newview/tests/lllogininstance_test.cpp41
-rw-r--r--indra/newview/tests/llmediadataclient_test.cpp147
-rw-r--r--indra/newview/tests/llsecapi_test.cpp130
-rw-r--r--indra/newview/tests/llsechandler_basic_test.cpp38
-rw-r--r--indra/newview/tests/llslurl_test.cpp46
-rw-r--r--indra/newview/tests/lltextureinfo_test.cpp38
-rw-r--r--indra/newview/tests/lltextureinfodetails_test.cpp38
-rw-r--r--indra/newview/tests/lltexturestatsuploader_test.cpp38
-rw-r--r--indra/newview/tests/llviewerhelputil_test.cpp38
-rw-r--r--indra/newview/tests/llviewernetwork_test.cpp43
-rw-r--r--indra/newview/tests/llworldmap_test.cpp42
-rw-r--r--indra/newview/tests/llworldmipmap_test.cpp38
-rw-r--r--indra/newview/tests/llxmlrpclistener_test.cpp21
-rw-r--r--indra/newview/tests/test_llxmlrpc_peer.py21
-rw-r--r--[-rwxr-xr-x]indra/newview/viewer_manifest.py125
2310 files changed, 55457 insertions, 53627 deletions
diff --git a/indra/newview/CMakeLists.txt b/indra/newview/CMakeLists.txt
index 24811db3cb..1f4302d870 100644
--- a/indra/newview/CMakeLists.txt
+++ b/indra/newview/CMakeLists.txt
@@ -13,6 +13,7 @@ include(ELFIO)
include(FMOD)
include(OPENAL)
include(FindOpenGL)
+include(JsonCpp)
include(LLAudio)
include(LLCharacter)
include(LLCommon)
@@ -44,6 +45,7 @@ include(CMakeCopyIfDifferent)
include_directories(
${DBUSGLIB_INCLUDE_DIRS}
${ELFIO_INCLUDE_DIR}
+ ${JSONCPP_INCLUDE_DIRS}
${LLAUDIO_INCLUDE_DIRS}
${LLCHARACTER_INCLUDE_DIRS}
${LLCOMMON_INCLUDE_DIRS}
@@ -82,6 +84,7 @@ set(viewer_SOURCE_FILES
llappviewerlistener.cpp
llassetuploadqueue.cpp
llassetuploadresponders.cpp
+ llattachmentsmgr.cpp
llaudiosourcevo.cpp
llavataractions.cpp
llavatariconctrl.cpp
@@ -91,6 +94,7 @@ set(viewer_SOURCE_FILES
llbottomtray.cpp
llbox.cpp
llbreadcrumbview.cpp
+ llbrowsernotification.cpp
llbuycurrencyhtml.cpp
llcallbacklist.cpp
llcallfloater.cpp
@@ -190,7 +194,6 @@ set(viewer_SOURCE_FILES
llfloaternamedesc.cpp
llfloaternotificationsconsole.cpp
llfloateropenobject.cpp
- llfloaterparcel.cpp
llfloaterpay.cpp
llfloaterperms.cpp
llfloaterpostcard.cpp
@@ -204,6 +207,7 @@ set(viewer_SOURCE_FILES
llfloatersearch.cpp
llfloatersellland.cpp
llfloatersettingsdebug.cpp
+ llfloatersidetraytab.cpp
llfloatersnapshot.cpp
llfloatertelehub.cpp
llfloatertestinspectors.cpp
@@ -212,9 +216,7 @@ set(viewer_SOURCE_FILES
llfloatertopobjects.cpp
llfloatertos.cpp
llfloateruipreview.cpp
- llfloaterurldisplay.cpp
llfloaterurlentry.cpp
- llfloatervoicedevicesettings.cpp
llfloatervoiceeffect.cpp
llfloaterwater.cpp
llfloaterwhitelistentry.cpp
@@ -232,6 +234,7 @@ set(viewer_SOURCE_FILES
llgroupiconctrl.cpp
llgrouplist.cpp
llgroupmgr.cpp
+ llhints.cpp
llhomelocationresponder.cpp
llhudeffect.cpp
llhudeffectbeam.cpp
@@ -260,6 +263,7 @@ set(viewer_SOURCE_FILES
llinventoryfunctions.cpp
llinventoryicon.cpp
llinventoryitemslist.cpp
+ llinventorylistitem.cpp
llinventorymodel.cpp
llinventorymodelbackgroundfetch.cpp
llinventoryobserver.cpp
@@ -301,6 +305,7 @@ set(viewer_SOURCE_FILES
llnotificationalerthandler.cpp
llnotificationgrouphandler.cpp
llnotificationhandlerutil.cpp
+ llnotificationhinthandler.cpp
llnotificationmanager.cpp
llnotificationofferhandler.cpp
llnotificationscripthandler.cpp
@@ -309,6 +314,7 @@ set(viewer_SOURCE_FILES
lloutfitslist.cpp
lloutfitobserver.cpp
lloutputmonitorctrl.cpp
+ llpanelappearancetab.cpp
llpanelavatar.cpp
llpanelavatartag.cpp
llpanelblockedlist.cpp
@@ -348,7 +354,6 @@ set(viewer_SOURCE_FILES
llpanelpermissions.cpp
llpanelpick.cpp
llpanelpicks.cpp
- llpanelplace.cpp
llpanelplaceinfo.cpp
llpanelplaceprofile.cpp
llpanelplaces.cpp
@@ -360,8 +365,10 @@ set(viewer_SOURCE_FILES
llpaneltiptoast.cpp
llpanelvoiceeffect.cpp
llpaneltopinfobar.cpp
+ llpanelvoicedevicesettings.cpp
llpanelvolume.cpp
llpanelvolumepulldown.cpp
+ llpanelwearing.cpp
llparcelselection.cpp
llparticipantlist.cpp
llpatchvertexarray.cpp
@@ -457,6 +464,7 @@ set(viewer_SOURCE_FILES
lltracker.cpp
lltransientdockablefloater.cpp
lltransientfloatermgr.cpp
+ lltranslate.cpp
lluilistener.cpp
lluploaddialog.cpp
llurl.cpp
@@ -550,6 +558,7 @@ set(viewer_SOURCE_FILES
llwearablelist.cpp
llwearabletype.cpp
llweb.cpp
+ llwebsharing.cpp
llwind.cpp
llwlanimator.cpp
llwldaycycle.cpp
@@ -604,6 +613,7 @@ set(viewer_HEADER_FILES
llappviewerlistener.h
llassetuploadqueue.h
llassetuploadresponders.h
+ llattachmentsmgr.h
llaudiosourcevo.h
llavataractions.h
llavatariconctrl.h
@@ -714,7 +724,6 @@ set(viewer_HEADER_FILES
llfloaternamedesc.h
llfloaternotificationsconsole.h
llfloateropenobject.h
- llfloaterparcel.h
llfloaterpay.h
llfloaterperms.h
llfloaterpostcard.h
@@ -728,6 +737,7 @@ set(viewer_HEADER_FILES
llfloatersearch.h
llfloatersellland.h
llfloatersettingsdebug.h
+ llfloatersidetraytab.h
llfloatersnapshot.h
llfloatertelehub.h
llfloatertestinspectors.h
@@ -736,9 +746,7 @@ set(viewer_HEADER_FILES
llfloatertopobjects.h
llfloatertos.h
llfloateruipreview.h
- llfloaterurldisplay.h
llfloaterurlentry.h
- llfloatervoicedevicesettings.h
llfloatervoiceeffect.h
llfloaterwater.h
llfloaterwhitelistentry.h
@@ -756,6 +764,7 @@ set(viewer_HEADER_FILES
llgroupiconctrl.h
llgrouplist.h
llgroupmgr.h
+ llhints.h
llhomelocationresponder.h
llhudeffect.h
llhudeffectbeam.h
@@ -783,6 +792,7 @@ set(viewer_HEADER_FILES
llinventoryfunctions.h
llinventoryicon.h
llinventoryitemslist.h
+ llinventorylistitem.h
llinventorymodel.h
llinventorymodelbackgroundfetch.h
llinventoryobserver.h
@@ -828,6 +838,7 @@ set(viewer_HEADER_FILES
lloutfitslist.h
lloutfitobserver.h
lloutputmonitorctrl.h
+ llpanelappearancetab.h
llpanelavatar.h
llpanelavatartag.h
llpanelblockedlist.h
@@ -867,7 +878,6 @@ set(viewer_HEADER_FILES
llpanelpermissions.h
llpanelpick.h
llpanelpicks.h
- llpanelplace.h
llpanelplaceinfo.h
llpanelplaceprofile.h
llpanelplaces.h
@@ -877,10 +887,12 @@ set(viewer_HEADER_FILES
llpanelprofileview.h
llpanelteleporthistory.h
llpaneltiptoast.h
+ llpanelvoicedevicesettings.h
llpanelvoiceeffect.h
llpaneltopinfobar.h
llpanelvolume.h
llpanelvolumepulldown.h
+ llpanelwearing.h
llparcelselection.h
llparticipantlist.h
llpatchvertexarray.h
@@ -979,6 +991,7 @@ set(viewer_HEADER_FILES
lltracker.h
lltransientdockablefloater.h
lltransientfloatermgr.h
+ lltranslate.h
lluiconstants.h
lluilistener.h
lluploaddialog.h
@@ -1071,6 +1084,7 @@ set(viewer_HEADER_FILES
llwearablelist.h
llwearabletype.h
llweb.h
+ llwebsharing.h
llwind.h
llwlanimator.h
llwldaycycle.h
@@ -1145,10 +1159,12 @@ endif (LINUX)
if (WINDOWS)
list(APPEND viewer_SOURCE_FILES
llappviewerwin32.cpp
+ llwindebug.cpp
)
list(APPEND viewer_HEADER_FILES
llappviewerwin32.h
+ llwindebug.h
)
# precompiled header configuration
@@ -1297,6 +1313,7 @@ set(viewer_APPSETTINGS_FILES
app_settings/cmd_line.xml
app_settings/grass.xml
app_settings/high_graphics.xml
+ app_settings/ignorable_dialogs.xml
app_settings/keys.ini
app_settings/keywords.ini
app_settings/logcontrol.xml
@@ -1314,8 +1331,6 @@ set(viewer_APPSETTINGS_FILES
${CMAKE_SOURCE_DIR}/../scripts/messages/message_template.msg
)
-use_prebuilt_binary(artwork-common)
-
source_group("App Settings" FILES ${viewer_APPSETTINGS_FILES})
set_source_files_properties(${viewer_APPSETTINGS_FILES}
@@ -1389,10 +1404,6 @@ add_executable(${VIEWER_BINARY_NAME}
${viewer_SOURCE_FILES}
)
-if (LLKDU_LIBRARY)
- add_dependencies(${VIEWER_BINARY_NAME} ${LLKDU_LIBRARY})
-endif (LLKDU_LIBRARY)
-
# add package files
file(GLOB EVENT_HOST_SCRIPT_GLOB_LIST
${CMAKE_CURRENT_SOURCE_DIR}/../viewer_components/*.py)
@@ -1479,6 +1490,7 @@ if (WINDOWS)
${GOOGLE_PERF_TOOLS_SOURCE}
${CMAKE_CURRENT_SOURCE_DIR}/licenses-win32.txt
${CMAKE_CURRENT_SOURCE_DIR}/featuretable.txt
+ ${CMAKE_CURRENT_SOURCE_DIR}/featuretable_xp.txt
${CMAKE_CURRENT_SOURCE_DIR}/dbghelp.dll
${CMAKE_CURRENT_SOURCE_DIR}/fmod.dll
${ARCH_PREBUILT_DIRS_RELEASE}/libeay32.dll
@@ -1550,11 +1562,6 @@ if (WINDOWS)
add_dependencies(${VIEWER_BINARY_NAME} stage_third_party_libs llcommon copy_w_viewer_manifest)
- if(LLKDU_LIBRARY)
- # kdu may not exist!
- add_dependencies(copy_w_viewer_manifest llkdu)
- endif(LLKDU_LIBRARY)
-
if (EXISTS ${CMAKE_SOURCE_DIR}/copy_win_scripts)
add_dependencies(${VIEWER_BINARY_NAME} copy_win_scripts)
endif (EXISTS ${CMAKE_SOURCE_DIR}/copy_win_scripts)
@@ -1656,6 +1663,7 @@ target_link_libraries(${VIEWER_BINARY_NAME}
${OPENGL_LIBRARIES}
${FMODWRAPPER_LIBRARY} # must come after LLAudio
${OPENGL_LIBRARIES}
+ ${JSONCPP_LIBRARIES}
${SDL_LIBRARY}
${SMARTHEAP_LIBRARY}
${UI_LIBRARIES}
@@ -1699,12 +1707,12 @@ if (LINUX)
add_dependencies(${VIEWER_BINARY_NAME} SLPlugin media_plugin_gstreamer010 media_plugin_webkit)
- if (NOT INSTALL)
+ if (PACKAGE)
add_custom_target(package ALL DEPENDS ${product}.tar.bz2)
add_dependencies(package linux-crash-logger-target)
add_dependencies(package linux-updater-target)
check_message_template(package)
- endif (NOT INSTALL)
+ endif (PACKAGE)
add_custom_command(
OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${CMAKE_CFG_INTDIR}/.${product}.copy_touched
diff --git a/indra/newview/English.lproj/InfoPlist.strings b/indra/newview/English.lproj/InfoPlist.strings
index fc531f93d4..4bf67b1367 100644
--- 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.0";
-CFBundleGetInfoString = "Second Life version 2.1.0.0, Copyright 2004-2009 Linden Research, Inc.";
+CFBundleShortVersionString = "Second Life version 2.1.1.0";
+CFBundleGetInfoString = "Second Life version 2.1.1.0, Copyright 2004-2010 Linden Research, Inc.";
diff --git a/indra/newview/Info-SecondLife.plist b/indra/newview/Info-SecondLife.plist
index 97e24a0bd5..3cda7467dd 100644
--- a/indra/newview/Info-SecondLife.plist
+++ b/indra/newview/Info-SecondLife.plist
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
-<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
@@ -18,33 +18,33 @@
<string>APPL</string>
<key>CFBundleSignature</key>
<string>????</string>
- <key>CFBundleDocumentTypes</key>
- <array>
- <dict>
- <key>CFBundleTypeExtensions</key>
- <array>
- <string>slurl</string>
- </array>
- <key>CFBundleTypeIconFile</key>
- <string>seconlife</string>
- <key>CFBundleTypeMIMETypes</key>
- <array>
- <string>application/x-grid-location-info</string>
- </array>
- <key>CFBundleTypeName</key>
- <string>Secondlife SLURL</string>
+ <key>CFBundleDocumentTypes</key>
+ <array>
+ <dict>
+ <key>CFBundleTypeExtensions</key>
+ <array>
+ <string>slurl</string>
+ </array>
+ <key>CFBundleTypeIconFile</key>
+ <string>seconlife</string>
+ <key>CFBundleTypeMIMETypes</key>
+ <array>
+ <string>application/x-grid-location-info</string>
+ </array>
+ <key>CFBundleTypeName</key>
+ <string>Secondlife SLURL</string>
<key>CFBundleTypeOSTypes</key>
<array>
- <string>SLRL</string>
+ <string>SLRL</string>
</array>
- <key>CFBundleTypeRole</key>
- <string>Viewer</string>
- <key>LSTypeIsPackage</key>
+ <key>CFBundleTypeRole</key>
+ <string>Viewer</string>
+ <key>LSTypeIsPackage</key>
<true/>
- <key>NSDocumentClass</key>
- <string>SecondLifeSLURL</string>
- </dict>
- </array>
+ <key>NSDocumentClass</key>
+ <string>SecondLifeSLURL</string>
+ </dict>
+ </array>
<key>CFBundleURLTypes</key>
<array>
<dict>
@@ -60,7 +60,7 @@
</dict>
</array>
<key>CFBundleVersion</key>
- <string>2.1.0.0</string>
+ <string>2.1.1.0</string>
<key>CSResourcesFileMapped</key>
<true/>
</dict>
diff --git a/indra/newview/VertexCache.h b/indra/newview/VertexCache.h
index e17e9d4705..0eadad7e01 100644
--- a/indra/newview/VertexCache.h
+++ b/indra/newview/VertexCache.h
@@ -2,31 +2,25 @@
* @file VertexCache.h
* @brief VertexCache class definition
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/ViewerInstall.cmake b/indra/newview/ViewerInstall.cmake
index 8168e91a06..0b0d3e2adc 100644
--- a/indra/newview/ViewerInstall.cmake
+++ b/indra/newview/ViewerInstall.cmake
@@ -7,8 +7,8 @@ install(DIRECTORY skins app_settings linux_tools
PATTERN ".svn" EXCLUDE
)
-find_file(IS_ARTWORK_PRESENT NAMES avatar_lad.xml
- PATHS ${VIEWER_DIR}/newview/character)
+find_file(IS_ARTWORK_PRESENT NAMES have_artwork_bundle.marker
+ PATHS ${VIEWER_DIR}/newview/res)
if (IS_ARTWORK_PRESENT)
install(DIRECTORY res res-sdl character
diff --git a/indra/newview/VorbisFramework.h b/indra/newview/VorbisFramework.h
index 18743444a7..874a22fc30 100644
--- a/indra/newview/VorbisFramework.h
+++ b/indra/newview/VorbisFramework.h
@@ -4,31 +4,25 @@
* @date Fri Oct 10 2003
* @brief For the Macview project
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/app_settings/CA.pem b/indra/newview/app_settings/CA.pem
index e68e2b6ce6..11825bf906 100644
--- a/indra/newview/app_settings/CA.pem
+++ b/indra/newview/app_settings/CA.pem
@@ -26,1464 +26,2197 @@ t79enKNHEA2fupH3vEigf5Eh4bVAN5VohrTm6MY53x7XQZZr1ME7a55lFEnSeT0u
mlOAjR2mAbvSM5X5oSZNrmetdzyTj2flCM8CC7MLab0kkdngRIlUBGHF1/S5nmPb
K+9A46sd33oqK8n8
-----END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIDtTCCAp2gAwIBAgIRANAeQJAAAEZSAAAAAQAAAAQwDQYJKoZIhvcNAQEFBQAw
-gYkxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJEQzETMBEGA1UEBxMKV2FzaGluZ3Rv
-bjEXMBUGA1UEChMOQUJBLkVDT00sIElOQy4xGTAXBgNVBAMTEEFCQS5FQ09NIFJv
-b3QgQ0ExJDAiBgkqhkiG9w0BCQEWFWFkbWluQGRpZ3NpZ3RydXN0LmNvbTAeFw05
-OTA3MTIxNzMzNTNaFw0wOTA3MDkxNzMzNTNaMIGJMQswCQYDVQQGEwJVUzELMAkG
-A1UECBMCREMxEzARBgNVBAcTCldhc2hpbmd0b24xFzAVBgNVBAoTDkFCQS5FQ09N
-LCBJTkMuMRkwFwYDVQQDExBBQkEuRUNPTSBSb290IENBMSQwIgYJKoZIhvcNAQkB
-FhVhZG1pbkBkaWdzaWd0cnVzdC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
-ggEKAoIBAQCx0xHgeVVDBwhMywVCAOINg0Y95JO6tgbTDVm9PsHOQ2cBiiGo77zM
-0KLMsFWWU4RmBQDaREmA2FQKpSWGlO1jVv9wbKOhGdJ4vmgqRF4vz8wYXke8OrFG
-PR7wuSw0X4x8TAgpnUBV6zx9g9618PeKgw6hTLQ6pbNfWiKX7BmbwQVo/ea3qZGU
-LOR4SCQaJRk665WcOQqKz0Ky8BzVX/tr7WhWezkscjiw7pOp03t3POtxA6k4ShZs
-iSrK2jMTecJVjO2cu/LLWxD4LmE1xilMKtAqY9FlWbT4zfn0AIS2V0KFnTKo+SpU
-+/94Qby9cSj0u5C8/5Y0BONFnqFGKECBAgMBAAGjFjAUMBIGA1UdEwEB/wQIMAYB
-Af8CAQgwDQYJKoZIhvcNAQEFBQADggEBAARvJYbk5pYntNlCwNDJALF/VD6Hsm0k
-qS8Kfv2kRLD4VAe9G52dyntQJHsRW0mjpr8SdNWJt7cvmGQlFLdh6X9ggGvTZOir
-vRrWUfrAtF13Gn9kCF55xgVM8XrdTX3O5kh7VNJhkoHWG9YA8A6eKHegTYjHInYZ
-w8eeG6Z3ePhfm1bR8PIXrI6dWeYf/le22V7hXZ9F7GFoGUHhsiAm/lowdiT/QHI8
-eZ98IkirRs3bs4Ysj78FQdPB4xTjQRcm0HyncUwZ6EoPclgxfexgeqMiKL0ZJGA/
-O4dzwGvky663qyVDslUte6sGDnVdNOVdc22esnVApVnJTzFxiNmIf1Q=
------END CERTIFICATE-----
-
-----BEGIN CERTIFICATE-----
-MIID5jCCAs6gAwIBAgIBATANBgkqhkiG9w0BAQUFADCBgzELMAkGA1UEBhMCVVMx
-HTAbBgNVBAoTFEFPTCBUaW1lIFdhcm5lciBJbmMuMRwwGgYDVQQLExNBbWVyaWNh
-IE9ubGluZSBJbmMuMTcwNQYDVQQDEy5BT0wgVGltZSBXYXJuZXIgUm9vdCBDZXJ0
-aWZpY2F0aW9uIEF1dGhvcml0eSAxMB4XDTAyMDUyOTA2MDAwMFoXDTM3MTEyMDE1
-MDMwMFowgYMxCzAJBgNVBAYTAlVTMR0wGwYDVQQKExRBT0wgVGltZSBXYXJuZXIg
-SW5jLjEcMBoGA1UECxMTQW1lcmljYSBPbmxpbmUgSW5jLjE3MDUGA1UEAxMuQU9M
-IFRpbWUgV2FybmVyIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMTCCASIw
-DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJnej8Mlo2k06AX3dLm/WpcZuS+U
-0pPlLYnKhHw/EEMbjIt8hFj4JHxIzyr9wBXZGH6EGhfT257XyuTZ16pYUYfw8ItI
-TuLCxFlpMGK2MKKMCxGZYTVtfu/FsRkGIBKOQuHfD5YQUqjPnF+VFNivO3ULMSAf
-RC+iYkGzuxgh28pxPIzstrkNn+9R7017EvILDOGsQI93f7DKeHEMXRZxcKLXwjqF
-zQ6axOAAsNUl6twr5JQtOJyJQVdkKGUZHLZEtMgxa44Be3ZZJX8VHIQIfHNlIAqh
-BC4aMqiaILGcLCFZ5/vP7nAtCMpjPiybkxlqpMKX/7eGV4iFbJ4VFitNLLMCAwEA
-AaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUoTYwFsuGkABFgFOxj8jY
-PXy+XxIwHwYDVR0jBBgwFoAUoTYwFsuGkABFgFOxj8jYPXy+XxIwDgYDVR0PAQH/
-BAQDAgGGMA0GCSqGSIb3DQEBBQUAA4IBAQCKIBilvrMvtKaEAEAwKfq0FHNMeUWn
-9nDg6H5kHgqVfGphwu9OH77/yZkfB2FK4V1Mza3u0FIy2VkyvNp5ctZ7CegCgTXT
-Ct8RHcl5oIBN/lrXVtbtDyqvpxh1MwzqwWEFT2qaifKNuZ8u77BfWgDrvq2g+EQF
-Z7zLBO+eZMXpyD8Fv8YvBxzDNnGGyjhmSs3WuEvGbKeXO/oTLW4jYYehY0KswsuX
-n2Fozy1MBJ3XJU8KDk2QixhWqJNIV9xvrr2eZ1d3iVCzvhGbRWeDhhmH05i9CBoW
-H1iCC+GWaQVLjuyDUTEH1dSf/1l7qG6Fz9NLqUmwX7A5KGgOc90lmt4S
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIF5jCCA86gAwIBAgIBATANBgkqhkiG9w0BAQUFADCBgzELMAkGA1UEBhMCVVMx
-HTAbBgNVBAoTFEFPTCBUaW1lIFdhcm5lciBJbmMuMRwwGgYDVQQLExNBbWVyaWNh
-IE9ubGluZSBJbmMuMTcwNQYDVQQDEy5BT0wgVGltZSBXYXJuZXIgUm9vdCBDZXJ0
-aWZpY2F0aW9uIEF1dGhvcml0eSAyMB4XDTAyMDUyOTA2MDAwMFoXDTM3MDkyODIz
-NDMwMFowgYMxCzAJBgNVBAYTAlVTMR0wGwYDVQQKExRBT0wgVGltZSBXYXJuZXIg
-SW5jLjEcMBoGA1UECxMTQW1lcmljYSBPbmxpbmUgSW5jLjE3MDUGA1UEAxMuQU9M
-IFRpbWUgV2FybmVyIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMjCCAiIw
-DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALQ3WggWmRToVbEbJGv8x4vmh6mJ
-7ouZzU9AhqS2TcnZsdw8TQ2FTBVsRotSeJ/4I/1n9SQ6aF3Q92RhQVSji6UI0ilb
-m2BPJoPRYxJWSXakFsKlnUWsi4SVqBax7J/qJBrvuVdcmiQhLE0OcR+mrF1FdAOY
-xFSMFkpBd4aVdQxHAWZg/BXxD+r1FHjHDtdugRxev17nOirYlxcwfACtCJ0zr7iZ
-YYCLqJV+FNwSbKTQ2O9ASQI2+W6p1h2WVgSysy0WVoaP2SBXgM1nEG2wTPDaRrbq
-JS5Gr42whTg0ixQmgiusrpkLjhTXUr2eacOGAgvqdnUxCc4zGSGFQ+aJLZ8lN2fx
-I2rSAG2X+Z/nKcrdH9cG6rjJuQkhn8g/BsXS6RJGAE57COtCPStIbp1n3UsC5ETz
-kxmlJ85per5n0/xQpCyrw2u544BMzwVhSyvcG7mm0tCq9Stz+86QNZ8MUhy/XCFh
-EVsVS6kkUfykXPcXnbDS+gfpj1bkGoxoigTTfFrjnqKhynFbotSg5ymFXQNoKk/S
-Btc9+cMDLz9l+WceR0DTYw/j1Y75hauXTLPXJuuWCpTehTacyH+BCQJJKg71ZDIM
-gtG6aoIbs0t0EfOMd9afv9w3pKdVBC/UMejTRrkDfNoSTllkt1ExMVCgyhwn2RAu
-rda9EGYrw7AiShJbAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE
-FE9pbQN+nZ8HGEO8txBO1b+pxCAoMB8GA1UdIwQYMBaAFE9pbQN+nZ8HGEO8txBO
-1b+pxCAoMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAgEAO/Ouyugu
-h4X7ZVnnrREUpVe8WJ8kEle7+z802u6teio0cnAxa8cZmIDJgt43d15Ui47y6mdP
-yXSEkVYJ1eV6moG2gcKtNuTxVBFT8zRFASbI5Rq8NEQh3q0l/HYWdyGQgJhXnU7q
-7C+qPBR7V8F+GBRn7iTGvboVsNIYvbdVgaxTwOjdaRITQrcCtQVBynlQboIOcXKT
-RuidDV29rs4prWPVVRaAMCf/drr3uNZK49m1+VLQTkCpx+XCMseqdiThawVQ68W/
-ClTluUI8JPu3B5wwn3la5uBAUhX0/Kr0VvlEl4ftDmVyXr4m+02kLQgH3thcoNyB
-M5kYJRF3p+v9WAksmWsbivNSPxpNSGDxoPYzAlOL7SUJuA0t7Zdz7NeWH45gDtoQ
-my8YJPamTQr5O8t1wswvziRpyQoijlmn94IM19drNZxDAGrElWe6nEXLuA4399xO
-AU++CrYD062KRffaJ00psUjf5BHklka9bAI+1lHIlRcBFanyqqryvy9lG2/QuRqT
-9Y41xICHPpQvZuTpqP9BnHAqTyo5GJUefvthATxRCC4oGKQWDzH9OmwjkyB24f0H
-hdFbP9IcczLd+rn4jM8Ch3qaluTtT4mNU0OrDhPAARW0eTjb/G49nlG2uBOLZ8/5
-fNkiHfZdxRwBL5joeiQYvITX+txyW/fBOmg=
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU
-MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs
-IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290
-MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux
-FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h
-bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v
-dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt
-H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9
-uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX
-mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX
-a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN
-E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0
-WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD
-VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0
-Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU
-cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx
-IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN
-AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH
-YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
-6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC
-Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX
-c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a
-mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIEGDCCAwCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJTRTEU
-MBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3
-b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwHhcNMDAwNTMw
-MTAzODMxWhcNMjAwNTMwMTAzODMxWjBlMQswCQYDVQQGEwJTRTEUMBIGA1UEChML
-QWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYD
-VQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUA
-A4IBDwAwggEKAoIBAQCWltQhSWDia+hBBwzexODcEyPNwTXH+9ZOEQpnXvUGW2ul
-CDtbKRY654eyNAbFvAWlA3yCyykQruGIgb3WntP+LVbBFc7jJp0VLhD7Bo8wBN6n
-tGO0/7Gcrjyvd7ZWxbWroulpOj0OM3kyP3CCkplhbY0wCI9xP6ZIVxn4JdxLZlyl
-dI+Yrsj5wAYi56xz36Uu+1LcsRVlIPo1Zmne3yzxbrww2ywkEtvrNTVokMsAsJch
-PXQhI2U0K7t4WaPW4XY5mqRJjox0r26kmqPZm9I4XJuiGMx1I4S+6+JNM3GOGvDC
-+Mcdoq0Dlyz4zyXG9rgkMbFjXZJ/Y/AlyVMuH79NAgMBAAGjgdIwgc8wHQYDVR0O
-BBYEFJWxtPCUtr3H2tERCSG+wa9J/RB7MAsGA1UdDwQEAwIBBjAPBgNVHRMBAf8E
-BTADAQH/MIGPBgNVHSMEgYcwgYSAFJWxtPCUtr3H2tERCSG+wa9J/RB7oWmkZzBl
-MQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFk
-ZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENB
-IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBACxtZBsfzQ3duQH6lmM0MkhHma6X
-7f1yFqZzR1r0693p9db7RcwpiURdv0Y5PejuvE1Uhh4dbOMXJ0PhiVYrqW9yTkkz
-43J8KiOavD7/KCrto/8cI7pDVwlnTUtiBi34/2ydYB7YHEt9tTEv2dB8Xfjea4MY
-eDdXL+gzB2ffHsdrKpV2ro9Xo/D0UrSpUwjP4E/TelOL/bscVjby/rK25Xa71SJl
-pz/+0WatC7xrmYbvP33zGDLKe8bjq2RGlfgmadlVg3sslgf/WSxEo8bl6ancoWOA
-WiFeIc9TVPC6b4nbqKqVz4vjccweGyBECMB6tkD9xOQ14R0WHNC8K47Wcdk=
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIEFTCCAv2gAwIBAgIBATANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJTRTEU
-MBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3
-b3JrMSAwHgYDVQQDExdBZGRUcnVzdCBQdWJsaWMgQ0EgUm9vdDAeFw0wMDA1MzAx
-MDQxNTBaFw0yMDA1MzAxMDQxNTBaMGQxCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtB
-ZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5ldHdvcmsxIDAeBgNV
-BAMTF0FkZFRydXN0IFB1YmxpYyBDQSBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOC
-AQ8AMIIBCgKCAQEA6Rowj4OIFMEg2Dybjxt+A3S72mnTRqX4jsIMEZBRpS9mVEBV
-6tsfSlbunyNu9DnLoblv8n75XYcmYZ4c+OLspoH4IcUkzBEMP9smcnrHAZcHF/nX
-GCwwfQ56HmIexkvA/X1id9NEHif2P0tEs7c42TkfYNVRknMDtABp4/MUTu7R3AnP
-dzRGULD4EfL+OHn3Bzn+UZKXC1sIXzSGAa2Il+tmzV7R/9x98oTaunet3IAIx6eH
-1lWfl2royBFkuucZKT8Rs3iQhCBSWxHveNCD9tVIkNAwHM+A+WD+eeSI8t0A65RF
-62WUaUC6wNW0uLp9BBGo6zEFlpROWCGOn9Bg/QIDAQABo4HRMIHOMB0GA1UdDgQW
-BBSBPjfYkrAfd59ctKtzquf2NGAv+jALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUw
-AwEB/zCBjgYDVR0jBIGGMIGDgBSBPjfYkrAfd59ctKtzquf2NGAv+qFopGYwZDEL
-MAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRU
-cnVzdCBUVFAgTmV0d29yazEgMB4GA1UEAxMXQWRkVHJ1c3QgUHVibGljIENBIFJv
-b3SCAQEwDQYJKoZIhvcNAQEFBQADggEBAAP3FUr4JNojVhaTdt02KLmuG7jD8WS6
-IBh4lSknVwW8fCr0uVFV2ocC3g8WFzH4qnkuCRO7r7IgGRLlk/lL+YPoRNWyQSW/
-iHVv/xD8SlTQX/D67zZzfRs2RcYhbbQVuE7PnFylPVoAjgbjPGsye/Kf8Lb93/Ao
-GEjwxrzQvzSAlsJKsW2Ox5BF3i9nrEUEo3rcVZLJR2bYGozH7ZxOmuASu7VqTITh
-4SINhwBk/ox9Yjllpu9CtoAlEmEBqCQTcAARJl/6NVDFSMwGR+gn2HCNX2TmoUQm
-XiLsks3/QppEIW1cxeMiHV9HEufOX1362KqxMy3ZdvJOOjMMK7MtkAY=
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIEHjCCAwagAwIBAgIBATANBgkqhkiG9w0BAQUFADBnMQswCQYDVQQGEwJTRTEU
-MBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRUUCBOZXR3
-b3JrMSMwIQYDVQQDExpBZGRUcnVzdCBRdWFsaWZpZWQgQ0EgUm9vdDAeFw0wMDA1
-MzAxMDQ0NTBaFw0yMDA1MzAxMDQ0NTBaMGcxCzAJBgNVBAYTAlNFMRQwEgYDVQQK
-EwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQIE5ldHdvcmsxIzAh
-BgNVBAMTGkFkZFRydXN0IFF1YWxpZmllZCBDQSBSb290MIIBIjANBgkqhkiG9w0B
-AQEFAAOCAQ8AMIIBCgKCAQEA5B6a/twJWoekn0e+EV+vhDTbYjx5eLfpMLXsDBwq
-xBb/4Oxx64r1EW7tTw2R0hIYLUkVAcKkIhPHEWT/IhKauY5cLwjPcWqzZwFZ8V1G
-87B4pfYOQnrjfxvM0PC3KP0q6p6zsLkEqv32x7SxuCqg+1jxGaBvcCV+PmlKfw8i
-2O+tCBGaKZnhqkRFmhJePp1tUvznoD1oL/BLcHwTOK28FSXx1s6rosAx1i+f4P8U
-WfyEk9mHfExUE+uf0S0R+Bg6Ot4l2ffTQO2kBhLEO+GRwVY18BTcZTYJbqukB8c1
-0cIDMzZbdSZtQvESa0NvS3GU+jQd7RNuyoB/mC9suWXY6QIDAQABo4HUMIHRMB0G
-A1UdDgQWBBQ5lYtii1zJ1IC6WA+XPxUIQ8yYpzALBgNVHQ8EBAMCAQYwDwYDVR0T
-AQH/BAUwAwEB/zCBkQYDVR0jBIGJMIGGgBQ5lYtii1zJ1IC6WA+XPxUIQ8yYp6Fr
-pGkwZzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQL
-ExRBZGRUcnVzdCBUVFAgTmV0d29yazEjMCEGA1UEAxMaQWRkVHJ1c3QgUXVhbGlm
-aWVkIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBABmrder4i2VhlRO6aQTv
-hsoToMeqT2QbPxj2qC0sVY8FtzDqQmodwCVRLae/DLPt7wh/bDxGGuoYQ992zPlm
-hpwsaPXpF/gxsxjE1kh9I0xowX67ARRvxdlu3rsEQmr49lx95dr6h+sNNVJn0J6X
-dgWTP5XHAeZpVTh/EGGZyeNfpso+gmNIquIISD6q8rKFYqa0p9m9N5xotS1WfbC3
-P6CxB9bpT9zeRXEwMn8bLgn5v1Kh7sKAPgZcLlVAwRv1cEWw3F369nJad9Jjzc9Y
-iQBCYz95OdBEsIJuQRno3eDBiFrRHnGTHyQwdOUeqN48Jzd/g66ed8/wMLH/S5no
-xqE=
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIDpDCCAoygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEc
-MBoGA1UEChMTQW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBP
-bmxpbmUgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAxMB4XDTAyMDUyODA2
-MDAwMFoXDTM3MTExOTIwNDMwMFowYzELMAkGA1UEBhMCVVMxHDAaBgNVBAoTE0Ft
-ZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2EgT25saW5lIFJvb3Qg
-Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMTCCASIwDQYJKoZIhvcNAQEBBQADggEP
-ADCCAQoCggEBAKgv6KRpBgNHw+kqmP8ZonCaxlCyfqXfaE0bfA+2l2h9LaaLl+lk
-hsmj76CGv2BlnEtUiMJIxUo5vxTjWVXlGbR0yLQFOVwWpeKVBeASrlmLojNoWBym
-1BW32J/X3HGrfpq/m44zDyL9Hy7nBzbvYjnF3cu6JRQj3gzGPTzOggjmZj7aUTsW
-OqMFf6Dch9Wc/HKpoH145LcxVR5lu9RhsCFg7RAycsWSJR74kEoYeEfffjA3PlAb
-2xzTa5qGUwew76wGePiEmf4hjUyAtgyC9mZweRrTT6PP8c9GsEsPPt2IYriMqQko
-O3rHl+Ee5fSfwMCuJKDIodkP1nsmgmkyPacCAwEAAaNjMGEwDwYDVR0TAQH/BAUw
-AwEB/zAdBgNVHQ4EFgQUAK3Zo/Z59m50qX8zPYEX10zPM94wHwYDVR0jBBgwFoAU
-AK3Zo/Z59m50qX8zPYEX10zPM94wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB
-BQUAA4IBAQB8itEfGDeC4Liwo+1WlchiYZwFos3CYiZhzRAW18y0ZTTQEYqtqKkF
-Zu90821fnZmv9ov761KyBZiibyrFVL0lvV+uyIbqRizBs73B6UlwGBaXCBOMIOAb
-LjpHyx7kADCVW/RFo8AasAFOq73AI25jP4BKxQft3OJvx8Fi8eNy1gTIdGcL+oir
-oQHIb/AUr9KZzVGTfu0uOMe9zkZQPXLjeSWdm4grECDdpbgyn43gKd8hdIaC2y+C
-MMbHNYaz+ZZfRtsMRf3zUMNvxsNIrUam4SdHCh0Om7bCd39j8uB9Gr784N/Xx6ds
-sPmuujz9dLQR6FgNgLzTqIA6me11zEZ7
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIFpDCCA4ygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEc
-MBoGA1UEChMTQW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1lcmljYSBP
-bmxpbmUgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAyMB4XDTAyMDUyODA2
-MDAwMFoXDTM3MDkyOTE0MDgwMFowYzELMAkGA1UEBhMCVVMxHDAaBgNVBAoTE0Ft
-ZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJpY2EgT25saW5lIFJvb3Qg
-Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIP
-ADCCAgoCggIBAMxBRR3pPU0Q9oyxQcngXssNt79Hc9PwVU3dxgz6sWYFas14tNwC
-206B89enfHG8dWOgXeMHDEjsJcQDIPT/DjsS/5uN4cbVG7RtIuOx238hZK+GvFci
-KtZHgVdEglZTvYYUAQv8f3SkWq7xuhG1m1hagLQ3eAkzfDJHA1zEpYNI9FdWboE2
-JxhP7JsowtS013wMPgwr38oE18aO6lhOqKSlGBxsRZijQdEt0sdtjRnxrXm3gT+9
-BoInLRBYBbV4Bbkv2wxrkJB+FFk4u5QkE+XRnRTf04JNRvCAOVIyD+OEsnpD8l7e
-Xz8d3eOyG6ChKiMDbi4BFYdcpnV1x5dhvt6G3NRI270qv0pV2uh9UPu0gBe4lL8B
-PeraunzgWGcXuVjgiIZGZ2ydEEdYMtA1fHkqkKJaEBEjNa0vzORKW6fIJ/KD3l67
-Xnfn6KVuY8INXWHQjNJsWiEOyiijzirplcdIz5ZvHZIlyMbGwcEMBawmxNJ10uEq
-Z8A9W6Wa6897GqidFEXlD6CaZd4vKL3Ob5Rmg0gp2OpljK+T2WSfVVcmv2/LNzGZ
-o2C7HK2JNDJiuEMhBnIMoVxtRsX6Kc8w3onccVvdtjc+31D1uAclJuW8tf48ArO3
-+L5DwYcRlJ4jbBeKuIonDFRH8KmzwICMoCfrHRnjB453cMor9H124HhnAgMBAAGj
-YzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFE1FwWg4u3OpaaEg5+31IqEj
-FNeeMB8GA1UdIwQYMBaAFE1FwWg4u3OpaaEg5+31IqEjFNeeMA4GA1UdDwEB/wQE
-AwIBhjANBgkqhkiG9w0BAQUFAAOCAgEAZ2sGuV9FOypLM7PmG2tZTiLMubekJcmn
-xPBUlgtk87FYT15R/LKXeydlwuXK5w0MJXti4/qftIe3RUavg6WXSIylvfEWK5t2
-LHo1YGwRgJfMqZJS5ivmae2p+DYtLHe/YUjRYwu5W1LtGLBDQiKmsXeu3mnFzccc
-obGlHBD7GL4acN3Bkku+KVqdPzW+5X1R+FXgJXUjhx5c3LqdsKyzadsXg8n33gy8
-CNyRnqjQ1xU3c6U1uPx+xURABsPr+CKAXEfOAuMRn0T//ZoyzH1kUQ7rVyZ2OuMe
-IjzCpjbdGe+n/BLzJsBZMYVMnNjP36TMzCmT/5RtdlwTCJfy7aULTd3oyWgOZtMA
-DjMSW7yV5TKQqLPGbIOtd+6Lfn6xqavT4fG2wLHqiMDn05DpKJKUe2h7lyoKZy2F
-AjgQ5ANh1NolNscIWC2hp1GvMApJ9aZphwctREZ2jirlmjvXGKL8nDgQzMY70rUX
-Om/9riW99XJZZLF0KjhfGEzfz3EEWjbUvy+ZnOjZurGV5gJLIaFb1cFPj65pbVPb
-AZO1XB4Y3WRayhgoPmMEEf0cjQAPuDffZ4qdZqkCapH/E8ovXYO8h5Ns3CRRFgQl
-Zvqz2cK6Kb6aSDiCmfS/O0oxGfm/jiEzFMpPVF/7zvuPcX/9XhmgD0uRuMRUvAaw
+MIIGCDCCA/CgAwIBAgIBATANBgkqhkiG9w0BAQQFADB5MRAwDgYDVQQKEwdSb290
+IENBMR4wHAYDVQQLExVodHRwOi8vd3d3LmNhY2VydC5vcmcxIjAgBgNVBAMTGUNB
+IENlcnQgU2lnbmluZyBBdXRob3JpdHkxITAfBgkqhkiG9w0BCQEWEnN1cHBvcnRA
+Y2FjZXJ0Lm9yZzAeFw0wNTEwMTQwNzM2NTVaFw0zMzAzMjgwNzM2NTVaMFQxFDAS
+BgNVBAoTC0NBY2VydCBJbmMuMR4wHAYDVQQLExVodHRwOi8vd3d3LkNBY2VydC5v
+cmcxHDAaBgNVBAMTE0NBY2VydCBDbGFzcyAzIFJvb3QwggIiMA0GCSqGSIb3DQEB
+AQUAA4ICDwAwggIKAoICAQCrSTURSHzSJn5TlM9Dqd0o10Iqi/OHeBlYfA+e2ol9
+4fvrcpANdKGWZKufoCSZc9riVXbHF3v1BKxGuMO+f2SNEGwk82GcwPKQ+lHm9WkB
+Y8MPVuJKQs/iRIwlKKjFeQl9RrmK8+nzNCkIReQcn8uUBByBqBSzmGXEQ+xOgo0J
+0b2qW42S0OzekMV/CsLj6+YxWl50PpczWejDAz1gM7/30W9HxM3uYoNSbi4ImqTZ
+FRiRpoWSR7CuSOtttyHshRpocjWr//AQXcD0lKdq1TuSfkyQBX6TwSyLpI5idBVx
+bgtxA+qvFTia1NIFcm+M+SvrWnIl+TlG43IbPgTDZCciECqKT1inA62+tC4T7V2q
+SNfVfdQqe1z6RgRQ5MwOQluM7dvyz/yWk+DbETZUYjQ4jwxgmzuXVjit89Jbi6Bb
+6k6WuHzX1aCGcEDTkSm3ojyt9Yy7zxqSiuQ0e8DYbF/pCsLDpyCaWt8sXVJcukfV
+m+8kKHA4IC/VfynAskEDaJLM4JzMl0tF7zoQCqtwOpiVcK01seqFK6QcgCExqa5g
+eoAmSAC4AcCTY1UikTxW56/bOiXzjzFU6iaLgVn5odFTEcV7nQP2dBHgbbEsPyyG
+kZlxmqZ3izRg0RS0LKydr4wQ05/EavhvE/xzWfdmQnQeiuP43NJvmJzLR5iVQAX7
+6QIDAQABo4G/MIG8MA8GA1UdEwEB/wQFMAMBAf8wXQYIKwYBBQUHAQEEUTBPMCMG
+CCsGAQUFBzABhhdodHRwOi8vb2NzcC5DQWNlcnQub3JnLzAoBggrBgEFBQcwAoYc
+aHR0cDovL3d3dy5DQWNlcnQub3JnL2NhLmNydDBKBgNVHSAEQzBBMD8GCCsGAQQB
+gZBKMDMwMQYIKwYBBQUHAgEWJWh0dHA6Ly93d3cuQ0FjZXJ0Lm9yZy9pbmRleC5w
+aHA/aWQ9MTAwDQYJKoZIhvcNAQEEBQADggIBAH8IiKHaGlBJ2on7oQhy84r3HsQ6
+tHlbIDCxRd7CXdNlafHCXVRUPIVfuXtCkcKZ/RtRm6tGpaEQU55tiKxzbiwzpvD0
+nuB1wT6IRanhZkP+VlrRekF490DaSjrxC1uluxYG5sLnk7mFTZdPsR44Q4Dvmw2M
+77inYACHV30eRBzLI++bPJmdr7UpHEV5FpZNJ23xHGzDwlVks7wU4vOkHx4y/CcV
+Bc/dLq4+gmF78CEQGPZE6lM5+dzQmiDgxrvgu1pPxJnIB721vaLbLmINQjRBvP+L
+ivVRIqqIMADisNS8vmW61QNXeZvo3MhN+FDtkaVSKKKs+zZYPumUK5FQhxvWXtaM
+zPcPEAxSTtAWYeXlCmy/F8dyRlecmPVsYGN6b165Ti/Iubm7aoW8mA3t+T6XhDSU
+rgCvoeXnkm5OvfPi2RSLXNLrAWygF6UtEOucekq9ve7O/e0iQKtwOIj1CodqwqsF
+YMlIBdpTwd5Ed2qz8zw87YC8pjhKKSRf/lk7myV6VmMAZLldpGJ9VzZPrYPvH5JT
+oI53V93lYRE9IwCQTDz6o2CTBKOvNfYOao9PSmCnhQVsRqGP9Md246FZV/dxssRu
+FFxtbUFm3xuTsdQAw+7Lzzw9IYCpX2Nl/N3gX6T0K/CFcUHUZyX7GrGXrtaZghNB
+0m6lG5kngOcLqagA
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHPTCCBSWgAwIBAgIBADANBgkqhkiG9w0BAQQFADB5MRAwDgYDVQQKEwdSb290
+IENBMR4wHAYDVQQLExVodHRwOi8vd3d3LmNhY2VydC5vcmcxIjAgBgNVBAMTGUNB
+IENlcnQgU2lnbmluZyBBdXRob3JpdHkxITAfBgkqhkiG9w0BCQEWEnN1cHBvcnRA
+Y2FjZXJ0Lm9yZzAeFw0wMzAzMzAxMjI5NDlaFw0zMzAzMjkxMjI5NDlaMHkxEDAO
+BgNVBAoTB1Jvb3QgQ0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEi
+MCAGA1UEAxMZQ0EgQ2VydCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJ
+ARYSc3VwcG9ydEBjYWNlcnQub3JnMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
+CgKCAgEAziLA4kZ97DYoB1CW8qAzQIxL8TtmPzHlawI229Z89vGIj053NgVBlfkJ
+8BLPRoZzYLdufujAWGSuzbCtRRcMY/pnCujW0r8+55jE8Ez64AO7NV1sId6eINm6
+zWYyN3L69wj1x81YyY7nDl7qPv4coRQKFWyGhFtkZip6qUtTefWIonvuLwphK42y
+fk1WpRPs6tqSnqxEQR5YYGUFZvjARL3LlPdCfgv3ZWiYUQXw8wWRBB0bF4LsyFe7
+w2t6iPGwcswlWyCR7BYCEo8y6RcYSNDHBS4CMEK4JZwFaz+qOqfrU0j36NK2B5jc
+G8Y0f3/JHIJ6BVgrCFvzOKKrF11myZjXnhCLotLddJr3cQxyYN/Nb5gznZY0dj4k
+epKwDpUeb+agRThHqtdB7Uq3EvbXG4OKDy7YCbZZ16oE/9KTfWgu3YtLq1i6L43q
+laegw1SJpfvbi1EinbLDvhG+LJGGi5Z4rSDTii8aP8bQUWWHIbEZAWV/RRyH9XzQ
+QUxPKZgh/TMfdQwEUfoZd9vUFBzugcMd9Zi3aQaRIt0AUMyBMawSB3s42mhb5ivU
+fslfrejrckzzAeVLIL+aplfKkQABi6F1ITe1Yw1nPkZPcCBnzsXWWdsC4PDSy826
+YreQQejdIOQpvGQpQsgi3Hia/0PsmBsJUUtaWsJx8cTLc6nloQsCAwEAAaOCAc4w
+ggHKMB0GA1UdDgQWBBQWtTIb1Mfz4OaO873SsDrusjkY0TCBowYDVR0jBIGbMIGY
+gBQWtTIb1Mfz4OaO873SsDrusjkY0aF9pHsweTEQMA4GA1UEChMHUm9vdCBDQTEe
+MBwGA1UECxMVaHR0cDovL3d3dy5jYWNlcnQub3JnMSIwIAYDVQQDExlDQSBDZXJ0
+IFNpZ25pbmcgQXV0aG9yaXR5MSEwHwYJKoZIhvcNAQkBFhJzdXBwb3J0QGNhY2Vy
+dC5vcmeCAQAwDwYDVR0TAQH/BAUwAwEB/zAyBgNVHR8EKzApMCegJaAjhiFodHRw
+czovL3d3dy5jYWNlcnQub3JnL3Jldm9rZS5jcmwwMAYJYIZIAYb4QgEEBCMWIWh0
+dHBzOi8vd3d3LmNhY2VydC5vcmcvcmV2b2tlLmNybDA0BglghkgBhvhCAQgEJxYl
+aHR0cDovL3d3dy5jYWNlcnQub3JnL2luZGV4LnBocD9pZD0xMDBWBglghkgBhvhC
+AQ0ESRZHVG8gZ2V0IHlvdXIgb3duIGNlcnRpZmljYXRlIGZvciBGUkVFIGhlYWQg
+b3ZlciB0byBodHRwOi8vd3d3LmNhY2VydC5vcmcwDQYJKoZIhvcNAQEEBQADggIB
+ACjH7pyCArpcgBLKNQodgW+JapnM8mgPf6fhjViVPr3yBsOQWqy1YPaZQwGjiHCc
+nWKdpIevZ1gNMDY75q1I08t0AoZxPuIrA2jxNGJARjtT6ij0rPtmlVOKTV39O9lg
+18p5aTuxZZKmxoGCXJzN600BiqXfEVWqFcofN8CCmHBh22p8lqOOLlQ+TyGpkO/c
+gr/c6EWtTZBzCDyUZbAEmXZ/4rzCahWqlwQ3JNgelE5tDlG+1sSPypZt90Pf6DBl
+Jzt7u0NDY8RD97LsaMzhGY4i+5jhe1o+ATc7iwiwovOVThrLm82asduycPAtStvY
+sONvRUgzEv/+PDIqVPfE94rwiCPCR/5kenHA0R6mY7AHfqQv0wGP3J8rtsYIqQ+T
+SCX8Ev2fQtzzxD72V7DX3WnRBnc0CkvSyqD/HMaMyRa+xMwyN2hzXwj7UfdJUzYF
+CpUCTPJ5GhD22Dp1nPMd8aINcGeGG7MW9S/lpOt5hvk9C8JzC6WZrG/8Z7jlLwum
+GCSNe9FINSkYQKyTYOGWhlC0elnYjyELn8+CkcY7v2vcB5G5l1YjqrZslMZIBjzk
+zk6q5PYvCdxTby78dOs6Y5nCpqyJvKeyRKANihDjbPIky/qbn3BHLt4Ui9SyIAmW
+omTxJBzcoTWcFbLUvFUufQb1nA5V9FrWk9p2rSVzTMVD
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIESzCCAzOgAwIBAgIJAJigUTEEXRQpMA0GCSqGSIb3DQEBBQUAMHYxCzAJBgNV
+BAYTAkRFMQ8wDQYDVQQIEwZIZXNzZW4xDjAMBgNVBAcTBUZ1bGRhMRAwDgYDVQQK
+EwdEZWJjb25mMRMwEQYDVQQDEwpEZWJjb25mIENBMR8wHQYJKoZIhvcNAQkBFhBq
+b2VyZ0BkZWJpYW4ub3JnMB4XDTA1MTEwNTE3NTUxNFoXDTE1MTEwMzE3NTUxNFow
+djELMAkGA1UEBhMCREUxDzANBgNVBAgTBkhlc3NlbjEOMAwGA1UEBxMFRnVsZGEx
+EDAOBgNVBAoTB0RlYmNvbmYxEzARBgNVBAMTCkRlYmNvbmYgQ0ExHzAdBgkqhkiG
+9w0BCQEWEGpvZXJnQGRlYmlhbi5vcmcwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw
+ggEKAoIBAQCvbOo0SrIwI5IMlsshH8WF3dHB9r9JlSKhMPaybawa1EyvZspMQ3wa
+F5qxNf3Sj+NElEmjseEqvCZiIIzqwerHu0Qw62cDYCdCd2+Wb5m0bPYB5CGHiyU1
+eNP0je42O0YeXG2BvUujN8AviocVo39X2YwNQ0ryy4OaqYgm2pRlbtT2ESbF+SfV
+Y2iqQj/f8ymF+lHo/pz8tbAqxWcqaSiHFAVQJrdqtFhtoodoNiE3q76zJoUkZTXB
+k60Yc3MJSnatZCpnsSBr/D7zpntl0THrUjjtdRWCjQVhqfhM1yZJV+ApbLdheFh0
+ZWlSxdnp25p0q0XYw/7G92ELyFDfBUUNAgMBAAGjgdswgdgwHQYDVR0OBBYEFMuV
+dFNb4mCWUFbcP5LOtxFLrEVTMIGoBgNVHSMEgaAwgZ2AFMuVdFNb4mCWUFbcP5LO
+txFLrEVToXqkeDB2MQswCQYDVQQGEwJERTEPMA0GA1UECBMGSGVzc2VuMQ4wDAYD
+VQQHEwVGdWxkYTEQMA4GA1UEChMHRGViY29uZjETMBEGA1UEAxMKRGViY29uZiBD
+QTEfMB0GCSqGSIb3DQEJARYQam9lcmdAZGViaWFuLm9yZ4IJAJigUTEEXRQpMAwG
+A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAGZXxHg4mnkvilRIM1EQfGdY
+S5b/WcyF2MYSTeTvK4aIB6VHwpZoZCnDGj2m2D3CkHT0upAD9o0zM1tdsfncLzV+
+mDT/jNmBtYo4QXx5vEPwvEIcgrWjwk7SyaEUhZjtolTkHB7ACl0oD0r71St4iEPR
+qTUCEXk2E47bg1Fz58wNt/yo2+4iqiRjg1XCH4evkQuhpW+dTZnDyFNqwSYZapOE
+TBA+9zBb6xD1KM2DdY7r4GiyYItN0BKLfuWbh9LXGbl1C+f4P11g+m2MPiavIeCe
+1iazG5pcS3KoTLACsYlEX24TINtg4kcuS81XdllcnsV3Kdts0nIqPj6uhTTZD0k=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDtTCCAp2gAwIBAgIRANAeQJAAAEZSAAAAAQAAAAQwDQYJKoZIhvcNAQEF
+BQAwgYkxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJEQzETMBEGA1UEBxMKV2Fz
+aGluZ3RvbjEXMBUGA1UEChMOQUJBLkVDT00sIElOQy4xGTAXBgNVBAMTEEFC
+QS5FQ09NIFJvb3QgQ0ExJDAiBgkqhkiG9w0BCQEWFWFkbWluQGRpZ3NpZ3Ry
+dXN0LmNvbTAeFw05OTA3MTIxNzMzNTNaFw0wOTA3MDkxNzMzNTNaMIGJMQsw
+CQYDVQQGEwJVUzELMAkGA1UECBMCREMxEzARBgNVBAcTCldhc2hpbmd0b24x
+FzAVBgNVBAoTDkFCQS5FQ09NLCBJTkMuMRkwFwYDVQQDExBBQkEuRUNPTSBS
+b290IENBMSQwIgYJKoZIhvcNAQkBFhVhZG1pbkBkaWdzaWd0cnVzdC5jb20w
+ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCx0xHgeVVDBwhMywVC
+AOINg0Y95JO6tgbTDVm9PsHOQ2cBiiGo77zM0KLMsFWWU4RmBQDaREmA2FQK
+pSWGlO1jVv9wbKOhGdJ4vmgqRF4vz8wYXke8OrFGPR7wuSw0X4x8TAgpnUBV
+6zx9g9618PeKgw6hTLQ6pbNfWiKX7BmbwQVo/ea3qZGULOR4SCQaJRk665Wc
+OQqKz0Ky8BzVX/tr7WhWezkscjiw7pOp03t3POtxA6k4ShZsiSrK2jMTecJV
+jO2cu/LLWxD4LmE1xilMKtAqY9FlWbT4zfn0AIS2V0KFnTKo+SpU+/94Qby9
+cSj0u5C8/5Y0BONFnqFGKECBAgMBAAGjFjAUMBIGA1UdEwEB/wQIMAYBAf8C
+AQgwDQYJKoZIhvcNAQEFBQADggEBAARvJYbk5pYntNlCwNDJALF/VD6Hsm0k
+qS8Kfv2kRLD4VAe9G52dyntQJHsRW0mjpr8SdNWJt7cvmGQlFLdh6X9ggGvT
+ZOirvRrWUfrAtF13Gn9kCF55xgVM8XrdTX3O5kh7VNJhkoHWG9YA8A6eKHeg
+TYjHInYZw8eeG6Z3ePhfm1bR8PIXrI6dWeYf/le22V7hXZ9F7GFoGUHhsiAm
+/lowdiT/QHI8eZ98IkirRs3bs4Ysj78FQdPB4xTjQRcm0HyncUwZ6EoPclgx
+fexgeqMiKL0ZJGA/O4dzwGvky663qyVDslUte6sGDnVdNOVdc22esnVApVnJ
+TzFxiNmIf1Q=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJT
+RTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4
+dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5h
+bCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzEL
+MAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1B
+ZGRUcnVzdCBFeHRlcm5hbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1
+c3QgRXh0ZXJuYWwgQ0EgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
+AQoCggEBALf3GjPm8gAELTngTlvtH7xsD821+iO2zt6bETOXpClMfZOfvUq8
+k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9uMq/NzgtHj6RQa1wVsfwTz/oMp50
+ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzXmk6vBbOmcZSccbNQYArHE504
+B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LXa0Tkx63ubUFfclpxCDez
+eWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzNE0S3ySvdQwAl+mG5
+aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0WicCAwEAAaOB
+3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYDVR0PBAQD
+AgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0Jvf6
+xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU
+cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdv
+cmsxIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJ
+KoZIhvcNAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZl
+j7DYd7usQWxHYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5R
+xNKWt9x+Tu5w/Rw56wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjT
+K3rMUUKhemPR5ruhxSvCNr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1
+n6diIWgVIEM8med8vSTYqZEXc4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHx
+REzGBHNJdmAPx/i9F4BrLunMTA5amnkPIAou1Z5jJh5VkpTYghdae9C8x49O
+hgQ=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEGDCCAwCgAwIBAgIBATANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQGEwJT
+RTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRU
+UCBOZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3Qw
+HhcNMDAwNTMwMTAzODMxWhcNMjAwNTMwMTAzODMxWjBlMQswCQYDVQQGEwJT
+RTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRU
+UCBOZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAxIENBIFJvb3Qw
+ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCWltQhSWDia+hBBwze
+xODcEyPNwTXH+9ZOEQpnXvUGW2ulCDtbKRY654eyNAbFvAWlA3yCyykQruGI
+gb3WntP+LVbBFc7jJp0VLhD7Bo8wBN6ntGO0/7Gcrjyvd7ZWxbWroulpOj0O
+M3kyP3CCkplhbY0wCI9xP6ZIVxn4JdxLZlyldI+Yrsj5wAYi56xz36Uu+1Lc
+sRVlIPo1Zmne3yzxbrww2ywkEtvrNTVokMsAsJchPXQhI2U0K7t4WaPW4XY5
+mqRJjox0r26kmqPZm9I4XJuiGMx1I4S+6+JNM3GOGvDC+Mcdoq0Dlyz4zyXG
+9rgkMbFjXZJ/Y/AlyVMuH79NAgMBAAGjgdIwgc8wHQYDVR0OBBYEFJWxtPCU
+tr3H2tERCSG+wa9J/RB7MAsGA1UdDwQEAwIBBjAPBgNVHRMBAf8EBTADAQH/
+MIGPBgNVHSMEgYcwgYSAFJWxtPCUtr3H2tERCSG+wa9J/RB7oWmkZzBlMQsw
+CQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFk
+ZFRydXN0IFRUUCBOZXR3b3JrMSEwHwYDVQQDExhBZGRUcnVzdCBDbGFzcyAx
+IENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBACxtZBsfzQ3duQH6lmM0
+MkhHma6X7f1yFqZzR1r0693p9db7RcwpiURdv0Y5PejuvE1Uhh4dbOMXJ0Ph
+iVYrqW9yTkkz43J8KiOavD7/KCrto/8cI7pDVwlnTUtiBi34/2ydYB7YHEt9
+tTEv2dB8Xfjea4MYeDdXL+gzB2ffHsdrKpV2ro9Xo/D0UrSpUwjP4E/TelOL
+/bscVjby/rK25Xa71SJlpz/+0WatC7xrmYbvP33zGDLKe8bjq2RGlfgmadlV
+g3sslgf/WSxEo8bl6ancoWOAWiFeIc9TVPC6b4nbqKqVz4vjccweGyBECMB6
+tkD9xOQ14R0WHNC8K47Wcdk=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEFTCCAv2gAwIBAgIBATANBgkqhkiG9w0BAQUFADBkMQswCQYDVQQGEwJT
+RTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRU
+UCBOZXR3b3JrMSAwHgYDVQQDExdBZGRUcnVzdCBQdWJsaWMgQ0EgUm9vdDAe
+Fw0wMDA1MzAxMDQxNTBaFw0yMDA1MzAxMDQxNTBaMGQxCzAJBgNVBAYTAlNF
+MRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3QgVFRQ
+IE5ldHdvcmsxIDAeBgNVBAMTF0FkZFRydXN0IFB1YmxpYyBDQSBSb290MIIB
+IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6Rowj4OIFMEg2Dybjxt+
+A3S72mnTRqX4jsIMEZBRpS9mVEBV6tsfSlbunyNu9DnLoblv8n75XYcmYZ4c
++OLspoH4IcUkzBEMP9smcnrHAZcHF/nXGCwwfQ56HmIexkvA/X1id9NEHif2
+P0tEs7c42TkfYNVRknMDtABp4/MUTu7R3AnPdzRGULD4EfL+OHn3Bzn+UZKX
+C1sIXzSGAa2Il+tmzV7R/9x98oTaunet3IAIx6eH1lWfl2royBFkuucZKT8R
+s3iQhCBSWxHveNCD9tVIkNAwHM+A+WD+eeSI8t0A65RF62WUaUC6wNW0uLp9
+BBGo6zEFlpROWCGOn9Bg/QIDAQABo4HRMIHOMB0GA1UdDgQWBBSBPjfYkrAf
+d59ctKtzquf2NGAv+jALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zCB
+jgYDVR0jBIGGMIGDgBSBPjfYkrAfd59ctKtzquf2NGAv+qFopGYwZDELMAkG
+A1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQLExRBZGRU
+cnVzdCBUVFAgTmV0d29yazEgMB4GA1UEAxMXQWRkVHJ1c3QgUHVibGljIENB
+IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBAAP3FUr4JNojVhaTdt02KLmu
+G7jD8WS6IBh4lSknVwW8fCr0uVFV2ocC3g8WFzH4qnkuCRO7r7IgGRLlk/lL
++YPoRNWyQSW/iHVv/xD8SlTQX/D67zZzfRs2RcYhbbQVuE7PnFylPVoAjgbj
+PGsye/Kf8Lb93/AoGEjwxrzQvzSAlsJKsW2Ox5BF3i9nrEUEo3rcVZLJR2bY
+GozH7ZxOmuASu7VqTITh4SINhwBk/ox9Yjllpu9CtoAlEmEBqCQTcAARJl/6
+NVDFSMwGR+gn2HCNX2TmoUQmXiLsks3/QppEIW1cxeMiHV9HEufOX1362Kqx
+My3ZdvJOOjMMK7MtkAY=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEHjCCAwagAwIBAgIBATANBgkqhkiG9w0BAQUFADBnMQswCQYDVQQGEwJT
+RTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxHTAbBgNVBAsTFEFkZFRydXN0IFRU
+UCBOZXR3b3JrMSMwIQYDVQQDExpBZGRUcnVzdCBRdWFsaWZpZWQgQ0EgUm9v
+dDAeFw0wMDA1MzAxMDQ0NTBaFw0yMDA1MzAxMDQ0NTBaMGcxCzAJBgNVBAYT
+AlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEdMBsGA1UECxMUQWRkVHJ1c3Qg
+VFRQIE5ldHdvcmsxIzAhBgNVBAMTGkFkZFRydXN0IFF1YWxpZmllZCBDQSBS
+b290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA5B6a/twJWoek
+n0e+EV+vhDTbYjx5eLfpMLXsDBwqxBb/4Oxx64r1EW7tTw2R0hIYLUkVAcKk
+IhPHEWT/IhKauY5cLwjPcWqzZwFZ8V1G87B4pfYOQnrjfxvM0PC3KP0q6p6z
+sLkEqv32x7SxuCqg+1jxGaBvcCV+PmlKfw8i2O+tCBGaKZnhqkRFmhJePp1t
+UvznoD1oL/BLcHwTOK28FSXx1s6rosAx1i+f4P8UWfyEk9mHfExUE+uf0S0R
++Bg6Ot4l2ffTQO2kBhLEO+GRwVY18BTcZTYJbqukB8c10cIDMzZbdSZtQvES
+a0NvS3GU+jQd7RNuyoB/mC9suWXY6QIDAQABo4HUMIHRMB0GA1UdDgQWBBQ5
+lYtii1zJ1IC6WA+XPxUIQ8yYpzALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUw
+AwEB/zCBkQYDVR0jBIGJMIGGgBQ5lYtii1zJ1IC6WA+XPxUIQ8yYp6FrpGkw
+ZzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMR0wGwYDVQQL
+ExRBZGRUcnVzdCBUVFAgTmV0d29yazEjMCEGA1UEAxMaQWRkVHJ1c3QgUXVh
+bGlmaWVkIENBIFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBABmrder4i2Vh
+lRO6aQTvhsoToMeqT2QbPxj2qC0sVY8FtzDqQmodwCVRLae/DLPt7wh/bDxG
+GuoYQ992zPlmhpwsaPXpF/gxsxjE1kh9I0xowX67ARRvxdlu3rsEQmr49lx9
+5dr6h+sNNVJn0J6XdgWTP5XHAeZpVTh/EGGZyeNfpso+gmNIquIISD6q8rKF
+Yqa0p9m9N5xotS1WfbC3P6CxB9bpT9zeRXEwMn8bLgn5v1Kh7sKAPgZcLlVA
+wRv1cEWw3F369nJad9Jjzc9YiQBCYz95OdBEsIJuQRno3eDBiFrRHnGTHyQw
+dOUeqN48Jzd/g66ed8/wMLH/S5noxqE=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDpDCCAoygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJV
+UzEcMBoGA1UEChMTQW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1l
+cmljYSBPbmxpbmUgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAxMB4X
+DTAyMDUyODA2MDAwMFoXDTM3MTExOTIwNDMwMFowYzELMAkGA1UEBhMCVVMx
+HDAaBgNVBAoTE0FtZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJp
+Y2EgT25saW5lIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMTCCASIw
+DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKgv6KRpBgNHw+kqmP8ZonCa
+xlCyfqXfaE0bfA+2l2h9LaaLl+lkhsmj76CGv2BlnEtUiMJIxUo5vxTjWVXl
+GbR0yLQFOVwWpeKVBeASrlmLojNoWBym1BW32J/X3HGrfpq/m44zDyL9Hy7n
+BzbvYjnF3cu6JRQj3gzGPTzOggjmZj7aUTsWOqMFf6Dch9Wc/HKpoH145Lcx
+VR5lu9RhsCFg7RAycsWSJR74kEoYeEfffjA3PlAb2xzTa5qGUwew76wGePiE
+mf4hjUyAtgyC9mZweRrTT6PP8c9GsEsPPt2IYriMqQkoO3rHl+Ee5fSfwMCu
+JKDIodkP1nsmgmkyPacCAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAdBgNV
+HQ4EFgQUAK3Zo/Z59m50qX8zPYEX10zPM94wHwYDVR0jBBgwFoAUAK3Zo/Z5
+9m50qX8zPYEX10zPM94wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBBQUA
+A4IBAQB8itEfGDeC4Liwo+1WlchiYZwFos3CYiZhzRAW18y0ZTTQEYqtqKkF
+Zu90821fnZmv9ov761KyBZiibyrFVL0lvV+uyIbqRizBs73B6UlwGBaXCBOM
+IOAbLjpHyx7kADCVW/RFo8AasAFOq73AI25jP4BKxQft3OJvx8Fi8eNy1gTI
+dGcL+oiroQHIb/AUr9KZzVGTfu0uOMe9zkZQPXLjeSWdm4grECDdpbgyn43g
+Kd8hdIaC2y+CMMbHNYaz+ZZfRtsMRf3zUMNvxsNIrUam4SdHCh0Om7bCd39j
+8uB9Gr784N/Xx6dssPmuujz9dLQR6FgNgLzTqIA6me11zEZ7
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFpDCCA4ygAwIBAgIBATANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJV
+UzEcMBoGA1UEChMTQW1lcmljYSBPbmxpbmUgSW5jLjE2MDQGA1UEAxMtQW1l
+cmljYSBPbmxpbmUgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAyMB4X
+DTAyMDUyODA2MDAwMFoXDTM3MDkyOTE0MDgwMFowYzELMAkGA1UEBhMCVVMx
+HDAaBgNVBAoTE0FtZXJpY2EgT25saW5lIEluYy4xNjA0BgNVBAMTLUFtZXJp
+Y2EgT25saW5lIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgMjCCAiIw
+DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMxBRR3pPU0Q9oyxQcngXssN
+t79Hc9PwVU3dxgz6sWYFas14tNwC206B89enfHG8dWOgXeMHDEjsJcQDIPT/
+DjsS/5uN4cbVG7RtIuOx238hZK+GvFciKtZHgVdEglZTvYYUAQv8f3SkWq7x
+uhG1m1hagLQ3eAkzfDJHA1zEpYNI9FdWboE2JxhP7JsowtS013wMPgwr38oE
+18aO6lhOqKSlGBxsRZijQdEt0sdtjRnxrXm3gT+9BoInLRBYBbV4Bbkv2wxr
+kJB+FFk4u5QkE+XRnRTf04JNRvCAOVIyD+OEsnpD8l7eXz8d3eOyG6ChKiMD
+bi4BFYdcpnV1x5dhvt6G3NRI270qv0pV2uh9UPu0gBe4lL8BPeraunzgWGcX
+uVjgiIZGZ2ydEEdYMtA1fHkqkKJaEBEjNa0vzORKW6fIJ/KD3l67Xnfn6KVu
+Y8INXWHQjNJsWiEOyiijzirplcdIz5ZvHZIlyMbGwcEMBawmxNJ10uEqZ8A9
+W6Wa6897GqidFEXlD6CaZd4vKL3Ob5Rmg0gp2OpljK+T2WSfVVcmv2/LNzGZ
+o2C7HK2JNDJiuEMhBnIMoVxtRsX6Kc8w3onccVvdtjc+31D1uAclJuW8tf48
+ArO3+L5DwYcRlJ4jbBeKuIonDFRH8KmzwICMoCfrHRnjB453cMor9H124Hhn
+AgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFE1FwWg4u3Op
+aaEg5+31IqEjFNeeMB8GA1UdIwQYMBaAFE1FwWg4u3OpaaEg5+31IqEjFNee
+MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAgEAZ2sGuV9FOypL
+M7PmG2tZTiLMubekJcmnxPBUlgtk87FYT15R/LKXeydlwuXK5w0MJXti4/qf
+tIe3RUavg6WXSIylvfEWK5t2LHo1YGwRgJfMqZJS5ivmae2p+DYtLHe/YUjR
+Ywu5W1LtGLBDQiKmsXeu3mnFzcccobGlHBD7GL4acN3Bkku+KVqdPzW+5X1R
++FXgJXUjhx5c3LqdsKyzadsXg8n33gy8CNyRnqjQ1xU3c6U1uPx+xURABsPr
++CKAXEfOAuMRn0T//ZoyzH1kUQ7rVyZ2OuMeIjzCpjbdGe+n/BLzJsBZMYVM
+nNjP36TMzCmT/5RtdlwTCJfy7aULTd3oyWgOZtMADjMSW7yV5TKQqLPGbIOt
+d+6Lfn6xqavT4fG2wLHqiMDn05DpKJKUe2h7lyoKZy2FAjgQ5ANh1NolNscI
+WC2hp1GvMApJ9aZphwctREZ2jirlmjvXGKL8nDgQzMY70rUXOm/9riW99XJZ
+ZLF0KjhfGEzfz3EEWjbUvy+ZnOjZurGV5gJLIaFb1cFPj65pbVPbAZO1XB4Y
+3WRayhgoPmMEEf0cjQAPuDffZ4qdZqkCapH/E8ovXYO8h5Ns3CRRFgQlZvqz
+2cK6Kb6aSDiCmfS/O0oxGfm/jiEzFMpPVF/7zvuPcX/9XhmgD0uRuMRUvAaw
RY8mkaKO/qk=
-----END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJ
-RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD
-VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoX
-DTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMCSUUxEjAQBgNVBAoTCUJhbHRpbW9y
-ZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFsdGltb3JlIEN5YmVy
-VHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKMEuyKr
-mD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjr
-IZ3AQSsBUnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeK
-mpYcqWe4PwzV9/lSEy/CG9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSu
-XmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9XbIGevOF6uvUA65ehD5f/xXtabz5OTZy
-dc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjprl3RjM71oGDHweI12v/ye
-jl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoIVDaGezq1
-BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3
-DQEBBQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT92
-9hkTI7gQCvlYpNRhcL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3Wgx
-jkzSswF07r51XgdIGn9w/xZchMB5hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0
-Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsaY71k5h+3zvDyny67G7fyUIhz
-ksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9HRCwBXbsdtTLS
-R9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
------END CERTIFICATE-----
-
-----BEGIN CERTIFICATE-----
-MIIDKTCCApKgAwIBAgIENnAVljANBgkqhkiG9w0BAQUFADBGMQswCQYDVQQGEwJV
-UzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMREwDwYDVQQL
-EwhEU1RDQSBFMTAeFw05ODEyMTAxODEwMjNaFw0xODEyMTAxODQwMjNaMEYxCzAJ
-BgNVBAYTAlVTMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4x
-ETAPBgNVBAsTCERTVENBIEUxMIGdMA0GCSqGSIb3DQEBAQUAA4GLADCBhwKBgQCg
-bIGpzzQeJN3+hijM3oMv+V7UQtLodGBmE5gGHKlREmlvMVW5SXIACH7TpWJENySZ
-j9mDSI+ZbZUTu0M7LklOiDfBu1h//uG9+LthzfNHwJmm8fOR6Hh8AMthyUQncWlV
-Sn5JTe2io74CTADKAqjuAQIxZA9SLRN0dja1erQtcQIBA6OCASQwggEgMBEGCWCG
-SAGG+EIBAQQEAwIABzBoBgNVHR8EYTBfMF2gW6BZpFcwVTELMAkGA1UEBhMCVVMx
-JDAiBgNVBAoTG0RpZ2l0YWwgU2lnbmF0dXJlIFRydXN0IENvLjERMA8GA1UECxMI
-RFNUQ0EgRTExDTALBgNVBAMTBENSTDEwKwYDVR0QBCQwIoAPMTk5ODEyMTAxODEw
-MjNagQ8yMDE4MTIxMDE4MTAyM1owCwYDVR0PBAQDAgEGMB8GA1UdIwQYMBaAFGp5
-fpFpRhgTCgJ3pVlbYJglDqL4MB0GA1UdDgQWBBRqeX6RaUYYEwoCd6VZW2CYJQ6i
-+DAMBgNVHRMEBTADAQH/MBkGCSqGSIb2fQdBAAQMMAobBFY0LjADAgSQMA0GCSqG
-SIb3DQEBBQUAA4GBACIS2Hod3IEGtgllsofIH160L+nEHvI8wbsEkBFKg05+k7lN
-QseSJqBcNJo4cvj9axY+IO6CizEqkzaFI4iKPANo08kJD038bKTaKHKTDomAsH3+
-gG9lbRgzl4vCa4nuYD3Im+9/KzJic5PLPON74nZ4RbyhkwS7hp86W0N6w4pl
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIID2DCCAsACEQDQHkCLAAACfAAAAAIAAAABMA0GCSqGSIb3DQEBBQUAMIGpMQsw
-CQYDVQQGEwJ1czENMAsGA1UECBMEVXRhaDEXMBUGA1UEBxMOU2FsdCBMYWtlIENp
-dHkxJDAiBgNVBAoTG0RpZ2l0YWwgU2lnbmF0dXJlIFRydXN0IENvLjERMA8GA1UE
-CxMIRFNUQ0EgWDExFjAUBgNVBAMTDURTVCBSb290Q0EgWDExITAfBgkqhkiG9w0B
-CQEWEmNhQGRpZ3NpZ3RydXN0LmNvbTAeFw05ODEyMDExODE4NTVaFw0wODExMjgx
-ODE4NTVaMIGpMQswCQYDVQQGEwJ1czENMAsGA1UECBMEVXRhaDEXMBUGA1UEBxMO
-U2FsdCBMYWtlIENpdHkxJDAiBgNVBAoTG0RpZ2l0YWwgU2lnbmF0dXJlIFRydXN0
-IENvLjERMA8GA1UECxMIRFNUQ0EgWDExFjAUBgNVBAMTDURTVCBSb290Q0EgWDEx
-ITAfBgkqhkiG9w0BCQEWEmNhQGRpZ3NpZ3RydXN0LmNvbTCCASIwDQYJKoZIhvcN
-AQEBBQADggEPADCCAQoCggEBANLGJrbnpT3BxGjVUG9TxW9JEwm4ryxIjRRqoxdf
-WvnTLnUv2Chi0ZMv/E3Uq4flCMeZ55I/db3rJbQVwZsZPdJEjdd0IG03Ao9pk1uK
-xBmd9LIO/BZsubEFkoPRhSxglD5FVaDZqwgh5mDoO3TymVBRaNADLbGAvqPYUrBE
-zUNKcI5YhZXhTizWLUFv1oTnyJhEykfbLCSlaSbPa7gnYsP0yXqSI+0TZ4KuRS5F
-5X5yP4WdlGIQ5jyRoa13AOAV7POEgHJ6jm5gl8ckWRA0g1vhpaRptlc1HHhZxtMv
-OnNn7pTKBBMFYgZwI7P0fO5F2WQLW0mqpEPOJsREEmy43XkCAwEAATANBgkqhkiG
-9w0BAQUFAAOCAQEAojeyP2n714Z5VEkxlTMr89EJFEliYIalsBHiUMIdBlc+Legz
-ZL6bqq1fG03UmZWii5rJYnK1aerZWKs17RWiQ9a2vAd5ZWRzfdd5ynvVWlHG4VME
-lo04z6MXrDlxawHDi1M8Y+nuecDkvpIyZHqzH5eUYr3qsiAVlfuX8ngvYzZAOONG
-Dx3drJXK50uQe7FLqdTF65raqtWjlBRGjS0f8zrWkzr2Pnn86Oawde3uPclwx12q
-gUtGJRzHbBXjlU4PqjI3lAoXJJIThFjSY28r9+ZbYgsTF7ANUkz+/m9c4pFuHf2k
-Ytdo+o56T9II2pPc8JIRetDccpMMc5NihWjQ9A==
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIDKTCCApKgAwIBAgIENm7TzjANBgkqhkiG9w0BAQUFADBGMQswCQYDVQQGEwJV
-UzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMREwDwYDVQQL
-EwhEU1RDQSBFMjAeFw05ODEyMDkxOTE3MjZaFw0xODEyMDkxOTQ3MjZaMEYxCzAJ
-BgNVBAYTAlVTMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4x
-ETAPBgNVBAsTCERTVENBIEUyMIGdMA0GCSqGSIb3DQEBAQUAA4GLADCBhwKBgQC/
-k48Xku8zExjrEH9OFr//Bo8qhbxe+SSmJIi2A7fBw18DW9Fvrn5C6mYjuGODVvso
-LeE4i7TuqAHhzhy2iCoiRoX7n6dwqUcUP87eZfCocfdPJmyMvMa1795JJ/9IKn3o
-TQPMx7JSxhcxEzu1TdvIxPbDDyQq2gyd55FbgM2UnQIBA6OCASQwggEgMBEGCWCG
-SAGG+EIBAQQEAwIABzBoBgNVHR8EYTBfMF2gW6BZpFcwVTELMAkGA1UEBhMCVVMx
-JDAiBgNVBAoTG0RpZ2l0YWwgU2lnbmF0dXJlIFRydXN0IENvLjERMA8GA1UECxMI
-RFNUQ0EgRTIxDTALBgNVBAMTBENSTDEwKwYDVR0QBCQwIoAPMTk5ODEyMDkxOTE3
-MjZagQ8yMDE4MTIwOTE5MTcyNlowCwYDVR0PBAQDAgEGMB8GA1UdIwQYMBaAFB6C
-TShlgDzJQW6sNS5ay97u+DlbMB0GA1UdDgQWBBQegk0oZYA8yUFurDUuWsve7vg5
-WzAMBgNVHRMEBTADAQH/MBkGCSqGSIb2fQdBAAQMMAobBFY0LjADAgSQMA0GCSqG
-SIb3DQEBBQUAA4GBAEeNg61i8tuwnkUiBbmi1gMOOHLnnvx75pO2mqWilMg0HZHR
-xdf0CiUPPXiBng+xZ8SQTGPdXqfiup/1902lMXucKS1M/mQ+7LZT/uqb7YLbdHVL
-B3luHtgZg3Pe9T7Qtd7nS2h9Qy4qIOF+oHhEngj1mPnHfxsb1gYgAlihw6ID
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIID2DCCAsACEQDQHkCLAAB3bQAAAAEAAAAEMA0GCSqGSIb3DQEBBQUAMIGpMQsw
-CQYDVQQGEwJ1czENMAsGA1UECBMEVXRhaDEXMBUGA1UEBxMOU2FsdCBMYWtlIENp
-dHkxJDAiBgNVBAoTG0RpZ2l0YWwgU2lnbmF0dXJlIFRydXN0IENvLjERMA8GA1UE
-CxMIRFNUQ0EgWDIxFjAUBgNVBAMTDURTVCBSb290Q0EgWDIxITAfBgkqhkiG9w0B
-CQEWEmNhQGRpZ3NpZ3RydXN0LmNvbTAeFw05ODExMzAyMjQ2MTZaFw0wODExMjcy
-MjQ2MTZaMIGpMQswCQYDVQQGEwJ1czENMAsGA1UECBMEVXRhaDEXMBUGA1UEBxMO
-U2FsdCBMYWtlIENpdHkxJDAiBgNVBAoTG0RpZ2l0YWwgU2lnbmF0dXJlIFRydXN0
-IENvLjERMA8GA1UECxMIRFNUQ0EgWDIxFjAUBgNVBAMTDURTVCBSb290Q0EgWDIx
-ITAfBgkqhkiG9w0BCQEWEmNhQGRpZ3NpZ3RydXN0LmNvbTCCASIwDQYJKoZIhvcN
-AQEBBQADggEPADCCAQoCggEBANx18IzAdZaawGIfJvfE4Zrq4FZzW5nNAUSoCLbV
-p9oaBBg5kkp4o4HC9Xd6ULRw/5qrxsfKboNPQpj7Jgva3G3WqZlVUmfpKAOS3OWw
-BZoPFflrWXJW8vo5/Kpo7g8fEIMv/J36F5bdguPmRX3AS4BEH+0s4IT9kVySVGkl
-5WJp3OXuAFK9MwutdQKFp2RQLcUZGTDAJtvJ0/0uma1ZtQtN1EGuhUhDWdy3qOKi
-3sOP17ihYqZoUFLkzzGnlIXan0YyF1bl8utmPRL/Q9uY73fPy4GNNLHGUEom0eQ+
-QVCvbK4iNC7Va26Dunm4dmVI2gkpZGMiuftHdoWMhkTLCdsCAwEAATANBgkqhkiG
-9w0BAQUFAAOCAQEAtTYOXeFhKFoRZcA/gwN5Tb4opgsHAlKFzfiR0BBstWogWxyQ
-2TA8xkieil5k+aFxd+8EJx8H6+Qm93N0yUQYGmbT4EOvkTvRyyzYdFQ6HE3K1GjN
-I3wdEJ5F6fYAbqbNGf9PLCmPV03Ed5K+4EwJ+11EhmYhqLkyolbV6YyDfFk/xPEL
-553snr2cGA4+wjl5KLcDDQjLxufZATdQEOzMYRZA1K8xdHv8PzGn0EdzMzkbzE5q
-10mDEQb+64JYMzJM8FasHpwvVpp7wUocpf1VNs78lk30sPDst2yC7S8xmUJMqbIN
-uBVd8d+6ybVK1GSYsyapMMj9puyrliGtf8J4tg==
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIEgzCCA+ygAwIBAgIEOJ725DANBgkqhkiG9w0BAQQFADCBtDEUMBIGA1UEChML
-RW50cnVzdC5uZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9HQ0NBX0NQUyBp
-bmNvcnAuIGJ5IHJlZi4gKGxpbWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAyMDAw
-IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNVBAMTKkVudHJ1c3QubmV0IENsaWVu
-dCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMDAyMDcxNjE2NDBaFw0yMDAy
-MDcxNjQ2NDBaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3d3d3
-LmVudHJ1c3QubmV0L0dDQ0FfQ1BTIGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxp
-YWIuKTElMCMGA1UECxMcKGMpIDIwMDAgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEG
-A1UEAxMqRW50cnVzdC5uZXQgQ2xpZW50IENlcnRpZmljYXRpb24gQXV0aG9yaXR5
-MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCTdLS25MVL1qFof2LV7PdRV7Ny
-Spj10InJrWPNTTVRaoTUrcloeW+46xHbh65cJFET8VQlhK8pK5/jgOLZy93GRUk0
-iJBeAZfv6lOm3fzB3ksqJeTpNfpVBQbliXrqpBFXO/x8PTbNZzVtpKklWb1m9fkn
-5JVn1j+SgF7yNH0rhQIDAQABo4IBnjCCAZowEQYJYIZIAYb4QgEBBAQDAgAHMIHd
-BgNVHR8EgdUwgdIwgc+ggcyggcmkgcYwgcMxFDASBgNVBAoTC0VudHJ1c3QubmV0
-MUAwPgYDVQQLFDd3d3cuZW50cnVzdC5uZXQvR0NDQV9DUFMgaW5jb3JwLiBieSBy
-ZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMjAwMCBFbnRydXN0Lm5l
-dCBMaW1pdGVkMTMwMQYDVQQDEypFbnRydXN0Lm5ldCBDbGllbnQgQ2VydGlmaWNh
-dGlvbiBBdXRob3JpdHkxDTALBgNVBAMTBENSTDEwKwYDVR0QBCQwIoAPMjAwMDAy
-MDcxNjE2NDBagQ8yMDIwMDIwNzE2NDY0MFowCwYDVR0PBAQDAgEGMB8GA1UdIwQY
-MBaAFISLdP3FjcD/J20gN0V8/i3OutN9MB0GA1UdDgQWBBSEi3T9xY3A/ydtIDdF
-fP4tzrrTfTAMBgNVHRMEBTADAQH/MB0GCSqGSIb2fQdBAAQQMA4bCFY1LjA6NC4w
-AwIEkDANBgkqhkiG9w0BAQQFAAOBgQBObzWAO9GK9Q6nIMstZVXQkvTnhLUGJoMS
-hAusO7JE7r3PQNsgDrpuFOow4DtifH+La3xKp9U1PL6oXOpLu5OOgGarDyn9TS2/
-GpsKkMWr2tGzhtQvJFJcem3G8v7lTRowjJDyutdKPkN+1MhQGof4T4HHdguEOnKd
-zmVml64mXg==
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIElTCCA/6gAwIBAgIEOJsRPDANBgkqhkiG9w0BAQQFADCBujEUMBIGA1UEChML
-RW50cnVzdC5uZXQxPzA9BgNVBAsUNnd3dy5lbnRydXN0Lm5ldC9TU0xfQ1BTIGlu
-Y29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMcKGMpIDIwMDAg
-RW50cnVzdC5uZXQgTGltaXRlZDE6MDgGA1UEAxMxRW50cnVzdC5uZXQgU2VjdXJl
-IFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMDAyMDQxNzIwMDBa
-Fw0yMDAyMDQxNzUwMDBaMIG6MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDE/MD0GA1UE
-CxQ2d3d3LmVudHJ1c3QubmV0L1NTTF9DUFMgaW5jb3JwLiBieSByZWYuIChsaW1p
-dHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMjAwMCBFbnRydXN0Lm5ldCBMaW1pdGVk
-MTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENlcnRpZmljYXRp
-b24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDHwV9OcfHO
-8GCGD9JYf9Mzly0XonUwtZZkJi9ow0SrqHXmAGc0V55lxyKbc+bT3QgON1WqJUaB
-bL3+qPZ1V1eMkGxKwz6LS0MKyRFWmponIpnPVZ5h2QLifLZ8OAfc439PmrkDQYC2
-dWcTC5/oVzbIXQA23mYU2m52H083jIITiQIDAQABo4IBpDCCAaAwEQYJYIZIAYb4
-QgEBBAQDAgAHMIHjBgNVHR8EgdswgdgwgdWggdKggc+kgcwwgckxFDASBgNVBAoT
-C0VudHJ1c3QubmV0MT8wPQYDVQQLFDZ3d3cuZW50cnVzdC5uZXQvU1NMX0NQUyBp
-bmNvcnAuIGJ5IHJlZi4gKGxpbWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAyMDAw
-IEVudHJ1c3QubmV0IExpbWl0ZWQxOjA4BgNVBAMTMUVudHJ1c3QubmV0IFNlY3Vy
-ZSBTZXJ2ZXIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxDTALBgNVBAMTBENSTDEw
-KwYDVR0QBCQwIoAPMjAwMDAyMDQxNzIwMDBagQ8yMDIwMDIwNDE3NTAwMFowCwYD
-VR0PBAQDAgEGMB8GA1UdIwQYMBaAFMtswGvjuz7L/CKc/vuLkpyw8m4iMB0GA1Ud
-DgQWBBTLbMBr47s+y/winP77i5KcsPJuIjAMBgNVHRMEBTADAQH/MB0GCSqGSIb2
-fQdBAAQQMA4bCFY1LjA6NC4wAwIEkDANBgkqhkiG9w0BAQQFAAOBgQBi24GRzsia
-d0Iv7L0no1MPUBvqTpLwqa+poLpIYcvvyQbvH9X07t9WLebKahlzqlO+krNQAraF
-JnJj2HVQYnUUt7NQGj/KEQALhUVpbbalrlHhStyCP2yMNLJ3a9kC9n8O6mUE8c1U
-yrrJzOCE98g+EZfTYAkYvAX/bIkz8OwVDw==
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIEXDCCA0SgAwIBAgIEOGO5ZjANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChML
-RW50cnVzdC5uZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBp
-bmNvcnAuIGJ5IHJlZi4gKGxpbWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5
-IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNVBAMTKkVudHJ1c3QubmV0IENlcnRp
-ZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQxNzUwNTFaFw0xOTEy
-MjQxODIwNTFaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3d3d3
-LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxp
-YWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEG
-A1UEAxMqRW50cnVzdC5uZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgp
-MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArU1LqRKGsuqjIAcVFmQq
-K0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOLGp18EzoOH1u3Hs/lJBQe
-sYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSrhRSGlVuX
-MlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVT
-XTzWnLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/
-HoZdenoVve8AjhUiVBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH
-4QIDAQABo3QwcjARBglghkgBhvhCAQEEBAMCAAcwHwYDVR0jBBgwFoAUVeSB0RGA
-vtiJuQijMfmhJAkWuXAwHQYDVR0OBBYEFFXkgdERgL7YibkIozH5oSQJFrlwMB0G
-CSqGSIb2fQdBAAQQMA4bCFY1LjA6NC4wAwIEkDANBgkqhkiG9w0BAQUFAAOCAQEA
-WUesIYSKF8mciVMeuoCFGsY8Tj6xnLZ8xpJdGGQC49MGCBFhfGPjK50xA3B20qMo
-oPS7mmNz7W3lKtvtFKkrxjYR0CvrB4ul2p5cGZ1WEvVUKcgF7bISKo30Axv/55IQ
-h7A6tcOdBTcSo8f0FbnVpDkWm1M6I5HxqIKiaohowXkCIryqptau37AUX7iH0N18
-f3v/rxzP5tsHrV7bhZ3QKw0z2wTR5klAEyt2+z7pnIkPFc4YsIV4IU9rTw76NmfN
-B/L/CNDi3tm/Kq+4h4YhPATKt5Rof8886ZjXOP/swNlQ8C5LWK5Gb9Auw2DaclVy
-vUxFnmG6v4SBkgPR0ml8xQ==
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIE7TCCBFagAwIBAgIEOAOR7jANBgkqhkiG9w0BAQQFADCByTELMAkGA1UEBhMC
-VVMxFDASBgNVBAoTC0VudHJ1c3QubmV0MUgwRgYDVQQLFD93d3cuZW50cnVzdC5u
-ZXQvQ2xpZW50X0NBX0luZm8vQ1BTIGluY29ycC4gYnkgcmVmLiBsaW1pdHMgbGlh
-Yi4xJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNV
-BAMTKkVudHJ1c3QubmV0IENsaWVudCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe
-Fw05OTEwMTIxOTI0MzBaFw0xOTEwMTIxOTU0MzBaMIHJMQswCQYDVQQGEwJVUzEU
-MBIGA1UEChMLRW50cnVzdC5uZXQxSDBGBgNVBAsUP3d3dy5lbnRydXN0Lm5ldC9D
-bGllbnRfQ0FfSW5mby9DUFMgaW5jb3JwLiBieSByZWYuIGxpbWl0cyBsaWFiLjEl
-MCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMq
-RW50cnVzdC5uZXQgQ2xpZW50IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGdMA0G
-CSqGSIb3DQEBAQUAA4GLADCBhwKBgQDIOpleMRffrCdvkHvkGf9FozTC28GoT/Bo
-6oT9n3V5z8GKUZSvx1cDR2SerYIbWtp/N3hHuzeYEpbOxhN979IMMFGpOZ5V+Pux
-5zDeg7K6PvHViTs7hbqqdCz+PzFur5GVbgbUB01LLFZHGARS2g4Qk79jkJvh34zm
-AqTmT173iwIBA6OCAeAwggHcMBEGCWCGSAGG+EIBAQQEAwIABzCCASIGA1UdHwSC
-ARkwggEVMIHkoIHhoIHepIHbMIHYMQswCQYDVQQGEwJVUzEUMBIGA1UEChMLRW50
-cnVzdC5uZXQxSDBGBgNVBAsUP3d3dy5lbnRydXN0Lm5ldC9DbGllbnRfQ0FfSW5m
-by9DUFMgaW5jb3JwLiBieSByZWYuIGxpbWl0cyBsaWFiLjElMCMGA1UECxMcKGMp
-IDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5uZXQg
-Q2xpZW50IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMCyg
-KqAohiZodHRwOi8vd3d3LmVudHJ1c3QubmV0L0NSTC9DbGllbnQxLmNybDArBgNV
-HRAEJDAigA8xOTk5MTAxMjE5MjQzMFqBDzIwMTkxMDEyMTkyNDMwWjALBgNVHQ8E
-BAMCAQYwHwYDVR0jBBgwFoAUxPucKXuXzUyW/O5bs8qZdIuV6kwwHQYDVR0OBBYE
-FMT7nCl7l81MlvzuW7PKmXSLlepMMAwGA1UdEwQFMAMBAf8wGQYJKoZIhvZ9B0EA
-BAwwChsEVjQuMAMCBJAwDQYJKoZIhvcNAQEEBQADgYEAP66K8ddmAwWePvrqHEa7
-pFuPeJoSSJn59DXeDDYHAmsQOokUgZwxpnyyQbJq5wcBoUv5nyU7lsqZwz6hURzz
-wy5E97BnRqqS5TvaHBkUODDV4qIxJS7x7EU47fgGWANzYrAQMY9Av2TgXD7FTx/a
-EkP/TOYGJqibGapEPHayXOw=
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIE2DCCBEGgAwIBAgIEN0rSQzANBgkqhkiG9w0BAQUFADCBwzELMAkGA1UEBhMC
-VVMxFDASBgNVBAoTC0VudHJ1c3QubmV0MTswOQYDVQQLEzJ3d3cuZW50cnVzdC5u
-ZXQvQ1BTIGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMc
-KGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDE6MDgGA1UEAxMxRW50cnVzdC5u
-ZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05OTA1
-MjUxNjA5NDBaFw0xOTA1MjUxNjM5NDBaMIHDMQswCQYDVQQGEwJVUzEUMBIGA1UE
-ChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5j
-b3JwLiBieSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBF
-bnRydXN0Lm5ldCBMaW1pdGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUg
-U2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGdMA0GCSqGSIb3DQEBAQUA
-A4GLADCBhwKBgQDNKIM0VBuJ8w+vN5Ex/68xYMmo6LIQaO2f55M28Qpku0f1BBc/
-I0dNxScZgSYMVHINiC3ZH5oSn7yzcdOAGT9HZnuMNSjSuQrfJNqc1lB5gXpa0zf3
-wkrYKZImZNHkmGw6AIr1NJtl+O3jEP/9uElY3KDegjlrgbEWGWG5VLbmQwIBA6OC
-AdcwggHTMBEGCWCGSAGG+EIBAQQEAwIABzCCARkGA1UdHwSCARAwggEMMIHeoIHb
-oIHYpIHVMIHSMQswCQYDVQQGEwJVUzEUMBIGA1UEChMLRW50cnVzdC5uZXQxOzA5
-BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5jb3JwLiBieSByZWYuIChsaW1p
-dHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBFbnRydXN0Lm5ldCBMaW1pdGVk
-MTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENlcnRpZmljYXRp
-b24gQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMCmgJ6AlhiNodHRwOi8vd3d3LmVu
-dHJ1c3QubmV0L0NSTC9uZXQxLmNybDArBgNVHRAEJDAigA8xOTk5MDUyNTE2MDk0
-MFqBDzIwMTkwNTI1MTYwOTQwWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAU8Bdi
-E1U9s/8KAGv7UISX8+1i0BowHQYDVR0OBBYEFPAXYhNVPbP/CgBr+1CEl/PtYtAa
-MAwGA1UdEwQFMAMBAf8wGQYJKoZIhvZ9B0EABAwwChsEVjQuMAMCBJAwDQYJKoZI
-hvcNAQEFBQADgYEAkNwwAvpkdMKnCqV8IY00F6j7Rw7/JXyNEwr75Ji174z4xRAN
-95K+8cPV1ZVqBLssziY2ZcgxxufuP+NXdYR6Ee9GTxj005i7qIcyunL2POI9n9cd
-2cNgQ4xYDiKWL2KjLB+6rQXvqzJ4h6BUcxm1XAX5Uj5tLUUL9wqT6u0G+bI=
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV
-UzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2Vy
-dGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4MDgyMjE2NDE1
-MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgxLTArBgNVBAsTJEVx
-dWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0eTCBnzANBgkqhkiG9w0B
-AQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2RFGiYCh7+2gRvE4RiIcPRfM6f
-BeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO/t0BCezhABRP/PvwDN1Dulsr4R+A
-cJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuvK9buY0V7xdlfUNLjUA86iOe/FP3gx7kC
-AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQ
-MA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlm
-aWNhdGUgQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgw
-ODIyMTY0MTUxWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gj
-IBBPM5iQn9QwHQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQF
-MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA
-A4GBAFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y
-7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2uFHdh
-1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIICkDCCAfmgAwIBAgIBATANBgkqhkiG9w0BAQQFADBaMQswCQYDVQQGEwJVUzEc
-MBoGA1UEChMTRXF1aWZheCBTZWN1cmUgSW5jLjEtMCsGA1UEAxMkRXF1aWZheCBT
-ZWN1cmUgR2xvYmFsIGVCdXNpbmVzcyBDQS0xMB4XDTk5MDYyMTA0MDAwMFoXDTIw
-MDYyMTA0MDAwMFowWjELMAkGA1UEBhMCVVMxHDAaBgNVBAoTE0VxdWlmYXggU2Vj
-dXJlIEluYy4xLTArBgNVBAMTJEVxdWlmYXggU2VjdXJlIEdsb2JhbCBlQnVzaW5l
-c3MgQ0EtMTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAuucXkAJlsTRVPEnC
-UdXfp9E3j9HngXNBUmCbnaEXJnitx7HoJpQytd4zjTov2/KaelpzmKNc6fuKcxtc
-58O/gGzNqfTWK8D3+ZmqY6KxRwIP1ORROhI8bIpaVIRw28HFkM9yRcuoWcDNM50/
-o5brhTMhHD4ePmBudpxnhcXIw2ECAwEAAaNmMGQwEQYJYIZIAYb4QgEBBAQDAgAH
-MA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUvqigdHJQa0S3ySPY+6j/s1dr
-aGwwHQYDVR0OBBYEFL6ooHRyUGtEt8kj2Puo/7NXa2hsMA0GCSqGSIb3DQEBBAUA
-A4GBADDiAVGqx+pf2rnQZQ8w1j7aDRRJbpGTJxQx78T3LUX47Me/okENI7SS+RkA
-Z70Br83gcfxaz2TE4JaY0KNA4gGK7ycH8WUBikQtBmV1UsCGECAhX2xrD2yuCRyv
-8qIYNMR1pHMc8Y3c7635s3a0kr/clRAevsvIO1qEYBlWlKlV
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIICgjCCAeugAwIBAgIBBDANBgkqhkiG9w0BAQQFADBTMQswCQYDVQQGEwJVUzEc
-MBoGA1UEChMTRXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBT
-ZWN1cmUgZUJ1c2luZXNzIENBLTEwHhcNOTkwNjIxMDQwMDAwWhcNMjAwNjIxMDQw
-MDAwWjBTMQswCQYDVQQGEwJVUzEcMBoGA1UEChMTRXF1aWZheCBTZWN1cmUgSW5j
-LjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2luZXNzIENBLTEwgZ8wDQYJ
-KoZIhvcNAQEBBQADgY0AMIGJAoGBAM4vGbwXt3fek6lfWg0XTzQaDJj0ItlZ1MRo
-RvC0NcWFAyDGr0WlIVFFQesWWDYyb+JQYmT5/VGcqiTZ9J2DKocKIdMSODRsjQBu
-WqDZQu4aIZX5UkxVWsUPOE9G+m34LjXWHXzr4vCwdYDIqROsvojvOm6rXyo4YgKw
-Env+j6YDAgMBAAGjZjBkMBEGCWCGSAGG+EIBAQQEAwIABzAPBgNVHRMBAf8EBTAD
-AQH/MB8GA1UdIwQYMBaAFEp4MlIR21kWNl7fwRQ2QGpHfEyhMB0GA1UdDgQWBBRK
-eDJSEdtZFjZe38EUNkBqR3xMoTANBgkqhkiG9w0BAQQFAAOBgQB1W6ibAxHm6VZM
-zfmpTMANmvPMZWnmJXbMWbfWVMMdzZmsGd20hdXgPfxiIKeES1hl8eL5lSE/9dR+
-WB5Hh1Q+WKG1tfgq73HnvMP2sUlG4tega+VWeponmHxGYhTnyfxuAxJ5gDgdSIKN
-/Bf+KpYrtWKmpj29f5JZzVoqgrI3eQ==
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIDIDCCAomgAwIBAgIEN3DPtTANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQGEwJV
-UzEXMBUGA1UEChMORXF1aWZheCBTZWN1cmUxJjAkBgNVBAsTHUVxdWlmYXggU2Vj
-dXJlIGVCdXNpbmVzcyBDQS0yMB4XDTk5MDYyMzEyMTQ0NVoXDTE5MDYyMzEyMTQ0
-NVowTjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkVxdWlmYXggU2VjdXJlMSYwJAYD
-VQQLEx1FcXVpZmF4IFNlY3VyZSBlQnVzaW5lc3MgQ0EtMjCBnzANBgkqhkiG9w0B
-AQEFAAOBjQAwgYkCgYEA5Dk5kx5SBhsoNviyoynF7Y6yEb3+6+e0dMKP/wXn2Z0G
-vxLIPw7y1tEkshHe0XMJitSxLJgJDR5QRrKDpkWNYmi7hRsgcDKqQM2mll/EcTc/
-BPO3QSQ5BxoeLmFYoBIL5aXfxavqN3HMHMg3OrmXUqesxWoklE6ce8/AatbfIb0C
-AwEAAaOCAQkwggEFMHAGA1UdHwRpMGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEX
-MBUGA1UEChMORXF1aWZheCBTZWN1cmUxJjAkBgNVBAsTHUVxdWlmYXggU2VjdXJl
-IGVCdXNpbmVzcyBDQS0yMQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTkw
-NjIzMTIxNDQ1WjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUUJ4L6q9euSBIplBq
-y/3YIHqngnYwHQYDVR0OBBYEFFCeC+qvXrkgSKZQasv92CB6p4J2MAwGA1UdEwQF
-MAMBAf8wGgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUA
-A4GBAAyGgq3oThr1jokn4jVYPSm0B482UJW/bsGe68SQsoWou7dC4A8HOd/7npCy
-0cE+U58DRLB+S/Rv5Hwf5+Kx5Lia78O9zt4LMjTZ3ijtM2vE1Nc9ElirfQkty3D1
-E4qUoSek1nDFbZS1yX2doNLGCEnZZpum0/QL3MUmV+GRMOrN
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIICWjCCAcMCAgGlMA0GCSqGSIb3DQEBBAUAMHUxCzAJBgNVBAYTAlVTMRgwFgYD
-VQQKEw9HVEUgQ29ycG9yYXRpb24xJzAlBgNVBAsTHkdURSBDeWJlclRydXN0IFNv
-bHV0aW9ucywgSW5jLjEjMCEGA1UEAxMaR1RFIEN5YmVyVHJ1c3QgR2xvYmFsIFJv
-b3QwHhcNOTgwODEzMDAyOTAwWhcNMTgwODEzMjM1OTAwWjB1MQswCQYDVQQGEwJV
-UzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMScwJQYDVQQLEx5HVEUgQ3liZXJU
-cnVzdCBTb2x1dGlvbnMsIEluYy4xIzAhBgNVBAMTGkdURSBDeWJlclRydXN0IEds
-b2JhbCBSb290MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCVD6C28FCc6HrH
-iM3dFw4usJTQGz0O9pTAipTHBsiQl8i4ZBp6fmw8U+E3KHNgf7KXUwefU/ltWJTS
-r41tiGeA5u2ylc9yMcqlHHK6XALnZELn+aks1joNrI1CqiQBOeacPwGFVw1Yh0X4
-04Wqk2kmhXBIgD8SFcd5tB8FLztimQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAG3r
-GwnpXtlR22ciYaQqPEh346B8pt5zohQDhT37qw4wxYMWM4ETCJ57NE7fQMh017l9
-3PR2VX2bY1QY6fDq81yx2YtCHrnAlU66+tXifPVoYb+O7AWXX1uw16OFNMQkpw0P
-lZPvy5TYnh+dXIVtx6quTx8itc2VrbqnzPmrC3p/
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIB+jCCAWMCAgGjMA0GCSqGSIb3DQEBBAUAMEUxCzAJBgNVBAYTAlVTMRgwFgYD
-VQQKEw9HVEUgQ29ycG9yYXRpb24xHDAaBgNVBAMTE0dURSBDeWJlclRydXN0IFJv
-b3QwHhcNOTYwMjIzMjMwMTAwWhcNMDYwMjIzMjM1OTAwWjBFMQswCQYDVQQGEwJV
-UzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMRwwGgYDVQQDExNHVEUgQ3liZXJU
-cnVzdCBSb290MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC45k+625h8cXyv
-RLfTD0bZZOWTwUKOx7pJjTUteueLveUFMVnGsS8KDPufpz+iCWaEVh43KRuH6X4M
-ypqfpX/1FZSj1aJGgthoTNE3FQZor734sLPwKfWVWgkWYXcKIiXUT0Wqx73llt/5
-1KiOQswkwB6RJ0q1bQaAYznEol44AwIDAQABMA0GCSqGSIb3DQEBBAUAA4GBABKz
-dcZfHeFhVYAA1IFLezEPI2PnPfMD+fQ2qLvZ46WXTeorKeDWanOB5sCJo9Px4KWl
-IjeaY8JIILTbcuPI9tl8vrGvU9oUtCG41tWW4/5ODFlitppK+ULdjG+BqXH/9Apy
-bW1EDp3zdHSo1TRJ6V6e6bR64eVaH4QwnNOfpSXY
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVT
-MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i
-YWwgQ0EwHhcNMDIwNTIxMDQwMDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQG
-EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UEAxMSR2VvVHJ1c3Qg
-R2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2swYYzD9
-9BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjoBbdq
-fnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDv
-iS2Aelet8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU
-1XupGc1V3sjs0l44U+VcT4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+
-bw8HHa8sHo9gOeL6NlMTOdReJivbPagUvTLrGAMoUgRx5aszPeE4uwc2hGKceeoW
-MPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTA
-ephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVkDBF9qn1l
-uMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKIn
-Z57QzxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfS
-tQWVYrmm3ok9Nns4d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcF
-PseKUgzbFbS9bZvlxrFUaKnjaZC2mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Un
-hw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6pXE0zX5IJL4hmXXeXxx12E6nV
-5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvmMw==
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIDdTCCAl2gAwIBAgILAgAAAAAA1ni3lAUwDQYJKoZIhvcNAQEEBQAwVzELMAkG
-A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv
-b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw
-MDBaFw0xNDAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i
-YWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT
-aWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZ
-jc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp
-xy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp
-1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG
-snUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJ
-U26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N8
-9iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIABjAdBgNVHQ4EFgQU
-YHtmGkUNl8qJUC99BM00qP/8/UswDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0B
-AQQFAAOCAQEArqqf/LfSyx9fOSkoGJ40yWxPbxrwZKJwSk8ThptgKJ7ogUmYfQq7
-5bCdPTbbjwVR/wkxKh/diXeeDy5slQTthsu0AD+EAk2AaioteAuubyuig0SDH81Q
-gkwkr733pbTIWg/050deSY43lv6aiAU62cDbKYfmGZZHpzqmjIs8d/5GY6dT2iHR
-rH5Jokvmw2dZL7OKDrssvamqQnw1wdh/1acxOk5jQzmvCLBhNIzTmKlDNPYPhyk7
-ncJWWJh3w/cbrPad+D6qp1RF8PX51TFl/mtYnHGzHtdS6jIX/EBgHcl5JLL2bP2o
-Zg6C3ZjL2sJETy6ge/L3ayx2EYRGinij4w==
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0
-IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAz
-BgNVBAsTLFZhbGlDZXJ0IENsYXNzIDMgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9y
-aXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG
-9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAwMjIzM1oXDTE5MDYy
-NjAwMjIzM1owgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0d29y
-azEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs
-YXNzIDMgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRw
-Oi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNl
-cnQuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDjmFGWHOjVsQaBalfD
-cnWTq8+epvzzFlLWLU2fNUSoLgRNB0mKOCn1dzfnt6td3zZxFJmP3MKS8edgkpfs
-2Ejcv8ECIMYkpChMMFp2bbFc893enhBxoYjHW5tBbcqwuI4V7q0zK89HBFx1cQqY
-JJgpp0lZpd34t0NiYfPT4tBVPwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFa7AliE
-Zwgs3x/be0kz9dNnnfS0ChCzycUs4pJqcXgn8nCDQtM+z6lU9PHYkhaM0QTLS6vJ
-n0WuPIqpsHEzXcjFV9+vqDWzf4mH6eglkrh/hXqu1rweN1gqZ8mRzyqBPu3GOd/A
+MIID5jCCAs6gAwIBAgIBATANBgkqhkiG9w0BAQUFADCBgzELMAkGA1UEBhMC
+VVMxHTAbBgNVBAoTFEFPTCBUaW1lIFdhcm5lciBJbmMuMRwwGgYDVQQLExNB
+bWVyaWNhIE9ubGluZSBJbmMuMTcwNQYDVQQDEy5BT0wgVGltZSBXYXJuZXIg
+Um9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAxMB4XDTAyMDUyOTA2MDAw
+MFoXDTM3MTEyMDE1MDMwMFowgYMxCzAJBgNVBAYTAlVTMR0wGwYDVQQKExRB
+T0wgVGltZSBXYXJuZXIgSW5jLjEcMBoGA1UECxMTQW1lcmljYSBPbmxpbmUg
+SW5jLjE3MDUGA1UEAxMuQU9MIFRpbWUgV2FybmVyIFJvb3QgQ2VydGlmaWNh
+dGlvbiBBdXRob3JpdHkgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
+ggEBAJnej8Mlo2k06AX3dLm/WpcZuS+U0pPlLYnKhHw/EEMbjIt8hFj4JHxI
+zyr9wBXZGH6EGhfT257XyuTZ16pYUYfw8ItITuLCxFlpMGK2MKKMCxGZYTVt
+fu/FsRkGIBKOQuHfD5YQUqjPnF+VFNivO3ULMSAfRC+iYkGzuxgh28pxPIzs
+trkNn+9R7017EvILDOGsQI93f7DKeHEMXRZxcKLXwjqFzQ6axOAAsNUl6twr
+5JQtOJyJQVdkKGUZHLZEtMgxa44Be3ZZJX8VHIQIfHNlIAqhBC4aMqiaILGc
+LCFZ5/vP7nAtCMpjPiybkxlqpMKX/7eGV4iFbJ4VFitNLLMCAwEAAaNjMGEw
+DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUoTYwFsuGkABFgFOxj8jYPXy+
+XxIwHwYDVR0jBBgwFoAUoTYwFsuGkABFgFOxj8jYPXy+XxIwDgYDVR0PAQH/
+BAQDAgGGMA0GCSqGSIb3DQEBBQUAA4IBAQCKIBilvrMvtKaEAEAwKfq0FHNM
+eUWn9nDg6H5kHgqVfGphwu9OH77/yZkfB2FK4V1Mza3u0FIy2VkyvNp5ctZ7
+CegCgTXTCt8RHcl5oIBN/lrXVtbtDyqvpxh1MwzqwWEFT2qaifKNuZ8u77Bf
+WgDrvq2g+EQFZ7zLBO+eZMXpyD8Fv8YvBxzDNnGGyjhmSs3WuEvGbKeXO/oT
+LW4jYYehY0KswsuXn2Fozy1MBJ3XJU8KDk2QixhWqJNIV9xvrr2eZ1d3iVCz
+vhGbRWeDhhmH05i9CBoWH1iCC+GWaQVLjuyDUTEH1dSf/1l7qG6Fz9NLqUmw
+X7A5KGgOc90lmt4S
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIF5jCCA86gAwIBAgIBATANBgkqhkiG9w0BAQUFADCBgzELMAkGA1UEBhMC
+VVMxHTAbBgNVBAoTFEFPTCBUaW1lIFdhcm5lciBJbmMuMRwwGgYDVQQLExNB
+bWVyaWNhIE9ubGluZSBJbmMuMTcwNQYDVQQDEy5BT0wgVGltZSBXYXJuZXIg
+Um9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAyMB4XDTAyMDUyOTA2MDAw
+MFoXDTM3MDkyODIzNDMwMFowgYMxCzAJBgNVBAYTAlVTMR0wGwYDVQQKExRB
+T0wgVGltZSBXYXJuZXIgSW5jLjEcMBoGA1UECxMTQW1lcmljYSBPbmxpbmUg
+SW5jLjE3MDUGA1UEAxMuQU9MIFRpbWUgV2FybmVyIFJvb3QgQ2VydGlmaWNh
+dGlvbiBBdXRob3JpdHkgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC
+ggIBALQ3WggWmRToVbEbJGv8x4vmh6mJ7ouZzU9AhqS2TcnZsdw8TQ2FTBVs
+RotSeJ/4I/1n9SQ6aF3Q92RhQVSji6UI0ilbm2BPJoPRYxJWSXakFsKlnUWs
+i4SVqBax7J/qJBrvuVdcmiQhLE0OcR+mrF1FdAOYxFSMFkpBd4aVdQxHAWZg
+/BXxD+r1FHjHDtdugRxev17nOirYlxcwfACtCJ0zr7iZYYCLqJV+FNwSbKTQ
+2O9ASQI2+W6p1h2WVgSysy0WVoaP2SBXgM1nEG2wTPDaRrbqJS5Gr42whTg0
+ixQmgiusrpkLjhTXUr2eacOGAgvqdnUxCc4zGSGFQ+aJLZ8lN2fxI2rSAG2X
++Z/nKcrdH9cG6rjJuQkhn8g/BsXS6RJGAE57COtCPStIbp1n3UsC5ETzkxml
+J85per5n0/xQpCyrw2u544BMzwVhSyvcG7mm0tCq9Stz+86QNZ8MUhy/XCFh
+EVsVS6kkUfykXPcXnbDS+gfpj1bkGoxoigTTfFrjnqKhynFbotSg5ymFXQNo
+Kk/SBtc9+cMDLz9l+WceR0DTYw/j1Y75hauXTLPXJuuWCpTehTacyH+BCQJJ
+Kg71ZDIMgtG6aoIbs0t0EfOMd9afv9w3pKdVBC/UMejTRrkDfNoSTllkt1Ex
+MVCgyhwn2RAurda9EGYrw7AiShJbAgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMB
+Af8wHQYDVR0OBBYEFE9pbQN+nZ8HGEO8txBO1b+pxCAoMB8GA1UdIwQYMBaA
+FE9pbQN+nZ8HGEO8txBO1b+pxCAoMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG
+9w0BAQUFAAOCAgEAO/Ouyuguh4X7ZVnnrREUpVe8WJ8kEle7+z802u6teio0
+cnAxa8cZmIDJgt43d15Ui47y6mdPyXSEkVYJ1eV6moG2gcKtNuTxVBFT8zRF
+ASbI5Rq8NEQh3q0l/HYWdyGQgJhXnU7q7C+qPBR7V8F+GBRn7iTGvboVsNIY
+vbdVgaxTwOjdaRITQrcCtQVBynlQboIOcXKTRuidDV29rs4prWPVVRaAMCf/
+drr3uNZK49m1+VLQTkCpx+XCMseqdiThawVQ68W/ClTluUI8JPu3B5wwn3la
+5uBAUhX0/Kr0VvlEl4ftDmVyXr4m+02kLQgH3thcoNyBM5kYJRF3p+v9WAks
+mWsbivNSPxpNSGDxoPYzAlOL7SUJuA0t7Zdz7NeWH45gDtoQmy8YJPamTQr5
+O8t1wswvziRpyQoijlmn94IM19drNZxDAGrElWe6nEXLuA4399xOAU++CrYD
+062KRffaJ00psUjf5BHklka9bAI+1lHIlRcBFanyqqryvy9lG2/QuRqT9Y41
+xICHPpQvZuTpqP9BnHAqTyo5GJUefvthATxRCC4oGKQWDzH9OmwjkyB24f0H
+hdFbP9IcczLd+rn4jM8Ch3qaluTtT4mNU0OrDhPAARW0eTjb/G49nlG2uBOL
+Z8/5fNkiHfZdxRwBL5joeiQYvITX+txyW/fBOmg=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQG
+EwJJRTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0
+MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTAwMDUx
+MjE4NDYwMFoXDTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMCSUUxEjAQBgNV
+BAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZ
+QmFsdGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQAD
+ggEPADCCAQoCggEBAKMEuyKrmD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+h
+Xe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsBUnuId9Mcj8e6uYi1agnnc+gR
+QKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/CG9VwcPCP
+wBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1
+pWPgkAx9XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNT
+Px8kmCFcB5kpvcY67Oduhjprl3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkC
+AwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoIVDaGezq1BE3wMBIGA1Ud
+EwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBBQUA
+A4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT929hkT
+I7gQCvlYpNRhcL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3Wgx
+jkzSswF07r51XgdIGn9w/xZchMB5hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/
+oCr0Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsaY71k5h+3zvDyny67
+G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H
+RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFajCCBFKgAwIBAgIEPLU9RjANBgkqhkiG9w0BAQUFADBmMRIwEAYDVQQK
+EwliZVRSVVNUZWQxGzAZBgNVBAsTEmJlVFJVU1RlZCBSb290IENBczEzMDEG
+A1UEAxMqYmVUUlVTVGVkIFJvb3QgQ0EtQmFsdGltb3JlIEltcGxlbWVudGF0
+aW9uMB4XDTAyMDQxMTA3Mzg1MVoXDTIyMDQxMTA3Mzg1MVowZjESMBAGA1UE
+ChMJYmVUUlVTVGVkMRswGQYDVQQLExJiZVRSVVNUZWQgUm9vdCBDQXMxMzAx
+BgNVBAMTKmJlVFJVU1RlZCBSb290IENBLUJhbHRpbW9yZSBJbXBsZW1lbnRh
+dGlvbjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALx+xDmcjOPW
+HIb/ymKt4H8wRXqOGrO4x/nRNv8i805qX4QQ+2aBw5R5MdKR4XeOGCrDFN5R
+9U+jK7wYFuK13XneIviCfsuBH/0nLI/6l2Qijvj/YaOcGx6Sj8CoCd8JEey3
+fTGaGuqDIQY8n7pc/5TqarjDa1U0Tz0yH92BFODEPM2dMPgwqZfT7syj0B9f
+HBOB1BirlNFjw55/NZKeX0Tq7PQiXLfoPX2k+YmpkbIq2eszh+6l/ePazIjm
+iSZuxyuC0F6dWdsU7JGDBcNeDsYq0ATdcT0gTlgn/FP7eHgZFLL8kFKJOGJg
+B7Sg7KxrUNb9uShr71ItOrL/8QFArDcCAwEAAaOCAh4wggIaMA8GA1UdEwEB
+/wQFMAMBAf8wggG1BgNVHSAEggGsMIIBqDCCAaQGDysGAQQBsT4AAAEJKIOR
+MTCCAY8wggFIBggrBgEFBQcCAjCCAToaggE2UmVsaWFuY2Ugb24gb3IgdXNl
+IG9mIHRoaXMgQ2VydGlmaWNhdGUgY3JlYXRlcyBhbiBhY2tub3dsZWRnbWVu
+dCBhbmQgYWNjZXB0YW5jZSBvZiB0aGUgdGhlbiBhcHBsaWNhYmxlIHN0YW5k
+YXJkIHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHVzZSwgdGhlIENlcnRpZmlj
+YXRpb24gUHJhY3RpY2UgU3RhdGVtZW50IGFuZCB0aGUgUmVseWluZyBQYXJ0
+eSBBZ3JlZW1lbnQsIHdoaWNoIGNhbiBiZSBmb3VuZCBhdCB0aGUgYmVUUlVT
+VGVkIHdlYiBzaXRlLCBodHRwOi8vd3d3LmJldHJ1c3RlZC5jb20vcHJvZHVj
+dHNfc2VydmljZXMvaW5kZXguaHRtbDBBBggrBgEFBQcCARY1aHR0cDovL3d3
+dy5iZXRydXN0ZWQuY29tL3Byb2R1Y3RzX3NlcnZpY2VzL2luZGV4Lmh0bWww
+HQYDVR0OBBYEFEU9w6nR3D8kVpgccxiIav+DR+22MB8GA1UdIwQYMBaAFEU9
+w6nR3D8kVpgccxiIav+DR+22MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0B
+AQUFAAOCAQEASZK8o+6svfoNyYt5hhwjdrCAWXf82n+0S9/DZEtqTg6t8n1Z
+dwWtColzsPq8y9yNAIiPpqCy6qxSJ7+hSHyXEHu67RMdmgduyzFiEuhjA6p9
+beP4G3YheBufS0OM00mG9htc9i5gFdPp43t1P9ACg9AYgkHNZTfqjjJ+vWuZ
+XTARyNtIVBw74acT02pIk/c9jH8F6M7ziCpjBLjqflh8AXtb4cV97yHgjQ5d
+UX2xZ/2jvTg2xvI4hocalmhgRvsoFEdV4aeADGvi6t9NfJBIoDa9CReJf8Py
+05yc493EG931t3GzUwWJBtDLSoDByFOQtTwxiBdQn8nEDovYqAJjDQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFLDCCBBSgAwIBAgIEOU99hzANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQG
+EwJXVzESMBAGA1UEChMJYmVUUlVTVGVkMRswGQYDVQQDExJiZVRSVVNUZWQg
+Um9vdCBDQXMxGjAYBgNVBAMTEWJlVFJVU1RlZCBSb290IENBMB4XDTAwMDYy
+MDE0MjEwNFoXDTEwMDYyMDEzMjEwNFowWjELMAkGA1UEBhMCV1cxEjAQBgNV
+BAoTCWJlVFJVU1RlZDEbMBkGA1UEAxMSYmVUUlVTVGVkIFJvb3QgQ0FzMRow
+GAYDVQQDExFiZVRSVVNUZWQgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQAD
+ggEPADCCAQoCggEBANS0c3oTCjhVAb6JVuGUntS+WutKNHUbYSnE4a0IYCF4
+SP+00PpeQY1hRIfo7clY+vyTmt9P6j41ffgzeubx181vSUs9Ty1uDoM6GHh3
+o8/n9E1z2Jo7Gh2+lVPPIJfCzz4kUmwMjmVZxXH/YgmPqsWPzGCgc0rXOD8V
+cr+il7dw6K/ifhYGTPWqZCZyByWtNfwYsSbX2P8ZDoMbjNx4RWc0PfSvHI3k
+bWvtILNnmrRhyxdviTX/507AMhLn7uzf/5cwdO2NR47rtMNE5qdMf1ZD6Li8
+tr76g5fmu/vEtpO+GRg+jIG5c4gW9JZDnGdzF5DYCW5jrEq2I8QBoa2k5MUC
+AwEAAaOCAfgwggH0MA8GA1UdEwEB/wQFMAMBAf8wggFZBgNVHSAEggFQMIIB
+TDCCAUgGCisGAQQBsT4BAAAwggE4MIIBAQYIKwYBBQUHAgIwgfQagfFSZWxp
+YW5jZSBvbiB0aGlzIGNlcnRpZmljYXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVz
+IGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFyZCB0
+ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGFuZCBjZXJ0aWZpY2F0aW9u
+IHByYWN0aWNlIHN0YXRlbWVudCwgd2hpY2ggY2FuIGJlIGZvdW5kIGF0IGJl
+VFJVU1RlZCdzIHdlYiBzaXRlLCBodHRwczovL3d3dy5iZVRSVVNUZWQuY29t
+L3ZhdWx0L3Rlcm1zMDEGCCsGAQUFBwIBFiVodHRwczovL3d3dy5iZVRSVVNU
+ZWQuY29tL3ZhdWx0L3Rlcm1zMDQGA1UdHwQtMCswKaAnoCWkIzAhMRIwEAYD
+VQQKEwliZVRSVVNUZWQxCzAJBgNVBAYTAldXMB0GA1UdDgQWBBQquZtpLjub
+2M3eKjEENGvKBxirZzAfBgNVHSMEGDAWgBQquZtpLjub2M3eKjEENGvKBxir
+ZzAOBgNVHQ8BAf8EBAMCAf4wDQYJKoZIhvcNAQEFBQADggEBAHlh26Nebhax
+6nZR+csVm8tpvuaBa58oH2U+3RGFktToQb9+M70j5/Egv6S0phkBxoyNNXxl
+pE8JpNbYIxUFE6dDea/bow6be3ga8wSGWsb2jCBHOElQBp1yZzrwmAOtlmdE
+/D8QDYZN5AA7KXvOOzuZhmElQITcE2K3+spZ1gMe1lMBzW1MaFVA4e5rxyoA
+AEiCswoBw2AqDPeCNe5IhpbkdNQ96gFxugR1QKepfzk5mlWXKWWuGVUlBXJH
+0+gY3Ljpr0NzARJ0o+FcXxVdJPP55PS2Z2cS52QiivalQaYctmBjRYoQtLpG
+EK5BV2VsPyMQPyEQWbfkQN0mDCP2qq4=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGUTCCBTmgAwIBAgIEPLVPQDANBgkqhkiG9w0BAQUFADBmMRIwEAYDVQQK
+EwliZVRSVVNUZWQxGzAZBgNVBAsTEmJlVFJVU1RlZCBSb290IENBczEzMDEG
+A1UEAxMqYmVUUlVTVGVkIFJvb3QgQ0EgLSBFbnRydXN0IEltcGxlbWVudGF0
+aW9uMB4XDTAyMDQxMTA4MjQyN1oXDTIyMDQxMTA4NTQyN1owZjESMBAGA1UE
+ChMJYmVUUlVTVGVkMRswGQYDVQQLExJiZVRSVVNUZWQgUm9vdCBDQXMxMzAx
+BgNVBAMTKmJlVFJVU1RlZCBSb290IENBIC0gRW50cnVzdCBJbXBsZW1lbnRh
+dGlvbjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALr0RAOqEmq1
+Q+xVkrYwfTVXDNvzDSduTPdQqJtOK2/b9a0cS12zqcH+e0TrW6MFDR/FNCsw
+ACnxeECypP869AGIF37m1CbTukzqMvtDd5eHI8XbQ6P1KqNRXuE70mVpflUV
+m3rnafdE4Fe1FehmYA8NA/uCjqPoEXtsvsdjDheT389Lrm5zdeDzqrmkwAkb
+hepxKYhBMvnwKg5sCfJ0a2ZsUhMfGLzUPvfYbiCeyv78IZTuEyhL11xeDGbu
+6bsPwTSxfwh28z0mcMmLJR1iJAzqHHVOwBLkuhMdMCktVjMFu5dZfsZJT4nX
+LySotohAtWSSU1Yk5KKghbNekLQSM80CAwEAAaOCAwUwggMBMIIBtwYDVR0g
+BIIBrjCCAaowggGmBg8rBgEEAbE+AAACCSiDkTEwggGRMIIBSQYIKwYBBQUH
+AgIwggE7GoIBN1JlbGlhbmNlIG9uIG9yIHVzZSBvZiB0aGlzIENlcnRpZmlj
+YXRlIGNyZWF0ZXMgYW4gYWNrbm93bGVkZ21lbnQgYW5kIGFjY2VwdGFuY2Ug
+b2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29u
+ZGl0aW9ucyBvZiB1c2UsIHRoZSBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0
+YXRlbWVudCBhbmQgdGhlIFJlbHlpbmcgUGFydHkgQWdyZWVtZW50LCB3aGlj
+aCBjYW4gYmUgZm91bmQgYXQgdGhlIGJlVFJVU1RlZCB3ZWIgc2l0ZSwgaHR0
+cHM6Ly93d3cuYmV0cnVzdGVkLmNvbS9wcm9kdWN0c19zZXJ2aWNlcy9pbmRl
+eC5odG1sMEIGCCsGAQUFBwIBFjZodHRwczovL3d3dy5iZXRydXN0ZWQuY29t
+L3Byb2R1Y3RzX3NlcnZpY2VzL2luZGV4Lmh0bWwwEQYJYIZIAYb4QgEBBAQD
+AgAHMIGJBgNVHR8EgYEwfzB9oHugeaR3MHUxEjAQBgNVBAoTCWJlVFJVU1Rl
+ZDEbMBkGA1UECxMSYmVUUlVTVGVkIFJvb3QgQ0FzMTMwMQYDVQQDEypiZVRS
+VVNUZWQgUm9vdCBDQSAtIEVudHJ1c3QgSW1wbGVtZW50YXRpb24xDTALBgNV
+BAMTBENSTDEwKwYDVR0QBCQwIoAPMjAwMjA0MTEwODI0MjdagQ8yMDIyMDQx
+MTA4NTQyN1owCwYDVR0PBAQDAgEGMB8GA1UdIwQYMBaAFH1w5a44iwY/qhwa
+j/nPJDCqhIQWMB0GA1UdDgQWBBR9cOWuOIsGP6ocGo/5zyQwqoSEFjAMBgNV
+HRMEBTADAQH/MB0GCSqGSIb2fQdBAAQQMA4bCFY2LjA6NC4wAwIEkDANBgkq
+hkiG9w0BAQUFAAOCAQEAKrgXzh8QlOu4mre5X+za95IkrNySO8cgjfKZ5V04
+ocI07cUTWVwFtStPYZuR+0H8/NU8TZh2BvWBfevdkObRVlTa4y0MnxEylCIB
+evZsLHRnBMylj44ss0O1lKLQfelifwa+JwGDnjr9iu6YQ0pr17WXOzq/T220
+Y/ozADQuLW2WyXvKmWO6vvT2MKAtmJbpVkQFqUSjYRDrgqFnXbxdJ3Wqiig2
+KjiS2d2kXgClzMx8KSreKJCrt+G2/30lC0DYqjSjLd4H61/OCt3Kfjp9JsFi
+aDrmLzfzgYYhxKlkqu9FNtEaZnz46TfW1mG+oq1I59/mdP7TbX3SJdysYlep
+9w==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFaDCCBFCgAwIBAgIQO1nHe81bV569N1KsdrSqGjANBgkqhkiG9w0BAQUF
+ADBiMRIwEAYDVQQKEwliZVRSVVNUZWQxGzAZBgNVBAsTEmJlVFJVU1RlZCBS
+b290IENBczEvMC0GA1UEAxMmYmVUUlVTVGVkIFJvb3QgQ0EgLSBSU0EgSW1w
+bGVtZW50YXRpb24wHhcNMDIwNDExMTExODEzWhcNMjIwNDEyMTEwNzI1WjBi
+MRIwEAYDVQQKEwliZVRSVVNUZWQxGzAZBgNVBAsTEmJlVFJVU1RlZCBSb290
+IENBczEvMC0GA1UEAxMmYmVUUlVTVGVkIFJvb3QgQ0EgLSBSU0EgSW1wbGVt
+ZW50YXRpb24wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkujQw
+CY5X0LkGLG9uJIAiv11DpvpPrILnHGhwhRujbrWqeNluB0s/6d/16uhUoWGK
+Di9pdRi3DOUUjXFumLhV/AyV0Jtu4S2I1DpAa5LxmZZk3tv/ePTulh1HiXzU
+vrmIdyM6CeYEnm2qXtLIvZpOGd+J6lsOfsPktPDgaTuID0GQ+NRxQyTBjyZL
+O1bp/4xsN+lFrYWMU8NghpBKlsmzVLC7F/AcRdnUGxlkVgoZ98zh/4avflhe
+rHqQH8koOUV7orbHnB/ahdQhhlkwk75TMzf270HPM8ercmsl9fNTGwxMLvF1
+S++gh/f+ihXQbNXL+WhTuXAVE8L1LvtDNXUtAgMBAAGjggIYMIICFDAMBgNV
+HRMEBTADAQH/MIIBtQYDVR0gBIIBrDCCAagwggGkBg8rBgEEAbE+AAADCSiD
+kTEwggGPMEEGCCsGAQUFBwIBFjVodHRwOi8vd3d3LmJldHJ1c3RlZC5jb20v
+cHJvZHVjdHNfc2VydmljZXMvaW5kZXguaHRtbDCCAUgGCCsGAQUFBwICMIIB
+OhqCATZSZWxpYW5jZSBvbiBvciB1c2Ugb2YgdGhpcyBDZXJ0aWZpY2F0ZSBj
+cmVhdGVzIGFuIGFja25vd2xlZGdtZW50IGFuZCBhY2NlcHRhbmNlIG9mIHRo
+ZSB0aGVuIGFwcGxpY2FibGUgc3RhbmRhcmQgdGVybXMgYW5kIGNvbmRpdGlv
+bnMgb2YgdXNlLCB0aGUgQ2VydGlmaWNhdGlvbiBQcmFjdGljZSBTdGF0ZW1l
+bnQgYW5kIHRoZSBSZWx5aW5nIFBhcnR5IEFncmVlbWVudCwgd2hpY2ggY2Fu
+IGJlIGZvdW5kIGF0IHRoZSBiZVRSVVNUZWQgd2ViIHNpdGUsIGh0dHA6Ly93
+d3cuYmV0cnVzdGVkLmNvbS9wcm9kdWN0c19zZXJ2aWNlcy9pbmRleC5odG1s
+MAsGA1UdDwQEAwIBBjAfBgNVHSMEGDAWgBSp7BR++dlDzFMrFK3P9/BZiUHN
+GTAdBgNVHQ4EFgQUqewUfvnZQ8xTKxStz/fwWYlBzRkwDQYJKoZIhvcNAQEF
+BQADggEBANuXsHXqDMTBmMpWBcCorSZIry0g6IHHtt9DwSwddUvUQo3neqh0
+3GZCWYez9Wlt2ames30cMcH1VOJZJEnl7r05pmuKmET7m9cqg5c0Lcd9NUwt
+NLg+DcTsiCevnpL9UGGCqGAHFFPMZRPB9kdEadIxyKbdLrML3kqNWz2rDcI1
+UqJWN8wyiyiFQpyRQHpwKzg21eFzGh/l+n5f3NacOzDq28BbJ1zTcwfBwvNM
+m2+fG8oeqqg4MwlYsq78B+g23FW6L09A/nq9BqaBwZMifIYRCgZ3SK41ty8y
+mmFei74pnykkiFY5LKjSq5YDWtRIn7lAhAuYaPsBQ9Yb4gmxlxw=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDDDCCAfSgAwIBAgIDAQAgMA0GCSqGSIb3DQEBBQUAMD4xCzAJBgNVBAYT
+AlBMMRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNVBAMTCUNl
+cnR1bSBDQTAeFw0wMjA2MTExMDQ2MzlaFw0yNzA2MTExMDQ2MzlaMD4xCzAJ
+BgNVBAYTAlBMMRswGQYDVQQKExJVbml6ZXRvIFNwLiB6IG8uby4xEjAQBgNV
+BAMTCUNlcnR1bSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
+AM6xwS7TT3zNJc4YPk/EjG+AanPIW1H4m9LcuwBcsaD8dQPugfCI7iNS6eYV
+M42sLQnFdvkrOYCJ5JdLkKWoePhzQ3ukYbDYWMzhbGZ+nPMJXlVjhNWo7/Ox
+LjBos8Q82KxujZlakE403Daaj4GIULdtlkIJ89eVgw1BS7Bqa/j8D35in2fE
+7SZfECYPCE/wpFcozo+47UX2bu4lXapuOb7kky/ZR6By6/qmW6/KUz/iDsaW
+VhFu9+lmqSbYf5VT7QqFiLpPKaVCjF62/IUgAKpoC6EahQGcxEZjgoi2IrHu
+/qpGWX7PNSzVttpd90gzFFS269lvzs2I1qsb2pY7HVkCAwEAAaMTMBEwDwYD
+VR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAuI3O7+cUus/usESS
+bLQ5PqKEbq24IXfS1HeCh+YgQYHu4vgRt2PRFze+GXYkHAQaTOs9qmdvLdTN
+/mUxcMUbpgIKumB7bVjCmkn+YzILa+M6wKyrO7Do0wlRjBCDxjTgxSvgGrZg
+FCdsMneMvLJymM/NzD+5yCRCFNZX/OYmQ6kd5YCQzgNUKD73P9P4Te1qCjqT
+E5s7FCMTY5w/0YcneeVMUeMBrYVdGjux1XMQpNPyvG5k9VpWkKjHDkx0Dy5x
+O/fIR/RpbxXyEV6DHpx8Uq79AtoSqFlnGNu8cN2bsWntgM6JQEhqDjXKKWYV
+IZQs6GAqm4VKQPNriiTsBhYscw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJH
+QjEbMBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxm
+b3JkMRowGAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEhMB8GA1UEAwwYQUFB
+IENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAwMFoXDTI4MTIz
+MTIzNTk1OVowezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFu
+Y2hlc3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENB
+IExpbWl0ZWQxITAfBgNVBAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCC
+ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL5AnfRu4ep2hxxNRUSO
+vkbIgwadwSr+GB+O5AL686tdUIoWMQuaBtDFcCLNSS1UY8y2bmhGC1Pqy0wk
+wLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe3M/vg4aijJRPn2jymJBGhCfH
+dr/jzDUsi14HZGWCwEiwqJH5YZ92IFCokcdmtet4YgNW8IoaE+oxox6gmf04
+9vYnMlhvB/VruPsUK6+3qszWY19zjNoFmag4qMsXeDZRrOme9Hg6jc8P2ULi
+mAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjHYpy+g8cmez6KJcfA3Z3m
+NWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQUoBEKIz6W
+8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMB
+Af8wewYDVR0fBHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20v
+QUFBQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwu
+Y29tb2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2VzLmNybDANBgkqhkiG
+9w0BAQUFAAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm
+7l3sAg9g1o1QGE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHC
+v8S5dIa2LX1rzNLzRt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdV
+CYfeU0BsWO/8tqtlbgT2G9w84FoVxp7Z8VlIMCFlA2zs6SFz7JsDoeA3raAV
+GI/6ugLOpyypEBMs1OUIJqsil2D4kF501KKaU73yqWjgom7C12yxow+ev+to
+51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEPzCCAyegAwIBAgIBATANBgkqhkiG9w0BAQUFADB+MQswCQYDVQQGEwJH
+QjEbMBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxm
+b3JkMRowGAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEkMCIGA1UEAwwbU2Vj
+dXJlIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAwMFoXDTI4
+MTIzMTIzNTk1OVowfjELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIg
+TWFuY2hlc3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2Rv
+IENBIExpbWl0ZWQxJDAiBgNVBAMMG1NlY3VyZSBDZXJ0aWZpY2F0ZSBTZXJ2
+aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMBxM4KK0HDr
+c4eCQNUd5MvJDkKQ+d40uaG6EfQlhfPMcm3ye5drswfxdySRXyWP9nQ95IDC
++DwN879A6vfIUtFyb+/Iq0G4bi4XKpVpDM3SHpR7LZQdqnXXs5jLrLxkU0C8
+j6ysNstcrbvd4JQX7NFc0L/vpZXJkMWwrPsbQ996CF23uPJAGysnnlDOXmWC
+iIxe004MeuoIkbY2qitC++rCoznl2yY4rYsK7hljxxwk3wN42ubqwUcaCwtG
+Cd0C/N7Lh1/XMGNooa7cMqG6vv5Eq2i2pRcV/b3Vp6ea5EQz6YiO/O1R65Nx
+Tq0B50SOqy3LqP4BSUjwwN3HaNiS/j0CAwEAAaOBxzCBxDAdBgNVHQ4EFgQU
+PNiTiMLAggnMAZkGkyDpnnAJY08wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB
+/wQFMAMBAf8wgYEGA1UdHwR6MHgwO6A5oDeGNWh0dHA6Ly9jcmwuY29tb2Rv
+Y2EuY29tL1NlY3VyZUNlcnRpZmljYXRlU2VydmljZXMuY3JsMDmgN6A1hjNo
+dHRwOi8vY3JsLmNvbW9kby5uZXQvU2VjdXJlQ2VydGlmaWNhdGVTZXJ2aWNl
+cy5jcmwwDQYJKoZIhvcNAQEFBQADggEBAIcBbSMdflsXfcFhMs+P5/OKlFlm
+4J4oqF7Tt/Q05qo5spcWxYJvMqTpjOev/e/C6LlLqqP05tqNZSH7uoDrJiiF
+Gv45jN5bBAS0VPmjZ55B+glSzAVIqMk/IQQezkhr/IXownuvf7fM+F86/TXG
+De+X3EyrEeFryzHRbPtIgKvcnDe4IRRLDXE97IMzbtFuMhbsmMcWi1mmNKsF
+Vy2T96oTy9IT4rcuO81rUBcJaD61JlfutuC23bkpgHl9j6PwpCikFcSF9CfU
+a7/lXORlAnZUtOM3ZiTTGWHIUhDlizeauan5Hb/qmZJhlv8BzaFfDbxxvA6s
+Cx1HRR3B7Hzs/Sk=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEQzCCAyugAwIBAgIBATANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJH
+QjEbMBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxm
+b3JkMRowGAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDElMCMGA1UEAwwcVHJ1
+c3RlZCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczAeFw0wNDAxMDEwMDAwMDBaFw0y
+ODEyMzEyMzU5NTlaMH8xCzAJBgNVBAYTAkdCMRswGQYDVQQIDBJHcmVhdGVy
+IE1hbmNoZXN0ZXIxEDAOBgNVBAcMB1NhbGZvcmQxGjAYBgNVBAoMEUNvbW9k
+byBDQSBMaW1pdGVkMSUwIwYDVQQDDBxUcnVzdGVkIENlcnRpZmljYXRlIFNl
+cnZpY2VzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA33FvNlhT
+WvI2VFeAxHQIIO0Yfyod5jWaHiWsnOWWfnJSoBVC21ndZHoa0Lh73TkVvFVI
+xO06AOoxEbrycXQaZ7jPM8yoMa+j49d/vzMtTGo87IvDktJTdyR0nAducPy9
+C1t2ul/y/9c3S0pgePfw+spwtOpZqqPOSC+pw7ILfhdyFgymBwwbOM/JYrc/
+oJOlh0Hyt3BAd9i+FHzjqMB6juljatEPmsbS9Is6FARW1O24zG71++IsWL1/
+T2sr92AkWCTOJu80kTrV44HQsvAEAtdbtz6SrGsSivnkBbA7kUlcsutT6vif
+R4buv5XAwAaf0lteERv0xwQ1KdJVXOTt6wIDAQABo4HJMIHGMB0GA1UdDgQW
+BBTFe1i97doladL3WRaoszLAeydb9DAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0T
+AQH/BAUwAwEB/zCBgwYDVR0fBHwwejA8oDqgOIY2aHR0cDovL2NybC5jb21v
+ZG9jYS5jb20vVHJ1c3RlZENlcnRpZmljYXRlU2VydmljZXMuY3JsMDqgOKA2
+hjRodHRwOi8vY3JsLmNvbW9kby5uZXQvVHJ1c3RlZENlcnRpZmljYXRlU2Vy
+dmljZXMuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQDIk4E7ibSvuIQSTI3S8Ntw
+uleGFTQQuS9/HrCoiWChisJ3DFBKmwCL2Iv0QeLQg4pKHBQGsKNoBXAxMKdT
+mw7pSqBYaWcOrp32pSxBvzwGa+RZzG0Q8ZZvH9/0BAKkn0U+yNj6NkZEUD+C
+l5EfKNsYEYwq5GWDVxISjBc/lDb+XbDABHcTuPQV1T84zJQ6VdCsmPW6AF/g
+hhmBeC8owH7TzEIK9a5QoNE+xqFx7D+gIIxmOom0jtTYsU0lR+4viMi14QVF
+wL4Ucd56/Y57fU0IlqUSc/AtyjcndBInTMu2l+nZrghtWjlA3QVHdWpaIbOj
+GM9O9y5Xt5hwXsjEeLBi
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDKTCCApKgAwIBAgIENnAVljANBgkqhkiG9w0BAQUFADBGMQswCQYDVQQG
+EwJVUzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMREw
+DwYDVQQLEwhEU1RDQSBFMTAeFw05ODEyMTAxODEwMjNaFw0xODEyMTAxODQw
+MjNaMEYxCzAJBgNVBAYTAlVTMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVy
+ZSBUcnVzdCBDby4xETAPBgNVBAsTCERTVENBIEUxMIGdMA0GCSqGSIb3DQEB
+AQUAA4GLADCBhwKBgQCgbIGpzzQeJN3+hijM3oMv+V7UQtLodGBmE5gGHKlR
+EmlvMVW5SXIACH7TpWJENySZj9mDSI+ZbZUTu0M7LklOiDfBu1h//uG9+Lth
+zfNHwJmm8fOR6Hh8AMthyUQncWlVSn5JTe2io74CTADKAqjuAQIxZA9SLRN0
+dja1erQtcQIBA6OCASQwggEgMBEGCWCGSAGG+EIBAQQEAwIABzBoBgNVHR8E
+YTBfMF2gW6BZpFcwVTELMAkGA1UEBhMCVVMxJDAiBgNVBAoTG0RpZ2l0YWwg
+U2lnbmF0dXJlIFRydXN0IENvLjERMA8GA1UECxMIRFNUQ0EgRTExDTALBgNV
+BAMTBENSTDEwKwYDVR0QBCQwIoAPMTk5ODEyMTAxODEwMjNagQ8yMDE4MTIx
+MDE4MTAyM1owCwYDVR0PBAQDAgEGMB8GA1UdIwQYMBaAFGp5fpFpRhgTCgJ3
+pVlbYJglDqL4MB0GA1UdDgQWBBRqeX6RaUYYEwoCd6VZW2CYJQ6i+DAMBgNV
+HRMEBTADAQH/MBkGCSqGSIb2fQdBAAQMMAobBFY0LjADAgSQMA0GCSqGSIb3
+DQEBBQUAA4GBACIS2Hod3IEGtgllsofIH160L+nEHvI8wbsEkBFKg05+k7lN
+QseSJqBcNJo4cvj9axY+IO6CizEqkzaFI4iKPANo08kJD038bKTaKHKTDomA
+sH3+gG9lbRgzl4vCa4nuYD3Im+9/KzJic5PLPON74nZ4RbyhkwS7hp86W0N6
+w4pl
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIID2DCCAsACEQDQHkCLAAACfAAAAAIAAAABMA0GCSqGSIb3DQEBBQUAMIGp
+MQswCQYDVQQGEwJ1czENMAsGA1UECBMEVXRhaDEXMBUGA1UEBxMOU2FsdCBM
+YWtlIENpdHkxJDAiBgNVBAoTG0RpZ2l0YWwgU2lnbmF0dXJlIFRydXN0IENv
+LjERMA8GA1UECxMIRFNUQ0EgWDExFjAUBgNVBAMTDURTVCBSb290Q0EgWDEx
+ITAfBgkqhkiG9w0BCQEWEmNhQGRpZ3NpZ3RydXN0LmNvbTAeFw05ODEyMDEx
+ODE4NTVaFw0wODExMjgxODE4NTVaMIGpMQswCQYDVQQGEwJ1czENMAsGA1UE
+CBMEVXRhaDEXMBUGA1UEBxMOU2FsdCBMYWtlIENpdHkxJDAiBgNVBAoTG0Rp
+Z2l0YWwgU2lnbmF0dXJlIFRydXN0IENvLjERMA8GA1UECxMIRFNUQ0EgWDEx
+FjAUBgNVBAMTDURTVCBSb290Q0EgWDExITAfBgkqhkiG9w0BCQEWEmNhQGRp
+Z3NpZ3RydXN0LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
+ANLGJrbnpT3BxGjVUG9TxW9JEwm4ryxIjRRqoxdfWvnTLnUv2Chi0ZMv/E3U
+q4flCMeZ55I/db3rJbQVwZsZPdJEjdd0IG03Ao9pk1uKxBmd9LIO/BZsubEF
+koPRhSxglD5FVaDZqwgh5mDoO3TymVBRaNADLbGAvqPYUrBEzUNKcI5YhZXh
+TizWLUFv1oTnyJhEykfbLCSlaSbPa7gnYsP0yXqSI+0TZ4KuRS5F5X5yP4Wd
+lGIQ5jyRoa13AOAV7POEgHJ6jm5gl8ckWRA0g1vhpaRptlc1HHhZxtMvOnNn
+7pTKBBMFYgZwI7P0fO5F2WQLW0mqpEPOJsREEmy43XkCAwEAATANBgkqhkiG
+9w0BAQUFAAOCAQEAojeyP2n714Z5VEkxlTMr89EJFEliYIalsBHiUMIdBlc+
+LegzZL6bqq1fG03UmZWii5rJYnK1aerZWKs17RWiQ9a2vAd5ZWRzfdd5ynvV
+WlHG4VMElo04z6MXrDlxawHDi1M8Y+nuecDkvpIyZHqzH5eUYr3qsiAVlfuX
+8ngvYzZAOONGDx3drJXK50uQe7FLqdTF65raqtWjlBRGjS0f8zrWkzr2Pnn8
+6Oawde3uPclwx12qgUtGJRzHbBXjlU4PqjI3lAoXJJIThFjSY28r9+ZbYgsT
+F7ANUkz+/m9c4pFuHf2kYtdo+o56T9II2pPc8JIRetDccpMMc5NihWjQ9A==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDKTCCApKgAwIBAgIENm7TzjANBgkqhkiG9w0BAQUFADBGMQswCQYDVQQG
+EwJVUzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMREw
+DwYDVQQLEwhEU1RDQSBFMjAeFw05ODEyMDkxOTE3MjZaFw0xODEyMDkxOTQ3
+MjZaMEYxCzAJBgNVBAYTAlVTMSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVy
+ZSBUcnVzdCBDby4xETAPBgNVBAsTCERTVENBIEUyMIGdMA0GCSqGSIb3DQEB
+AQUAA4GLADCBhwKBgQC/k48Xku8zExjrEH9OFr//Bo8qhbxe+SSmJIi2A7fB
+w18DW9Fvrn5C6mYjuGODVvsoLeE4i7TuqAHhzhy2iCoiRoX7n6dwqUcUP87e
+ZfCocfdPJmyMvMa1795JJ/9IKn3oTQPMx7JSxhcxEzu1TdvIxPbDDyQq2gyd
+55FbgM2UnQIBA6OCASQwggEgMBEGCWCGSAGG+EIBAQQEAwIABzBoBgNVHR8E
+YTBfMF2gW6BZpFcwVTELMAkGA1UEBhMCVVMxJDAiBgNVBAoTG0RpZ2l0YWwg
+U2lnbmF0dXJlIFRydXN0IENvLjERMA8GA1UECxMIRFNUQ0EgRTIxDTALBgNV
+BAMTBENSTDEwKwYDVR0QBCQwIoAPMTk5ODEyMDkxOTE3MjZagQ8yMDE4MTIw
+OTE5MTcyNlowCwYDVR0PBAQDAgEGMB8GA1UdIwQYMBaAFB6CTShlgDzJQW6s
+NS5ay97u+DlbMB0GA1UdDgQWBBQegk0oZYA8yUFurDUuWsve7vg5WzAMBgNV
+HRMEBTADAQH/MBkGCSqGSIb2fQdBAAQMMAobBFY0LjADAgSQMA0GCSqGSIb3
+DQEBBQUAA4GBAEeNg61i8tuwnkUiBbmi1gMOOHLnnvx75pO2mqWilMg0HZHR
+xdf0CiUPPXiBng+xZ8SQTGPdXqfiup/1902lMXucKS1M/mQ+7LZT/uqb7YLb
+dHVLB3luHtgZg3Pe9T7Qtd7nS2h9Qy4qIOF+oHhEngj1mPnHfxsb1gYgAlih
+w6ID
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIID2DCCAsACEQDQHkCLAAB3bQAAAAEAAAAEMA0GCSqGSIb3DQEBBQUAMIGp
+MQswCQYDVQQGEwJ1czENMAsGA1UECBMEVXRhaDEXMBUGA1UEBxMOU2FsdCBM
+YWtlIENpdHkxJDAiBgNVBAoTG0RpZ2l0YWwgU2lnbmF0dXJlIFRydXN0IENv
+LjERMA8GA1UECxMIRFNUQ0EgWDIxFjAUBgNVBAMTDURTVCBSb290Q0EgWDIx
+ITAfBgkqhkiG9w0BCQEWEmNhQGRpZ3NpZ3RydXN0LmNvbTAeFw05ODExMzAy
+MjQ2MTZaFw0wODExMjcyMjQ2MTZaMIGpMQswCQYDVQQGEwJ1czENMAsGA1UE
+CBMEVXRhaDEXMBUGA1UEBxMOU2FsdCBMYWtlIENpdHkxJDAiBgNVBAoTG0Rp
+Z2l0YWwgU2lnbmF0dXJlIFRydXN0IENvLjERMA8GA1UECxMIRFNUQ0EgWDIx
+FjAUBgNVBAMTDURTVCBSb290Q0EgWDIxITAfBgkqhkiG9w0BCQEWEmNhQGRp
+Z3NpZ3RydXN0LmNvbTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB
+ANx18IzAdZaawGIfJvfE4Zrq4FZzW5nNAUSoCLbVp9oaBBg5kkp4o4HC9Xd6
+ULRw/5qrxsfKboNPQpj7Jgva3G3WqZlVUmfpKAOS3OWwBZoPFflrWXJW8vo5
+/Kpo7g8fEIMv/J36F5bdguPmRX3AS4BEH+0s4IT9kVySVGkl5WJp3OXuAFK9
+MwutdQKFp2RQLcUZGTDAJtvJ0/0uma1ZtQtN1EGuhUhDWdy3qOKi3sOP17ih
+YqZoUFLkzzGnlIXan0YyF1bl8utmPRL/Q9uY73fPy4GNNLHGUEom0eQ+QVCv
+bK4iNC7Va26Dunm4dmVI2gkpZGMiuftHdoWMhkTLCdsCAwEAATANBgkqhkiG
+9w0BAQUFAAOCAQEAtTYOXeFhKFoRZcA/gwN5Tb4opgsHAlKFzfiR0BBstWog
+WxyQ2TA8xkieil5k+aFxd+8EJx8H6+Qm93N0yUQYGmbT4EOvkTvRyyzYdFQ6
+HE3K1GjNI3wdEJ5F6fYAbqbNGf9PLCmPV03Ed5K+4EwJ+11EhmYhqLkyolbV
+6YyDfFk/xPEL553snr2cGA4+wjl5KLcDDQjLxufZATdQEOzMYRZA1K8xdHv8
+PzGn0EdzMzkbzE5q10mDEQb+64JYMzJM8FasHpwvVpp7wUocpf1VNs78lk30
+sPDst2yC7S8xmUJMqbINuBVd8d+6ybVK1GSYsyapMMj9puyrliGtf8J4tg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEgzCCA+ygAwIBAgIEOJ725DANBgkqhkiG9w0BAQQFADCBtDEUMBIGA1UE
+ChMLRW50cnVzdC5uZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9HQ0NB
+X0NQUyBpbmNvcnAuIGJ5IHJlZi4gKGxpbWl0cyBsaWFiLikxJTAjBgNVBAsT
+HChjKSAyMDAwIEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNVBAMTKkVudHJ1
+c3QubmV0IENsaWVudCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMDAy
+MDcxNjE2NDBaFw0yMDAyMDcxNjQ2NDBaMIG0MRQwEgYDVQQKEwtFbnRydXN0
+Lm5ldDFAMD4GA1UECxQ3d3d3LmVudHJ1c3QubmV0L0dDQ0FfQ1BTIGluY29y
+cC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMcKGMpIDIwMDAg
+RW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5uZXQgQ2xp
+ZW50IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUA
+A4GNADCBiQKBgQCTdLS25MVL1qFof2LV7PdRV7NySpj10InJrWPNTTVRaoTU
+rcloeW+46xHbh65cJFET8VQlhK8pK5/jgOLZy93GRUk0iJBeAZfv6lOm3fzB
+3ksqJeTpNfpVBQbliXrqpBFXO/x8PTbNZzVtpKklWb1m9fkn5JVn1j+SgF7y
+NH0rhQIDAQABo4IBnjCCAZowEQYJYIZIAYb4QgEBBAQDAgAHMIHdBgNVHR8E
+gdUwgdIwgc+ggcyggcmkgcYwgcMxFDASBgNVBAoTC0VudHJ1c3QubmV0MUAw
+PgYDVQQLFDd3d3cuZW50cnVzdC5uZXQvR0NDQV9DUFMgaW5jb3JwLiBieSBy
+ZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMjAwMCBFbnRydXN0
+Lm5ldCBMaW1pdGVkMTMwMQYDVQQDEypFbnRydXN0Lm5ldCBDbGllbnQgQ2Vy
+dGlmaWNhdGlvbiBBdXRob3JpdHkxDTALBgNVBAMTBENSTDEwKwYDVR0QBCQw
+IoAPMjAwMDAyMDcxNjE2NDBagQ8yMDIwMDIwNzE2NDY0MFowCwYDVR0PBAQD
+AgEGMB8GA1UdIwQYMBaAFISLdP3FjcD/J20gN0V8/i3OutN9MB0GA1UdDgQW
+BBSEi3T9xY3A/ydtIDdFfP4tzrrTfTAMBgNVHRMEBTADAQH/MB0GCSqGSIb2
+fQdBAAQQMA4bCFY1LjA6NC4wAwIEkDANBgkqhkiG9w0BAQQFAAOBgQBObzWA
+O9GK9Q6nIMstZVXQkvTnhLUGJoMShAusO7JE7r3PQNsgDrpuFOow4DtifH+L
+a3xKp9U1PL6oXOpLu5OOgGarDyn9TS2/GpsKkMWr2tGzhtQvJFJcem3G8v7l
+TRowjJDyutdKPkN+1MhQGof4T4HHdguEOnKdzmVml64mXg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIElTCCA/6gAwIBAgIEOJsRPDANBgkqhkiG9w0BAQQFADCBujEUMBIGA1UE
+ChMLRW50cnVzdC5uZXQxPzA9BgNVBAsUNnd3dy5lbnRydXN0Lm5ldC9TU0xf
+Q1BTIGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMc
+KGMpIDIwMDAgRW50cnVzdC5uZXQgTGltaXRlZDE6MDgGA1UEAxMxRW50cnVz
+dC5uZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe
+Fw0wMDAyMDQxNzIwMDBaFw0yMDAyMDQxNzUwMDBaMIG6MRQwEgYDVQQKEwtF
+bnRydXN0Lm5ldDE/MD0GA1UECxQ2d3d3LmVudHJ1c3QubmV0L1NTTF9DUFMg
+aW5jb3JwLiBieSByZWYuIChsaW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykg
+MjAwMCBFbnRydXN0Lm5ldCBMaW1pdGVkMTowOAYDVQQDEzFFbnRydXN0Lm5l
+dCBTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0G
+CSqGSIb3DQEBAQUAA4GNADCBiQKBgQDHwV9OcfHO8GCGD9JYf9Mzly0XonUw
+tZZkJi9ow0SrqHXmAGc0V55lxyKbc+bT3QgON1WqJUaBbL3+qPZ1V1eMkGxK
+wz6LS0MKyRFWmponIpnPVZ5h2QLifLZ8OAfc439PmrkDQYC2dWcTC5/oVzbI
+XQA23mYU2m52H083jIITiQIDAQABo4IBpDCCAaAwEQYJYIZIAYb4QgEBBAQD
+AgAHMIHjBgNVHR8EgdswgdgwgdWggdKggc+kgcwwgckxFDASBgNVBAoTC0Vu
+dHJ1c3QubmV0MT8wPQYDVQQLFDZ3d3cuZW50cnVzdC5uZXQvU1NMX0NQUyBp
+bmNvcnAuIGJ5IHJlZi4gKGxpbWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAy
+MDAwIEVudHJ1c3QubmV0IExpbWl0ZWQxOjA4BgNVBAMTMUVudHJ1c3QubmV0
+IFNlY3VyZSBTZXJ2ZXIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxDTALBgNV
+BAMTBENSTDEwKwYDVR0QBCQwIoAPMjAwMDAyMDQxNzIwMDBagQ8yMDIwMDIw
+NDE3NTAwMFowCwYDVR0PBAQDAgEGMB8GA1UdIwQYMBaAFMtswGvjuz7L/CKc
+/vuLkpyw8m4iMB0GA1UdDgQWBBTLbMBr47s+y/winP77i5KcsPJuIjAMBgNV
+HRMEBTADAQH/MB0GCSqGSIb2fQdBAAQQMA4bCFY1LjA6NC4wAwIEkDANBgkq
+hkiG9w0BAQQFAAOBgQBi24GRzsiad0Iv7L0no1MPUBvqTpLwqa+poLpIYcvv
+yQbvH9X07t9WLebKahlzqlO+krNQAraFJnJj2HVQYnUUt7NQGj/KEQALhUVp
+bbalrlHhStyCP2yMNLJ3a9kC9n8O6mUE8c1UyrrJzOCE98g+EZfTYAkYvAX/
+bIkz8OwVDw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEXDCCA0SgAwIBAgIEOGO5ZjANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UE
+ChMLRW50cnVzdC5uZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNf
+MjA0OCBpbmNvcnAuIGJ5IHJlZi4gKGxpbWl0cyBsaWFiLikxJTAjBgNVBAsT
+HChjKSAxOTk5IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNVBAMTKkVudHJ1
+c3QubmV0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEy
+MjQxNzUwNTFaFw0xOTEyMjQxODIwNTFaMIG0MRQwEgYDVQQKEwtFbnRydXN0
+Lm5ldDFAMD4GA1UECxQ3d3d3LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29y
+cC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMcKGMpIDE5OTkg
+RW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5uZXQgQ2Vy
+dGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgpMIIBIjANBgkqhkiG9w0BAQEF
+AAOCAQ8AMIIBCgKCAQEArU1LqRKGsuqjIAcVFmQqK0vRvwtKTY7tgHalZ7d4
+QMBzQshowNtTK91euHaYNZOLGp18EzoOH1u3Hs/lJBQesYGpjX24zGtLA/EC
+DNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSrhRSGlVuXMlBvPci6Zgzj
+/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVTXTzWnLLP
+KQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/HoZd
+enoVve8AjhUiVBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH
+4QIDAQABo3QwcjARBglghkgBhvhCAQEEBAMCAAcwHwYDVR0jBBgwFoAUVeSB
+0RGAvtiJuQijMfmhJAkWuXAwHQYDVR0OBBYEFFXkgdERgL7YibkIozH5oSQJ
+FrlwMB0GCSqGSIb2fQdBAAQQMA4bCFY1LjA6NC4wAwIEkDANBgkqhkiG9w0B
+AQUFAAOCAQEAWUesIYSKF8mciVMeuoCFGsY8Tj6xnLZ8xpJdGGQC49MGCBFh
+fGPjK50xA3B20qMooPS7mmNz7W3lKtvtFKkrxjYR0CvrB4ul2p5cGZ1WEvVU
+KcgF7bISKo30Axv/55IQh7A6tcOdBTcSo8f0FbnVpDkWm1M6I5HxqIKiaoho
+wXkCIryqptau37AUX7iH0N18f3v/rxzP5tsHrV7bhZ3QKw0z2wTR5klAEyt2
++z7pnIkPFc4YsIV4IU9rTw76NmfNB/L/CNDi3tm/Kq+4h4YhPATKt5Rof888
+6ZjXOP/swNlQ8C5LWK5Gb9Auw2DaclVyvUxFnmG6v4SBkgPR0ml8xQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIE7TCCBFagAwIBAgIEOAOR7jANBgkqhkiG9w0BAQQFADCByTELMAkGA1UE
+BhMCVVMxFDASBgNVBAoTC0VudHJ1c3QubmV0MUgwRgYDVQQLFD93d3cuZW50
+cnVzdC5uZXQvQ2xpZW50X0NBX0luZm8vQ1BTIGluY29ycC4gYnkgcmVmLiBs
+aW1pdHMgbGlhYi4xJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1c3QubmV0IExp
+bWl0ZWQxMzAxBgNVBAMTKkVudHJ1c3QubmV0IENsaWVudCBDZXJ0aWZpY2F0
+aW9uIEF1dGhvcml0eTAeFw05OTEwMTIxOTI0MzBaFw0xOTEwMTIxOTU0MzBa
+MIHJMQswCQYDVQQGEwJVUzEUMBIGA1UEChMLRW50cnVzdC5uZXQxSDBGBgNV
+BAsUP3d3dy5lbnRydXN0Lm5ldC9DbGllbnRfQ0FfSW5mby9DUFMgaW5jb3Jw
+LiBieSByZWYuIGxpbWl0cyBsaWFiLjElMCMGA1UECxMcKGMpIDE5OTkgRW50
+cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5uZXQgQ2xpZW50
+IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGdMA0GCSqGSIb3DQEBAQUAA4GL
+ADCBhwKBgQDIOpleMRffrCdvkHvkGf9FozTC28GoT/Bo6oT9n3V5z8GKUZSv
+x1cDR2SerYIbWtp/N3hHuzeYEpbOxhN979IMMFGpOZ5V+Pux5zDeg7K6PvHV
+iTs7hbqqdCz+PzFur5GVbgbUB01LLFZHGARS2g4Qk79jkJvh34zmAqTmT173
+iwIBA6OCAeAwggHcMBEGCWCGSAGG+EIBAQQEAwIABzCCASIGA1UdHwSCARkw
+ggEVMIHkoIHhoIHepIHbMIHYMQswCQYDVQQGEwJVUzEUMBIGA1UEChMLRW50
+cnVzdC5uZXQxSDBGBgNVBAsUP3d3dy5lbnRydXN0Lm5ldC9DbGllbnRfQ0Ff
+SW5mby9DUFMgaW5jb3JwLiBieSByZWYuIGxpbWl0cyBsaWFiLjElMCMGA1UE
+CxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50
+cnVzdC5uZXQgQ2xpZW50IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MQ0wCwYD
+VQQDEwRDUkwxMCygKqAohiZodHRwOi8vd3d3LmVudHJ1c3QubmV0L0NSTC9D
+bGllbnQxLmNybDArBgNVHRAEJDAigA8xOTk5MTAxMjE5MjQzMFqBDzIwMTkx
+MDEyMTkyNDMwWjALBgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUxPucKXuXzUyW
+/O5bs8qZdIuV6kwwHQYDVR0OBBYEFMT7nCl7l81MlvzuW7PKmXSLlepMMAwG
+A1UdEwQFMAMBAf8wGQYJKoZIhvZ9B0EABAwwChsEVjQuMAMCBJAwDQYJKoZI
+hvcNAQEEBQADgYEAP66K8ddmAwWePvrqHEa7pFuPeJoSSJn59DXeDDYHAmsQ
+OokUgZwxpnyyQbJq5wcBoUv5nyU7lsqZwz6hURzzwy5E97BnRqqS5TvaHBkU
+ODDV4qIxJS7x7EU47fgGWANzYrAQMY9Av2TgXD7FTx/aEkP/TOYGJqibGapE
+PHayXOw=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIE2DCCBEGgAwIBAgIEN0rSQzANBgkqhkiG9w0BAQUFADCBwzELMAkGA1UE
+BhMCVVMxFDASBgNVBAoTC0VudHJ1c3QubmV0MTswOQYDVQQLEzJ3d3cuZW50
+cnVzdC5uZXQvQ1BTIGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTEl
+MCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDE6MDgGA1UE
+AxMxRW50cnVzdC5uZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1
+dGhvcml0eTAeFw05OTA1MjUxNjA5NDBaFw0xOTA1MjUxNjM5NDBaMIHDMQsw
+CQYDVQQGEwJVUzEUMBIGA1UEChMLRW50cnVzdC5uZXQxOzA5BgNVBAsTMnd3
+dy5lbnRydXN0Lm5ldC9DUFMgaW5jb3JwLiBieSByZWYuIChsaW1pdHMgbGlh
+Yi4pMSUwIwYDVQQLExwoYykgMTk5OSBFbnRydXN0Lm5ldCBMaW1pdGVkMTow
+OAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENlcnRpZmljYXRp
+b24gQXV0aG9yaXR5MIGdMA0GCSqGSIb3DQEBAQUAA4GLADCBhwKBgQDNKIM0
+VBuJ8w+vN5Ex/68xYMmo6LIQaO2f55M28Qpku0f1BBc/I0dNxScZgSYMVHIN
+iC3ZH5oSn7yzcdOAGT9HZnuMNSjSuQrfJNqc1lB5gXpa0zf3wkrYKZImZNHk
+mGw6AIr1NJtl+O3jEP/9uElY3KDegjlrgbEWGWG5VLbmQwIBA6OCAdcwggHT
+MBEGCWCGSAGG+EIBAQQEAwIABzCCARkGA1UdHwSCARAwggEMMIHeoIHboIHY
+pIHVMIHSMQswCQYDVQQGEwJVUzEUMBIGA1UEChMLRW50cnVzdC5uZXQxOzA5
+BgNVBAsTMnd3dy5lbnRydXN0Lm5ldC9DUFMgaW5jb3JwLiBieSByZWYuIChs
+aW1pdHMgbGlhYi4pMSUwIwYDVQQLExwoYykgMTk5OSBFbnRydXN0Lm5ldCBM
+aW1pdGVkMTowOAYDVQQDEzFFbnRydXN0Lm5ldCBTZWN1cmUgU2VydmVyIENl
+cnRpZmljYXRpb24gQXV0aG9yaXR5MQ0wCwYDVQQDEwRDUkwxMCmgJ6AlhiNo
+dHRwOi8vd3d3LmVudHJ1c3QubmV0L0NSTC9uZXQxLmNybDArBgNVHRAEJDAi
+gA8xOTk5MDUyNTE2MDk0MFqBDzIwMTkwNTI1MTYwOTQwWjALBgNVHQ8EBAMC
+AQYwHwYDVR0jBBgwFoAU8BdiE1U9s/8KAGv7UISX8+1i0BowHQYDVR0OBBYE
+FPAXYhNVPbP/CgBr+1CEl/PtYtAaMAwGA1UdEwQFMAMBAf8wGQYJKoZIhvZ9
+B0EABAwwChsEVjQuMAMCBJAwDQYJKoZIhvcNAQEFBQADgYEAkNwwAvpkdMKn
+CqV8IY00F6j7Rw7/JXyNEwr75Ji174z4xRAN95K+8cPV1ZVqBLssziY2Zcgx
+xufuP+NXdYR6Ee9GTxj005i7qIcyunL2POI9n9cd2cNgQ4xYDiKWL2KjLB+6
+rQXvqzJ4h6BUcxm1XAX5Uj5tLUUL9wqT6u0G+bI=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDIDCCAomgAwIBAgIENd70zzANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQG
+EwJVUzEQMA4GA1UEChMHRXF1aWZheDEtMCsGA1UECxMkRXF1aWZheCBTZWN1
+cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MB4XDTk4MDgyMjE2NDE1MVoXDTE4
+MDgyMjE2NDE1MVowTjELMAkGA1UEBhMCVVMxEDAOBgNVBAoTB0VxdWlmYXgx
+LTArBgNVBAsTJEVxdWlmYXggU2VjdXJlIENlcnRpZmljYXRlIEF1dGhvcml0
+eTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAwV2xWGcIYu6gmi0fCG2R
+FGiYCh7+2gRvE4RiIcPRfM6fBeC4AfBONOziipUEZKzxa1NfBbPLZ4C/QgKO
+/t0BCezhABRP/PvwDN1Dulsr4R+AcJkVV5MW8Q+XarfCaCMczE1ZMKxRHjuv
+K9buY0V7xdlfUNLjUA86iOe/FP3gx7kCAwEAAaOCAQkwggEFMHAGA1UdHwRp
+MGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEQMA4GA1UEChMHRXF1aWZheDEt
+MCsGA1UECxMkRXF1aWZheCBTZWN1cmUgQ2VydGlmaWNhdGUgQXV0aG9yaXR5
+MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTgwODIyMTY0MTUxWjAL
+BgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUSOZo+SvSspXXR9gjIBBPM5iQn9Qw
+HQYDVR0OBBYEFEjmaPkr0rKV10fYIyAQTzOYkJ/UMAwGA1UdEwQFMAMBAf8w
+GgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUAA4GB
+AFjOKer89961zgK5F7WF0bnj4JXMJTENAKaSbn+2kmOeUJXRmm/kEd5jhW6Y
+7qj/WsjTVbJmcVfewCHrPSqnI0kBBIZCe/zuf6IWUrVnZ9NA2zsmWLIodz2u
+FHdh1voqZiegDfqnc1zqcPGUIWVEX/r87yloqaKHee9570+sB3c4
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICgjCCAeugAwIBAgIBBDANBgkqhkiG9w0BAQQFADBTMQswCQYDVQQGEwJV
+UzEcMBoGA1UEChMTRXF1aWZheCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1
+aWZheCBTZWN1cmUgZUJ1c2luZXNzIENBLTEwHhcNOTkwNjIxMDQwMDAwWhcN
+MjAwNjIxMDQwMDAwWjBTMQswCQYDVQQGEwJVUzEcMBoGA1UEChMTRXF1aWZh
+eCBTZWN1cmUgSW5jLjEmMCQGA1UEAxMdRXF1aWZheCBTZWN1cmUgZUJ1c2lu
+ZXNzIENBLTEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAM4vGbwXt3fe
+k6lfWg0XTzQaDJj0ItlZ1MRoRvC0NcWFAyDGr0WlIVFFQesWWDYyb+JQYmT5
+/VGcqiTZ9J2DKocKIdMSODRsjQBuWqDZQu4aIZX5UkxVWsUPOE9G+m34LjXW
+HXzr4vCwdYDIqROsvojvOm6rXyo4YgKwEnv+j6YDAgMBAAGjZjBkMBEGCWCG
+SAGG+EIBAQQEAwIABzAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFEp4
+MlIR21kWNl7fwRQ2QGpHfEyhMB0GA1UdDgQWBBRKeDJSEdtZFjZe38EUNkBq
+R3xMoTANBgkqhkiG9w0BAQQFAAOBgQB1W6ibAxHm6VZMzfmpTMANmvPMZWnm
+JXbMWbfWVMMdzZmsGd20hdXgPfxiIKeES1hl8eL5lSE/9dR+WB5Hh1Q+WKG1
+tfgq73HnvMP2sUlG4tega+VWeponmHxGYhTnyfxuAxJ5gDgdSIKN/Bf+KpYr
+tWKmpj29f5JZzVoqgrI3eQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDIDCCAomgAwIBAgIEN3DPtTANBgkqhkiG9w0BAQUFADBOMQswCQYDVQQG
+EwJVUzEXMBUGA1UEChMORXF1aWZheCBTZWN1cmUxJjAkBgNVBAsTHUVxdWlm
+YXggU2VjdXJlIGVCdXNpbmVzcyBDQS0yMB4XDTk5MDYyMzEyMTQ0NVoXDTE5
+MDYyMzEyMTQ0NVowTjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDkVxdWlmYXgg
+U2VjdXJlMSYwJAYDVQQLEx1FcXVpZmF4IFNlY3VyZSBlQnVzaW5lc3MgQ0Et
+MjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA5Dk5kx5SBhsoNviyoynF
+7Y6yEb3+6+e0dMKP/wXn2Z0GvxLIPw7y1tEkshHe0XMJitSxLJgJDR5QRrKD
+pkWNYmi7hRsgcDKqQM2mll/EcTc/BPO3QSQ5BxoeLmFYoBIL5aXfxavqN3HM
+HMg3OrmXUqesxWoklE6ce8/AatbfIb0CAwEAAaOCAQkwggEFMHAGA1UdHwRp
+MGcwZaBjoGGkXzBdMQswCQYDVQQGEwJVUzEXMBUGA1UEChMORXF1aWZheCBT
+ZWN1cmUxJjAkBgNVBAsTHUVxdWlmYXggU2VjdXJlIGVCdXNpbmVzcyBDQS0y
+MQ0wCwYDVQQDEwRDUkwxMBoGA1UdEAQTMBGBDzIwMTkwNjIzMTIxNDQ1WjAL
+BgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUUJ4L6q9euSBIplBqy/3YIHqngnYw
+HQYDVR0OBBYEFFCeC+qvXrkgSKZQasv92CB6p4J2MAwGA1UdEwQFMAMBAf8w
+GgYJKoZIhvZ9B0EABA0wCxsFVjMuMGMDAgbAMA0GCSqGSIb3DQEBBQUAA4GB
+AAyGgq3oThr1jokn4jVYPSm0B482UJW/bsGe68SQsoWou7dC4A8HOd/7npCy
+0cE+U58DRLB+S/Rv5Hwf5+Kx5Lia78O9zt4LMjTZ3ijtM2vE1Nc9ElirfQkt
+y3D1E4qUoSek1nDFbZS1yX2doNLGCEnZZpum0/QL3MUmV+GRMOrN
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICkDCCAfmgAwIBAgIBATANBgkqhkiG9w0BAQQFADBaMQswCQYDVQQGEwJV
+UzEcMBoGA1UEChMTRXF1aWZheCBTZWN1cmUgSW5jLjEtMCsGA1UEAxMkRXF1
+aWZheCBTZWN1cmUgR2xvYmFsIGVCdXNpbmVzcyBDQS0xMB4XDTk5MDYyMTA0
+MDAwMFoXDTIwMDYyMTA0MDAwMFowWjELMAkGA1UEBhMCVVMxHDAaBgNVBAoT
+E0VxdWlmYXggU2VjdXJlIEluYy4xLTArBgNVBAMTJEVxdWlmYXggU2VjdXJl
+IEdsb2JhbCBlQnVzaW5lc3MgQ0EtMTCBnzANBgkqhkiG9w0BAQEFAAOBjQAw
+gYkCgYEAuucXkAJlsTRVPEnCUdXfp9E3j9HngXNBUmCbnaEXJnitx7HoJpQy
+td4zjTov2/KaelpzmKNc6fuKcxtc58O/gGzNqfTWK8D3+ZmqY6KxRwIP1ORR
+OhI8bIpaVIRw28HFkM9yRcuoWcDNM50/o5brhTMhHD4ePmBudpxnhcXIw2EC
+AwEAAaNmMGQwEQYJYIZIAYb4QgEBBAQDAgAHMA8GA1UdEwEB/wQFMAMBAf8w
+HwYDVR0jBBgwFoAUvqigdHJQa0S3ySPY+6j/s1draGwwHQYDVR0OBBYEFL6o
+oHRyUGtEt8kj2Puo/7NXa2hsMA0GCSqGSIb3DQEBBAUAA4GBADDiAVGqx+pf
+2rnQZQ8w1j7aDRRJbpGTJxQx78T3LUX47Me/okENI7SS+RkAZ70Br83gcfxa
+z2TE4JaY0KNA4gGK7ycH8WUBikQtBmV1UsCGECAhX2xrD2yuCRyv8qIYNMR1
+pHMc8Y3c7635s3a0kr/clRAevsvIO1qEYBlWlKlV
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYT
+AlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVz
+dCBHbG9iYWwgQ0EwHhcNMDIwNTIxMDQwMDAwWhcNMjIwNTIxMDQwMDAwWjBC
+MQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UE
+AxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
+MIIBCgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEH
+CIjaWC9mOSm9BXiLnTjoBbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlC
+GDUUna2YRpIuT8rxh0PBFpVXLVDviS2Aelet8u5fa9IAjbkU+BQVNdnARqN7
+csiRv8lVK83Qlz6cJmTM386DGXHKTubU1XupGc1V3sjs0l44U+VcT4wt/lAj
+Nvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdRe
+JivbPagUvTLrGAMoUgRx5aszPeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQAB
+o1MwUTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTAephojYn7qwVkDBF9
+qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVkDBF9qn1luMrMTjANBgkq
+hkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKInZ57Qzxpe
+R+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfStQWV
+Yrmm3ok9Nns4d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcF
+PseKUgzbFbS9bZvlxrFUaKnjaZC2mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot
+2/Unhw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6pXE0zX5IJL4hmXXeX
+xx12E6nV5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvm
+Mw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDdTCCAl2gAwIBAgILAgAAAAAA1ni3lAUwDQYJKoZIhvcNAQEEBQAwVzEL
+MAkGA1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNV
+BAsTB1Jvb3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05
+ODA5MDExMjAwMDBaFw0xNDAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkw
+FwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRsw
+GQYDVQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUA
+A4IBDwAwggEKAoIBAQDaDuaZjc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR
+4mdmzxzdzxtIK+6NiY6arymAZavpxy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc
+71DuxC73/OlS8pF94G3VNTCOXkNz8kHp1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4
+bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdGsnUOhugZitVtbNV4FpWi6cgK
+OOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3dLlwR5EiUWMW
+ea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N89iFo7+ryUp9/k5DP
+AgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIABjAdBgNVHQ4EFgQUYHtmGkUNl8qJ
+UC99BM00qP/8/UswDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQQFAAOC
+AQEArqqf/LfSyx9fOSkoGJ40yWxPbxrwZKJwSk8ThptgKJ7ogUmYfQq75bCd
+PTbbjwVR/wkxKh/diXeeDy5slQTthsu0AD+EAk2AaioteAuubyuig0SDH81Q
+gkwkr733pbTIWg/050deSY43lv6aiAU62cDbKYfmGZZHpzqmjIs8d/5GY6dT
+2iHRrH5Jokvmw2dZL7OKDrssvamqQnw1wdh/1acxOk5jQzmvCLBhNIzTmKlD
+NPYPhyk7ncJWWJh3w/cbrPad+D6qp1RF8PX51TFl/mtYnHGzHtdS6jIX/EBg
+Hcl5JLL2bP2oZg6C3ZjL2sJETy6ge/L3ayx2EYRGinij4w==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICWjCCAcMCAgGlMA0GCSqGSIb3DQEBBAUAMHUxCzAJBgNVBAYTAlVTMRgw
+FgYDVQQKEw9HVEUgQ29ycG9yYXRpb24xJzAlBgNVBAsTHkdURSBDeWJlclRy
+dXN0IFNvbHV0aW9ucywgSW5jLjEjMCEGA1UEAxMaR1RFIEN5YmVyVHJ1c3Qg
+R2xvYmFsIFJvb3QwHhcNOTgwODEzMDAyOTAwWhcNMTgwODEzMjM1OTAwWjB1
+MQswCQYDVQQGEwJVUzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMScwJQYD
+VQQLEx5HVEUgQ3liZXJUcnVzdCBTb2x1dGlvbnMsIEluYy4xIzAhBgNVBAMT
+GkdURSBDeWJlclRydXN0IEdsb2JhbCBSb290MIGfMA0GCSqGSIb3DQEBAQUA
+A4GNADCBiQKBgQCVD6C28FCc6HrHiM3dFw4usJTQGz0O9pTAipTHBsiQl8i4
+ZBp6fmw8U+E3KHNgf7KXUwefU/ltWJTSr41tiGeA5u2ylc9yMcqlHHK6XALn
+ZELn+aks1joNrI1CqiQBOeacPwGFVw1Yh0X404Wqk2kmhXBIgD8SFcd5tB8F
+LztimQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBAG3rGwnpXtlR22ciYaQqPEh3
+46B8pt5zohQDhT37qw4wxYMWM4ETCJ57NE7fQMh017l93PR2VX2bY1QY6fDq
+81yx2YtCHrnAlU66+tXifPVoYb+O7AWXX1uw16OFNMQkpw0PlZPvy5TYnh+d
+XIVtx6quTx8itc2VrbqnzPmrC3p/
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIB+jCCAWMCAgGjMA0GCSqGSIb3DQEBBAUAMEUxCzAJBgNVBAYTAlVTMRgw
+FgYDVQQKEw9HVEUgQ29ycG9yYXRpb24xHDAaBgNVBAMTE0dURSBDeWJlclRy
+dXN0IFJvb3QwHhcNOTYwMjIzMjMwMTAwWhcNMDYwMjIzMjM1OTAwWjBFMQsw
+CQYDVQQGEwJVUzEYMBYGA1UEChMPR1RFIENvcnBvcmF0aW9uMRwwGgYDVQQD
+ExNHVEUgQ3liZXJUcnVzdCBSb290MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB
+iQKBgQC45k+625h8cXyvRLfTD0bZZOWTwUKOx7pJjTUteueLveUFMVnGsS8K
+DPufpz+iCWaEVh43KRuH6X4MypqfpX/1FZSj1aJGgthoTNE3FQZor734sLPw
+KfWVWgkWYXcKIiXUT0Wqx73llt/51KiOQswkwB6RJ0q1bQaAYznEol44AwID
+AQABMA0GCSqGSIb3DQEBBAUAA4GBABKzdcZfHeFhVYAA1IFLezEPI2PnPfMD
++fQ2qLvZ46WXTeorKeDWanOB5sCJo9Px4KWlIjeaY8JIILTbcuPI9tl8vrGv
+U9oUtCG41tWW4/5ODFlitppK+ULdjG+BqXH/9ApybW1EDp3zdHSo1TRJ6V6e
+6bR64eVaH4QwnNOfpSXY
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIH9zCCB2CgAwIBAgIBADANBgkqhkiG9w0BAQUFADCCARwxCzAJBgNVBAYT
+AkVTMRIwEAYDVQQIEwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEu
+MCwGA1UEChMlSVBTIEludGVybmV0IHB1Ymxpc2hpbmcgU2VydmljZXMgcy5s
+LjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAgQi02MDkyOTQ1
+MjEzMDEGA1UECxMqSVBTIENBIENoYWluZWQgQ0FzIENlcnRpZmljYXRpb24g
+QXV0aG9yaXR5MTMwMQYDVQQDEypJUFMgQ0EgQ2hhaW5lZCBDQXMgQ2VydGlm
+aWNhdGlvbiBBdXRob3JpdHkxHjAcBgkqhkiG9w0BCQEWD2lwc0BtYWlsLmlw
+cy5lczAeFw0wMTEyMjkwMDUzNThaFw0yNTEyMjcwMDUzNThaMIIBHDELMAkG
+A1UEBhMCRVMxEjAQBgNVBAgTCUJhcmNlbG9uYTESMBAGA1UEBxMJQmFyY2Vs
+b25hMS4wLAYDVQQKEyVJUFMgSW50ZXJuZXQgcHVibGlzaGluZyBTZXJ2aWNl
+cyBzLmwuMSswKQYDVQQKFCJpcHNAbWFpbC5pcHMuZXMgQy5JLkYuICBCLTYw
+OTI5NDUyMTMwMQYDVQQLEypJUFMgQ0EgQ2hhaW5lZCBDQXMgQ2VydGlmaWNh
+dGlvbiBBdXRob3JpdHkxMzAxBgNVBAMTKklQUyBDQSBDaGFpbmVkIENBcyBD
+ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEeMBwGCSqGSIb3DQEJARYPaXBzQG1h
+aWwuaXBzLmVzMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDcVpJJspQg
+vJhPUOtopKdJC7/SMejHT8KGC/po/UNaivNgkjWZOLtNA1IhW/A3mTXhQSCB
+hYEFcYGdtJUZqV92NC5jNzVXjrQfQj8VXOF6wV8TGDIxya2+o8eDZh65nAQT
+y2nBBt4wBrszo7Uf8I9vzv+W6FS+ZoCua9tBhDaiPQIDAQABo4IEQzCCBD8w
+HQYDVR0OBBYEFKGtMbH5PuEXpsirNPxShwkeYlJBMIIBTgYDVR0jBIIBRTCC
+AUGAFKGtMbH5PuEXpsirNPxShwkeYlJBoYIBJKSCASAwggEcMQswCQYDVQQG
+EwJFUzESMBAGA1UECBMJQmFyY2Vsb25hMRIwEAYDVQQHEwlCYXJjZWxvbmEx
+LjAsBgNVBAoTJUlQUyBJbnRlcm5ldCBwdWJsaXNoaW5nIFNlcnZpY2VzIHMu
+bC4xKzApBgNVBAoUImlwc0BtYWlsLmlwcy5lcyBDLkkuRi4gIEItNjA5Mjk0
+NTIxMzAxBgNVBAsTKklQUyBDQSBDaGFpbmVkIENBcyBDZXJ0aWZpY2F0aW9u
+IEF1dGhvcml0eTEzMDEGA1UEAxMqSVBTIENBIENoYWluZWQgQ0FzIENlcnRp
+ZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNAbWFpbC5p
+cHMuZXOCAQAwDAYDVR0TBAUwAwEB/zAMBgNVHQ8EBQMDB/+AMGsGA1UdJQRk
+MGIGCCsGAQUFBwMBBggrBgEFBQcDAgYIKwYBBQUHAwMGCCsGAQUFBwMEBggr
+BgEFBQcDCAYKKwYBBAGCNwIBFQYKKwYBBAGCNwIBFgYKKwYBBAGCNwoDAQYK
+KwYBBAGCNwoDBDARBglghkgBhvhCAQEEBAMCAAcwGgYDVR0RBBMwEYEPaXBz
+QG1haWwuaXBzLmVzMBoGA1UdEgQTMBGBD2lwc0BtYWlsLmlwcy5lczBCBglg
+hkgBhvhCAQ0ENRYzQ2hhaW5lZCBDQSBDZXJ0aWZpY2F0ZSBpc3N1ZWQgYnkg
+aHR0cDovL3d3dy5pcHMuZXMvMCkGCWCGSAGG+EIBAgQcFhpodHRwOi8vd3d3
+Lmlwcy5lcy9pcHMyMDAyLzA3BglghkgBhvhCAQQEKhYoaHR0cDovL3d3dy5p
+cHMuZXMvaXBzMjAwMi9pcHMyMDAyQ0FDLmNybDA8BglghkgBhvhCAQMELxYt
+aHR0cDovL3d3dy5pcHMuZXMvaXBzMjAwMi9yZXZvY2F0aW9uQ0FDLmh0bWw/
+MDkGCWCGSAGG+EIBBwQsFipodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL3Jl
+bmV3YWxDQUMuaHRtbD8wNwYJYIZIAYb4QgEIBCoWKGh0dHA6Ly93d3cuaXBz
+LmVzL2lwczIwMDIvcG9saWN5Q0FDLmh0bWwwbQYDVR0fBGYwZDAuoCygKoYo
+aHR0cDovL3d3dy5pcHMuZXMvaXBzMjAwMi9pcHMyMDAyQ0FDLmNybDAyoDCg
+LoYsaHR0cDovL3d3d2JhY2suaXBzLmVzL2lwczIwMDIvaXBzMjAwMkNBQy5j
+cmwwLwYIKwYBBQUHAQEEIzAhMB8GCCsGAQUFBzABhhNodHRwOi8vb2NzcC5p
+cHMuZXMvMA0GCSqGSIb3DQEBBQUAA4GBAERyMJ1WWKJBGyi3leGmGpVfp3hA
+K+/blkr8THFj2XOVvQLiogbHvpcqk4A0hgP63Ng9HgfNHnNDJGD1HWHc3Jag
+vPsd4+cSACczAsDAK1M92GsDgaPb1pOVIO/Tln4mkImcJpvNb2ar7QMiRDjM
+Wb2f2/YHogF/JsRj9SVCXmK9
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIH6jCCB1OgAwIBAgIBADANBgkqhkiG9w0BAQUFADCCARIxCzAJBgNVBAYT
+AkVTMRIwEAYDVQQIEwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEu
+MCwGA1UEChMlSVBTIEludGVybmV0IHB1Ymxpc2hpbmcgU2VydmljZXMgcy5s
+LjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAgQi02MDkyOTQ1
+MjEuMCwGA1UECxMlSVBTIENBIENMQVNFMSBDZXJ0aWZpY2F0aW9uIEF1dGhv
+cml0eTEuMCwGA1UEAxMlSVBTIENBIENMQVNFMSBDZXJ0aWZpY2F0aW9uIEF1
+dGhvcml0eTEeMBwGCSqGSIb3DQEJARYPaXBzQG1haWwuaXBzLmVzMB4XDTAx
+MTIyOTAwNTkzOFoXDTI1MTIyNzAwNTkzOFowggESMQswCQYDVQQGEwJFUzES
+MBAGA1UECBMJQmFyY2Vsb25hMRIwEAYDVQQHEwlCYXJjZWxvbmExLjAsBgNV
+BAoTJUlQUyBJbnRlcm5ldCBwdWJsaXNoaW5nIFNlcnZpY2VzIHMubC4xKzAp
+BgNVBAoUImlwc0BtYWlsLmlwcy5lcyBDLkkuRi4gIEItNjA5Mjk0NTIxLjAs
+BgNVBAsTJUlQUyBDQSBDTEFTRTEgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkx
+LjAsBgNVBAMTJUlQUyBDQSBDTEFTRTEgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
+dHkxHjAcBgkqhkiG9w0BCQEWD2lwc0BtYWlsLmlwcy5lczCBnzANBgkqhkiG
+9w0BAQEFAAOBjQAwgYkCgYEA4FEnpwvdr9G5Q1uCN0VWcu+atsIS7ywSzHb5
+BlmvXSHU0lq4oNTzav3KaY1mSPd05u42veiWkXWmcSjK5yISMmmwPh5r9FBS
+YmL9Yzt9fuzuOOpi9GyocY3h6YvJP8a1zZRCb92CRTzo3wno7wpVqVZHYUxJ
+ZHMQKD/Kvwn/xi8CAwEAAaOCBEowggRGMB0GA1UdDgQWBBTrsxl588GlHKzc
+uh9morKbadB4CDCCAUQGA1UdIwSCATswggE3gBTrsxl588GlHKzcuh9morKb
+adB4CKGCARqkggEWMIIBEjELMAkGA1UEBhMCRVMxEjAQBgNVBAgTCUJhcmNl
+bG9uYTESMBAGA1UEBxMJQmFyY2Vsb25hMS4wLAYDVQQKEyVJUFMgSW50ZXJu
+ZXQgcHVibGlzaGluZyBTZXJ2aWNlcyBzLmwuMSswKQYDVQQKFCJpcHNAbWFp
+bC5pcHMuZXMgQy5JLkYuICBCLTYwOTI5NDUyMS4wLAYDVQQLEyVJUFMgQ0Eg
+Q0xBU0UxIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQDEyVJUFMg
+Q0EgQ0xBU0UxIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJKoZIhvcN
+AQkBFg9pcHNAbWFpbC5pcHMuZXOCAQAwDAYDVR0TBAUwAwEB/zAMBgNVHQ8E
+BQMDB/+AMGsGA1UdJQRkMGIGCCsGAQUFBwMBBggrBgEFBQcDAgYIKwYBBQUH
+AwMGCCsGAQUFBwMEBggrBgEFBQcDCAYKKwYBBAGCNwIBFQYKKwYBBAGCNwIB
+FgYKKwYBBAGCNwoDAQYKKwYBBAGCNwoDBDARBglghkgBhvhCAQEEBAMCAAcw
+GgYDVR0RBBMwEYEPaXBzQG1haWwuaXBzLmVzMBoGA1UdEgQTMBGBD2lwc0Bt
+YWlsLmlwcy5lczBBBglghkgBhvhCAQ0ENBYyQ0xBU0UxIENBIENlcnRpZmlj
+YXRlIGlzc3VlZCBieSBodHRwOi8vd3d3Lmlwcy5lcy8wKQYJYIZIAYb4QgEC
+BBwWGmh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvMDoGCWCGSAGG+EIBBAQt
+FitodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL2lwczIwMDJDTEFTRTEuY3Js
+MD8GCWCGSAGG+EIBAwQyFjBodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL3Jl
+dm9jYXRpb25DTEFTRTEuaHRtbD8wPAYJYIZIAYb4QgEHBC8WLWh0dHA6Ly93
+d3cuaXBzLmVzL2lwczIwMDIvcmVuZXdhbENMQVNFMS5odG1sPzA6BglghkgB
+hvhCAQgELRYraHR0cDovL3d3dy5pcHMuZXMvaXBzMjAwMi9wb2xpY3lDTEFT
+RTEuaHRtbDBzBgNVHR8EbDBqMDGgL6AthitodHRwOi8vd3d3Lmlwcy5lcy9p
+cHMyMDAyL2lwczIwMDJDTEFTRTEuY3JsMDWgM6Axhi9odHRwOi8vd3d3YmFj
+ay5pcHMuZXMvaXBzMjAwMi9pcHMyMDAyQ0xBU0UxLmNybDAvBggrBgEFBQcB
+AQQjMCEwHwYIKwYBBQUHMAGGE2h0dHA6Ly9vY3NwLmlwcy5lcy8wDQYJKoZI
+hvcNAQEFBQADgYEAK9Dr/drIyllq2tPMMi7JVBuKYn4VLenZMdMu9Ccj/1ur
+xUq2ckCuU3T0vAW0xtnIyXf7t/k0f3gA+Nak5FI/LEpjV4F1Wo7ojPsCwJTG
+Kbqz3Bzosq/SLmJbGqmODszFV0VRFOlOHIilkfSj945RyKm+hjM+5i9Ibq9U
+kE6tsSU=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIH6jCCB1OgAwIBAgIBADANBgkqhkiG9w0BAQUFADCCARIxCzAJBgNVBAYT
+AkVTMRIwEAYDVQQIEwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEu
+MCwGA1UEChMlSVBTIEludGVybmV0IHB1Ymxpc2hpbmcgU2VydmljZXMgcy5s
+LjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAgQi02MDkyOTQ1
+MjEuMCwGA1UECxMlSVBTIENBIENMQVNFMyBDZXJ0aWZpY2F0aW9uIEF1dGhv
+cml0eTEuMCwGA1UEAxMlSVBTIENBIENMQVNFMyBDZXJ0aWZpY2F0aW9uIEF1
+dGhvcml0eTEeMBwGCSqGSIb3DQEJARYPaXBzQG1haWwuaXBzLmVzMB4XDTAx
+MTIyOTAxMDE0NFoXDTI1MTIyNzAxMDE0NFowggESMQswCQYDVQQGEwJFUzES
+MBAGA1UECBMJQmFyY2Vsb25hMRIwEAYDVQQHEwlCYXJjZWxvbmExLjAsBgNV
+BAoTJUlQUyBJbnRlcm5ldCBwdWJsaXNoaW5nIFNlcnZpY2VzIHMubC4xKzAp
+BgNVBAoUImlwc0BtYWlsLmlwcy5lcyBDLkkuRi4gIEItNjA5Mjk0NTIxLjAs
+BgNVBAsTJUlQUyBDQSBDTEFTRTMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkx
+LjAsBgNVBAMTJUlQUyBDQSBDTEFTRTMgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
+dHkxHjAcBgkqhkiG9w0BCQEWD2lwc0BtYWlsLmlwcy5lczCBnzANBgkqhkiG
+9w0BAQEFAAOBjQAwgYkCgYEAqxf+DrDGaBtT8FK+n/ra+osTBLsBjzLZH49N
+zjaY2uQARIwo2BNEKqRrThckQpzTiKRBgtYj+4vJhuW5qYIF3PHeH+AMmVWY
+8jjsbJ0gA8DvqqPGZARRLXgNo9KoOtYkTOmWehisEyMiG3zoMRGzXwmqMHBx
+RiVrSXGAK5UBsh8CAwEAAaOCBEowggRGMB0GA1UdDgQWBBS4k/8uy9wsjqLn
+ev42USGjmFsMNDCCAUQGA1UdIwSCATswggE3gBS4k/8uy9wsjqLnev42USGj
+mFsMNKGCARqkggEWMIIBEjELMAkGA1UEBhMCRVMxEjAQBgNVBAgTCUJhcmNl
+bG9uYTESMBAGA1UEBxMJQmFyY2Vsb25hMS4wLAYDVQQKEyVJUFMgSW50ZXJu
+ZXQgcHVibGlzaGluZyBTZXJ2aWNlcyBzLmwuMSswKQYDVQQKFCJpcHNAbWFp
+bC5pcHMuZXMgQy5JLkYuICBCLTYwOTI5NDUyMS4wLAYDVQQLEyVJUFMgQ0Eg
+Q0xBU0UzIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQDEyVJUFMg
+Q0EgQ0xBU0UzIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJKoZIhvcN
+AQkBFg9pcHNAbWFpbC5pcHMuZXOCAQAwDAYDVR0TBAUwAwEB/zAMBgNVHQ8E
+BQMDB/+AMGsGA1UdJQRkMGIGCCsGAQUFBwMBBggrBgEFBQcDAgYIKwYBBQUH
+AwMGCCsGAQUFBwMEBggrBgEFBQcDCAYKKwYBBAGCNwIBFQYKKwYBBAGCNwIB
+FgYKKwYBBAGCNwoDAQYKKwYBBAGCNwoDBDARBglghkgBhvhCAQEEBAMCAAcw
+GgYDVR0RBBMwEYEPaXBzQG1haWwuaXBzLmVzMBoGA1UdEgQTMBGBD2lwc0Bt
+YWlsLmlwcy5lczBBBglghkgBhvhCAQ0ENBYyQ0xBU0UzIENBIENlcnRpZmlj
+YXRlIGlzc3VlZCBieSBodHRwOi8vd3d3Lmlwcy5lcy8wKQYJYIZIAYb4QgEC
+BBwWGmh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvMDoGCWCGSAGG+EIBBAQt
+FitodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL2lwczIwMDJDTEFTRTMuY3Js
+MD8GCWCGSAGG+EIBAwQyFjBodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL3Jl
+dm9jYXRpb25DTEFTRTMuaHRtbD8wPAYJYIZIAYb4QgEHBC8WLWh0dHA6Ly93
+d3cuaXBzLmVzL2lwczIwMDIvcmVuZXdhbENMQVNFMy5odG1sPzA6BglghkgB
+hvhCAQgELRYraHR0cDovL3d3dy5pcHMuZXMvaXBzMjAwMi9wb2xpY3lDTEFT
+RTMuaHRtbDBzBgNVHR8EbDBqMDGgL6AthitodHRwOi8vd3d3Lmlwcy5lcy9p
+cHMyMDAyL2lwczIwMDJDTEFTRTMuY3JsMDWgM6Axhi9odHRwOi8vd3d3YmFj
+ay5pcHMuZXMvaXBzMjAwMi9pcHMyMDAyQ0xBU0UzLmNybDAvBggrBgEFBQcB
+AQQjMCEwHwYIKwYBBQUHMAGGE2h0dHA6Ly9vY3NwLmlwcy5lcy8wDQYJKoZI
+hvcNAQEFBQADgYEAF2VcmZVDAyevJuXr0LMXI/dDqsfwfewPxqmurpYPdikc
+4gYtfibFPPqhwYHOU7BC0ZdXGhd+pFFhxu7pXu8Fuuu9D6eSb9ijBmgpjnn1
+/7/5p6/ksc7C0YBCJwUENPjDfxZ4IwwHJPJGR607VNCv1TGyr33I6unUVtkO
+E7LFRVA=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIH9zCCB2CgAwIBAgIBADANBgkqhkiG9w0BAQUFADCCARQxCzAJBgNVBAYT
+AkVTMRIwEAYDVQQIEwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEu
+MCwGA1UEChMlSVBTIEludGVybmV0IHB1Ymxpc2hpbmcgU2VydmljZXMgcy5s
+LjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAgQi02MDkyOTQ1
+MjEvMC0GA1UECxMmSVBTIENBIENMQVNFQTEgQ2VydGlmaWNhdGlvbiBBdXRo
+b3JpdHkxLzAtBgNVBAMTJklQUyBDQSBDTEFTRUExIENlcnRpZmljYXRpb24g
+QXV0aG9yaXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNAbWFpbC5pcHMuZXMwHhcN
+MDExMjI5MDEwNTMyWhcNMjUxMjI3MDEwNTMyWjCCARQxCzAJBgNVBAYTAkVT
+MRIwEAYDVQQIEwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEuMCwG
+A1UEChMlSVBTIEludGVybmV0IHB1Ymxpc2hpbmcgU2VydmljZXMgcy5sLjEr
+MCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAgQi02MDkyOTQ1MjEv
+MC0GA1UECxMmSVBTIENBIENMQVNFQTEgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
+dHkxLzAtBgNVBAMTJklQUyBDQSBDTEFTRUExIENlcnRpZmljYXRpb24gQXV0
+aG9yaXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNAbWFpbC5pcHMuZXMwgZ8wDQYJ
+KoZIhvcNAQEBBQADgY0AMIGJAoGBALsw19zQVL01Tp/FTILq0VA8R5j8m2md
+d81u4D/u6zJfX5/S0HnllXNEITLgCtud186Nq1KLK3jgm1t99P1tCeWu4Wwd
+ByOgF9H5fahGRpEiqLJpxq339fWUoTCUvQDMRH/uxJ7JweaPCjbB/SQ9AaD1
+e+J8eGZDi09Z8pvZ+kmzAgMBAAGjggRTMIIETzAdBgNVHQ4EFgQUZyaW56G/
+2LUDnf473P7yiuYV3TAwggFGBgNVHSMEggE9MIIBOYAUZyaW56G/2LUDnf47
+3P7yiuYV3TChggEcpIIBGDCCARQxCzAJBgNVBAYTAkVTMRIwEAYDVQQIEwlC
+YXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEuMCwGA1UEChMlSVBTIElu
+dGVybmV0IHB1Ymxpc2hpbmcgU2VydmljZXMgcy5sLjErMCkGA1UEChQiaXBz
+QG1haWwuaXBzLmVzIEMuSS5GLiAgQi02MDkyOTQ1MjEvMC0GA1UECxMmSVBT
+IENBIENMQVNFQTEgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxLzAtBgNVBAMT
+JklQUyBDQSBDTEFTRUExIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJ
+KoZIhvcNAQkBFg9pcHNAbWFpbC5pcHMuZXOCAQAwDAYDVR0TBAUwAwEB/zAM
+BgNVHQ8EBQMDB/+AMGsGA1UdJQRkMGIGCCsGAQUFBwMBBggrBgEFBQcDAgYI
+KwYBBQUHAwMGCCsGAQUFBwMEBggrBgEFBQcDCAYKKwYBBAGCNwIBFQYKKwYB
+BAGCNwIBFgYKKwYBBAGCNwoDAQYKKwYBBAGCNwoDBDARBglghkgBhvhCAQEE
+BAMCAAcwGgYDVR0RBBMwEYEPaXBzQG1haWwuaXBzLmVzMBoGA1UdEgQTMBGB
+D2lwc0BtYWlsLmlwcy5lczBCBglghkgBhvhCAQ0ENRYzQ0xBU0VBMSBDQSBD
+ZXJ0aWZpY2F0ZSBpc3N1ZWQgYnkgaHR0cDovL3d3dy5pcHMuZXMvMCkGCWCG
+SAGG+EIBAgQcFhpodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyLzA7BglghkgB
+hvhCAQQELhYsaHR0cDovL3d3dy5pcHMuZXMvaXBzMjAwMi9pcHMyMDAyQ0xB
+U0VBMS5jcmwwQAYJYIZIAYb4QgEDBDMWMWh0dHA6Ly93d3cuaXBzLmVzL2lw
+czIwMDIvcmV2b2NhdGlvbkNMQVNFQTEuaHRtbD8wPQYJYIZIAYb4QgEHBDAW
+Lmh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvcmVuZXdhbENMQVNFQTEuaHRt
+bD8wOwYJYIZIAYb4QgEIBC4WLGh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIv
+cG9saWN5Q0xBU0VBMS5odG1sMHUGA1UdHwRuMGwwMqAwoC6GLGh0dHA6Ly93
+d3cuaXBzLmVzL2lwczIwMDIvaXBzMjAwMkNMQVNFQTEuY3JsMDagNKAyhjBo
+dHRwOi8vd3d3YmFjay5pcHMuZXMvaXBzMjAwMi9pcHMyMDAyQ0xBU0VBMS5j
+cmwwLwYIKwYBBQUHAQEEIzAhMB8GCCsGAQUFBzABhhNodHRwOi8vb2NzcC5p
+cHMuZXMvMA0GCSqGSIb3DQEBBQUAA4GBAH66iqyAAIQVCtWYUQxkxZwCWINm
+yq0eB81+atqAB98DNEock8RLWCA1NnHtogo1EqWmZaeFaQoO42Hu6r4okzPV
+7Oi+xNtff6j5YzHIa5biKcJboOeXNp13XjFr/tOn2yrb25aLH2betgPAK7N4
+1lUH5Y85UN4HI3LmvSAUS7SG
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIH9zCCB2CgAwIBAgIBADANBgkqhkiG9w0BAQUFADCCARQxCzAJBgNVBAYT
+AkVTMRIwEAYDVQQIEwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEu
+MCwGA1UEChMlSVBTIEludGVybmV0IHB1Ymxpc2hpbmcgU2VydmljZXMgcy5s
+LjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAgQi02MDkyOTQ1
+MjEvMC0GA1UECxMmSVBTIENBIENMQVNFQTMgQ2VydGlmaWNhdGlvbiBBdXRo
+b3JpdHkxLzAtBgNVBAMTJklQUyBDQSBDTEFTRUEzIENlcnRpZmljYXRpb24g
+QXV0aG9yaXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNAbWFpbC5pcHMuZXMwHhcN
+MDExMjI5MDEwNzUwWhcNMjUxMjI3MDEwNzUwWjCCARQxCzAJBgNVBAYTAkVT
+MRIwEAYDVQQIEwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEuMCwG
+A1UEChMlSVBTIEludGVybmV0IHB1Ymxpc2hpbmcgU2VydmljZXMgcy5sLjEr
+MCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAgQi02MDkyOTQ1MjEv
+MC0GA1UECxMmSVBTIENBIENMQVNFQTMgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
+dHkxLzAtBgNVBAMTJklQUyBDQSBDTEFTRUEzIENlcnRpZmljYXRpb24gQXV0
+aG9yaXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNAbWFpbC5pcHMuZXMwgZ8wDQYJ
+KoZIhvcNAQEBBQADgY0AMIGJAoGBAO6AAPYaZC6tasiDsYun7o/ZttvNG7uG
+BiJ2MwwSbUhWYdLcgiViL5/SaTBlA0IjWLxH3GvWdV0XPOH/8lhneaDBgbHU
+VqLyjRGZ/fZ98cfEXgIqmuJKtROKAP2Md4bm15T1IHUuDky/dMQ/gT6DtKM4
+Ninn6Cr1jIhBqoCm42zvAgMBAAGjggRTMIIETzAdBgNVHQ4EFgQUHp9XUEe2
+YZM50yz82l09BXW3mQIwggFGBgNVHSMEggE9MIIBOYAUHp9XUEe2YZM50yz8
+2l09BXW3mQKhggEcpIIBGDCCARQxCzAJBgNVBAYTAkVTMRIwEAYDVQQIEwlC
+YXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEuMCwGA1UEChMlSVBTIElu
+dGVybmV0IHB1Ymxpc2hpbmcgU2VydmljZXMgcy5sLjErMCkGA1UEChQiaXBz
+QG1haWwuaXBzLmVzIEMuSS5GLiAgQi02MDkyOTQ1MjEvMC0GA1UECxMmSVBT
+IENBIENMQVNFQTMgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxLzAtBgNVBAMT
+JklQUyBDQSBDTEFTRUEzIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJ
+KoZIhvcNAQkBFg9pcHNAbWFpbC5pcHMuZXOCAQAwDAYDVR0TBAUwAwEB/zAM
+BgNVHQ8EBQMDB/+AMGsGA1UdJQRkMGIGCCsGAQUFBwMBBggrBgEFBQcDAgYI
+KwYBBQUHAwMGCCsGAQUFBwMEBggrBgEFBQcDCAYKKwYBBAGCNwIBFQYKKwYB
+BAGCNwIBFgYKKwYBBAGCNwoDAQYKKwYBBAGCNwoDBDARBglghkgBhvhCAQEE
+BAMCAAcwGgYDVR0RBBMwEYEPaXBzQG1haWwuaXBzLmVzMBoGA1UdEgQTMBGB
+D2lwc0BtYWlsLmlwcy5lczBCBglghkgBhvhCAQ0ENRYzQ0xBU0VBMyBDQSBD
+ZXJ0aWZpY2F0ZSBpc3N1ZWQgYnkgaHR0cDovL3d3dy5pcHMuZXMvMCkGCWCG
+SAGG+EIBAgQcFhpodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyLzA7BglghkgB
+hvhCAQQELhYsaHR0cDovL3d3dy5pcHMuZXMvaXBzMjAwMi9pcHMyMDAyQ0xB
+U0VBMy5jcmwwQAYJYIZIAYb4QgEDBDMWMWh0dHA6Ly93d3cuaXBzLmVzL2lw
+czIwMDIvcmV2b2NhdGlvbkNMQVNFQTMuaHRtbD8wPQYJYIZIAYb4QgEHBDAW
+Lmh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvcmVuZXdhbENMQVNFQTMuaHRt
+bD8wOwYJYIZIAYb4QgEIBC4WLGh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIv
+cG9saWN5Q0xBU0VBMy5odG1sMHUGA1UdHwRuMGwwMqAwoC6GLGh0dHA6Ly93
+d3cuaXBzLmVzL2lwczIwMDIvaXBzMjAwMkNMQVNFQTMuY3JsMDagNKAyhjBo
+dHRwOi8vd3d3YmFjay5pcHMuZXMvaXBzMjAwMi9pcHMyMDAyQ0xBU0VBMy5j
+cmwwLwYIKwYBBQUHAQEEIzAhMB8GCCsGAQUFBzABhhNodHRwOi8vb2NzcC5p
+cHMuZXMvMA0GCSqGSIb3DQEBBQUAA4GBAEo9IEca2on0eisxeewBwMwB9dbB
+/MjD81ACUZBYKp/nNQlbMAqBACVHr9QPDp5gJqiVp4MI3y2s6Q73nMify5NF
+8bpqxmdRSmlPa/59Cy9SKcJQrSRE7SOzSMtEQMEDlQwKeAYSAfWRMS1Jjbs/
+RU4s4OjNtckUFQzjB4ObJnXv
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICtzCCAiACAQAwDQYJKoZIhvcNAQEEBQAwgaMxCzAJBgNVBAYTAkVTMRIw
+EAYDVQQIEwlCQVJDRUxPTkExEjAQBgNVBAcTCUJBUkNFTE9OQTEZMBcGA1UE
+ChMQSVBTIFNlZ3VyaWRhZCBDQTEYMBYGA1UECxMPQ2VydGlmaWNhY2lvbmVz
+MRcwFQYDVQQDEw5JUFMgU0VSVklET1JFUzEeMBwGCSqGSIb3DQEJARYPaXBz
+QG1haWwuaXBzLmVzMB4XDTk4MDEwMTIzMjEwN1oXDTA5MTIyOTIzMjEwN1ow
+gaMxCzAJBgNVBAYTAkVTMRIwEAYDVQQIEwlCQVJDRUxPTkExEjAQBgNVBAcT
+CUJBUkNFTE9OQTEZMBcGA1UEChMQSVBTIFNlZ3VyaWRhZCBDQTEYMBYGA1UE
+CxMPQ2VydGlmaWNhY2lvbmVzMRcwFQYDVQQDEw5JUFMgU0VSVklET1JFUzEe
+MBwGCSqGSIb3DQEJARYPaXBzQG1haWwuaXBzLmVzMIGfMA0GCSqGSIb3DQEB
+AQUAA4GNADCBiQKBgQCsT1J0nznqjtwlxLyYXZhkJAk8IbPMGbWOlI6H0fg3
+PqHILVikgDVboXVsHUUMH2Fjal5vmwpMwci4YSM1gf/+rHhwLWjhOgeYlQJU
+3c0jt4BT18g3RXIGJBK6E2Ehim51KODFDzT9NthFf+G4Nu+z4cYgjui0OLzh
+PvYR3oydAQIDAQABMA0GCSqGSIb3DQEBBAUAA4GBACzzw3lYJN7GO9HgQmm4
+7mSzPWIBubOE3yN93ZjPEKn+ANgilgUTB1RXxafey9m4iEL2mdsUdx+2/iU9
+4aI+A6mB0i1sR/WWRowiq8jMDQ6XXotBtDvECgZAHd1G9AHduoIuPD14cJ58
+GNCr+Lh3B0Zx8coLY1xq+XKU1QFPoNtC
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIIODCCB6GgAwIBAgIBADANBgkqhkiG9w0BAQUFADCCAR4xCzAJBgNVBAYT
+AkVTMRIwEAYDVQQIEwlCYXJjZWxvbmExEjAQBgNVBAcTCUJhcmNlbG9uYTEu
+MCwGA1UEChMlSVBTIEludGVybmV0IHB1Ymxpc2hpbmcgU2VydmljZXMgcy5s
+LjErMCkGA1UEChQiaXBzQG1haWwuaXBzLmVzIEMuSS5GLiAgQi02MDkyOTQ1
+MjE0MDIGA1UECxMrSVBTIENBIFRpbWVzdGFtcGluZyBDZXJ0aWZpY2F0aW9u
+IEF1dGhvcml0eTE0MDIGA1UEAxMrSVBTIENBIFRpbWVzdGFtcGluZyBDZXJ0
+aWZpY2F0aW9uIEF1dGhvcml0eTEeMBwGCSqGSIb3DQEJARYPaXBzQG1haWwu
+aXBzLmVzMB4XDTAxMTIyOTAxMTAxOFoXDTI1MTIyNzAxMTAxOFowggEeMQsw
+CQYDVQQGEwJFUzESMBAGA1UECBMJQmFyY2Vsb25hMRIwEAYDVQQHEwlCYXJj
+ZWxvbmExLjAsBgNVBAoTJUlQUyBJbnRlcm5ldCBwdWJsaXNoaW5nIFNlcnZp
+Y2VzIHMubC4xKzApBgNVBAoUImlwc0BtYWlsLmlwcy5lcyBDLkkuRi4gIEIt
+NjA5Mjk0NTIxNDAyBgNVBAsTK0lQUyBDQSBUaW1lc3RhbXBpbmcgQ2VydGlm
+aWNhdGlvbiBBdXRob3JpdHkxNDAyBgNVBAMTK0lQUyBDQSBUaW1lc3RhbXBp
+bmcgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxHjAcBgkqhkiG9w0BCQEWD2lw
+c0BtYWlsLmlwcy5lczCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvLju
+VqWajOY2ycJioGaBjRrVetJznw6EZLqVtJCneK/K/lRhW86yIFcBrkSSQxA4
+Efdo/BdApWgnMjvEp+ZCccWZ73b/K5Uk9UmSGGjKALWkWi9uy9YbLA1UZ2t6
+KaFYq6JaANZbuxjC3/YeE1Z2m6Vo4pjOxgOKNNtMg0GmqaMCAwEAAaOCBIAw
+ggR8MB0GA1UdDgQWBBSL0BBQCYHynQnVDmB4AyKiP8jKZjCCAVAGA1UdIwSC
+AUcwggFDgBSL0BBQCYHynQnVDmB4AyKiP8jKZqGCASakggEiMIIBHjELMAkG
+A1UEBhMCRVMxEjAQBgNVBAgTCUJhcmNlbG9uYTESMBAGA1UEBxMJQmFyY2Vs
+b25hMS4wLAYDVQQKEyVJUFMgSW50ZXJuZXQgcHVibGlzaGluZyBTZXJ2aWNl
+cyBzLmwuMSswKQYDVQQKFCJpcHNAbWFpbC5pcHMuZXMgQy5JLkYuICBCLTYw
+OTI5NDUyMTQwMgYDVQQLEytJUFMgQ0EgVGltZXN0YW1waW5nIENlcnRpZmlj
+YXRpb24gQXV0aG9yaXR5MTQwMgYDVQQDEytJUFMgQ0EgVGltZXN0YW1waW5n
+IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MR4wHAYJKoZIhvcNAQkBFg9pcHNA
+bWFpbC5pcHMuZXOCAQAwDAYDVR0TBAUwAwEB/zAMBgNVHQ8EBQMDB/+AMGsG
+A1UdJQRkMGIGCCsGAQUFBwMBBggrBgEFBQcDAgYIKwYBBQUHAwMGCCsGAQUF
+BwMEBggrBgEFBQcDCAYKKwYBBAGCNwIBFQYKKwYBBAGCNwIBFgYKKwYBBAGC
+NwoDAQYKKwYBBAGCNwoDBDARBglghkgBhvhCAQEEBAMCAAcwGgYDVR0RBBMw
+EYEPaXBzQG1haWwuaXBzLmVzMBoGA1UdEgQTMBGBD2lwc0BtYWlsLmlwcy5l
+czBHBglghkgBhvhCAQ0EOhY4VGltZXN0YW1waW5nIENBIENlcnRpZmljYXRl
+IGlzc3VlZCBieSBodHRwOi8vd3d3Lmlwcy5lcy8wKQYJYIZIAYb4QgECBBwW
+Gmh0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvMEAGCWCGSAGG+EIBBAQzFjFo
+dHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL2lwczIwMDJUaW1lc3RhbXBpbmcu
+Y3JsMEUGCWCGSAGG+EIBAwQ4FjZodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAy
+L3Jldm9jYXRpb25UaW1lc3RhbXBpbmcuaHRtbD8wQgYJYIZIAYb4QgEHBDUW
+M2h0dHA6Ly93d3cuaXBzLmVzL2lwczIwMDIvcmVuZXdhbFRpbWVzdGFtcGlu
+Zy5odG1sPzBABglghkgBhvhCAQgEMxYxaHR0cDovL3d3dy5pcHMuZXMvaXBz
+MjAwMi9wb2xpY3lUaW1lc3RhbXBpbmcuaHRtbDB/BgNVHR8EeDB2MDegNaAz
+hjFodHRwOi8vd3d3Lmlwcy5lcy9pcHMyMDAyL2lwczIwMDJUaW1lc3RhbXBp
+bmcuY3JsMDugOaA3hjVodHRwOi8vd3d3YmFjay5pcHMuZXMvaXBzMjAwMi9p
+cHMyMDAyVGltZXN0YW1waW5nLmNybDAvBggrBgEFBQcBAQQjMCEwHwYIKwYB
+BQUHMAGGE2h0dHA6Ly9vY3NwLmlwcy5lcy8wDQYJKoZIhvcNAQEFBQADgYEA
+ZbrBzAAalZHK6Ww6vzoeFAh8+4Pua2JR0zORtWB5fgTYXXk36MNbsMRnLWha
+sl8OCvrNPzpFoeo2zyYepxEoxZSPhExTCMWTs/zif/WN87GphV+I3pGW7hdb
+rqXqcGV4LCFkAZXOzkw+UPS2Wctjjba9GNSHSl/c7+lW8AoM6HU=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQG
+EwJCTTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9v
+dCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEuMCwGA1UEAxMlUXVvVmFkaXMg
+Um9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAzMTkxODMzMzNa
+Fw0yMTAzMTcxODMzMzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9W
+YWRpcyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0
+aG9yaXR5MS4wLAYDVQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24g
+QXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv2G1
+lVO6V/z68mcLOhrfEYBklbTRvM16z/Ypli4kVEAkOPcahdxYTMukJ0KX0J+D
+isPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2DrOpm2RgbaIr1VxqYuvXtdj18
+2d6UajtLF8HVj71lODqV0D1VNk7feVcxKh7YWWVJWCCYfqtffp/p1k3sg3Sp
+x2zY7ilKhSoGFPlU5tPaZQeLYzcS19Dsw3sgQUSj7cugF+FxZc4dZjH3dgEZ
+yH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWenAScOospUxbF6lR1xHkop
+igPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCCAk4wPQYI
+KwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVvdmFk
+aXNvZmZzaG9yZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREw
+ggENMIIBCQYJKwYBBAG+WAABMIH7MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlh
+bmNlIG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmljYXRlIGJ5IGFueSBw
+YXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJs
+ZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRp
+ZmljYXRpb24gcHJhY3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmlj
+YXRlIFBvbGljeS4wIgYIKwYBBQUHAgEWFmh0dHA6Ly93d3cucXVvdmFkaXMu
+Ym0wHQYDVR0OBBYEFItLbe3TKbkGGew5Oanwl4Rqy+/fMIGuBgNVHSMEgaYw
+gaOAFItLbe3TKbkGGew5Oanwl4Rqy+/foYGEpIGBMH8xCzAJBgNVBAYTAkJN
+MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENl
+cnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQDEyVRdW9WYWRpcyBSb290
+IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6tlCLMA4GA1UdDwEB/wQEAwIB
+BjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSkfnIYj9lofFIk3Wdv
+OXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf87C9TqnN7Az10
+buYWnuulLsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1RcHhXHTMe
+/QKZnAzNCgVPx7uOpHX6Sm2xgI4JVrmcGmD+XcHXetwReNDWXcG31a0ymQM6
+isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi5upZIof4l/UO/erMkqQW
+xFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi5nrQ
+NiOKSnQ2+Q==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlD
+ZXJ0IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIElu
+Yy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDMgUG9saWN5IFZhbGlkYXRp
+b24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNv
+bS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYy
+NjAwMjIzM1oXDTE5MDYyNjAwMjIzM1owgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0
+IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4x
+NTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDMgUG9saWN5IFZhbGlkYXRpb24g
+QXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8x
+IDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3
+DQEBAQUAA4GNADCBiQKBgQDjmFGWHOjVsQaBalfDcnWTq8+epvzzFlLWLU2f
+NUSoLgRNB0mKOCn1dzfnt6td3zZxFJmP3MKS8edgkpfs2Ejcv8ECIMYkpChM
+MFp2bbFc893enhBxoYjHW5tBbcqwuI4V7q0zK89HBFx1cQqYJJgpp0lZpd34
+t0NiYfPT4tBVPwIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFa7AliEZwgs3x/b
+e0kz9dNnnfS0ChCzycUs4pJqcXgn8nCDQtM+z6lU9PHYkhaM0QTLS6vJn0Wu
+PIqpsHEzXcjFV9+vqDWzf4mH6eglkrh/hXqu1rweN1gqZ8mRzyqBPu3GOd/A
PhmcGcwTTYJBtYze4D1gCCAPRX5ron+jjBXu
-----END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIICXDCCAcWgAwIBAgIQCgEBAQAAAnwAAAALAAAAAjANBgkqhkiG9w0BAQUFADA6
-MRkwFwYDVQQKExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0EgU2VjdXJp
-dHkgMTAyNCBWMzAeFw0wMTAyMjIyMTAxNDlaFw0yNjAyMjIyMDAxNDlaMDoxGTAX
-BgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAbBgNVBAsTFFJTQSBTZWN1cml0eSAx
-MDI0IFYzMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDV3f5mCc8kPD6ugU5O
-isRpgFtZO9+5TUzKtS3DJy08rwBCbbwoppbPf9dYrIMKo1W1exeQFYRMiu4mmdxY
-78c4pqqv0I5CyGLXq6yp+0p9v+r+Ek3d/yYtbzZUaMjShFbuklNhCbM/OZuoyZu9
-zp9+1BlqFikYvtc6adwlWzMaUQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4G
-A1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBTEwBykB5T9zU0B1FTapQxf3q4FWjAd
-BgNVHQ4EFgQUxMAcpAeU/c1NAdRU2qUMX96uBVowDQYJKoZIhvcNAQEFBQADgYEA
-Py1q4yZDlX2Jl2X7deRyHUZXxGFraZ8SmyzVWujAovBDleMf6XbN3Ou8k6BlCsdN
-T1+nr6JGFLkM88y9am63nd4lQtBU/55oc2PcJOsiv6hy8l4A4Q1OOkNumU4/iXgD
-mMrzVcydro7BqkWY+o8aoI2II/EVQQ2lRj6RP4vr93E=
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIDYTCCAkmgAwIBAgIQCgEBAQAAAnwAAAAKAAAAAjANBgkqhkiG9w0BAQUFADA6
-MRkwFwYDVQQKExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0EgU2VjdXJp
-dHkgMjA0OCBWMzAeFw0wMTAyMjIyMDM5MjNaFw0yNjAyMjIyMDM5MjNaMDoxGTAX
-BgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAbBgNVBAsTFFJTQSBTZWN1cml0eSAy
-MDQ4IFYzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAt49VcdKA3Xtp
-eafwGFAyPGJn9gqVB93mG/Oe2dJBVGutn3y+Gc37RqtBaB4Y6lXIL5F4iSj7Jylg
-/9+PjDvJSZu1pJTOAeo+tWN7fyb9Gd3AIb2E0S1PRsNO3Ng3OTsor8udGuorryGl
-wSMiuLgbWhOHV4PR8CDn6E8jQrAApX2J6elhc5SYcSa8LWrg903w8bYqODGBDSnh
-AMFRD0xS+ARaqn1y07iHKrtjEAMqs6FPDVpeRrc9DvV07Jmf+T0kgYim3WBU6JU2
-PcYJk5qjEoAAVZkZR73QpXzDuvsf9/UP+Ky5tfQ3mBMY3oVbtwyCO4dvlTlYMNpu
-AWgXIszACwIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB
-BjAfBgNVHSMEGDAWgBQHw1EwpKrpRa41JPr/JCwz0LGdjDAdBgNVHQ4EFgQUB8NR
-MKSq6UWuNST6/yQsM9CxnYwwDQYJKoZIhvcNAQEFBQADggEBAF8+hnZuuDU8TjYc
-HnmYv/3VEhF5Ug7uMYm83X/50cYVIeiKAVQNOvtUudZj1LGqlk2iQk3UUx+LEN5/
-Zb5gEydxiKRz44Rj0aRV4VCT5hsOedBnvEbIvz8XDZXmxpBp3ue0L96VfdASPz0+
-f00/FGj1EVDVwfSQpQgdMWD/YIwjVAqv/qFuxdF6Kmh4zx6CCiC0H63lhbJqaHVO
-rSU3lIW+vaHU6rcMSzyd6BIA8F+sDeGscGNz9395nzIlQnQFgCi/vcEkllgVsRch
-6YlL2weIZ/QVrXA+L02FO8K32/6YaCOJ4XQP3vTFhGMpG8zLB8kApKnXwiJPZ9d3
-7CAFYd4=
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIDXDCCAsWgAwIBAgICA+owDQYJKoZIhvcNAQEEBQAwgbwxCzAJBgNVBAYTAkRF
-MRAwDgYDVQQIEwdIYW1idXJnMRAwDgYDVQQHEwdIYW1idXJnMTowOAYDVQQKEzFU
-QyBUcnVzdENlbnRlciBmb3IgU2VjdXJpdHkgaW4gRGF0YSBOZXR3b3JrcyBHbWJI
-MSIwIAYDVQQLExlUQyBUcnVzdENlbnRlciBDbGFzcyAyIENBMSkwJwYJKoZIhvcN
-AQkBFhpjZXJ0aWZpY2F0ZUB0cnVzdGNlbnRlci5kZTAeFw05ODAzMDkxMTU5NTla
-Fw0xMTAxMDExMTU5NTlaMIG8MQswCQYDVQQGEwJERTEQMA4GA1UECBMHSGFtYnVy
-ZzEQMA4GA1UEBxMHSGFtYnVyZzE6MDgGA1UEChMxVEMgVHJ1c3RDZW50ZXIgZm9y
-IFNlY3VyaXR5IGluIERhdGEgTmV0d29ya3MgR21iSDEiMCAGA1UECxMZVEMgVHJ1
-c3RDZW50ZXIgQ2xhc3MgMiBDQTEpMCcGCSqGSIb3DQEJARYaY2VydGlmaWNhdGVA
-dHJ1c3RjZW50ZXIuZGUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANo46O0y
-AClxgwENv4wB3NrGrTmkqYov1YtcaF9QxmL1Zr3KkSLsqh1R1z2zUbKDTl3LSbDw
-TFXlay3HhQswHJJOgtTKAu33b77c4OMUuAVT8pr0VotanoWT0bSCVq5Nu6hLVxa8
-/vhYnvgpjbB7zXjJT6yLZwzxnPv8V5tXXE8NAgMBAAGjazBpMA8GA1UdEwEB/wQF
-MAMBAf8wDgYDVR0PAQH/BAQDAgGGMDMGCWCGSAGG+EIBCAQmFiRodHRwOi8vd3d3
-LnRydXN0Y2VudGVyLmRlL2d1aWRlbGluZXMwEQYJYIZIAYb4QgEBBAQDAgAHMA0G
-CSqGSIb3DQEBBAUAA4GBAIRS+yjf/x91AbwBvgRWl2p0QiQxg/lGsQaKic+WLDO/
-jLVfenKhhQbOhvgFjuj5Jcrag4wGrOs2bYWRNAQ29ELw+HkuCkhcq8xRT3h2oNms
-Gb0q0WkEKJHKNhAngFdb0lz1wlurZIFjdFH0l7/NEij3TWZ/p/AcASZ4smZHcFFk
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIDXDCCAsWgAwIBAgICA+swDQYJKoZIhvcNAQEEBQAwgbwxCzAJBgNVBAYTAkRF
-MRAwDgYDVQQIEwdIYW1idXJnMRAwDgYDVQQHEwdIYW1idXJnMTowOAYDVQQKEzFU
-QyBUcnVzdENlbnRlciBmb3IgU2VjdXJpdHkgaW4gRGF0YSBOZXR3b3JrcyBHbWJI
-MSIwIAYDVQQLExlUQyBUcnVzdENlbnRlciBDbGFzcyAzIENBMSkwJwYJKoZIhvcN
-AQkBFhpjZXJ0aWZpY2F0ZUB0cnVzdGNlbnRlci5kZTAeFw05ODAzMDkxMTU5NTla
-Fw0xMTAxMDExMTU5NTlaMIG8MQswCQYDVQQGEwJERTEQMA4GA1UECBMHSGFtYnVy
-ZzEQMA4GA1UEBxMHSGFtYnVyZzE6MDgGA1UEChMxVEMgVHJ1c3RDZW50ZXIgZm9y
-IFNlY3VyaXR5IGluIERhdGEgTmV0d29ya3MgR21iSDEiMCAGA1UECxMZVEMgVHJ1
-c3RDZW50ZXIgQ2xhc3MgMyBDQTEpMCcGCSqGSIb3DQEJARYaY2VydGlmaWNhdGVA
-dHJ1c3RjZW50ZXIuZGUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALa0wTUF
-Lg2N7KBAahwOJ6ZQkmtQGwfeLud2zODa/ISoXoxjaitN2U4CdhHBC/KNecoAtvGw
-Dtf7pBc9r6tpepYnv68zoZoqWarEtTcI8hKlMbZD9TKWcSgoq40oht+77uMMfTDW
-w1Krj10nnGvAo+cFa1dJRLNu6mTP0o56UHd3AgMBAAGjazBpMA8GA1UdEwEB/wQF
-MAMBAf8wDgYDVR0PAQH/BAQDAgGGMDMGCWCGSAGG+EIBCAQmFiRodHRwOi8vd3d3
-LnRydXN0Y2VudGVyLmRlL2d1aWRlbGluZXMwEQYJYIZIAYb4QgEBBAQDAgAHMA0G
-CSqGSIb3DQEBBAUAA4GBABY9xs3Bu4VxhUafPiCPUSiZ7C1FIWMjWwS7TJC4iJIE
-Tb19AaM/9uzO8d7+feXhPrvGq14L3T2WxMup1Pkm5gZOngylerpuw3yCGdHHsbHD
-2w2Om0B8NwvxXej9H5CIpQ5ON2QhqE6NtJ/x3kit1VYYUimLRzQSCdS7kjXvD9s0
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIDITCCAoqgAwIBAgIBADANBgkqhkiG9w0BAQQFADCByzELMAkGA1UEBhMCWkEx
-FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMRowGAYD
-VQQKExFUaGF3dGUgQ29uc3VsdGluZzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBT
-ZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhhd3RlIFBlcnNvbmFsIEJhc2lj
-IENBMSgwJgYJKoZIhvcNAQkBFhlwZXJzb25hbC1iYXNpY0B0aGF3dGUuY29tMB4X
-DTk2MDEwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgcsxCzAJBgNVBAYTAlpBMRUw
-EwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEaMBgGA1UE
-ChMRVGhhd3RlIENvbnN1bHRpbmcxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2Vy
-dmljZXMgRGl2aXNpb24xITAfBgNVBAMTGFRoYXd0ZSBQZXJzb25hbCBCYXNpYyBD
-QTEoMCYGCSqGSIb3DQEJARYZcGVyc29uYWwtYmFzaWNAdGhhd3RlLmNvbTCBnzAN
-BgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAvLyTU23AUE+CFeZIlDWmWr5vQvoPR+53
-dXLdjUmbllegeNTKP1GzaQuRdhciB5dqxFGTS+CN7zeVoQxN2jSQHReJl+A1OFdK
-wPQIcOk8RHtQfmGakOMj04gRRif1CwcOu93RfyAKiLlWCy4cgNrx454p7xS9CkT7
-G1sY0b8jkyECAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQQF
-AAOBgQAt4plrsD16iddZopQBHyvdEktTwq1/qqcAXJFAVyVKOKqEcLnZgA+le1z7
-c8a914phXAPjLSeoF+CEhULcXpvGt7Jtu3Sv5D/Lp7ew4F2+eIMllNLbgQ95B21P
-9DkVWlIBe94y1k049hJcBlDfBVu9FEuh3ym6O0GN92NWod8isQ==
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIDLTCCApagAwIBAgIBADANBgkqhkiG9w0BAQQFADCB0TELMAkGA1UEBhMCWkEx
-FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMRowGAYD
-VQQKExFUaGF3dGUgQ29uc3VsdGluZzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBT
-ZXJ2aWNlcyBEaXZpc2lvbjEkMCIGA1UEAxMbVGhhd3RlIFBlcnNvbmFsIEZyZWVt
-YWlsIENBMSswKQYJKoZIhvcNAQkBFhxwZXJzb25hbC1mcmVlbWFpbEB0aGF3dGUu
-Y29tMB4XDTk2MDEwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgdExCzAJBgNVBAYT
-AlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEa
-MBgGA1UEChMRVGhhd3RlIENvbnN1bHRpbmcxKDAmBgNVBAsTH0NlcnRpZmljYXRp
-b24gU2VydmljZXMgRGl2aXNpb24xJDAiBgNVBAMTG1RoYXd0ZSBQZXJzb25hbCBG
-cmVlbWFpbCBDQTErMCkGCSqGSIb3DQEJARYccGVyc29uYWwtZnJlZW1haWxAdGhh
-d3RlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA1GnX1LCUZFtx6UfY
-DFG26nKRsIRefS0Nj3sS34UldSh0OkIsYyeflXtL734Zhx2G6qPduc6WZBrCFG5E
-rHzmj+hND3EfQDimAKOHePb5lIZererAXnbr2RSjXW56fAylS1V/Bhkpf56aJtVq
-uzgkCGqYx7Hao5iR/Xnb5VrEHLkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zAN
-BgkqhkiG9w0BAQQFAAOBgQDH7JJ+Tvj1lqVnYiqk8E0RYNBvjWBYYawmu1I1XAjP
-MPuoSpaKH2JCI4wXD/S6ZJwXrEcp352YXtJsYHFcoqzceePnbgBHH7UNKOgCneSa
-/RP0ptl8sfjcXyMmCZGAc9AUG95DqYMl8uacLxXK/qarigd1iwzdUYRr5PjRznei
-gQ==
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIDKTCCApKgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBzzELMAkGA1UEBhMCWkEx
-FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMRowGAYD
-VQQKExFUaGF3dGUgQ29uc3VsdGluZzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBT
-ZXJ2aWNlcyBEaXZpc2lvbjEjMCEGA1UEAxMaVGhhd3RlIFBlcnNvbmFsIFByZW1p
-dW0gQ0ExKjAoBgkqhkiG9w0BCQEWG3BlcnNvbmFsLXByZW1pdW1AdGhhd3RlLmNv
-bTAeFw05NjAxMDEwMDAwMDBaFw0yMDEyMzEyMzU5NTlaMIHPMQswCQYDVQQGEwJa
-QTEVMBMGA1UECBMMV2VzdGVybiBDYXBlMRIwEAYDVQQHEwlDYXBlIFRvd24xGjAY
-BgNVBAoTEVRoYXd0ZSBDb25zdWx0aW5nMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9u
-IFNlcnZpY2VzIERpdmlzaW9uMSMwIQYDVQQDExpUaGF3dGUgUGVyc29uYWwgUHJl
-bWl1bSBDQTEqMCgGCSqGSIb3DQEJARYbcGVyc29uYWwtcHJlbWl1bUB0aGF3dGUu
-Y29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDJZtn4B0TPuYwu8KHvE0Vs
-Bd/eJxZRNkERbGw77f4QfRKe5ZtCmv5gMcNmt3M6SK5O0DI3lIi1DbbZ8/JE2dWI
-Et12TfIa/G8jHnrx2JhFTgcQ7xZC0EN1bUre4qrJMf8fAHB8Zs8QJQi6+u4A6UYD
-ZicRFTuqW/KY3TZCstqIdQIDAQABoxMwETAPBgNVHRMBAf8EBTADAQH/MA0GCSqG
-SIb3DQEBBAUAA4GBAGk2ifc0KjNyL2071CKyuG+axTZmDhs8obF1Wub9NdP4qPIH
-b4Vnjt4rueIXsDqg8A6iAJrf8xQVbrvIhVqYgPn/vnQdPfP+MCXRNzRn+qVxeTBh
-KXLA4CxM+1bkOqhv5TJZUtt1KFBZDPgLGeSs2a+WjS9Q2wfD6h+rM+D1KzGJ
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIDJzCCApCgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBzjELMAkGA1UEBhMCWkEx
-FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYD
-VQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlv
-biBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhhd3RlIFByZW1pdW0gU2Vy
-dmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNlcnZlckB0aGF3dGUuY29t
-MB4XDTk2MDgwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVowgc4xCzAJBgNVBAYTAlpB
-MRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNVBAcTCUNhcGUgVG93bjEdMBsG
-A1UEChMUVGhhd3RlIENvbnN1bHRpbmcgY2MxKDAmBgNVBAsTH0NlcnRpZmljYXRp
-b24gU2VydmljZXMgRGl2aXNpb24xITAfBgNVBAMTGFRoYXd0ZSBQcmVtaXVtIFNl
-cnZlciBDQTEoMCYGCSqGSIb3DQEJARYZcHJlbWl1bS1zZXJ2ZXJAdGhhd3RlLmNv
-bTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0jY2aovXwlue2oFBYo847kkE
-VdbQ7xwblRZH7xhINTpS9CtqBo87L+pW46+GjZ4X9560ZXUCTe/LCaIhUdib0GfQ
-ug2SBhRz1JPLlyoAnFxODLz6FVL88kRu2hFKbgifLy3j+ao6hnO2RlNYyIkFvYMR
-uHM/qgeN9EJN50CdHDcCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG
-9w0BAQQFAAOBgQAmSCwWwlj66BZ0DKqqX1Q/8tfJeGBeXm43YyJ3Nn6yF8Q0ufUI
-hfzJATj/Tb7yFkJD57taRvvBxhEf8UqwKEbJw8RCfbz6q1lu1bdRiBHjpIUZa4JM
-pAwSremkrj/xw0llmozFyD4lt5SZu5IycQfwhl7tUCemDaYj+bvLpgcUQg==
------END CERTIFICATE-----
-
-----BEGIN CERTIFICATE-----
-MIIDEzCCAnygAwIBAgIBATANBgkqhkiG9w0BAQQFADCBxDELMAkGA1UEBhMCWkEx
-FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYD
-VQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlv
-biBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcGA1UEAxMQVGhhd3RlIFNlcnZlciBDQTEm
-MCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0ZS5jb20wHhcNOTYwODAx
-MDAwMDAwWhcNMjAxMjMxMjM1OTU5WjCBxDELMAkGA1UEBhMCWkExFTATBgNVBAgT
-DFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3duMR0wGwYDVQQKExRUaGF3
-dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNl
-cyBEaXZpc2lvbjEZMBcGA1UEAxMQVGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3
-DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0ZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQAD
-gY0AMIGJAoGBANOkUG7I/1Zr5s9dtuoMaHVHoqrC2oQl/Kj0R1HahbUgdJSGHg91
-yekIYfUGbTBuFRkC6VLAYttNmZ7iagxEOM3+vuNkCXDF/rFrKbYvScg71CcEJRCX
-L+eQbcAoQpnXTEPew/UhbVSfXcNY4cDk2VuwuNy0e982OsK1ZiIS1ocNAgMBAAGj
-EzARMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAB/pMaVz7lcxG
-7oWDTSEwjsrZqG9JGubaUeNgcGyEYRGhGshIPllDfU+VPaGLtwtimHp1it2ITk6e
-QNuozDJ0uW8NxuOzRAvZim+aKZuZGCg70eNAKJpaPNW15yAbi8qkq43pUdniTCxZ
-qdq5snUb9kLy78fyGPmJvKP/iiMucEc=
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIICoTCCAgqgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBizELMAkGA1UEBhMCWkEx
-FTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTEUMBIGA1UEBxMLRHVyYmFudmlsbGUxDzAN
-BgNVBAoTBlRoYXd0ZTEdMBsGA1UECxMUVGhhd3RlIENlcnRpZmljYXRpb24xHzAd
-BgNVBAMTFlRoYXd0ZSBUaW1lc3RhbXBpbmcgQ0EwHhcNOTcwMTAxMDAwMDAwWhcN
-MjAxMjMxMjM1OTU5WjCBizELMAkGA1UEBhMCWkExFTATBgNVBAgTDFdlc3Rlcm4g
-Q2FwZTEUMBIGA1UEBxMLRHVyYmFudmlsbGUxDzANBgNVBAoTBlRoYXd0ZTEdMBsG
-A1UECxMUVGhhd3RlIENlcnRpZmljYXRpb24xHzAdBgNVBAMTFlRoYXd0ZSBUaW1l
-c3RhbXBpbmcgQ0EwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANYrWHhhRYZT
-6jR7UZztsOYuGA7+4F+oJ9O0yeB8WU4WDnNUYMF/9p8u6TqFJBU820cEY8OexJQa
-Wt9MevPZQx08EHp5JduQ/vBR5zDWQQD9nyjfeb6Uu522FOMjhdepQeBMpHmwKxqL
-8vg7ij5FrHGSALSQQZj7X+36ty6K+Ig3AgMBAAGjEzARMA8GA1UdEwEB/wQFMAMB
-Af8wDQYJKoZIhvcNAQEEBQADgYEAZ9viwuaHPUCDhjc1fR/OmsMMZiCouqoEiYbC
-9RAIDb/LogWK0E02PvTX72nGXuSwlG9KuefeW4i2e9vjJ+V2w/A1wcu1J5szedyQ
-pgCed/r8zSeUQhac0xxo7L9c3eWpexAKMnRUEzGLhQOEkbdYATAUOK8oyvyxUBkZ
-CayJSdM=
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIEZDCCA0ygAwIBAgIQRL4Mi1AAJLQR0zYwS8AzdzANBgkqhkiG9w0BAQUFADCB
-ozELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0IExha2Ug
-Q2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExho
-dHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xKzApBgNVBAMTIlVUTi1VU0VSRmlyc3Qt
-TmV0d29yayBBcHBsaWNhdGlvbnMwHhcNOTkwNzA5MTg0ODM5WhcNMTkwNzA5MTg1
-NzQ5WjCBozELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0
-IExha2UgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEwHwYD
-VQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xKzApBgNVBAMTIlVUTi1VU0VS
-Rmlyc3QtTmV0d29yayBBcHBsaWNhdGlvbnMwggEiMA0GCSqGSIb3DQEBAQUAA4IB
-DwAwggEKAoIBAQCz+5Gh5DZVhawGNFugmliy+LUPBXeDrjKxdpJo7CNKyXY/45y2
-N3kDuatpjQclthln5LAbGHNhSuh+zdMvZOOmfAz6F4CjDUeJT1FxL+78P/m4FoCH
-iZMlIJpDgmkkdihZNaEdwH+DBmQWICzTSaSFtMBhf1EI+GgVkYDLpdXuOzr0hARe
-YFmnjDRy7rh4xdE7EkpvfmUnuaRVxblvQ6TFHSyZwFKkeEwVs0CYCGtDxgGwenv1
-axwiP8vv/6jQOkt2FZ7S0cYu49tXGzKiuG/ohqY/cKvlcJKrRB5AUPuco2LkbG6g
-yN7igEL66S/ozjIEj3yNtxyjNTwV3Z7DrpelAgMBAAGjgZEwgY4wCwYDVR0PBAQD
-AgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFPqGydvguul49Uuo1hXf8NPh
-ahQ8ME8GA1UdHwRIMEYwRKBCoECGPmh0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9V
-VE4tVVNFUkZpcnN0LU5ldHdvcmtBcHBsaWNhdGlvbnMuY3JsMA0GCSqGSIb3DQEB
-BQUAA4IBAQCk8yXM0dSRgyLQzDKrm5ZONJFUICU0YV8qAhXhi6r/fWRRzwr/vH3Y
-IWp4yy9Rb/hCHTO967V7lMPDqaAt39EpHx3+jz+7qEUqf9FuVSTiuwL7MT++6Lzs
-QCv4AdRWOOTKRIK1YSAhZ2X28AvnNPilwpyjXEAfhZOVBt5P1CeptqX8Fs1zMT+4
-ZSfP1FMa8Kxun08FDAOBp4QpxFq9ZFdyrTvPNximmMatBrTcCKME1SmklpoSZ0qM
-YEWd8SOasACcaLWYUNPvji6SZbFIPiG+FTAqDbUMo2s/rn9X9R+WfN9v3YIwLGUb
-QErNaLly7HF27FSOH4UMAWr6pjisH8SE
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0
-IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAz
-BgNVBAsTLFZhbGlDZXJ0IENsYXNzIDEgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9y
-aXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG
-9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNTIyMjM0OFoXDTE5MDYy
-NTIyMjM0OFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0d29y
-azEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs
-YXNzIDEgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRw
-Oi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNl
-cnQuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDYWYJ6ibiWuqYvaG9Y
-LqdUHAZu9OqNSLwxlBfw8068srg1knaw0KWlAdcAAxIiGQj4/xEjm84H9b9pGib+
-TunRf50sQB1ZaG6m+FiwnRqP0z/x3BkGgagO4DrdyFNFCQbmD3DD+kCmDuJWBQ8Y
-TfwggtFzVXSNdnKgHZ0dwN0/cQIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFBoPUn0
-LBwGlN+VYH+Wexf+T3GtZMjdd9LvWVXoP+iOBSoh8gfStadS/pyxtuJbdxdA6nLW
-I8sogTLDAHkY7FkXicnGah5xyf23dKUlRWnFSKsZ4UWKJWsZ7uW7EvV/96aNUcPw
+MIICXDCCAcWgAwIBAgIQCgEBAQAAAnwAAAALAAAAAjANBgkqhkiG9w0BAQUF
+ADA6MRkwFwYDVQQKExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0Eg
+U2VjdXJpdHkgMTAyNCBWMzAeFw0wMTAyMjIyMTAxNDlaFw0yNjAyMjIyMDAx
+NDlaMDoxGTAXBgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAbBgNVBAsTFFJT
+QSBTZWN1cml0eSAxMDI0IFYzMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKB
+gQDV3f5mCc8kPD6ugU5OisRpgFtZO9+5TUzKtS3DJy08rwBCbbwoppbPf9dY
+rIMKo1W1exeQFYRMiu4mmdxY78c4pqqv0I5CyGLXq6yp+0p9v+r+Ek3d/yYt
+bzZUaMjShFbuklNhCbM/OZuoyZu9zp9+1BlqFikYvtc6adwlWzMaUQIDAQAB
+o2MwYTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSME
+GDAWgBTEwBykB5T9zU0B1FTapQxf3q4FWjAdBgNVHQ4EFgQUxMAcpAeU/c1N
+AdRU2qUMX96uBVowDQYJKoZIhvcNAQEFBQADgYEAPy1q4yZDlX2Jl2X7deRy
+HUZXxGFraZ8SmyzVWujAovBDleMf6XbN3Ou8k6BlCsdNT1+nr6JGFLkM88y9
+am63nd4lQtBU/55oc2PcJOsiv6hy8l4A4Q1OOkNumU4/iXgDmMrzVcydro7B
+qkWY+o8aoI2II/EVQQ2lRj6RP4vr93E=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDYTCCAkmgAwIBAgIQCgEBAQAAAnwAAAAKAAAAAjANBgkqhkiG9w0BAQUF
+ADA6MRkwFwYDVQQKExBSU0EgU2VjdXJpdHkgSW5jMR0wGwYDVQQLExRSU0Eg
+U2VjdXJpdHkgMjA0OCBWMzAeFw0wMTAyMjIyMDM5MjNaFw0yNjAyMjIyMDM5
+MjNaMDoxGTAXBgNVBAoTEFJTQSBTZWN1cml0eSBJbmMxHTAbBgNVBAsTFFJT
+QSBTZWN1cml0eSAyMDQ4IFYzMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
+CgKCAQEAt49VcdKA3XtpeafwGFAyPGJn9gqVB93mG/Oe2dJBVGutn3y+Gc37
+RqtBaB4Y6lXIL5F4iSj7Jylg/9+PjDvJSZu1pJTOAeo+tWN7fyb9Gd3AIb2E
+0S1PRsNO3Ng3OTsor8udGuorryGlwSMiuLgbWhOHV4PR8CDn6E8jQrAApX2J
+6elhc5SYcSa8LWrg903w8bYqODGBDSnhAMFRD0xS+ARaqn1y07iHKrtjEAMq
+s6FPDVpeRrc9DvV07Jmf+T0kgYim3WBU6JU2PcYJk5qjEoAAVZkZR73QpXzD
+uvsf9/UP+Ky5tfQ3mBMY3oVbtwyCO4dvlTlYMNpuAWgXIszACwIDAQABo2Mw
+YTAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAW
+gBQHw1EwpKrpRa41JPr/JCwz0LGdjDAdBgNVHQ4EFgQUB8NRMKSq6UWuNST6
+/yQsM9CxnYwwDQYJKoZIhvcNAQEFBQADggEBAF8+hnZuuDU8TjYcHnmYv/3V
+EhF5Ug7uMYm83X/50cYVIeiKAVQNOvtUudZj1LGqlk2iQk3UUx+LEN5/Zb5g
+EydxiKRz44Rj0aRV4VCT5hsOedBnvEbIvz8XDZXmxpBp3ue0L96VfdASPz0+
+f00/FGj1EVDVwfSQpQgdMWD/YIwjVAqv/qFuxdF6Kmh4zx6CCiC0H63lhbJq
+aHVOrSU3lIW+vaHU6rcMSzyd6BIA8F+sDeGscGNz9395nzIlQnQFgCi/vcEk
+llgVsRch6YlL2weIZ/QVrXA+L02FO8K32/6YaCOJ4XQP3vTFhGMpG8zLB8kA
+pKnXwiJPZ9d37CAFYd4=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJK
+UDEYMBYGA1UEChMPU0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0
+eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEwHhcNMDMwOTMwMDQyMDQ5WhcNMjMw
+OTMwMDQyMDQ5WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMPU0VDT00gVHJ1
+c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RD
+QTEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8
+V6UMbXaKL0u/ZPtM7orw8yl89f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpx
+xpp9Hp3dfGzGjGdnSj74cbAZJ6kJDKaVv0uMDPpVmDvY6CKhS3E4eayXkmmz
+iX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9Ms+k2Y7CI9eNqPPYJayX5HA49LY6
+tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/NQV3Is00qVUarH9oe4kA92819
+uZKAnDfdDJZkndwi92SL32HeFZRSFaB9UslLqCHJxrHty8OVYNEP8Ktw+N/L
+TX7s1vqr2b1/VPKl6Xn62dZ2JChzAgMBAAGjPzA9MB0GA1UdDgQWBBSgc0mZ
+aNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB
+/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vGkl3g0dNq
+/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfrUj94
+nK9NrvjVT8+amCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5
+Bw+SUEmK3TGXX8npN6o7WWWXlDLJs58+OmJYxUmtYg5xpTKqL8aJdkNAExNn
+PaJUJRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ6rBK+1YWc26sTfci
+oU+tHXotRSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAi
+FL39vmwLAw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDIDCCAgigAwIBAgIBJDANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJG
+STEPMA0GA1UEChMGU29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MxIENB
+MB4XDTAxMDQwNjEwNDkxM1oXDTIxMDQwNjEwNDkxM1owOTELMAkGA1UEBhMC
+RkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJhIENsYXNzMSBD
+QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALWJHytPZwp5/8Ue
++H887dF+2rDNbS82rDTG29lkFwhjMDMiikzujrsPDUJVyZ0upe/3p4zDq7mX
+y47vPxVnqIJyY1MPQYx9EJUkoVqlBvqSV536pQHydekfvFYmUk54GWVYVQNY
+wBSujHxVX3BbdyMGNpfzJLWaRpXk3w0LBUXl0fIdgrvGE+D+qnr9aTCU89JF
+hfzyMlsy3uhsXR/LpCJ0sICOXZT3BgBLqdReLjVQCfOAl/QMF6452F/NM8Ec
+yonCIvdFEu1eEpOdY6uCLrnrQkFEy0oaAIINnvmLVz5MxxftLItyM19yejhW
+1ebZrgUaHXVFsculJRwSVzb9IjcCAwEAAaMzMDEwDwYDVR0TAQH/BAUwAwEB
+/zARBgNVHQ4ECgQIR+IMi/ZTiFIwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEB
+BQUAA4IBAQCLGrLJXWG04bkruVPRsoWdd44W7hE928Jj2VuXZfsSZ9gqXLar
+5V7DtxYvyOirHYr9qxp81V9jz9yw3Xe5qObSIjiHBxTZ/75Wtf0HDjxVyhbM
+p6Z3N/vbXB9OWQaHowND9Rart4S9Tu+fMTfwRvFAttEMpWT4Y14h21VOTzF2
+nBBhjrZTOqMRvq9tfB69ri3iDGnHhVNoomG6xT60eVR4ngrHAr5i0RGCS2Uv
+kVrCqIexVmiUefkl98HVrhq4uz2PqYo4Ffdz0Fpg0YCw8NzVUM1O7pJIae2y
+Ix4wzMiUyLb1O4Z/P6Yun/Y+LLWSlj7fLJOK/4GMDw9ZIRlXvVWa
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJG
+STEPMA0GA1UEChMGU29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENB
+MB4XDTAxMDQwNjA3Mjk0MFoXDTIxMDQwNjA3Mjk0MFowOTELMAkGA1UEBhMC
+RkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJhIENsYXNzMiBD
+QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE
++hY3/Ei9vX+ALTU74W+oZ6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gX
+GM2RX/uJ4+q/Tl18GybTdXnt5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQ
+TiMofRhj8VQ7Jp12W5dCsv+u8E7s3TmVToMGf+dJQMjFAbJUWmYdPfz56TwK
+noG4cPABi+QjVHzIrviQHgCWctRUz2EjvOr7nQKV0ba5cTppCD8PtOFCx4j1
+P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu8nYybieDwnPz3BjotJPqdURr
+BGAgcVeHnfO+oJAjPYok4doh28MCAwEAAaMzMDEwDwYDVR0TAQH/BAUwAwEB
+/zARBgNVHQ4ECgQISqCqWITTXjwwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEB
+BQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt0jSv9zilzqsWuasvfDXL
+rNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/3DEIcbCd
+jdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvDFNr4
+50kkkdAdavphOe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6
+Tk6ezAyNlNzZRZxe7EJQY670XcSxEtzKO6gunRRaBXW37Ndj4ro1tgQIkeja
+nZz2ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLHllpwrN9M
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDujCCAqKgAwIBAgIEAJiWijANBgkqhkiG9w0BAQUFADBVMQswCQYDVQQG
+EwJOTDEeMBwGA1UEChMVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSYwJAYDVQQD
+Ex1TdGFhdCBkZXIgTmVkZXJsYW5kZW4gUm9vdCBDQTAeFw0wMjEyMTcwOTIz
+NDlaFw0xNTEyMTYwOTE1MzhaMFUxCzAJBgNVBAYTAk5MMR4wHAYDVQQKExVT
+dGFhdCBkZXIgTmVkZXJsYW5kZW4xJjAkBgNVBAMTHVN0YWF0IGRlciBOZWRl
+cmxhbmRlbiBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
+AQEAmNK1URF6gaYUmHFtvsznExvWJw56s2oYHLZhWtVhCb/ekBPHZ+7d89rF
+DBKeNVU+LCeIQGv33N0iYfXCxw719tV2U02PjLwYdjeFnejKScfST5gTCaI+
+Ioicf9byEGW07l8Y1Rfj+MX94p2i71MOhXeiD+EwR+4A5zN9RGcaC1Hoi6Ce
+UJhoNFIfLm0B8mBF8jHrqTFoKbt6QZ7GGX+UtFE5A3+y3qcym7RHjm+0Sq7l
+r7HcsBthvJly3uSJt3omXdozSVtSnA71iq3DuD3oBmrC1SoLbHuEvVYFy4Zl
+kuxEK7COudxwC0barbxjiDn622r+I/q85Ej0ZytqERAhSQIDAQABo4GRMIGO
+MAwGA1UdEwQFMAMBAf8wTwYDVR0gBEgwRjBEBgRVHSAAMDwwOgYIKwYBBQUH
+AgEWLmh0dHA6Ly93d3cucGtpb3ZlcmhlaWQubmwvcG9saWNpZXMvcm9vdC1w
+b2xpY3kwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBSofeu8Y6R0E3QA7Jbg
+0zTBLL9s+DANBgkqhkiG9w0BAQUFAAOCAQEABYSHVXQ2YcG70dTGFagTtJ+k
+/rvuFbQvBgwp8qiSpGEN/KtcCFtREytNwiphyPgJWPwtArI5fZlmgb9uXJVF
+IGzmeafR2Bwp/MIgJ1HI8XxdNGdphREwxgDS1/PTfLbwMVcoEoJz6TMvplW0
+C5GUR5z6u3pCMuiufi3IvKwUv9kP2Vv8wfl6leF9fpb8cbDCTMjfRTTJzg3y
+nGQI0DvDKcWy7ZAEwbEpkcUwb8GpcjPM/l0WFywRaed+/sWDCN+83CI6LiBp
+IzlWYGeQiy52OfsRiJf2fL1LuCAWZwWN4jvBcj+UlTfHXbme2JOhF4//DGYV
+wSR8MnwDHTuhWEUykw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDXDCCAsWgAwIBAgICA+owDQYJKoZIhvcNAQEEBQAwgbwxCzAJBgNVBAYT
+AkRFMRAwDgYDVQQIEwdIYW1idXJnMRAwDgYDVQQHEwdIYW1idXJnMTowOAYD
+VQQKEzFUQyBUcnVzdENlbnRlciBmb3IgU2VjdXJpdHkgaW4gRGF0YSBOZXR3
+b3JrcyBHbWJIMSIwIAYDVQQLExlUQyBUcnVzdENlbnRlciBDbGFzcyAyIENB
+MSkwJwYJKoZIhvcNAQkBFhpjZXJ0aWZpY2F0ZUB0cnVzdGNlbnRlci5kZTAe
+Fw05ODAzMDkxMTU5NTlaFw0xMTAxMDExMTU5NTlaMIG8MQswCQYDVQQGEwJE
+RTEQMA4GA1UECBMHSGFtYnVyZzEQMA4GA1UEBxMHSGFtYnVyZzE6MDgGA1UE
+ChMxVEMgVHJ1c3RDZW50ZXIgZm9yIFNlY3VyaXR5IGluIERhdGEgTmV0d29y
+a3MgR21iSDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMiBDQTEp
+MCcGCSqGSIb3DQEJARYaY2VydGlmaWNhdGVAdHJ1c3RjZW50ZXIuZGUwgZ8w
+DQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANo46O0yAClxgwENv4wB3NrGrTmk
+qYov1YtcaF9QxmL1Zr3KkSLsqh1R1z2zUbKDTl3LSbDwTFXlay3HhQswHJJO
+gtTKAu33b77c4OMUuAVT8pr0VotanoWT0bSCVq5Nu6hLVxa8/vhYnvgpjbB7
+zXjJT6yLZwzxnPv8V5tXXE8NAgMBAAGjazBpMA8GA1UdEwEB/wQFMAMBAf8w
+DgYDVR0PAQH/BAQDAgGGMDMGCWCGSAGG+EIBCAQmFiRodHRwOi8vd3d3LnRy
+dXN0Y2VudGVyLmRlL2d1aWRlbGluZXMwEQYJYIZIAYb4QgEBBAQDAgAHMA0G
+CSqGSIb3DQEBBAUAA4GBAIRS+yjf/x91AbwBvgRWl2p0QiQxg/lGsQaKic+W
+LDO/jLVfenKhhQbOhvgFjuj5Jcrag4wGrOs2bYWRNAQ29ELw+HkuCkhcq8xR
+T3h2oNmsGb0q0WkEKJHKNhAngFdb0lz1wlurZIFjdFH0l7/NEij3TWZ/p/Ac
+ASZ4smZHcFFk
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDXDCCAsWgAwIBAgICA+swDQYJKoZIhvcNAQEEBQAwgbwxCzAJBgNVBAYT
+AkRFMRAwDgYDVQQIEwdIYW1idXJnMRAwDgYDVQQHEwdIYW1idXJnMTowOAYD
+VQQKEzFUQyBUcnVzdENlbnRlciBmb3IgU2VjdXJpdHkgaW4gRGF0YSBOZXR3
+b3JrcyBHbWJIMSIwIAYDVQQLExlUQyBUcnVzdENlbnRlciBDbGFzcyAzIENB
+MSkwJwYJKoZIhvcNAQkBFhpjZXJ0aWZpY2F0ZUB0cnVzdGNlbnRlci5kZTAe
+Fw05ODAzMDkxMTU5NTlaFw0xMTAxMDExMTU5NTlaMIG8MQswCQYDVQQGEwJE
+RTEQMA4GA1UECBMHSGFtYnVyZzEQMA4GA1UEBxMHSGFtYnVyZzE6MDgGA1UE
+ChMxVEMgVHJ1c3RDZW50ZXIgZm9yIFNlY3VyaXR5IGluIERhdGEgTmV0d29y
+a3MgR21iSDEiMCAGA1UECxMZVEMgVHJ1c3RDZW50ZXIgQ2xhc3MgMyBDQTEp
+MCcGCSqGSIb3DQEJARYaY2VydGlmaWNhdGVAdHJ1c3RjZW50ZXIuZGUwgZ8w
+DQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBALa0wTUFLg2N7KBAahwOJ6ZQkmtQ
+GwfeLud2zODa/ISoXoxjaitN2U4CdhHBC/KNecoAtvGwDtf7pBc9r6tpepYn
+v68zoZoqWarEtTcI8hKlMbZD9TKWcSgoq40oht+77uMMfTDWw1Krj10nnGvA
+o+cFa1dJRLNu6mTP0o56UHd3AgMBAAGjazBpMA8GA1UdEwEB/wQFMAMBAf8w
+DgYDVR0PAQH/BAQDAgGGMDMGCWCGSAGG+EIBCAQmFiRodHRwOi8vd3d3LnRy
+dXN0Y2VudGVyLmRlL2d1aWRlbGluZXMwEQYJYIZIAYb4QgEBBAQDAgAHMA0G
+CSqGSIb3DQEBBAUAA4GBABY9xs3Bu4VxhUafPiCPUSiZ7C1FIWMjWwS7TJC4
+iJIETb19AaM/9uzO8d7+feXhPrvGq14L3T2WxMup1Pkm5gZOngylerpuw3yC
+GdHHsbHD2w2Om0B8NwvxXej9H5CIpQ5ON2QhqE6NtJ/x3kit1VYYUimLRzQS
+CdS7kjXvD9s0
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEKzCCAxOgAwIBAgIEOsylTDANBgkqhkiG9w0BAQUFADBDMQswCQYDVQQG
+EwJESzEVMBMGA1UEChMMVERDIEludGVybmV0MR0wGwYDVQQLExRUREMgSW50
+ZXJuZXQgUm9vdCBDQTAeFw0wMTA0MDUxNjMzMTdaFw0yMTA0MDUxNzAzMTda
+MEMxCzAJBgNVBAYTAkRLMRUwEwYDVQQKEwxUREMgSW50ZXJuZXQxHTAbBgNV
+BAsTFFREQyBJbnRlcm5ldCBSb290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOC
+AQ8AMIIBCgKCAQEAxLhAvJHVYx/XmaCLDEAedLdInUaMArLgJF/wGROnN4Nr
+XceO+YQwzho7+vvOi20jxsNuZp+Jpd/gQlBn+h9sHvTQBda/ytZO5GhgbEaq
+HF1j4QeGDmUApy6mcca8uYGoOn0a0vnRrEvLznWv3Hv6gXPU/Lq9QYjUdLP5
+Xjg6PEOo0pVOd20TDJ2PeAG3WiAfAzc14izbSysseLlJ28TQx5yc5IogCSEW
+Vmb/Bexb4/DPqyQkXsN/cHoSxNK1EKC2IeGNeGlVRGn1ypYcNIUXJXfi9i8n
+mHj9eQY6otZaQ8H/7AQ77hPv01ha/5Lr7K7a8jcDR0G2l8ktCkEiu7vmpwID
+AQABo4IBJTCCASEwEQYJYIZIAYb4QgEBBAQDAgAHMGUGA1UdHwReMFwwWqBY
+oFakVDBSMQswCQYDVQQGEwJESzEVMBMGA1UEChMMVERDIEludGVybmV0MR0w
+GwYDVQQLExRUREMgSW50ZXJuZXQgUm9vdCBDQTENMAsGA1UEAxMEQ1JMMTAr
+BgNVHRAEJDAigA8yMDAxMDQwNTE2MzMxN1qBDzIwMjEwNDA1MTcwMzE3WjAL
+BgNVHQ8EBAMCAQYwHwYDVR0jBBgwFoAUbGQBx/2FbazI2p5QCIUItTxWqFAw
+HQYDVR0OBBYEFGxkAcf9hW2syNqeUAiFCLU8VqhQMAwGA1UdEwQFMAMBAf8w
+HQYJKoZIhvZ9B0EABBAwDhsIVjUuMDo0LjADAgSQMA0GCSqGSIb3DQEBBQUA
+A4IBAQBOQ8zR3R0QGwZ/t6T609lN+yOfI1Rb5osvBCiLtSdtiaHsmGnc540m
+gwV5dOy0uaOXwTUA/RXaOYE6lTGQ3pfphqiZdwzlWqCE/xIWrG64jcN7ksKs
+LtB9KOy282A4aW8+2ARVPp7MVdK6/rtHBNcK2RYKNCn1WBPVT8+PVkuzHu7T
+mHnaCB4Mb7j4Fifvwm899qNLPg7kbWzbO0ESm70NRyN/PErQr8Cv9u8btRXE
+64PECV90i9kR+8JWsTz4cMo0jUNAE4z9mQNUecYu6oah9jrUCbz0vGbMPVjQ
+V0kK7iXiQe4T+Zs4NNEA9X7nlB38aQNiuJkFBT1reBK9sG9l
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFGTCCBAGgAwIBAgIEPki9xDANBgkqhkiG9w0BAQUFADAxMQswCQYDVQQG
+EwJESzEMMAoGA1UEChMDVERDMRQwEgYDVQQDEwtUREMgT0NFUyBDQTAeFw0w
+MzAyMTEwODM5MzBaFw0zNzAyMTEwOTA5MzBaMDExCzAJBgNVBAYTAkRLMQww
+CgYDVQQKEwNUREMxFDASBgNVBAMTC1REQyBPQ0VTIENBMIIBIjANBgkqhkiG
+9w0BAQEFAAOCAQ8AMIIBCgKCAQEArGL2YSCyz8DGhdfjeebM7fI5kqSXLmSj
+hFuHnEz9pPPEXyG9VhDr2y5h7JNp46PMvZnDBfwGuMo2HP6QjklMxFaaL1a8
+z3sM8W9Hpg1DTeLpHTk0zY0s2RKY+ePhwUp8hjjEqcRhiNJerxomTdXkoCJH
+hNlktxmW/OwZ5LKXJk5KTMuPJItUGBxIYXvViGjaXbXqzRowwYCDdlCqT9HU
+3Tjw7xb04QxQBr/q+3pJoSgrHPb8FTKjdGqPqcNiKXEx5TukYBdedObaE+3p
+Hx8b0bJoc8YQNHVGEBDjkAB2QMuLt0MJIf+rTpPGWOmlgtt3xDqZsXKVSQTw
+tyv6e1mO3QIDAQABo4ICNzCCAjMwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B
+Af8EBAMCAQYwgewGA1UdIASB5DCB4TCB3gYIKoFQgSkBAQEwgdEwLwYIKwYB
+BQUHAgEWI2h0dHA6Ly93d3cuY2VydGlmaWthdC5kay9yZXBvc2l0b3J5MIGd
+BggrBgEFBQcCAjCBkDAKFgNUREMwAwIBARqBgUNlcnRpZmlrYXRlciBmcmEg
+ZGVubmUgQ0EgdWRzdGVkZXMgdW5kZXIgT0lEIDEuMi4yMDguMTY5LjEuMS4x
+LiBDZXJ0aWZpY2F0ZXMgZnJvbSB0aGlzIENBIGFyZSBpc3N1ZWQgdW5kZXIg
+T0lEIDEuMi4yMDguMTY5LjEuMS4xLjARBglghkgBhvhCAQEEBAMCAAcwgYEG
+A1UdHwR6MHgwSKBGoESkQjBAMQswCQYDVQQGEwJESzEMMAoGA1UEChMDVERD
+MRQwEgYDVQQDEwtUREMgT0NFUyBDQTENMAsGA1UEAxMEQ1JMMTAsoCqgKIYm
+aHR0cDovL2NybC5vY2VzLmNlcnRpZmlrYXQuZGsvb2Nlcy5jcmwwKwYDVR0Q
+BCQwIoAPMjAwMzAyMTEwODM5MzBagQ8yMDM3MDIxMTA5MDkzMFowHwYDVR0j
+BBgwFoAUYLWF7FZkfhIZJ2cdUBVLc647+RIwHQYDVR0OBBYEFGC1hexWZH4S
+GSdnHVAVS3OuO/kSMB0GCSqGSIb2fQdBAAQQMA4bCFY2LjA6NC4wAwIEkDAN
+BgkqhkiG9w0BAQUFAAOCAQEACromJkbTc6gJ82sLMJn9iuFXehHTuJTXCRBu
+o7E4A9G28kNBKWKnctj7fAXmMXAnVBhOinxO5dHKjHiIzxvTkIvmI/gLDjND
+fZziChmPyQE+dF10yYscA+UYyAFMP8uXBV2YcaaYb7Z8vTd/vuGTJW1v8Aqt
+FxjhA7wHKcitJuj4YfD9IQl+mo6paH1IYnK9AOoBmbgGglGBTvH1tJFUuSN6
+AJqfXY3gPGS5GhKSKseCRHI53OI8xthV9RVOyAUO28bQYqbsFbS1AoLbrIyi
+gfCbmTH1ICCoiGEKB5+U/NDXG8wuF/MEJ3Zn61SD/aSQfgY9BKNDLdr8C2Lq
+L19iUw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDITCCAoqgAwIBAgIBADANBgkqhkiG9w0BAQQFADCByzELMAkGA1UEBhMC
+WkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3du
+MRowGAYDVQQKExFUaGF3dGUgQ29uc3VsdGluZzEoMCYGA1UECxMfQ2VydGlm
+aWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhhd3RlIFBl
+cnNvbmFsIEJhc2ljIENBMSgwJgYJKoZIhvcNAQkBFhlwZXJzb25hbC1iYXNp
+Y0B0aGF3dGUuY29tMB4XDTk2MDEwMTAwMDAwMFoXDTIwMTIzMTIzNTk1OVow
+gcsxCzAJBgNVBAYTAlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNV
+BAcTCUNhcGUgVG93bjEaMBgGA1UEChMRVGhhd3RlIENvbnN1bHRpbmcxKDAm
+BgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2aXNpb24xITAfBgNV
+BAMTGFRoYXd0ZSBQZXJzb25hbCBCYXNpYyBDQTEoMCYGCSqGSIb3DQEJARYZ
+cGVyc29uYWwtYmFzaWNAdGhhd3RlLmNvbTCBnzANBgkqhkiG9w0BAQEFAAOB
+jQAwgYkCgYEAvLyTU23AUE+CFeZIlDWmWr5vQvoPR+53dXLdjUmbllegeNTK
+P1GzaQuRdhciB5dqxFGTS+CN7zeVoQxN2jSQHReJl+A1OFdKwPQIcOk8RHtQ
+fmGakOMj04gRRif1CwcOu93RfyAKiLlWCy4cgNrx454p7xS9CkT7G1sY0b8j
+kyECAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQQFAAOB
+gQAt4plrsD16iddZopQBHyvdEktTwq1/qqcAXJFAVyVKOKqEcLnZgA+le1z7
+c8a914phXAPjLSeoF+CEhULcXpvGt7Jtu3Sv5D/Lp7ew4F2+eIMllNLbgQ95
+B21P9DkVWlIBe94y1k049hJcBlDfBVu9FEuh3ym6O0GN92NWod8isQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDLTCCApagAwIBAgIBADANBgkqhkiG9w0BAQQFADCB0TELMAkGA1UEBhMC
+WkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3du
+MRowGAYDVQQKExFUaGF3dGUgQ29uc3VsdGluZzEoMCYGA1UECxMfQ2VydGlm
+aWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEkMCIGA1UEAxMbVGhhd3RlIFBl
+cnNvbmFsIEZyZWVtYWlsIENBMSswKQYJKoZIhvcNAQkBFhxwZXJzb25hbC1m
+cmVlbWFpbEB0aGF3dGUuY29tMB4XDTk2MDEwMTAwMDAwMFoXDTIwMTIzMTIz
+NTk1OVowgdExCzAJBgNVBAYTAlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUx
+EjAQBgNVBAcTCUNhcGUgVG93bjEaMBgGA1UEChMRVGhhd3RlIENvbnN1bHRp
+bmcxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2aXNpb24x
+JDAiBgNVBAMTG1RoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBDQTErMCkGCSqG
+SIb3DQEJARYccGVyc29uYWwtZnJlZW1haWxAdGhhd3RlLmNvbTCBnzANBgkq
+hkiG9w0BAQEFAAOBjQAwgYkCgYEA1GnX1LCUZFtx6UfYDFG26nKRsIRefS0N
+j3sS34UldSh0OkIsYyeflXtL734Zhx2G6qPduc6WZBrCFG5ErHzmj+hND3Ef
+QDimAKOHePb5lIZererAXnbr2RSjXW56fAylS1V/Bhkpf56aJtVquzgkCGqY
+x7Hao5iR/Xnb5VrEHLkCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkq
+hkiG9w0BAQQFAAOBgQDH7JJ+Tvj1lqVnYiqk8E0RYNBvjWBYYawmu1I1XAjP
+MPuoSpaKH2JCI4wXD/S6ZJwXrEcp352YXtJsYHFcoqzceePnbgBHH7UNKOgC
+neSa/RP0ptl8sfjcXyMmCZGAc9AUG95DqYMl8uacLxXK/qarigd1iwzdUYRr
+5PjRzneigQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDKTCCApKgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBzzELMAkGA1UEBhMC
+WkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3du
+MRowGAYDVQQKExFUaGF3dGUgQ29uc3VsdGluZzEoMCYGA1UECxMfQ2VydGlm
+aWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEjMCEGA1UEAxMaVGhhd3RlIFBl
+cnNvbmFsIFByZW1pdW0gQ0ExKjAoBgkqhkiG9w0BCQEWG3BlcnNvbmFsLXBy
+ZW1pdW1AdGhhd3RlLmNvbTAeFw05NjAxMDEwMDAwMDBaFw0yMDEyMzEyMzU5
+NTlaMIHPMQswCQYDVQQGEwJaQTEVMBMGA1UECBMMV2VzdGVybiBDYXBlMRIw
+EAYDVQQHEwlDYXBlIFRvd24xGjAYBgNVBAoTEVRoYXd0ZSBDb25zdWx0aW5n
+MSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9uMSMw
+IQYDVQQDExpUaGF3dGUgUGVyc29uYWwgUHJlbWl1bSBDQTEqMCgGCSqGSIb3
+DQEJARYbcGVyc29uYWwtcHJlbWl1bUB0aGF3dGUuY29tMIGfMA0GCSqGSIb3
+DQEBAQUAA4GNADCBiQKBgQDJZtn4B0TPuYwu8KHvE0VsBd/eJxZRNkERbGw7
+7f4QfRKe5ZtCmv5gMcNmt3M6SK5O0DI3lIi1DbbZ8/JE2dWIEt12TfIa/G8j
+Hnrx2JhFTgcQ7xZC0EN1bUre4qrJMf8fAHB8Zs8QJQi6+u4A6UYDZicRFTuq
+W/KY3TZCstqIdQIDAQABoxMwETAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3
+DQEBBAUAA4GBAGk2ifc0KjNyL2071CKyuG+axTZmDhs8obF1Wub9NdP4qPIH
+b4Vnjt4rueIXsDqg8A6iAJrf8xQVbrvIhVqYgPn/vnQdPfP+MCXRNzRn+qVx
+eTBhKXLA4CxM+1bkOqhv5TJZUtt1KFBZDPgLGeSs2a+WjS9Q2wfD6h+rM+D1
+KzGJ
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDJzCCApCgAwIBAgIBATANBgkqhkiG9w0BAQQFADCBzjELMAkGA1UEBhMC
+WkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3du
+MR0wGwYDVQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2Vy
+dGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEhMB8GA1UEAxMYVGhhd3Rl
+IFByZW1pdW0gU2VydmVyIENBMSgwJgYJKoZIhvcNAQkBFhlwcmVtaXVtLXNl
+cnZlckB0aGF3dGUuY29tMB4XDTk2MDgwMTAwMDAwMFoXDTIwMTIzMTIzNTk1
+OVowgc4xCzAJBgNVBAYTAlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQ
+BgNVBAcTCUNhcGUgVG93bjEdMBsGA1UEChMUVGhhd3RlIENvbnN1bHRpbmcg
+Y2MxKDAmBgNVBAsTH0NlcnRpZmljYXRpb24gU2VydmljZXMgRGl2aXNpb24x
+ITAfBgNVBAMTGFRoYXd0ZSBQcmVtaXVtIFNlcnZlciBDQTEoMCYGCSqGSIb3
+DQEJARYZcHJlbWl1bS1zZXJ2ZXJAdGhhd3RlLmNvbTCBnzANBgkqhkiG9w0B
+AQEFAAOBjQAwgYkCgYEA0jY2aovXwlue2oFBYo847kkEVdbQ7xwblRZH7xhI
+NTpS9CtqBo87L+pW46+GjZ4X9560ZXUCTe/LCaIhUdib0GfQug2SBhRz1JPL
+lyoAnFxODLz6FVL88kRu2hFKbgifLy3j+ao6hnO2RlNYyIkFvYMRuHM/qgeN
+9EJN50CdHDcCAwEAAaMTMBEwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0B
+AQQFAAOBgQAmSCwWwlj66BZ0DKqqX1Q/8tfJeGBeXm43YyJ3Nn6yF8Q0ufUI
+hfzJATj/Tb7yFkJD57taRvvBxhEf8UqwKEbJw8RCfbz6q1lu1bdRiBHjpIUZ
+a4JMpAwSremkrj/xw0llmozFyD4lt5SZu5IycQfwhl7tUCemDaYj+bvLpgcU
+Qg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDEzCCAnygAwIBAgIBATANBgkqhkiG9w0BAQQFADCBxDELMAkGA1UEBhMC
+WkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2FwZSBUb3du
+MR0wGwYDVQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UECxMfQ2Vy
+dGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcGA1UEAxMQVGhhd3Rl
+IFNlcnZlciBDQTEmMCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRzQHRoYXd0
+ZS5jb20wHhcNOTYwODAxMDAwMDAwWhcNMjAxMjMxMjM1OTU5WjCBxDELMAkG
+A1UEBhMCWkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTESMBAGA1UEBxMJQ2Fw
+ZSBUb3duMR0wGwYDVQQKExRUaGF3dGUgQ29uc3VsdGluZyBjYzEoMCYGA1UE
+CxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEZMBcGA1UEAxMQ
+VGhhd3RlIFNlcnZlciBDQTEmMCQGCSqGSIb3DQEJARYXc2VydmVyLWNlcnRz
+QHRoYXd0ZS5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBANOkUG7I
+/1Zr5s9dtuoMaHVHoqrC2oQl/Kj0R1HahbUgdJSGHg91yekIYfUGbTBuFRkC
+6VLAYttNmZ7iagxEOM3+vuNkCXDF/rFrKbYvScg71CcEJRCXL+eQbcAoQpnX
+TEPew/UhbVSfXcNY4cDk2VuwuNy0e982OsK1ZiIS1ocNAgMBAAGjEzARMA8G
+A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAB/pMaVz7lcxG7oWD
+TSEwjsrZqG9JGubaUeNgcGyEYRGhGshIPllDfU+VPaGLtwtimHp1it2ITk6e
+QNuozDJ0uW8NxuOzRAvZim+aKZuZGCg70eNAKJpaPNW15yAbi8qkq43pUdni
+TCxZqdq5snUb9kLy78fyGPmJvKP/iiMucEc=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICoTCCAgqgAwIBAgIBADANBgkqhkiG9w0BAQQFADCBizELMAkGA1UEBhMC
+WkExFTATBgNVBAgTDFdlc3Rlcm4gQ2FwZTEUMBIGA1UEBxMLRHVyYmFudmls
+bGUxDzANBgNVBAoTBlRoYXd0ZTEdMBsGA1UECxMUVGhhd3RlIENlcnRpZmlj
+YXRpb24xHzAdBgNVBAMTFlRoYXd0ZSBUaW1lc3RhbXBpbmcgQ0EwHhcNOTcw
+MTAxMDAwMDAwWhcNMjAxMjMxMjM1OTU5WjCBizELMAkGA1UEBhMCWkExFTAT
+BgNVBAgTDFdlc3Rlcm4gQ2FwZTEUMBIGA1UEBxMLRHVyYmFudmlsbGUxDzAN
+BgNVBAoTBlRoYXd0ZTEdMBsGA1UECxMUVGhhd3RlIENlcnRpZmljYXRpb24x
+HzAdBgNVBAMTFlRoYXd0ZSBUaW1lc3RhbXBpbmcgQ0EwgZ8wDQYJKoZIhvcN
+AQEBBQADgY0AMIGJAoGBANYrWHhhRYZT6jR7UZztsOYuGA7+4F+oJ9O0yeB8
+WU4WDnNUYMF/9p8u6TqFJBU820cEY8OexJQaWt9MevPZQx08EHp5JduQ/vBR
+5zDWQQD9nyjfeb6Uu522FOMjhdepQeBMpHmwKxqL8vg7ij5FrHGSALSQQZj7
+X+36ty6K+Ig3AgMBAAGjEzARMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcN
+AQEEBQADgYEAZ9viwuaHPUCDhjc1fR/OmsMMZiCouqoEiYbC9RAIDb/LogWK
+0E02PvTX72nGXuSwlG9KuefeW4i2e9vjJ+V2w/A1wcu1J5szedyQpgCed/r8
+zSeUQhac0xxo7L9c3eWpexAKMnRUEzGLhQOEkbdYATAUOK8oyvyxUBkZCayJ
+SdM=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEXjCCA0agAwIBAgIQRL4Mi1AAIbQR0ypoBqmtaTANBgkqhkiG9w0BAQUF
+ADCBkzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0
+IExha2UgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEw
+HwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xGzAZBgNVBAMTElVU
+TiAtIERBVEFDb3JwIFNHQzAeFw05OTA2MjQxODU3MjFaFw0xOTA2MjQxOTA2
+MzBaMIGTMQswCQYDVQQGEwJVUzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNh
+bHQgTGFrZSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsx
+ITAfBgNVBAsTGGh0dHA6Ly93d3cudXNlcnRydXN0LmNvbTEbMBkGA1UEAxMS
+VVROIC0gREFUQUNvcnAgU0dDMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB
+CgKCAQEA3+5YEKIrblXEjr8uRgnn4AgPLit6E5Qbvfa2gI5lBZMAHryv4g+O
+GQ0SR+ysraP6LnD43m77VkIVni5c7yPeIbkFdicZD0/Ww5y0vpQZY/KmEQrr
+U0icvvIpOxboGqBMpsn0GFlowHDyUwDAXlCCpVZvNvlK4ESGoE1O1kduSUrL
+Z9emxAW5jh70/P/N5zbgnAVssjMiFdC04MwXwLLA9P4yPykqlXvY8qdOD1R8
+oQ2AswkDwf9c3V6aPryuvEeKaq5xyh+xKrhfQgUL7EYw0XILyulWbfXv33i+
+Ybqypa4ETLyorGkVl73v67SMvzX41MPRKA5cOp9wGDMgd8SirwIDAQABo4Gr
+MIGoMAsGA1UdDwQEAwIBxjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRT
+MtGzz3/64PGgXYVOktKeRR20TzA9BgNVHR8ENjA0MDKgMKAuhixodHRwOi8v
+Y3JsLnVzZXJ0cnVzdC5jb20vVVROLURBVEFDb3JwU0dDLmNybDAqBgNVHSUE
+IzAhBggrBgEFBQcDAQYKKwYBBAGCNwoDAwYJYIZIAYb4QgQBMA0GCSqGSIb3
+DQEBBQUAA4IBAQAnNZcAiosovcYzMB4p/OL31ZjUQLtgyr+rFywJNn9Q+kHc
+rpY6CiM+iVnJowftGzet/Hy+UUla3joKVAgWRcKZsYfNjGjgaQPpxE6YsjuM
+FrMOoAyYUJuTqXAJyCyjj98C5OBxOvG0I3KgqgHf35g+FFCgMSa9KOlaMCZ1
++XtgHI3zzVAmbQQnmt/VDUVHKWss5nbZqSl9Mt3JNjy9rjXxEZ4du5A/EkdO
+jtd+D2JzHVImOBwYSf0wdJrE5SIv2MCN7ZF6TACPcn9d2t0bi0Vr591pl6jF
+VkwPDPafepE39peC4N1xaf92P2BNPM/3mfnGV/TJVTl4uix5yaaIK/QI
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEojCCA4qgAwIBAgIQRL4Mi1AAJLQR0zYlJWfJiTANBgkqhkiG9w0BAQUF
+ADCBrjELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0
+IExha2UgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEw
+HwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xNjA0BgNVBAMTLVVU
+Ti1VU0VSRmlyc3QtQ2xpZW50IEF1dGhlbnRpY2F0aW9uIGFuZCBFbWFpbDAe
+Fw05OTA3MDkxNzI4NTBaFw0xOTA3MDkxNzM2NThaMIGuMQswCQYDVQQGEwJV
+UzELMAkGA1UECBMCVVQxFzAVBgNVBAcTDlNhbHQgTGFrZSBDaXR5MR4wHAYD
+VQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxITAfBgNVBAsTGGh0dHA6Ly93
+d3cudXNlcnRydXN0LmNvbTE2MDQGA1UEAxMtVVROLVVTRVJGaXJzdC1DbGll
+bnQgQXV0aGVudGljYXRpb24gYW5kIEVtYWlsMIIBIjANBgkqhkiG9w0BAQEF
+AAOCAQ8AMIIBCgKCAQEAsjmFpPJ9q0E7YkY3rs3BYHW8OWX5ShpHornMSMxq
+mNVNNRm5pELlzkniii8efNIxB8dOtINknS4p1aJkxIW9hVE1eaROaJB7HHqk
+kqgX8pgV8pPMyaQylbsMTzC9mKALi+VuG6JG+ni8om+rWV6lL8/K2m2qL+us
+obNqqrcuZzWLeeEeaYji5kbNoKXqvgvOdjp6Dpvq/NonWz1zHyLmSGHGTPNp
+saguG7bUMSAsvIKKjqQOpdeJQ/wWWq8dcdcRWdq6hw2v+vPhwvCkxWeM1tZU
+Ot4KpLoDd7NlyP0e03RiqhjKaJMeoYV+9Udly/hNVyh00jT/MLbu9mIwFIws
+6wIDAQABo4G5MIG2MAsGA1UdDwQEAwIBxjAPBgNVHRMBAf8EBTADAQH/MB0G
+A1UdDgQWBBSJgmd9xJ0mcABLtFBIfN49rgRufTBYBgNVHR8EUTBPME2gS6BJ
+hkdodHRwOi8vY3JsLnVzZXJ0cnVzdC5jb20vVVROLVVTRVJGaXJzdC1DbGll
+bnRBdXRoZW50aWNhdGlvbmFuZEVtYWlsLmNybDAdBgNVHSUEFjAUBggrBgEF
+BQcDAgYIKwYBBQUHAwQwDQYJKoZIhvcNAQEFBQADggEBALFtYV2mGn98q0rk
+MPxTbyUkxsrt4jFcKw7u7mFVbwQ+zznexRtJlOTrIEy05p5QLnLZjfWqo7NK
+2lYcYJeA3IKirUq9iiv/Cwm0xtcgBEXkzYABurorbs6q15L+5K/r9CYdFip/
+bDCVNy8zEqx/3cfREYxRmLLQo5HQrfafnoOTHh1CuEava2bwm3/q4wMC5QJR
+warVNZ1yQAOJujEdxRBoUp7fooXFXAimeOZTT7Hot9MUnpOmw2TjrH5xzbyf
+6QMbzPvprDHBr3wVdAKZw7JHpsIyYdfHb0gkUSeh1YdV8nuPmD0Wnu51tvjQ
+jvLzxq4oW6fw8zYX/MMF08oDSlQ=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEdDCCA1ygAwIBAgIQRL4Mi1AAJLQR0zYq/mUK/TANBgkqhkiG9w0BAQUF
+ADCBlzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0
+IExha2UgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEw
+HwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAdBgNVBAMTFlVU
+Ti1VU0VSRmlyc3QtSGFyZHdhcmUwHhcNOTkwNzA5MTgxMDQyWhcNMTkwNzA5
+MTgxOTIyWjCBlzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQH
+Ew5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3
+b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHzAdBgNV
+BAMTFlVUTi1VU0VSRmlyc3QtSGFyZHdhcmUwggEiMA0GCSqGSIb3DQEBAQUA
+A4IBDwAwggEKAoIBAQCx98M4P7Sof885glFn0G2f0v9Y8+efK+wNiVSZuTiZ
+FvfgIXlIwrthdBKWHTxqctU8EGc6Oe0rE81m65UJM6Rsl7HoxuzBdXmcRl6N
+q9Bq/bkqVRcQVLMZ8Jr28bFdtqdt++BxF2uiiPsA3/4aMXcMmgF6sTLjKwEH
+OG7DpV4jvEWbe1DByTCP2+UretNb+zNAHqDVmBe8i4fDidNdoI6yqqr2jmmI
+BsX6iSHzCJ1pLgkzmykNRg+MzEk0sGlRvfkGzWitZky8PqxhvQqIDsjfPe58
+BEydCl5rkdbux+0ojatNh4lz0G6k0B4WixThdkQDf2Os5M1JnMWS9KsyoUhb
+AgMBAAGjgbkwgbYwCwYDVR0PBAQDAgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYD
+VR0OBBYEFKFyXyYbKJhDlV0HN9WFlp1L0sNFMEQGA1UdHwQ9MDswOaA3oDWG
+M2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9VVE4tVVNFUkZpcnN0LUhhcmR3
+YXJlLmNybDAxBgNVHSUEKjAoBggrBgEFBQcDAQYIKwYBBQUHAwUGCCsGAQUF
+BwMGBggrBgEFBQcDBzANBgkqhkiG9w0BAQUFAAOCAQEARxkP3nTGmZev/K0o
+XnWO6y1n7k57K9cM//bey1WiCuFMVGWTYGufEpytXoMs61quwOQt9ABjHbjA
+bPLPSbtNk28GpgoiskliCE7/yMgUsogWXecB5BKV5UU0s4tpvc+0hY91UZ59
+Ojg6FEgSxvunOxqNDYJAB+gECJChicsZUN/KHAG8HQQZexB2lzvukJDKxA4f
+Fm517zP4029bHpbj4HR3dHuKom4t3XbWOTCC8KucUvIqx69JXn7HaOWCgchq
+J/kniCrVWFCVH/A7HFe7fRQ5YiuayZSSKqMiDP+JJn1fIytH1xUdqWqeUQ0q
+UZ6B+dQ7XnASfxAynB67nfhmqA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEZDCCA0ygAwIBAgIQRL4Mi1AAJLQR0zYwS8AzdzANBgkqhkiG9w0BAQUF
+ADCBozELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0
+IExha2UgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEw
+HwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xKzApBgNVBAMTIlVU
+Ti1VU0VSRmlyc3QtTmV0d29yayBBcHBsaWNhdGlvbnMwHhcNOTkwNzA5MTg0
+ODM5WhcNMTkwNzA5MTg1NzQ5WjCBozELMAkGA1UEBhMCVVMxCzAJBgNVBAgT
+AlVUMRcwFQYDVQQHEw5TYWx0IExha2UgQ2l0eTEeMBwGA1UEChMVVGhlIFVT
+RVJUUlVTVCBOZXR3b3JrMSEwHwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVz
+dC5jb20xKzApBgNVBAMTIlVUTi1VU0VSRmlyc3QtTmV0d29yayBBcHBsaWNh
+dGlvbnMwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCz+5Gh5DZV
+hawGNFugmliy+LUPBXeDrjKxdpJo7CNKyXY/45y2N3kDuatpjQclthln5LAb
+GHNhSuh+zdMvZOOmfAz6F4CjDUeJT1FxL+78P/m4FoCHiZMlIJpDgmkkdihZ
+NaEdwH+DBmQWICzTSaSFtMBhf1EI+GgVkYDLpdXuOzr0hAReYFmnjDRy7rh4
+xdE7EkpvfmUnuaRVxblvQ6TFHSyZwFKkeEwVs0CYCGtDxgGwenv1axwiP8vv
+/6jQOkt2FZ7S0cYu49tXGzKiuG/ohqY/cKvlcJKrRB5AUPuco2LkbG6gyN7i
+gEL66S/ozjIEj3yNtxyjNTwV3Z7DrpelAgMBAAGjgZEwgY4wCwYDVR0PBAQD
+AgHGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFPqGydvguul49Uuo1hXf
+8NPhahQ8ME8GA1UdHwRIMEYwRKBCoECGPmh0dHA6Ly9jcmwudXNlcnRydXN0
+LmNvbS9VVE4tVVNFUkZpcnN0LU5ldHdvcmtBcHBsaWNhdGlvbnMuY3JsMA0G
+CSqGSIb3DQEBBQUAA4IBAQCk8yXM0dSRgyLQzDKrm5ZONJFUICU0YV8qAhXh
+i6r/fWRRzwr/vH3YIWp4yy9Rb/hCHTO967V7lMPDqaAt39EpHx3+jz+7qEUq
+f9FuVSTiuwL7MT++6LzsQCv4AdRWOOTKRIK1YSAhZ2X28AvnNPilwpyjXEAf
+hZOVBt5P1CeptqX8Fs1zMT+4ZSfP1FMa8Kxun08FDAOBp4QpxFq9ZFdyrTvP
+NximmMatBrTcCKME1SmklpoSZ0qMYEWd8SOasACcaLWYUNPvji6SZbFIPiG+
+FTAqDbUMo2s/rn9X9R+WfN9v3YIwLGUbQErNaLly7HF27FSOH4UMAWr6pjis
+H8SE
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEZjCCA06gAwIBAgIQRL4Mi1AAJLQR0zYt4LNfGzANBgkqhkiG9w0BAQUF
+ADCBlTELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAlVUMRcwFQYDVQQHEw5TYWx0
+IExha2UgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMSEw
+HwYDVQQLExhodHRwOi8vd3d3LnVzZXJ0cnVzdC5jb20xHTAbBgNVBAMTFFVU
+Ti1VU0VSRmlyc3QtT2JqZWN0MB4XDTk5MDcwOTE4MzEyMFoXDTE5MDcwOTE4
+NDAzNlowgZUxCzAJBgNVBAYTAlVTMQswCQYDVQQIEwJVVDEXMBUGA1UEBxMO
+U2FsdCBMYWtlIENpdHkxHjAcBgNVBAoTFVRoZSBVU0VSVFJVU1QgTmV0d29y
+azEhMB8GA1UECxMYaHR0cDovL3d3dy51c2VydHJ1c3QuY29tMR0wGwYDVQQD
+ExRVVE4tVVNFUkZpcnN0LU9iamVjdDCCASIwDQYJKoZIhvcNAQEBBQADggEP
+ADCCAQoCggEBAM6qgT+jo2F4qjEAVZURnicPHxzfOpuCaDDASmEd8S8O+r55
+96Uj71VRloTN2+O5bj4x2AogZ8f02b+U60cEPgLOKqJdhwQJ9jCdGIqXsqoc
+/EHSoTbL+z2RuufZcDX65OeQw5ujm9M89RKZd7G3CeBo5hy485RjiGpq/gt2
+yb70IuRnuasaXnfBhQfdDWy/7gbHd2pBnqcP1/vulBe3/IW+pKvEHDHd17bR
+5PDv3xaPslKT16HUiaEHLr/hARJCHhrh2JU022R5KP+6LhHC5ehbkkj7RwvC
+bNqtMoNB86XlQXD9ZZBt+vpRxPm9lisZBCzTbafc8H9vg2XiaquHhnUCAwEA
+AaOBrzCBrDALBgNVHQ8EBAMCAcYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E
+FgQU2u1kdBScFDyr3ZmpvVsoTYs8ydgwQgYDVR0fBDswOTA3oDWgM4YxaHR0
+cDovL2NybC51c2VydHJ1c3QuY29tL1VUTi1VU0VSRmlyc3QtT2JqZWN0LmNy
+bDApBgNVHSUEIjAgBggrBgEFBQcDAwYIKwYBBQUHAwgGCisGAQQBgjcKAwQw
+DQYJKoZIhvcNAQEFBQADggEBAAgfUrE3RHjb/c652pWWmKpVZIC1WkDdIaXF
+wfNfLEzIR1pp6ujwNTX00CXzyKakh0q9G7FzCL3Uw8q2NbtZhncxzaeAFK4T
+7/yxSPlrJSUtUbYsbUXBmMiKVl0+7kNOPmsnjtA6S4ULX9Ptaqd1y9Fahy85
+dRNacrACgZ++8A+EVCBibGnU4U3GDZlDAQ0Slox4nb9QorFEqmrPF3rPbw/U
++CRVX/A0FklmPlBGyWNxODFiuGK581OtbLUrohKqGU8J2l7nk8aOFAj+8DCA
+GKCGhU3IfdeLA/5u1fedFqySLKAj5ZyRUh+U3xeUc8OzwcFxBSAAeL0TUh2o
+Ps0AH8g=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlD
+ZXJ0IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIElu
+Yy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDEgUG9saWN5IFZhbGlkYXRp
+b24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNv
+bS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYy
+NTIyMjM0OFoXDTE5MDYyNTIyMjM0OFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0
+IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4x
+NTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDEgUG9saWN5IFZhbGlkYXRpb24g
+QXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8x
+IDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3
+DQEBAQUAA4GNADCBiQKBgQDYWYJ6ibiWuqYvaG9YLqdUHAZu9OqNSLwxlBfw
+8068srg1knaw0KWlAdcAAxIiGQj4/xEjm84H9b9pGib+TunRf50sQB1ZaG6m
++FiwnRqP0z/x3BkGgagO4DrdyFNFCQbmD3DD+kCmDuJWBQ8YTfwggtFzVXSN
+dnKgHZ0dwN0/cQIDAQABMA0GCSqGSIb3DQEBBQUAA4GBAFBoPUn0LBwGlN+V
+YH+Wexf+T3GtZMjdd9LvWVXoP+iOBSoh8gfStadS/pyxtuJbdxdA6nLWI8so
+gTLDAHkY7FkXicnGah5xyf23dKUlRWnFSKsZ4UWKJWsZ7uW7EvV/96aNUcPw
nXS3qT6gpf+2SQMT2iLM7XGCK5nPOrf1LXLI
-----END CERTIFICATE-----
-
-----BEGIN CERTIFICATE-----
-MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0
-IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAz
-BgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9y
-aXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG
-9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYyNjAwMTk1NFoXDTE5MDYy
-NjAwMTk1NFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0IFZhbGlkYXRpb24gTmV0d29y
-azEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENs
-YXNzIDIgUG9saWN5IFZhbGlkYXRpb24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRw
-Oi8vd3d3LnZhbGljZXJ0LmNvbS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNl
-cnQuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDOOnHK5avIWZJV16vY
-dA757tn2VUdZZUcOBVXc65g2PFxTXdMwzzjsvUGJ7SVCCSRrCl6zfN1SLUzm1NZ9
-WlmpZdRJEy0kTRxQb7XBhVQ7/nHk01xC+YDgkRoKWzk2Z/M/VXwbP7RfZHM047QS
-v4dk+NoS/zcnwbNDu+97bi5p9wIDAQABMA0GCSqGSIb3DQEBBQUAA4GBADt/UG9v
-UJSZSWI4OB9L+KXIPqeCgfYrx+jFzug6EILLGACOTb2oWH+heQC1u+mNr0HZDzTu
-IYEZoDJJKPTEjlbVUjP9UNV+mWwD5MlM/Mtsq2azSiGM5bUMMj4QssxsodyamEwC
+MIIC5zCCAlACAQEwDQYJKoZIhvcNAQEFBQAwgbsxJDAiBgNVBAcTG1ZhbGlD
+ZXJ0IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIElu
+Yy4xNTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIgUG9saWN5IFZhbGlkYXRp
+b24gQXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNv
+bS8xIDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMB4XDTk5MDYy
+NjAwMTk1NFoXDTE5MDYyNjAwMTk1NFowgbsxJDAiBgNVBAcTG1ZhbGlDZXJ0
+IFZhbGlkYXRpb24gTmV0d29yazEXMBUGA1UEChMOVmFsaUNlcnQsIEluYy4x
+NTAzBgNVBAsTLFZhbGlDZXJ0IENsYXNzIDIgUG9saWN5IFZhbGlkYXRpb24g
+QXV0aG9yaXR5MSEwHwYDVQQDExhodHRwOi8vd3d3LnZhbGljZXJ0LmNvbS8x
+IDAeBgkqhkiG9w0BCQEWEWluZm9AdmFsaWNlcnQuY29tMIGfMA0GCSqGSIb3
+DQEBAQUAA4GNADCBiQKBgQDOOnHK5avIWZJV16vYdA757tn2VUdZZUcOBVXc
+65g2PFxTXdMwzzjsvUGJ7SVCCSRrCl6zfN1SLUzm1NZ9WlmpZdRJEy0kTRxQ
+b7XBhVQ7/nHk01xC+YDgkRoKWzk2Z/M/VXwbP7RfZHM047QSv4dk+NoS/zcn
+wbNDu+97bi5p9wIDAQABMA0GCSqGSIb3DQEBBQUAA4GBADt/UG9vUJSZSWI4
+OB9L+KXIPqeCgfYrx+jFzug6EILLGACOTb2oWH+heQC1u+mNr0HZDzTuIYEZ
+oDJJKPTEjlbVUjP9UNV+mWwD5MlM/Mtsq2azSiGM5bUMMj4QssxsodyamEwC
W/POuZ6lcg5Ktz885hZo+L7tdEy8W9ViH0Pd
-----END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIICPTCCAaYCEQDNun9W8N/kvFT+IqyzcqpVMA0GCSqGSIb3DQEBAgUAMF8xCzAJ
-BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xh
-c3MgMSBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw05
-NjAxMjkwMDAwMDBaFw0yODA4MDEyMzU5NTlaMF8xCzAJBgNVBAYTAlVTMRcwFQYD
-VQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xhc3MgMSBQdWJsaWMgUHJp
-bWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCBnzANBgkqhkiG9w0BAQEFAAOB
-jQAwgYkCgYEA5Rm/baNWYS2ZSHH2Z965jeu3noaACpEO+jglr0aIguVzqKCbJF0N
-H8xlbgyw0FaEGIeaBpsQoXPftFg5a27B9hXVqKg/qhIGjTGsf7A01480Z4gJzRQR
-4k5FVmkfeAKA2txHkSm7NsljXMXg1y2He6G3MrB7MLoqLzGq7qNn2tsCAwEAATAN
-BgkqhkiG9w0BAQIFAAOBgQBMP7iLxmjf7kMzDl3ppssHhE16M/+SG/Q2rdiVIjZo
-EWx8QszznC7EBz8UsA9P/5CSdvnivErpj82ggAr3xSnxgiJduLHdgSOjeyUVRjB5
-FvjqBUuUfx3CHMjjt/QQQDwTw18fU+hI5Ia0e6E1sHslurjTjqs/OJ0ANACY89Fx
-lA==
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIDAjCCAmsCEEzH6qqYPnHTkxD4PTqJkZIwDQYJKoZIhvcNAQEFBQAwgcExCzAJ
-BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xh
-c3MgMSBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcy
-MTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3Jp
-emVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMB4X
-DTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVTMRcw
-FQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMSBQdWJsaWMg
-UHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEo
-YykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5
-MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEB
-AQUAA4GNADCBiQKBgQCq0Lq+Fi24g9TK0g+8djHKlNgdk4xWArzZbxpvUjZudVYK
-VdPfQ4chEWWKfo+9Id5rMj8bhDSVBZ1BNeuS65bdqlk/AVNtmU/t5eIqWpDBucSm
-Fc/IReumXY6cPvBkJHalzasab7bYe1FhbqZ/h8jit+U03EGI6glAvnOSPWvndQID
-AQABMA0GCSqGSIb3DQEBBQUAA4GBAKlPww3HZ74sy9mozS11534Vnjty637rXC0J
-h9ZrbWB85a7FkCMMXErQr7Fd88e2CtvgFZMN3QO8x3aKtd1Pw5sTdbgBwObJW2ul
-uIncrKTdcu1OofdPvAbT6shkdHvClUGcZXNY8ZCaPGqxmMnEh7zPRW1F4m4iP/68
-DzFc6PLZ
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIEGjCCAwICEQCLW3VWhFSFCwDPrzhIzrGkMA0GCSqGSIb3DQEBBQUAMIHKMQsw
-CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl
-cmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWdu
-LCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlT
-aWduIENsYXNzIDEgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
-dHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQswCQYD
-VQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT
-aWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJ
-bmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWdu
-IENsYXNzIDEgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
-LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAN2E1Lm0+afY8wR4
-nN493GwTFtl63SRRZsDHJlkNrAYIwpTRMx/wgzUfbhvI3qpuFU5UJ+/EbRrsC+MO
-8ESlV8dAWB6jRx9x7GD2bZTIGDnt/kIYVt/kTEkQeE4BdjVjEjbdZrwBBDajVWjV
-ojYJrKshJlQGrT/KFOCsyq0GHZXi+J3x4GD/wn91K0zM2v6HmSHquv4+VNfSWXjb
-PG7PoBMAGrgnoeS+Z5bKoMWznN3JdZ7rMJpfo83ZrngZPyPpXNspva1VyBtUjGP2
-6KbqxzcSXKMpHgLZ2x87tNcPVkeBFQRKr4Mn0cVYiMHd9qqnoxjaaKptEVHhv2Vr
-n5Z20T0CAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAq2aN17O6x5q25lXQBfGfMY1a
-qtmqRiYPce2lrVNWYgFHKkTp/j90CxObufRNG7LRX7K20ohcs5/Ny9Sn2WCVhDr4
-wTcdYcrnsMXlkdpUpqwxga6X3s0IrLjAl4B/bnKk52kTlWUfxJM8/XmPBNQ+T+r3
-ns7NZ3xPZQL/kYVUc8f/NveGLezQXk//EZ9yBta4GvFMDSZl4kSAHsef493oCtrs
-pSCAaWihT37ha88HQfqDjrw43bAuEbFrskLMmrz5SCJ5ShkPshw+IHTZasO+8ih4
-E1Z5T21Q6huwtVexN2ZYI/PcD98Kh8TvhgXVOBRgmaNL3gaWcSzy27YfpO8/7g==
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIDnjCCAwegAwIBAgIQK2jUo0aexTsoCas4XX8nIDANBgkqhkiG9w0BAQUFADBf
-MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xNzA1BgNVBAsT
-LkNsYXNzIDEgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkw
-HhcNMDAwODA0MDAwMDAwWhcNMDQwODAzMjM1OTU5WjCBpzEXMBUGA1UEChMOVmVy
-aVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOzA5
-BgNVBAsTMlRlcm1zIG9mIHVzZSBhdCBodHRwczovL3d3dy52ZXJpc2lnbi5jb20v
-UlBBIChjKTAwMS4wLAYDVQQDEyVDbGFzcyAxIFB1YmxpYyBQcmltYXJ5IE9DU1Ag
-UmVzcG9uZGVyMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC57V56Ondfzl86
-UvzNZPdxtW9qlsZZklWUXS9bLsER6iaKy6eBPPZaRN56Ey/9WlHZezcmSsAnPwQD
-albBgyzhb1upVFAkSsYuekyhWzdUJCExH6F4GHansXDaItBq/gdiQMb39pt9DAa4
-S8co5GYjhFHvRreT2IEzy+U2rMboBQIDAQABo4IBEDCCAQwwIAYDVR0RBBkwF6QV
-MBMxETAPBgNVBAMTCE9DU1AgMS0xMDEGA1UdHwQqMCgwJqAkoCKGIGh0dHA6Ly9j
-cmwudmVyaXNpZ24uY29tL3BjYTEuY3JsMBMGA1UdJQQMMAoGCCsGAQUFBwMJMEIG
-CCsGAQUFBwEBBDYwNDAyBggrBgEFBQcwAaYmFiRodHRwOi8vb2NzcC52ZXJpc2ln
-bi5jb20vb2NzcC9zdGF0dXMwRAYDVR0gBD0wOzA5BgtghkgBhvhFAQcBATAqMCgG
-CCsGAQUFBwIBFhxodHRwczovL3d3dy52ZXJpc2lnbi5jb20vUlBBMAkGA1UdEwQC
-MAAwCwYDVR0PBAQDAgeAMA0GCSqGSIb3DQEBBQUAA4GBAHCQ3bjkvlMXfH8C6dX3
-i5mTMWCNfuZgayTvYKzSzpHegG0JpNO4OOVEynJeDS3Bd5y9LAN4KY2kpXeH9fEr
-Jq3MB2w6VFoo4AnzTQoEytRYaQuns/XdAaXn3PAfusFdkI2z6k/BEVmXarIrE7Ha
-rZehs7GgIFvKMquNzxPwHynD
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIICPDCCAaUCEC0b/EoXjaOR6+f/9YtFvgswDQYJKoZIhvcNAQECBQAwXzELMAkG
-A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz
-cyAyIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2
-MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNV
-BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAyIFB1YmxpYyBQcmlt
-YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GN
-ADCBiQKBgQC2WoujDWojg4BrzzmH9CETMwZMJaLtVRKXxaeAufqDwSCg+i8VDXyh
-YGt+eSz6Bg86rvYbb7HS/y8oUl+DfUvEerf4Zh+AVPy3wo5ZShRXRtGak75BkQO7
-FYCTXOvnzAhsPz6zSvz/S2wj1VCCJkQZjiPDceoZJEcEnnW/yKYAHwIDAQABMA0G
-CSqGSIb3DQEBAgUAA4GBAIobK/o5wXTXXtgZZKJYSi034DNHD6zt96rbHuSLBlxg
-J8pFUs4W7z8GZOeUaHxgMxURaa+dYo2jA1Rrpr7l7gUYYAS/QoD90KioHgE796Nc
-r6Pc5iaAIzy4RHT3Cq5Ji2F4zCS/iIqnDupzGUH9TQPwiNHleI2lKk/2lw0Xd8rY
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIDAzCCAmwCEQC5L2DMiJ+hekYJuFtwbIqvMA0GCSqGSIb3DQEBBQUAMIHBMQsw
-CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xPDA6BgNVBAsTM0Ns
-YXNzIDIgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBH
-MjE6MDgGA1UECxMxKGMpIDE5OTggVmVyaVNpZ24sIEluYy4gLSBGb3IgYXV0aG9y
-aXplZCB1c2Ugb25seTEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazAe
-Fw05ODA1MTgwMDAwMDBaFw0yODA4MDEyMzU5NTlaMIHBMQswCQYDVQQGEwJVUzEX
-MBUGA1UEChMOVmVyaVNpZ24sIEluYy4xPDA6BgNVBAsTM0NsYXNzIDIgUHVibGlj
-IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjE6MDgGA1UECxMx
-KGMpIDE5OTggVmVyaVNpZ24sIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25s
-eTEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazCBnzANBgkqhkiG9w0B
-AQEFAAOBjQAwgYkCgYEAp4gBIXQs5xoD8JjhlzwPIQjxnNuX6Zr8wgQGE75fUsjM
-HiwSViy4AWkszJkfrbCWrnkE8hM5wXuYuggs6MKEEyyqaekJ9MepAqRCwiNPStjw
-DqL7MWzJ5m+ZJwf15vRMeJ5t60aG+rmGyVTyssSv1EYcWskVMP8NbPUtDm3Of3cC
-AwEAATANBgkqhkiG9w0BAQUFAAOBgQByLvl/0fFx+8Se9sVeUYpAmLho+Jscg9ji
-nb3/7aHmZuovCfTK1+qlK5X2JGCGTUQug6XELaDTrnhpb3LabK4I8GOSN+a7xDAX
-rXfMSTWqz9iP0b63GJZHc2pUIjRkLbYWm1lbtFFZOrMLFPQS32eg9K0yZF6xRnIn
-jBJ7xUS0rg==
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIEGTCCAwECEGFwy0mMX5hFKeewptlQW3owDQYJKoZIhvcNAQEFBQAwgcoxCzAJ
-BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVy
-aVNpZ24gVHJ1c3QgTmV0d29yazE6MDgGA1UECxMxKGMpIDE5OTkgVmVyaVNpZ24s
-IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTFFMEMGA1UEAxM8VmVyaVNp
-Z24gQ2xhc3MgMiBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
-eSAtIEczMB4XDTk5MTAwMTAwMDAwMFoXDTM2MDcxNjIzNTk1OVowgcoxCzAJBgNV
-BAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UECxMWVmVyaVNp
-Z24gVHJ1c3QgTmV0d29yazE6MDgGA1UECxMxKGMpIDE5OTkgVmVyaVNpZ24sIElu
-Yy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTFFMEMGA1UEAxM8VmVyaVNpZ24g
-Q2xhc3MgMiBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAt
-IEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArwoNwtUs22e5LeWU
-J92lvuCwTY+zYVY81nzD9M0+hsuiiOLh2KRpxbXiv8GmR1BeRjmL1Za6tW8UvxDO
-JxOeBUebMXoT2B/Z0wI3i60sR/COgQanDTAM6/c8DyAd3HJG7qUCyFvDyVZpTMUY
-wZF7C9UTAJu878NIPkZgIIUq1ZC2zYugzDLdt/1AVbJQHFauzI13TccgTacxdu9o
-koqQHgiBVrKtaaNS0MscxCM9H5n+TOgWY47GCI72MfbS+uV23bUckqNJzc0BzWjN
-qWm6o+sdDZykIKbBoMXRRkwXbdKsZj+WjOCE1Db/IlnF+RFgqF8EffIa9iVCYQ/E
-Srg+iQIDAQABMA0GCSqGSIb3DQEBBQUAA4IBAQA0JhU8wI1NQ0kdvekhktdmnLfe
-xbjQ5F1fdiLAJvmEOjr5jLX77GDx6M4EsMjdpwOPMPOY36TmpDHf0xwLRtxyID+u
-7gU8pDM/CzmscHhzS5kr3zDCVLCoO1Wh/hYozUK9dG6A2ydEp85EXdQbkJgNHkKU
-sQAsBNB0owIFImNjzYO1+8FtYmtpdf1dcEG59b98377BMnMiIYtYgXsVkXq642RI
-sH/7NiXaldDxJBQX3RiAa0YjOVT1jmIJBB2UkKab5iXiQkWquJCtvgiPqQtCGJTP
-cjnhsUPgKM+351psE2tJs//jGHyJizNdrDPXp/naOlXJWBD5qu9ats9LS98q
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIDnjCCAwegAwIBAgIQCUYX5h3Y1BygDKBi6HmKpzANBgkqhkiG9w0BAQUFADBf
-MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xNzA1BgNVBAsT
-LkNsYXNzIDIgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkw
-HhcNMDAwODAxMDAwMDAwWhcNMDQwNzMxMjM1OTU5WjCBpzEXMBUGA1UEChMOVmVy
-aVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOzA5
-BgNVBAsTMlRlcm1zIG9mIHVzZSBhdCBodHRwczovL3d3dy52ZXJpc2lnbi5jb20v
-UlBBIChjKTAwMS4wLAYDVQQDEyVDbGFzcyAyIFB1YmxpYyBQcmltYXJ5IE9DU1Ag
-UmVzcG9uZGVyMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDQymMxYX9ENHwF
-fQs9apDLeUt3Cj9LxyPlwGItfpx+PoiHkdCs6E1Jh6KWkIrdBKUCP4yb6Yn+YqDi
-Wr3I3bR45qVCkwhnAcAgTddc9F3as+M3plIaLExlTYqH2aij8UlUuzxcgFFoxvtJ
-/wtVqxXd+5rBuR10DbKMRF2J/J/5gwIDAQABo4IBEDCCAQwwIAYDVR0RBBkwF6QV
-MBMxETAPBgNVBAMTCE9DU1AgMS0yMDEGA1UdHwQqMCgwJqAkoCKGIGh0dHA6Ly9j
-cmwudmVyaXNpZ24uY29tL3BjYTIuY3JsMBMGA1UdJQQMMAoGCCsGAQUFBwMJMEIG
-CCsGAQUFBwEBBDYwNDAyBggrBgEFBQcwAaYmFiRodHRwOi8vb2NzcC52ZXJpc2ln
-bi5jb20vb2NzcC9zdGF0dXMwRAYDVR0gBD0wOzA5BgtghkgBhvhFAQcBATAqMCgG
-CCsGAQUFBwIBFhxodHRwczovL3d3dy52ZXJpc2lnbi5jb20vUlBBMAkGA1UdEwQC
-MAAwCwYDVR0PBAQDAgeAMA0GCSqGSIb3DQEBBQUAA4GBAB99CW4kRnUEnPMmm+M5
-bhfvvL2iG9IChIar0ECXLMRDiDcZayKoA3FQnSDcNmAgmnMtc1VsWJsswrQ0LHoz
-QsqR2elDr88e4PXEeqs/cmMeqTfhWzuIsxOGgpBXy1f/9Fa+It3jl6jhvCJDwt1N
-2/aBnpIUnjkPE1TegtjAXjSN
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIICPDCCAaUCEHC65B0Q2Sk0tjjKewPMur8wDQYJKoZIhvcNAQECBQAwXzELMAkG
-A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz
-cyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk2
-MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVowXzELMAkGA1UEBhMCVVMxFzAVBgNV
-BAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFzcyAzIFB1YmxpYyBQcmlt
-YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGfMA0GCSqGSIb3DQEBAQUAA4GN
-ADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69qRUCPhAwL0TPZ2RHP7gJYHyX3KqhE
-BarsAx94f56TuZoAqiN91qyFomNFx3InzPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/is
-I19wKTakyYbnsZogy1Olhec9vn2a/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0G
-CSqGSIb3DQEBAgUAA4GBALtMEivPLCYATxQT3ab7/AoRhIzzKBxnki98tsX63/Do
-lbwdj2wsqFHMc9ikwFPwTtYmwHYBV4GSXiHx0bH/59AhWM1pF+NEHJwZRDmJXNyc
-AA9WjQKZ7aKQRUzkuxCkPfAyAw7xzvjoyVGM5mKf5p/AfbdynMk2OmufTqj/ZA1k
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIDAjCCAmsCEH3Z/gfPqB63EHln+6eJNMYwDQYJKoZIhvcNAQEFBQAwgcExCzAJ
-BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xh
-c3MgMyBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcy
-MTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3Jp
-emVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMB4X
-DTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVTMRcw
-FQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgMyBQdWJsaWMg
-UHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEo
-YykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5
-MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEB
-AQUAA4GNADCBiQKBgQDMXtERXVxp0KvTuWpMmR9ZmDCOFoUgRm1HP9SFIIThbbP4
-pO0M8RcPO/mn+SXXwc+EY/J8Y8+iR/LGWzOOZEAEaMGAuWQcRXfH2G71lSk8UOg0
-13gfqLptQ5GVj0VXXn7F+8qkBOvqlzdUMG+7AUcyM83cV5tkaWH4mx0ciU9cZwID
-AQABMA0GCSqGSIb3DQEBBQUAA4GBAFFNzb5cy5gZnBWyATl4Lk0PZ3BwmcYQWpSk
-U01UbSuvDV1Ai2TT1+7eVmGSX6bEHRBhNtMsJzzoKQm5EWR0zLVznxxIqbxhAe7i
-F6YM40AIOw7n60RzKprxaZLvcRTDOaxxp5EJb+RxBrO6WVcmeQD2+A2iMzAo1KpY
-oJ2daZH9
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQsw
-CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl
-cmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWdu
-LCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlT
-aWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
-dHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQswCQYD
-VQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT
-aWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJ
-bmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWdu
-IENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
-LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMu6nFL8eB8aHm8b
-N3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1EUGO+i2t
-KmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGu
-kxUccLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBm
-CC+Vk7+qRy+oRpfwEuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJ
-Xwzw3sJ2zq/3avL6QaaiMxTJ5Xpj055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWu
-imi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAERSWwauSCPc/L8my/uRan2Te
-2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5fj267Cz3qWhMe
-DGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC
-/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565p
-F4ErWjfJXir0xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGt
-TxzhT5yvDwyd93gN2PQ1VoDat20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ==
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIDojCCAwugAwIBAgIQLpaev7ZibOx76XPM42zBhDANBgkqhkiG9w0BAQUFADBf
-MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xNzA1BgNVBAsT
-LkNsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkw
-HhcNMDAwODA0MDAwMDAwWhcNMDQwODAzMjM1OTU5WjCBpzEXMBUGA1UEChMOVmVy
-aVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOzA5
-BgNVBAsTMlRlcm1zIG9mIHVzZSBhdCBodHRwczovL3d3dy52ZXJpc2lnbi5jb20v
-UlBBIChjKTAwMS4wLAYDVQQDEyVDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IE9DU1Ag
-UmVzcG9uZGVyMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDx5AgOg7t140jl
-uNum8Lmr6Txix141W9ACVBHYydFWuXZLuat65s269gwE1n7WsAplrE454/H3LaMl
-Oe+wi8++2wxdbnD0B81w9zrAPjUW7XiMQ8/CJi5H1oZ9nPG+1mcMIiWkymXmH3p4
-KC8/BdsEIb/hRWb+PLeC7Vq4FhW5VQIDAQABo4IBFDCCARAwIAYDVR0RBBkwF6QV
-MBMxETAPBgNVBAMTCE9DU1AgMS0zMDUGA1UdHwQuMCwwKqAooCaGJGh0dHA6Ly9j
-cmwudmVyaXNpZ24uY29tL3BjYTMuMS4xLmNybDATBgNVHSUEDDAKBggrBgEFBQcD
-CTBCBggrBgEFBQcBAQQ2MDQwMgYIKwYBBQUHMAGmJhYkaHR0cDovL29jc3AudmVy
-aXNpZ24uY29tL29jc3Avc3RhdHVzMEQGA1UdIAQ9MDswOQYLYIZIAYb4RQEHAQEw
-KjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL1JQQTAJBgNV
-HRMEAjAAMAsGA1UdDwQEAwIHgDANBgkqhkiG9w0BAQUFAAOBgQAC9lNjwKke8tCL
-MzCPSJtMsFa0g3FKvtxQ2PW24AvbvXhP6c8JNNopSZ0Bc1qRkYJULBMK03cjzzf8
-Y96n4/a3tWlFKEnDkdyqRxypiJksBSqNjYr6YuJatwAgXTnEKMLL/J6oia5bPY4S
-6jKy/OsU1wkVGsDNG9W1FU5B1ZbjTg==
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIDAjCCAmsCEDKIjprS9esTR/h/xCA3JfgwDQYJKoZIhvcNAQEFBQAwgcExCzAJ
-BgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xh
-c3MgNCBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcy
-MTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3Jp
-emVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMB4X
-DTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVowgcExCzAJBgNVBAYTAlVTMRcw
-FQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UECxMzQ2xhc3MgNCBQdWJsaWMg
-UHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMTowOAYDVQQLEzEo
-YykgMTk5OCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5
-MR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEB
-AQUAA4GNADCBiQKBgQC68OTP+cSuhVS5B1f5j8V/aBH4xBewRNzjMHPVKmIquNDM
-HO0oW369atyzkSTKQWI8/AIBvxwWMZQFl3Zuoq29YRdsTjCG8FE3KlDHqGKB3FtK
-qsGgtG7rL+VXxbErQHDbWk2hjh+9Ax/YA9SPTJlxvOKCzFjomDqG04Y48wApHwID
-AQABMA0GCSqGSIb3DQEBBQUAA4GBAIWMEsGnuVAVess+rLhDityq3RS6iYF+ATwj
-cSGIL4LcY/oCRaxFWdcqWERbt5+BO5JoPeI3JPV7bI92NZYJqFmduc4jq3TWg/0y
-cyfYaT5DdPauxYma51N86Xv2S/PBZYPejYqcPIiNOVn8qj8ijaHBZlCBckztImRP
-T8qAkbYp
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIEGjCCAwICEQDsoKeLbnVqAc/EfMwvlF7XMA0GCSqGSIb3DQEBBQUAMIHKMQsw
-CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl
-cmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWdu
-LCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlT
-aWduIENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
-dHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQswCQYD
-VQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT
-aWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJ
-bmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWdu
-IENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg
-LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAK3LpRFpxlmr8Y+1
-GQ9Wzsy1HyDkniYlS+BzZYlZ3tCD5PUPtbut8XzoIfzk6AzufEUiGXaStBO3IFsJ
-+mGuqPKljYXCKtbeZjbSmwL0qJJgfJxptI8kHtCGUvYynEFYHiK9zUVilQhu0Gbd
-U6LM8BDcVHOLBKFGMzNcF0C5nk3T875Vg+ixiY5afJqWIpA7iCXy0lOIAgwLePLm
-NxdLMEYH5IBtptiWLugs+BGzOA1mppvqySNb247i8xOOGlktqgLw7KSHZtzBP/XY
-ufTsgsbSPZUd5cBPhMnZo0QoBmrXRazwa2rvTl/4EYIeOGM0ZlDUPpNz+jDDZq3/
-ky2X7wMCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAj/ola09b5KROJ1WrIhVZPMq1
-CtRK26vdoV9TxaBXOcLORyu+OshWv8LZJxA6sQU8wHcxuzrTBXttmhwwjIDLk5Mq
-g6sFUYICABFna/OIYUdfA5PVWw3g8dShMjWFsjrbsIKr0csKvE+MW8VLADsfKoKm
-fjaF3H48ZwC15DtS4KjrXRX5xm3wrR0OhbepmnMUWluPQSjA1egtTaRezarZ7c7c
-2NU8Qh0XwRJdRTjDOPP8hS6DRkiy1yBfkjaP53kPmF6Z6PDQpLv1U70qzlmwr25/
-bLvSHgCwIe34QWKCudiyxLtGUPMxxY8BqHTr9Xgn2uf3ZkPznoM+IKrDNWCRzg==
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIICNDCCAaECEAKtZn5ORf5eV288mBle3cAwDQYJKoZIhvcNAQECBQAwXzELMAkG
-A1UEBhMCVVMxIDAeBgNVBAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMS4wLAYD
-VQQLEyVTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTk0
-MTEwOTAwMDAwMFoXDTEwMDEwNzIzNTk1OVowXzELMAkGA1UEBhMCVVMxIDAeBgNV
-BAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMS4wLAYDVQQLEyVTZWN1cmUgU2Vy
-dmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGbMA0GCSqGSIb3DQEBAQUAA4GJ
-ADCBhQJ+AJLOesGugz5aqomDV6wlAXYMra6OLDfO6zV4ZFQD5YRAUcm/jwjiioII
-0haGN1XpsSECrXZogZoFokvJSyVmIlZsiAeP94FZbYQHZXATcXY+m3dM41CJVphI
-uR2nKRoTLkoRWZweFdVJVCxzOmmCsZc5nG1wZ0jl3S3WyB57AgMBAAEwDQYJKoZI
-hvcNAQECBQADfgBl3X7hsuyw4jrg7HFGmhkRuNPHoLQDQCYCPgmc4RKz0Vr2N6W3
-YQO2WxZpO8ZECAyIUwxrl0nHPjXcbLm7qt9cuzovk2C2qUtN8iD3zV9/ZHuO3ABc
-1/p3yjkWWW8O6tO1g39NTUJWdrTJXwT4OPjr0l91X817/OWOgHz8UA==
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIDnzCCAwygAwIBAgIRAP9F1SddJPuzwjkkU1fhT94wDQYJKoZIhvcNAQEFBQAw
-XzELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMu
-MS4wLAYDVQQLEyVTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5
-MB4XDTAwMDgwNDAwMDAwMFoXDTA0MDgwMzIzNTk1OVowgZ4xFzAVBgNVBAoTDlZl
-cmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTsw
-OQYDVQQLEzJUZXJtcyBvZiB1c2UgYXQgaHR0cHM6Ly93d3cudmVyaXNpZ24uY29t
-L1JQQSAoYykwMDElMCMGA1UEAxMcU2VjdXJlIFNlcnZlciBPQ1NQIFJlc3BvbmRl
-cjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEAuFGZZIUO7rMKaPC/Y3YdU/X8
-oXiMM+6f9L452psPTUepjyDoS0S9zs17kNEw6JDEJXuJKN699pMd/7n/krWpjeSu
-zOLDB4Nqo3IQASdiIqY1Jjktns9gDPxHpNfQQninHWzQy08VpykKtJVFxLHnWgnX
-OZXYHTWewr2zXcEMSx8CAwEAAaOCAR0wggEZMCAGA1UdEQQZMBekFTATMREwDwYD
-VQQDEwhPQ1NQIDEtNDA+BgNVHR8ENzA1MDOgMaAvhi1odHRwOi8vY3JsLnZlcmlz
-aWduLmNvbS9SU0FTZWN1cmVTZXJ2ZXItcC5jcmwwEwYDVR0lBAwwCgYIKwYBBQUH
-AwkwQgYIKwYBBQUHAQEENjA0MDIGCCsGAQUFBzABpiYWJGh0dHA6Ly9vY3NwLnZl
-cmlzaWduLmNvbS9vY3NwL3N0YXR1czBEBgNVHSAEPTA7MDkGC2CGSAGG+EUBBwEB
-MCowKAYIKwYBBQUHAgEWHGh0dHBzOi8vd3d3LnZlcmlzaWduLmNvbS9SUEEwCQYD
-VR0TBAIwADALBgNVHQ8EBAMCB4AwDQYJKoZIhvcNAQEFBQADfgAAsxBTZpxJky4x
-oAJC0lhXfmah/huKYRhQQCweK0Gl1tv/rAgcWgVtAlwqtpZPR9u+TtvOzLqGuBjO
-sRKRX2P380g+zPFNE+RtCZR4AJLLoyCdBgtqoEMHztEZbI8YdZqfFzP9qSa44+Le
-wqjEWop/mNYHBmvMVp6GcM7U7w==
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIDzTCCAzagAwIBAgIQU2GyYK7bcY6nlLMTM/QHCTANBgkqhkiG9w0BAQUFADCB
-wTELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTwwOgYDVQQL
-EzNDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5
-IC0gRzIxOjA4BgNVBAsTMShjKSAxOTk4IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1
-dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv
-cmswHhcNMDAwOTI2MDAwMDAwWhcNMTAwOTI1MjM1OTU5WjCBpTEXMBUGA1UEChMO
-VmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsx
-OzA5BgNVBAsTMlRlcm1zIG9mIHVzZSBhdCBodHRwczovL3d3dy52ZXJpc2lnbi5j
-b20vcnBhIChjKTAwMSwwKgYDVQQDEyNWZXJpU2lnbiBUaW1lIFN0YW1waW5nIEF1
-dGhvcml0eSBDQTCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA0hmdZ8IAIVli
-zrQJIkRpivglWtvtDbc2fk7gu5Q+kCWHwmFHKdm9VLhjzCx9abQzNvQ3B5rB3UBU
-/OB4naCTuQk9I1F/RMIUdNsKvsvJMDRAmD7Q1yUQgZS9B0+c1lQn3y6ov8uQjI11
-S7zi6ESHzeZBCiVu6PQkAsVSD27smHUCAwEAAaOB3zCB3DAPBgNVHRMECDAGAQH/
-AgEAMEUGA1UdIAQ+MDwwOgYMYIZIAYb4RQEHFwEDMCowKAYIKwYBBQUHAgEWHGh0
-dHBzOi8vd3d3LnZlcmlzaWduLmNvbS9ycGEwMQYDVR0fBCowKDAmoCSgIoYgaHR0
-cDovL2NybC52ZXJpc2lnbi5jb20vcGNhMy5jcmwwCwYDVR0PBAQDAgEGMEIGCCsG
-AQUFBwEBBDYwNDAyBggrBgEFBQcwAaYmFiRodHRwOi8vb2NzcC52ZXJpc2lnbi5j
-b20vb2NzcC9zdGF0dXMwDQYJKoZIhvcNAQEFBQADgYEAgnBold+2DcIBcBlK0lRW
-HqzyRUyHuPU163hLBanInTsZIS5wNEqi9YngFXVF5yg3ADQnKeg3S/LvRJdrF1Ea
-w1adPBqK9kpGRjeM+sv1ZFo4aC4cw+9wzrhGBha/937ntag+RaypJXUie28/sJyU
-58dzq6wf7iWbwBbtt8pb8BQ=
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIDgDCCAmigAwIBAgICAx4wDQYJKoZIhvcNAQEFBQAwYTELMAkGA1UEBhMCVVMx
-DTALBgNVBAoTBFZJU0ExLzAtBgNVBAsTJlZpc2EgSW50ZXJuYXRpb25hbCBTZXJ2
-aWNlIEFzc29jaWF0aW9uMRIwEAYDVQQDEwlHUCBSb290IDIwHhcNMDAwODE2MjI1
-MTAwWhcNMjAwODE1MjM1OTAwWjBhMQswCQYDVQQGEwJVUzENMAsGA1UEChMEVklT
-QTEvMC0GA1UECxMmVmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRp
-b24xEjAQBgNVBAMTCUdQIFJvb3QgMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
-AQoCggEBAKkBcLWqxEDwq2omYXkZAPy/mzdZDK9vZBv42pWUJGkzEXDK41Z0ohdX
-ZFwgBuHW73G3O/erwWnQSaSxBNf0V2KJXLB1LRckaeNCYOTudNargFbYiCjh+20i
-/SN8RnNPflRzHqgsVVh1t0zzWkWlAhr62p3DRcMiXvOL8WAp0sdftAw6UYPvMPjU
-58fy+pmjIlC++QU3o63tmsPm7IgbthknGziLgE3sucfFicv8GjLtI/C1AVj59o/g
-halMCXI5Etuz9c9OYmTaxhkVOmMd6RdVoUwiPDQyRvhlV7or7zaMavrZ2UT0qt2E
-1w0cslSsMoW0ZA3eQbuxNMYBhjJk1Z8CAwEAAaNCMEAwHQYDVR0OBBYEFJ59SzS/
-ca3CBfYDdYDOqU8axCRMMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEG
-MA0GCSqGSIb3DQEBBQUAA4IBAQAhpXYUVfmtJ3CPPPTVbMjMCqujmAuKBiPFyWHb
-mQdpNSYx/scuhMKZYdQN6X0uEyt8joW2hcdLzzW2LEc9zikv2G+fiRxkk78IvXbQ
-kIqUs38oW26sTTMs7WXcFsziza6kPWKSBpUmv9+55CCmc2rBvveURNZNbyoLaxhN
-dBA2aGpawWqn3TYpjLgwi08hPwAuVDAHOrqK5MOeyti12HvOdUVmB/RtLdh6yumJ
-ivIj2C/LbgA2T/vwLwHMD8AiZfSr4k5hLQOCfZEWtTDVFN5ex5D8ofyrEK9ca3Cn
-B+8phuiyJccg/ybdd+95RBTEvd07xQObdyPsoOy7Wjm1zK0G
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIDojCCAoqgAwIBAgIQE4Y1TR0/BvLB+WUF1ZAcYjANBgkqhkiG9w0BAQUFADBr
-MQswCQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRl
-cm5hdGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNv
-bW1lcmNlIFJvb3QwHhcNMDIwNjI2MDIxODM2WhcNMjIwNjI0MDAxNjEyWjBrMQsw
-CQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRlcm5h
-dGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNvbW1l
-cmNlIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvV95WHm6h
-2mCxlCfLF9sHP4CFT8icttD0b0/Pmdjh28JIXDqsOTPHH2qLJj0rNfVIsZHBAk4E
-lpF7sDPwsRROEW+1QK8bRaVK7362rPKgH1g/EkZgPI2h4H3PVz4zHvtH8aoVlwdV
-ZqW1LS7YgFmypw23RuwhY/81q6UCzyr0TP579ZRdhE2o8mCP2w4lPJ9zcc+U30rq
-299yOIzzlr3xF7zSujtFWsan9sYXiwGd/BmoKoMWuDpI/k4+oKsGGelT84ATB+0t
-vz8KPFUgOSwsAGl0lUq8ILKpeeUYiZGo3BxN77t+Nwtd/jmliFKMAGzsGHxBvfaL
-dXe6YJ2E5/4tAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD
-AgEGMB0GA1UdDgQWBBQVOIMPPyw/cDMezUb+B4wg4NfDtzANBgkqhkiG9w0BAQUF
-AAOCAQEAX/FBfXxcCLkr4NWSR/pnXKUTwwMhmytMiUbPWU3J/qVAtmPN3XEolWcR
-zCSs00Rsca4BIGsDoo8Ytyk6feUWYFN4PMCvFYP3j1IzJL1kk5fui/fbGKhtcbP3
-LBfQdCVp9/5rPJS+TUtBjE7ic9DjkCJzQ83z7+pzzkWKsKZJ/0x9nXGIxHYdkFsd
-7v3M9+79YKWxehZx0RbQfBI8bGmX265fOZpwLwU8GUYEmSA20GBuYQa7FkKMcPcw
-++DbZqMAAb3mLNqRX6BGi01qnD093QVG/na/oAo85ADmJ7f/hC3euiInlhBx6yLt
-398znM/jra6O1I7mT1GvFpLgXPYHDw==
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIFajCCBFKgAwIBAgIEPLU9RjANBgkqhkiG9w0BAQUFADBmMRIwEAYDVQQKEwli
-ZVRSVVNUZWQxGzAZBgNVBAsTEmJlVFJVU1RlZCBSb290IENBczEzMDEGA1UEAxMq
-YmVUUlVTVGVkIFJvb3QgQ0EtQmFsdGltb3JlIEltcGxlbWVudGF0aW9uMB4XDTAy
-MDQxMTA3Mzg1MVoXDTIyMDQxMTA3Mzg1MVowZjESMBAGA1UEChMJYmVUUlVTVGVk
-MRswGQYDVQQLExJiZVRSVVNUZWQgUm9vdCBDQXMxMzAxBgNVBAMTKmJlVFJVU1Rl
-ZCBSb290IENBLUJhbHRpbW9yZSBJbXBsZW1lbnRhdGlvbjCCASIwDQYJKoZIhvcN
-AQEBBQADggEPADCCAQoCggEBALx+xDmcjOPWHIb/ymKt4H8wRXqOGrO4x/nRNv8i
-805qX4QQ+2aBw5R5MdKR4XeOGCrDFN5R9U+jK7wYFuK13XneIviCfsuBH/0nLI/6
-l2Qijvj/YaOcGx6Sj8CoCd8JEey3fTGaGuqDIQY8n7pc/5TqarjDa1U0Tz0yH92B
-FODEPM2dMPgwqZfT7syj0B9fHBOB1BirlNFjw55/NZKeX0Tq7PQiXLfoPX2k+Ymp
-kbIq2eszh+6l/ePazIjmiSZuxyuC0F6dWdsU7JGDBcNeDsYq0ATdcT0gTlgn/FP7
-eHgZFLL8kFKJOGJgB7Sg7KxrUNb9uShr71ItOrL/8QFArDcCAwEAAaOCAh4wggIa
-MA8GA1UdEwEB/wQFMAMBAf8wggG1BgNVHSAEggGsMIIBqDCCAaQGDysGAQQBsT4A
-AAEJKIORMTCCAY8wggFIBggrBgEFBQcCAjCCAToaggE2UmVsaWFuY2Ugb24gb3Ig
-dXNlIG9mIHRoaXMgQ2VydGlmaWNhdGUgY3JlYXRlcyBhbiBhY2tub3dsZWRnbWVu
-dCBhbmQgYWNjZXB0YW5jZSBvZiB0aGUgdGhlbiBhcHBsaWNhYmxlIHN0YW5kYXJk
-IHRlcm1zIGFuZCBjb25kaXRpb25zIG9mIHVzZSwgdGhlIENlcnRpZmljYXRpb24g
-UHJhY3RpY2UgU3RhdGVtZW50IGFuZCB0aGUgUmVseWluZyBQYXJ0eSBBZ3JlZW1l
-bnQsIHdoaWNoIGNhbiBiZSBmb3VuZCBhdCB0aGUgYmVUUlVTVGVkIHdlYiBzaXRl
-LCBodHRwOi8vd3d3LmJldHJ1c3RlZC5jb20vcHJvZHVjdHNfc2VydmljZXMvaW5k
-ZXguaHRtbDBBBggrBgEFBQcCARY1aHR0cDovL3d3dy5iZXRydXN0ZWQuY29tL3By
-b2R1Y3RzX3NlcnZpY2VzL2luZGV4Lmh0bWwwHQYDVR0OBBYEFEU9w6nR3D8kVpgc
-cxiIav+DR+22MB8GA1UdIwQYMBaAFEU9w6nR3D8kVpgccxiIav+DR+22MA4GA1Ud
-DwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEASZK8o+6svfoNyYt5hhwjdrCA
-WXf82n+0S9/DZEtqTg6t8n1ZdwWtColzsPq8y9yNAIiPpqCy6qxSJ7+hSHyXEHu6
-7RMdmgduyzFiEuhjA6p9beP4G3YheBufS0OM00mG9htc9i5gFdPp43t1P9ACg9AY
-gkHNZTfqjjJ+vWuZXTARyNtIVBw74acT02pIk/c9jH8F6M7ziCpjBLjqflh8AXtb
-4cV97yHgjQ5dUX2xZ/2jvTg2xvI4hocalmhgRvsoFEdV4aeADGvi6t9NfJBIoDa9
-CReJf8Py05yc493EG931t3GzUwWJBtDLSoDByFOQtTwxiBdQn8nEDovYqAJjDQ==
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIFLDCCBBSgAwIBAgIEOU99hzANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJX
-VzESMBAGA1UEChMJYmVUUlVTVGVkMRswGQYDVQQDExJiZVRSVVNUZWQgUm9vdCBD
-QXMxGjAYBgNVBAMTEWJlVFJVU1RlZCBSb290IENBMB4XDTAwMDYyMDE0MjEwNFoX
-DTEwMDYyMDEzMjEwNFowWjELMAkGA1UEBhMCV1cxEjAQBgNVBAoTCWJlVFJVU1Rl
-ZDEbMBkGA1UEAxMSYmVUUlVTVGVkIFJvb3QgQ0FzMRowGAYDVQQDExFiZVRSVVNU
-ZWQgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANS0c3oT
-CjhVAb6JVuGUntS+WutKNHUbYSnE4a0IYCF4SP+00PpeQY1hRIfo7clY+vyTmt9P
-6j41ffgzeubx181vSUs9Ty1uDoM6GHh3o8/n9E1z2Jo7Gh2+lVPPIJfCzz4kUmwM
-jmVZxXH/YgmPqsWPzGCgc0rXOD8Vcr+il7dw6K/ifhYGTPWqZCZyByWtNfwYsSbX
-2P8ZDoMbjNx4RWc0PfSvHI3kbWvtILNnmrRhyxdviTX/507AMhLn7uzf/5cwdO2N
-R47rtMNE5qdMf1ZD6Li8tr76g5fmu/vEtpO+GRg+jIG5c4gW9JZDnGdzF5DYCW5j
-rEq2I8QBoa2k5MUCAwEAAaOCAfgwggH0MA8GA1UdEwEB/wQFMAMBAf8wggFZBgNV
-HSAEggFQMIIBTDCCAUgGCisGAQQBsT4BAAAwggE4MIIBAQYIKwYBBQUHAgIwgfQa
-gfFSZWxpYW5jZSBvbiB0aGlzIGNlcnRpZmljYXRlIGJ5IGFueSBwYXJ0eSBhc3N1
-bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFyZCB0
-ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGFuZCBjZXJ0aWZpY2F0aW9uIHBy
-YWN0aWNlIHN0YXRlbWVudCwgd2hpY2ggY2FuIGJlIGZvdW5kIGF0IGJlVFJVU1Rl
-ZCdzIHdlYiBzaXRlLCBodHRwczovL3d3dy5iZVRSVVNUZWQuY29tL3ZhdWx0L3Rl
-cm1zMDEGCCsGAQUFBwIBFiVodHRwczovL3d3dy5iZVRSVVNUZWQuY29tL3ZhdWx0
-L3Rlcm1zMDQGA1UdHwQtMCswKaAnoCWkIzAhMRIwEAYDVQQKEwliZVRSVVNUZWQx
-CzAJBgNVBAYTAldXMB0GA1UdDgQWBBQquZtpLjub2M3eKjEENGvKBxirZzAfBgNV
-HSMEGDAWgBQquZtpLjub2M3eKjEENGvKBxirZzAOBgNVHQ8BAf8EBAMCAf4wDQYJ
-KoZIhvcNAQEFBQADggEBAHlh26Nebhax6nZR+csVm8tpvuaBa58oH2U+3RGFktTo
-Qb9+M70j5/Egv6S0phkBxoyNNXxlpE8JpNbYIxUFE6dDea/bow6be3ga8wSGWsb2
-jCBHOElQBp1yZzrwmAOtlmdE/D8QDYZN5AA7KXvOOzuZhmElQITcE2K3+spZ1gMe
-1lMBzW1MaFVA4e5rxyoAAEiCswoBw2AqDPeCNe5IhpbkdNQ96gFxugR1QKepfzk5
-mlWXKWWuGVUlBXJH0+gY3Ljpr0NzARJ0o+FcXxVdJPP55PS2Z2cS52QiivalQaYc
-tmBjRYoQtLpGEK5BV2VsPyMQPyEQWbfkQN0mDCP2qq4=
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIGUTCCBTmgAwIBAgIEPLVPQDANBgkqhkiG9w0BAQUFADBmMRIwEAYDVQQKEwli
-ZVRSVVNUZWQxGzAZBgNVBAsTEmJlVFJVU1RlZCBSb290IENBczEzMDEGA1UEAxMq
-YmVUUlVTVGVkIFJvb3QgQ0EgLSBFbnRydXN0IEltcGxlbWVudGF0aW9uMB4XDTAy
-MDQxMTA4MjQyN1oXDTIyMDQxMTA4NTQyN1owZjESMBAGA1UEChMJYmVUUlVTVGVk
-MRswGQYDVQQLExJiZVRSVVNUZWQgUm9vdCBDQXMxMzAxBgNVBAMTKmJlVFJVU1Rl
-ZCBSb290IENBIC0gRW50cnVzdCBJbXBsZW1lbnRhdGlvbjCCASIwDQYJKoZIhvcN
-AQEBBQADggEPADCCAQoCggEBALr0RAOqEmq1Q+xVkrYwfTVXDNvzDSduTPdQqJtO
-K2/b9a0cS12zqcH+e0TrW6MFDR/FNCswACnxeECypP869AGIF37m1CbTukzqMvtD
-d5eHI8XbQ6P1KqNRXuE70mVpflUVm3rnafdE4Fe1FehmYA8NA/uCjqPoEXtsvsdj
-DheT389Lrm5zdeDzqrmkwAkbhepxKYhBMvnwKg5sCfJ0a2ZsUhMfGLzUPvfYbiCe
-yv78IZTuEyhL11xeDGbu6bsPwTSxfwh28z0mcMmLJR1iJAzqHHVOwBLkuhMdMCkt
-VjMFu5dZfsZJT4nXLySotohAtWSSU1Yk5KKghbNekLQSM80CAwEAAaOCAwUwggMB
-MIIBtwYDVR0gBIIBrjCCAaowggGmBg8rBgEEAbE+AAACCSiDkTEwggGRMIIBSQYI
-KwYBBQUHAgIwggE7GoIBN1JlbGlhbmNlIG9uIG9yIHVzZSBvZiB0aGlzIENlcnRp
-ZmljYXRlIGNyZWF0ZXMgYW4gYWNrbm93bGVkZ21lbnQgYW5kIGFjY2VwdGFuY2Ug
-b2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0
-aW9ucyBvZiB1c2UsIHRoZSBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVu
-dCBhbmQgdGhlIFJlbHlpbmcgUGFydHkgQWdyZWVtZW50LCB3aGljaCBjYW4gYmUg
-Zm91bmQgYXQgdGhlIGJlVFJVU1RlZCB3ZWIgc2l0ZSwgaHR0cHM6Ly93d3cuYmV0
-cnVzdGVkLmNvbS9wcm9kdWN0c19zZXJ2aWNlcy9pbmRleC5odG1sMEIGCCsGAQUF
-BwIBFjZodHRwczovL3d3dy5iZXRydXN0ZWQuY29tL3Byb2R1Y3RzX3NlcnZpY2Vz
-L2luZGV4Lmh0bWwwEQYJYIZIAYb4QgEBBAQDAgAHMIGJBgNVHR8EgYEwfzB9oHug
-eaR3MHUxEjAQBgNVBAoTCWJlVFJVU1RlZDEbMBkGA1UECxMSYmVUUlVTVGVkIFJv
-b3QgQ0FzMTMwMQYDVQQDEypiZVRSVVNUZWQgUm9vdCBDQSAtIEVudHJ1c3QgSW1w
-bGVtZW50YXRpb24xDTALBgNVBAMTBENSTDEwKwYDVR0QBCQwIoAPMjAwMjA0MTEw
-ODI0MjdagQ8yMDIyMDQxMTA4NTQyN1owCwYDVR0PBAQDAgEGMB8GA1UdIwQYMBaA
-FH1w5a44iwY/qhwaj/nPJDCqhIQWMB0GA1UdDgQWBBR9cOWuOIsGP6ocGo/5zyQw
-qoSEFjAMBgNVHRMEBTADAQH/MB0GCSqGSIb2fQdBAAQQMA4bCFY2LjA6NC4wAwIE
-kDANBgkqhkiG9w0BAQUFAAOCAQEAKrgXzh8QlOu4mre5X+za95IkrNySO8cgjfKZ
-5V04ocI07cUTWVwFtStPYZuR+0H8/NU8TZh2BvWBfevdkObRVlTa4y0MnxEylCIB
-evZsLHRnBMylj44ss0O1lKLQfelifwa+JwGDnjr9iu6YQ0pr17WXOzq/T220Y/oz
-ADQuLW2WyXvKmWO6vvT2MKAtmJbpVkQFqUSjYRDrgqFnXbxdJ3Wqiig2KjiS2d2k
-XgClzMx8KSreKJCrt+G2/30lC0DYqjSjLd4H61/OCt3Kfjp9JsFiaDrmLzfzgYYh
-xKlkqu9FNtEaZnz46TfW1mG+oq1I59/mdP7TbX3SJdysYlep9w==
------END CERTIFICATE-----
-
-----BEGIN CERTIFICATE-----
-MIIFaDCCBFCgAwIBAgIQO1nHe81bV569N1KsdrSqGjANBgkqhkiG9w0BAQUFADBi
-MRIwEAYDVQQKEwliZVRSVVNUZWQxGzAZBgNVBAsTEmJlVFJVU1RlZCBSb290IENB
-czEvMC0GA1UEAxMmYmVUUlVTVGVkIFJvb3QgQ0EgLSBSU0EgSW1wbGVtZW50YXRp
-b24wHhcNMDIwNDExMTExODEzWhcNMjIwNDEyMTEwNzI1WjBiMRIwEAYDVQQKEwli
-ZVRSVVNUZWQxGzAZBgNVBAsTEmJlVFJVU1RlZCBSb290IENBczEvMC0GA1UEAxMm
-YmVUUlVTVGVkIFJvb3QgQ0EgLSBSU0EgSW1wbGVtZW50YXRpb24wggEiMA0GCSqG
-SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkujQwCY5X0LkGLG9uJIAiv11DpvpPrILn
-HGhwhRujbrWqeNluB0s/6d/16uhUoWGKDi9pdRi3DOUUjXFumLhV/AyV0Jtu4S2I
-1DpAa5LxmZZk3tv/ePTulh1HiXzUvrmIdyM6CeYEnm2qXtLIvZpOGd+J6lsOfsPk
-tPDgaTuID0GQ+NRxQyTBjyZLO1bp/4xsN+lFrYWMU8NghpBKlsmzVLC7F/AcRdnU
-GxlkVgoZ98zh/4avflherHqQH8koOUV7orbHnB/ahdQhhlkwk75TMzf270HPM8er
-cmsl9fNTGwxMLvF1S++gh/f+ihXQbNXL+WhTuXAVE8L1LvtDNXUtAgMBAAGjggIY
-MIICFDAMBgNVHRMEBTADAQH/MIIBtQYDVR0gBIIBrDCCAagwggGkBg8rBgEEAbE+
-AAADCSiDkTEwggGPMEEGCCsGAQUFBwIBFjVodHRwOi8vd3d3LmJldHJ1c3RlZC5j
-b20vcHJvZHVjdHNfc2VydmljZXMvaW5kZXguaHRtbDCCAUgGCCsGAQUFBwICMIIB
-OhqCATZSZWxpYW5jZSBvbiBvciB1c2Ugb2YgdGhpcyBDZXJ0aWZpY2F0ZSBjcmVh
-dGVzIGFuIGFja25vd2xlZGdtZW50IGFuZCBhY2NlcHRhbmNlIG9mIHRoZSB0aGVu
-IGFwcGxpY2FibGUgc3RhbmRhcmQgdGVybXMgYW5kIGNvbmRpdGlvbnMgb2YgdXNl
-LCB0aGUgQ2VydGlmaWNhdGlvbiBQcmFjdGljZSBTdGF0ZW1lbnQgYW5kIHRoZSBS
-ZWx5aW5nIFBhcnR5IEFncmVlbWVudCwgd2hpY2ggY2FuIGJlIGZvdW5kIGF0IHRo
-ZSBiZVRSVVNUZWQgd2ViIHNpdGUsIGh0dHA6Ly93d3cuYmV0cnVzdGVkLmNvbS9w
-cm9kdWN0c19zZXJ2aWNlcy9pbmRleC5odG1sMAsGA1UdDwQEAwIBBjAfBgNVHSME
-GDAWgBSp7BR++dlDzFMrFK3P9/BZiUHNGTAdBgNVHQ4EFgQUqewUfvnZQ8xTKxSt
-z/fwWYlBzRkwDQYJKoZIhvcNAQEFBQADggEBANuXsHXqDMTBmMpWBcCorSZIry0g
-6IHHtt9DwSwddUvUQo3neqh03GZCWYez9Wlt2ames30cMcH1VOJZJEnl7r05pmuK
-mET7m9cqg5c0Lcd9NUwtNLg+DcTsiCevnpL9UGGCqGAHFFPMZRPB9kdEadIxyKbd
-LrML3kqNWz2rDcI1UqJWN8wyiyiFQpyRQHpwKzg21eFzGh/l+n5f3NacOzDq28Bb
-J1zTcwfBwvNMm2+fG8oeqqg4MwlYsq78B+g23FW6L09A/nq9BqaBwZMifIYRCgZ3
-SK41ty8ymmFei74pnykkiFY5LKjSq5YDWtRIn7lAhAuYaPsBQ9Yb4gmxlxw=
+MIICPTCCAaYCEQDNun9W8N/kvFT+IqyzcqpVMA0GCSqGSIb3DQEBAgUAMF8x
+CzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UE
+CxMuQ2xhc3MgMSBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhv
+cml0eTAeFw05NjAxMjkwMDAwMDBaFw0yODA4MDEyMzU5NTlaMF8xCzAJBgNV
+BAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE3MDUGA1UECxMuQ2xh
+c3MgMSBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCB
+nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA5Rm/baNWYS2ZSHH2Z965jeu3
+noaACpEO+jglr0aIguVzqKCbJF0NH8xlbgyw0FaEGIeaBpsQoXPftFg5a27B
+9hXVqKg/qhIGjTGsf7A01480Z4gJzRQR4k5FVmkfeAKA2txHkSm7NsljXMXg
+1y2He6G3MrB7MLoqLzGq7qNn2tsCAwEAATANBgkqhkiG9w0BAQIFAAOBgQBM
+P7iLxmjf7kMzDl3ppssHhE16M/+SG/Q2rdiVIjZoEWx8QszznC7EBz8UsA9P
+/5CSdvnivErpj82ggAr3xSnxgiJduLHdgSOjeyUVRjB5FvjqBUuUfx3CHMjj
+t/QQQDwTw18fU+hI5Ia0e6E1sHslurjTjqs/OJ0ANACY89FxlA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDAjCCAmsCEEzH6qqYPnHTkxD4PTqJkZIwDQYJKoZIhvcNAQEFBQAwgcEx
+CzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UE
+CxMzQ2xhc3MgMSBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhv
+cml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2lnbiwgSW5jLiAt
+IEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBU
+cnVzdCBOZXR3b3JrMB4XDTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVow
+gcExCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoG
+A1UECxMzQ2xhc3MgMSBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1
+dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2lnbiwgSW5j
+LiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2ln
+biBUcnVzdCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCq
+0Lq+Fi24g9TK0g+8djHKlNgdk4xWArzZbxpvUjZudVYKVdPfQ4chEWWKfo+9
+Id5rMj8bhDSVBZ1BNeuS65bdqlk/AVNtmU/t5eIqWpDBucSmFc/IReumXY6c
+PvBkJHalzasab7bYe1FhbqZ/h8jit+U03EGI6glAvnOSPWvndQIDAQABMA0G
+CSqGSIb3DQEBBQUAA4GBAKlPww3HZ74sy9mozS11534Vnjty637rXC0Jh9Zr
+bWB85a7FkCMMXErQr7Fd88e2CtvgFZMN3QO8x3aKtd1Pw5sTdbgBwObJW2ul
+uIncrKTdcu1OofdPvAbT6shkdHvClUGcZXNY8ZCaPGqxmMnEh7zPRW1F4m4i
+P/68DzFc6PLZ
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEGjCCAwICEQCLW3VWhFSFCwDPrzhIzrGkMA0GCSqGSIb3DQEBBQUAMIHK
+MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNV
+BAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5
+IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBD
+BgNVBAMTPFZlcmlTaWduIENsYXNzIDEgUHVibGljIFByaW1hcnkgQ2VydGlm
+aWNhdGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3
+MTYyMzU5NTlaMIHKMQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24s
+IEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNV
+BAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQg
+dXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDEgUHVibGljIFBy
+aW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAN2E1Lm0+afY8wR4nN493GwTFtl63SRR
+ZsDHJlkNrAYIwpTRMx/wgzUfbhvI3qpuFU5UJ+/EbRrsC+MO8ESlV8dAWB6j
+Rx9x7GD2bZTIGDnt/kIYVt/kTEkQeE4BdjVjEjbdZrwBBDajVWjVojYJrKsh
+JlQGrT/KFOCsyq0GHZXi+J3x4GD/wn91K0zM2v6HmSHquv4+VNfSWXjbPG7P
+oBMAGrgnoeS+Z5bKoMWznN3JdZ7rMJpfo83ZrngZPyPpXNspva1VyBtUjGP2
+6KbqxzcSXKMpHgLZ2x87tNcPVkeBFQRKr4Mn0cVYiMHd9qqnoxjaaKptEVHh
+v2Vrn5Z20T0CAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAq2aN17O6x5q25lXQ
+BfGfMY1aqtmqRiYPce2lrVNWYgFHKkTp/j90CxObufRNG7LRX7K20ohcs5/N
+y9Sn2WCVhDr4wTcdYcrnsMXlkdpUpqwxga6X3s0IrLjAl4B/bnKk52kTlWUf
+xJM8/XmPBNQ+T+r3ns7NZ3xPZQL/kYVUc8f/NveGLezQXk//EZ9yBta4GvFM
+DSZl4kSAHsef493oCtrspSCAaWihT37ha88HQfqDjrw43bAuEbFrskLMmrz5
+SCJ5ShkPshw+IHTZasO+8ih4E1Z5T21Q6huwtVexN2ZYI/PcD98Kh8TvhgXV
+OBRgmaNL3gaWcSzy27YfpO8/7g==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICPDCCAaUCEC0b/EoXjaOR6+f/9YtFvgswDQYJKoZIhvcNAQECBQAwXzEL
+MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQL
+Ey5DbGFzcyAyIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y
+aXR5MB4XDTk2MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVowXzELMAkGA1UE
+BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz
+cyAyIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGf
+MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2WoujDWojg4BrzzmH9CETMwZM
+JaLtVRKXxaeAufqDwSCg+i8VDXyhYGt+eSz6Bg86rvYbb7HS/y8oUl+DfUvE
+erf4Zh+AVPy3wo5ZShRXRtGak75BkQO7FYCTXOvnzAhsPz6zSvz/S2wj1VCC
+JkQZjiPDceoZJEcEnnW/yKYAHwIDAQABMA0GCSqGSIb3DQEBAgUAA4GBAIob
+K/o5wXTXXtgZZKJYSi034DNHD6zt96rbHuSLBlxgJ8pFUs4W7z8GZOeUaHxg
+MxURaa+dYo2jA1Rrpr7l7gUYYAS/QoD90KioHgE796Ncr6Pc5iaAIzy4RHT3
+Cq5Ji2F4zCS/iIqnDupzGUH9TQPwiNHleI2lKk/2lw0Xd8rY
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDAzCCAmwCEQC5L2DMiJ+hekYJuFtwbIqvMA0GCSqGSIb3DQEBBQUAMIHB
+MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xPDA6BgNV
+BAsTM0NsYXNzIDIgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRo
+b3JpdHkgLSBHMjE6MDgGA1UECxMxKGMpIDE5OTggVmVyaVNpZ24sIEluYy4g
+LSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEfMB0GA1UECxMWVmVyaVNpZ24g
+VHJ1c3QgTmV0d29yazAeFw05ODA1MTgwMDAwMDBaFw0yODA4MDEyMzU5NTla
+MIHBMQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xPDA6
+BgNVBAsTM0NsYXNzIDIgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBB
+dXRob3JpdHkgLSBHMjE6MDgGA1UECxMxKGMpIDE5OTggVmVyaVNpZ24sIElu
+Yy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEfMB0GA1UECxMWVmVyaVNp
+Z24gVHJ1c3QgTmV0d29yazCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
+p4gBIXQs5xoD8JjhlzwPIQjxnNuX6Zr8wgQGE75fUsjMHiwSViy4AWkszJkf
+rbCWrnkE8hM5wXuYuggs6MKEEyyqaekJ9MepAqRCwiNPStjwDqL7MWzJ5m+Z
+Jwf15vRMeJ5t60aG+rmGyVTyssSv1EYcWskVMP8NbPUtDm3Of3cCAwEAATAN
+BgkqhkiG9w0BAQUFAAOBgQByLvl/0fFx+8Se9sVeUYpAmLho+Jscg9jinb3/
+7aHmZuovCfTK1+qlK5X2JGCGTUQug6XELaDTrnhpb3LabK4I8GOSN+a7xDAX
+rXfMSTWqz9iP0b63GJZHc2pUIjRkLbYWm1lbtFFZOrMLFPQS32eg9K0yZF6x
+RnInjBJ7xUS0rg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEGTCCAwECEGFwy0mMX5hFKeewptlQW3owDQYJKoZIhvcNAQEFBQAwgcox
+CzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjEfMB0GA1UE
+CxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazE6MDgGA1UECxMxKGMpIDE5OTkg
+VmVyaVNpZ24sIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTFFMEMG
+A1UEAxM8VmVyaVNpZ24gQ2xhc3MgMiBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZp
+Y2F0aW9uIEF1dGhvcml0eSAtIEczMB4XDTk5MTAwMTAwMDAwMFoXDTM2MDcx
+NjIzNTk1OVowgcoxCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwg
+SW5jLjEfMB0GA1UECxMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazE6MDgGA1UE
+CxMxKGMpIDE5OTkgVmVyaVNpZ24sIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1
+c2Ugb25seTFFMEMGA1UEAxM8VmVyaVNpZ24gQ2xhc3MgMiBQdWJsaWMgUHJp
+bWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEczMIIBIjANBgkqhkiG
+9w0BAQEFAAOCAQ8AMIIBCgKCAQEArwoNwtUs22e5LeWUJ92lvuCwTY+zYVY8
+1nzD9M0+hsuiiOLh2KRpxbXiv8GmR1BeRjmL1Za6tW8UvxDOJxOeBUebMXoT
+2B/Z0wI3i60sR/COgQanDTAM6/c8DyAd3HJG7qUCyFvDyVZpTMUYwZF7C9UT
+AJu878NIPkZgIIUq1ZC2zYugzDLdt/1AVbJQHFauzI13TccgTacxdu9okoqQ
+HgiBVrKtaaNS0MscxCM9H5n+TOgWY47GCI72MfbS+uV23bUckqNJzc0BzWjN
+qWm6o+sdDZykIKbBoMXRRkwXbdKsZj+WjOCE1Db/IlnF+RFgqF8EffIa9iVC
+YQ/ESrg+iQIDAQABMA0GCSqGSIb3DQEBBQUAA4IBAQA0JhU8wI1NQ0kdvekh
+ktdmnLfexbjQ5F1fdiLAJvmEOjr5jLX77GDx6M4EsMjdpwOPMPOY36TmpDHf
+0xwLRtxyID+u7gU8pDM/CzmscHhzS5kr3zDCVLCoO1Wh/hYozUK9dG6A2ydE
+p85EXdQbkJgNHkKUsQAsBNB0owIFImNjzYO1+8FtYmtpdf1dcEG59b98377B
+MnMiIYtYgXsVkXq642RIsH/7NiXaldDxJBQX3RiAa0YjOVT1jmIJBB2UkKab
+5iXiQkWquJCtvgiPqQtCGJTPcjnhsUPgKM+351psE2tJs//jGHyJizNdrDPX
+p/naOlXJWBD5qu9ats9LS98q
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICPDCCAaUCEHC65B0Q2Sk0tjjKewPMur8wDQYJKoZIhvcNAQECBQAwXzEL
+MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQL
+Ey5DbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y
+aXR5MB4XDTk2MDEyOTAwMDAwMFoXDTI4MDgwMTIzNTk1OVowXzELMAkGA1UE
+BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTcwNQYDVQQLEy5DbGFz
+cyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGf
+MA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDJXFme8huKARS0EN8EQNvjV69q
+RUCPhAwL0TPZ2RHP7gJYHyX3KqhEBarsAx94f56TuZoAqiN91qyFomNFx3In
+zPRMxnVx0jnvT0Lwdd8KkMaOIG+YD/isI19wKTakyYbnsZogy1Olhec9vn2a
+/iRFM9x2Fe0PonFkTGUugWhFpwIDAQABMA0GCSqGSIb3DQEBAgUAA4GBALtM
+EivPLCYATxQT3ab7/AoRhIzzKBxnki98tsX63/Dolbwdj2wsqFHMc9ikwFPw
+TtYmwHYBV4GSXiHx0bH/59AhWM1pF+NEHJwZRDmJXNycAA9WjQKZ7aKQRUzk
+uxCkPfAyAw7xzvjoyVGM5mKf5p/AfbdynMk2OmufTqj/ZA1k
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDAjCCAmsCEH3Z/gfPqB63EHln+6eJNMYwDQYJKoZIhvcNAQEFBQAwgcEx
+CzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UE
+CxMzQ2xhc3MgMyBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhv
+cml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2lnbiwgSW5jLiAt
+IEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBU
+cnVzdCBOZXR3b3JrMB4XDTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVow
+gcExCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoG
+A1UECxMzQ2xhc3MgMyBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1
+dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2lnbiwgSW5j
+LiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2ln
+biBUcnVzdCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDM
+XtERXVxp0KvTuWpMmR9ZmDCOFoUgRm1HP9SFIIThbbP4pO0M8RcPO/mn+SXX
+wc+EY/J8Y8+iR/LGWzOOZEAEaMGAuWQcRXfH2G71lSk8UOg013gfqLptQ5GV
+j0VXXn7F+8qkBOvqlzdUMG+7AUcyM83cV5tkaWH4mx0ciU9cZwIDAQABMA0G
+CSqGSIb3DQEBBQUAA4GBAFFNzb5cy5gZnBWyATl4Lk0PZ3BwmcYQWpSkU01U
+bSuvDV1Ai2TT1+7eVmGSX6bEHRBhNtMsJzzoKQm5EWR0zLVznxxIqbxhAe7i
+F6YM40AIOw7n60RzKprxaZLvcRTDOaxxp5EJb+RxBrO6WVcmeQD2+A2iMzAo
+1KpYoJ2daZH9
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHK
+MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNV
+BAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5
+IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBD
+BgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlm
+aWNhdGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3
+MTYyMzU5NTlaMIHKMQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24s
+IEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNV
+BAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQg
+dXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFBy
+aW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAMu6nFL8eB8aHm8bN3O9+MlrlBIwT/A2
+R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1EUGO+i2tKmFZpGcmTNDo
+vFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGukxUccLwg
+TS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBmCC+V
+k7+qRy+oRpfwEuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJ
+Xwzw3sJ2zq/3avL6QaaiMxTJ5Xpj055iN9WFZZ4O5lMkdBteHRJTW8cs54NJ
+OxWuimi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAERSWwauSCPc/L8my
+/uRan2Te2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5f
+j267Cz3qWhMeDGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoA
+Wii/gt/4uhMdUIaC/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8S
+GhJouPtmmRQURVyu565pF4ErWjfJXir0xuKhXFSbplQAz/DxwceYMBo7Nhbb
+o27q/a2ywtrvAkcTisDxszGtTxzhT5yvDwyd93gN2PQ1VoDat20Xj50egWTh
+/sVFuq1ruQp6Tk9LhO5L8X3dEQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDAjCCAmsCEDKIjprS9esTR/h/xCA3JfgwDQYJKoZIhvcNAQEFBQAwgcEx
+CzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoGA1UE
+CxMzQ2xhc3MgNCBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhv
+cml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2lnbiwgSW5jLiAt
+IEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2lnbiBU
+cnVzdCBOZXR3b3JrMB4XDTk4MDUxODAwMDAwMFoXDTI4MDgwMTIzNTk1OVow
+gcExCzAJBgNVBAYTAlVTMRcwFQYDVQQKEw5WZXJpU2lnbiwgSW5jLjE8MDoG
+A1UECxMzQ2xhc3MgNCBQdWJsaWMgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1
+dGhvcml0eSAtIEcyMTowOAYDVQQLEzEoYykgMTk5OCBWZXJpU2lnbiwgSW5j
+LiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MR8wHQYDVQQLExZWZXJpU2ln
+biBUcnVzdCBOZXR3b3JrMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC6
+8OTP+cSuhVS5B1f5j8V/aBH4xBewRNzjMHPVKmIquNDMHO0oW369atyzkSTK
+QWI8/AIBvxwWMZQFl3Zuoq29YRdsTjCG8FE3KlDHqGKB3FtKqsGgtG7rL+VX
+xbErQHDbWk2hjh+9Ax/YA9SPTJlxvOKCzFjomDqG04Y48wApHwIDAQABMA0G
+CSqGSIb3DQEBBQUAA4GBAIWMEsGnuVAVess+rLhDityq3RS6iYF+ATwjcSGI
+L4LcY/oCRaxFWdcqWERbt5+BO5JoPeI3JPV7bI92NZYJqFmduc4jq3TWg/0y
+cyfYaT5DdPauxYma51N86Xv2S/PBZYPejYqcPIiNOVn8qj8ijaHBZlCBckzt
+ImRPT8qAkbYp
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEGjCCAwICEQDsoKeLbnVqAc/EfMwvlF7XMA0GCSqGSIb3DQEBBQUAMIHK
+MQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNV
+BAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5
+IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBD
+BgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFByaW1hcnkgQ2VydGlm
+aWNhdGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3
+MTYyMzU5NTlaMIHKMQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24s
+IEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNV
+BAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQg
+dXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDQgUHVibGljIFBy
+aW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZI
+hvcNAQEBBQADggEPADCCAQoCggEBAK3LpRFpxlmr8Y+1GQ9Wzsy1HyDkniYl
+S+BzZYlZ3tCD5PUPtbut8XzoIfzk6AzufEUiGXaStBO3IFsJ+mGuqPKljYXC
+KtbeZjbSmwL0qJJgfJxptI8kHtCGUvYynEFYHiK9zUVilQhu0GbdU6LM8BDc
+VHOLBKFGMzNcF0C5nk3T875Vg+ixiY5afJqWIpA7iCXy0lOIAgwLePLmNxdL
+MEYH5IBtptiWLugs+BGzOA1mppvqySNb247i8xOOGlktqgLw7KSHZtzBP/XY
+ufTsgsbSPZUd5cBPhMnZo0QoBmrXRazwa2rvTl/4EYIeOGM0ZlDUPpNz+jDD
+Zq3/ky2X7wMCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAj/ola09b5KROJ1Wr
+IhVZPMq1CtRK26vdoV9TxaBXOcLORyu+OshWv8LZJxA6sQU8wHcxuzrTBXtt
+mhwwjIDLk5Mqg6sFUYICABFna/OIYUdfA5PVWw3g8dShMjWFsjrbsIKr0csK
+vE+MW8VLADsfKoKmfjaF3H48ZwC15DtS4KjrXRX5xm3wrR0OhbepmnMUWluP
+QSjA1egtTaRezarZ7c7c2NU8Qh0XwRJdRTjDOPP8hS6DRkiy1yBfkjaP53kP
+mF6Z6PDQpLv1U70qzlmwr25/bLvSHgCwIe34QWKCudiyxLtGUPMxxY8BqHTr
+9Xgn2uf3ZkPznoM+IKrDNWCRzg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIICNDCCAaECEAKtZn5ORf5eV288mBle3cAwDQYJKoZIhvcNAQECBQAwXzEL
+MAkGA1UEBhMCVVMxIDAeBgNVBAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMu
+MS4wLAYDVQQLEyVTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9y
+aXR5MB4XDTk0MTEwOTAwMDAwMFoXDTEwMDEwNzIzNTk1OVowXzELMAkGA1UE
+BhMCVVMxIDAeBgNVBAoTF1JTQSBEYXRhIFNlY3VyaXR5LCBJbmMuMS4wLAYD
+VQQLEyVTZWN1cmUgU2VydmVyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIGb
+MA0GCSqGSIb3DQEBAQUAA4GJADCBhQJ+AJLOesGugz5aqomDV6wlAXYMra6O
+LDfO6zV4ZFQD5YRAUcm/jwjiioII0haGN1XpsSECrXZogZoFokvJSyVmIlZs
+iAeP94FZbYQHZXATcXY+m3dM41CJVphIuR2nKRoTLkoRWZweFdVJVCxzOmmC
+sZc5nG1wZ0jl3S3WyB57AgMBAAEwDQYJKoZIhvcNAQECBQADfgBl3X7hsuyw
+4jrg7HFGmhkRuNPHoLQDQCYCPgmc4RKz0Vr2N6W3YQO2WxZpO8ZECAyIUwxr
+l0nHPjXcbLm7qt9cuzovk2C2qUtN8iD3zV9/ZHuO3ABc1/p3yjkWWW8O6tO1
+g39NTUJWdrTJXwT4OPjr0l91X817/OWOgHz8UA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDzTCCAzagAwIBAgIQU2GyYK7bcY6nlLMTM/QHCTANBgkqhkiG9w0BAQUF
+ADCBwTELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMTww
+OgYDVQQLEzNDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24g
+QXV0aG9yaXR5IC0gRzIxOjA4BgNVBAsTMShjKSAxOTk4IFZlcmlTaWduLCBJ
+bmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAsTFlZlcmlT
+aWduIFRydXN0IE5ldHdvcmswHhcNMDAwOTI2MDAwMDAwWhcNMTAwOTI1MjM1
+OTU5WjCBpTEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl
+cmlTaWduIFRydXN0IE5ldHdvcmsxOzA5BgNVBAsTMlRlcm1zIG9mIHVzZSBh
+dCBodHRwczovL3d3dy52ZXJpc2lnbi5jb20vcnBhIChjKTAwMSwwKgYDVQQD
+EyNWZXJpU2lnbiBUaW1lIFN0YW1waW5nIEF1dGhvcml0eSBDQTCBnzANBgkq
+hkiG9w0BAQEFAAOBjQAwgYkCgYEA0hmdZ8IAIVlizrQJIkRpivglWtvtDbc2
+fk7gu5Q+kCWHwmFHKdm9VLhjzCx9abQzNvQ3B5rB3UBU/OB4naCTuQk9I1F/
+RMIUdNsKvsvJMDRAmD7Q1yUQgZS9B0+c1lQn3y6ov8uQjI11S7zi6ESHzeZB
+CiVu6PQkAsVSD27smHUCAwEAAaOB3zCB3DAPBgNVHRMECDAGAQH/AgEAMEUG
+A1UdIAQ+MDwwOgYMYIZIAYb4RQEHFwEDMCowKAYIKwYBBQUHAgEWHGh0dHBz
+Oi8vd3d3LnZlcmlzaWduLmNvbS9ycGEwMQYDVR0fBCowKDAmoCSgIoYgaHR0
+cDovL2NybC52ZXJpc2lnbi5jb20vcGNhMy5jcmwwCwYDVR0PBAQDAgEGMEIG
+CCsGAQUFBwEBBDYwNDAyBggrBgEFBQcwAaYmFiRodHRwOi8vb2NzcC52ZXJp
+c2lnbi5jb20vb2NzcC9zdGF0dXMwDQYJKoZIhvcNAQEFBQADgYEAgnBold+2
+DcIBcBlK0lRWHqzyRUyHuPU163hLBanInTsZIS5wNEqi9YngFXVF5yg3ADQn
+Keg3S/LvRJdrF1Eaw1adPBqK9kpGRjeM+sv1ZFo4aC4cw+9wzrhGBha/937n
+tag+RaypJXUie28/sJyU58dzq6wf7iWbwBbtt8pb8BQ=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDojCCAoqgAwIBAgIQE4Y1TR0/BvLB+WUF1ZAcYjANBgkqhkiG9w0BAQUF
+ADBrMQswCQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlz
+YSBJbnRlcm5hdGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMT
+E1Zpc2EgZUNvbW1lcmNlIFJvb3QwHhcNMDIwNjI2MDIxODM2WhcNMjIwNjI0
+MDAxNjEyWjBrMQswCQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UE
+CxMmVmlzYSBJbnRlcm5hdGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAa
+BgNVBAMTE1Zpc2EgZUNvbW1lcmNlIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUA
+A4IBDwAwggEKAoIBAQCvV95WHm6h2mCxlCfLF9sHP4CFT8icttD0b0/Pmdjh
+28JIXDqsOTPHH2qLJj0rNfVIsZHBAk4ElpF7sDPwsRROEW+1QK8bRaVK7362
+rPKgH1g/EkZgPI2h4H3PVz4zHvtH8aoVlwdVZqW1LS7YgFmypw23RuwhY/81
+q6UCzyr0TP579ZRdhE2o8mCP2w4lPJ9zcc+U30rq299yOIzzlr3xF7zSujtF
+Wsan9sYXiwGd/BmoKoMWuDpI/k4+oKsGGelT84ATB+0tvz8KPFUgOSwsAGl0
+lUq8ILKpeeUYiZGo3BxN77t+Nwtd/jmliFKMAGzsGHxBvfaLdXe6YJ2E5/4t
+AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G
+A1UdDgQWBBQVOIMPPyw/cDMezUb+B4wg4NfDtzANBgkqhkiG9w0BAQUFAAOC
+AQEAX/FBfXxcCLkr4NWSR/pnXKUTwwMhmytMiUbPWU3J/qVAtmPN3XEolWcR
+zCSs00Rsca4BIGsDoo8Ytyk6feUWYFN4PMCvFYP3j1IzJL1kk5fui/fbGKht
+cbP3LBfQdCVp9/5rPJS+TUtBjE7ic9DjkCJzQ83z7+pzzkWKsKZJ/0x9nXGI
+xHYdkFsd7v3M9+79YKWxehZx0RbQfBI8bGmX265fOZpwLwU8GUYEmSA20GBu
+YQa7FkKMcPcw++DbZqMAAb3mLNqRX6BGi01qnD093QVG/na/oAo85ADmJ7f/
+hC3euiInlhBx6yLt398znM/jra6O1I7mT1GvFpLgXPYHDw==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDgDCCAmigAwIBAgICAx4wDQYJKoZIhvcNAQEFBQAwYTELMAkGA1UEBhMC
+VVMxDTALBgNVBAoTBFZJU0ExLzAtBgNVBAsTJlZpc2EgSW50ZXJuYXRpb25h
+bCBTZXJ2aWNlIEFzc29jaWF0aW9uMRIwEAYDVQQDEwlHUCBSb290IDIwHhcN
+MDAwODE2MjI1MTAwWhcNMjAwODE1MjM1OTAwWjBhMQswCQYDVQQGEwJVUzEN
+MAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRlcm5hdGlvbmFsIFNl
+cnZpY2UgQXNzb2NpYXRpb24xEjAQBgNVBAMTCUdQIFJvb3QgMjCCASIwDQYJ
+KoZIhvcNAQEBBQADggEPADCCAQoCggEBAKkBcLWqxEDwq2omYXkZAPy/mzdZ
+DK9vZBv42pWUJGkzEXDK41Z0ohdXZFwgBuHW73G3O/erwWnQSaSxBNf0V2KJ
+XLB1LRckaeNCYOTudNargFbYiCjh+20i/SN8RnNPflRzHqgsVVh1t0zzWkWl
+Ahr62p3DRcMiXvOL8WAp0sdftAw6UYPvMPjU58fy+pmjIlC++QU3o63tmsPm
+7IgbthknGziLgE3sucfFicv8GjLtI/C1AVj59o/ghalMCXI5Etuz9c9OYmTa
+xhkVOmMd6RdVoUwiPDQyRvhlV7or7zaMavrZ2UT0qt2E1w0cslSsMoW0ZA3e
+QbuxNMYBhjJk1Z8CAwEAAaNCMEAwHQYDVR0OBBYEFJ59SzS/ca3CBfYDdYDO
+qU8axCRMMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0GCSqG
+SIb3DQEBBQUAA4IBAQAhpXYUVfmtJ3CPPPTVbMjMCqujmAuKBiPFyWHbmQdp
+NSYx/scuhMKZYdQN6X0uEyt8joW2hcdLzzW2LEc9zikv2G+fiRxkk78IvXbQ
+kIqUs38oW26sTTMs7WXcFsziza6kPWKSBpUmv9+55CCmc2rBvveURNZNbyoL
+axhNdBA2aGpawWqn3TYpjLgwi08hPwAuVDAHOrqK5MOeyti12HvOdUVmB/Rt
+Ldh6yumJivIj2C/LbgA2T/vwLwHMD8AiZfSr4k5hLQOCfZEWtTDVFN5ex5D8
+ofyrEK9ca3CnB+8phuiyJccg/ybdd+95RBTEvd07xQObdyPsoOy7Wjm1zK0G
-----END CERTIFICATE-----
-
-----BEGIN CERTIFICATE-----
MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJC
TTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0
@@ -1520,89 +2253,74 @@ SnQ2+Q==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
-MIIETzCCAzegAwIBAgIEO63vKTANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJQ
-TDEfMB0GA1UEChMWVFAgSW50ZXJuZXQgU3AuIHogby5vLjEkMCIGA1UECxMbQ2Vu
-dHJ1bSBDZXJ0eWZpa2FjamkgU2lnbmV0MRswGQYDVQQDExJDQyBTaWduZXQgLSBS
-b290Q0EwHhcNMDEwOTIzMTQxODE3WhcNMTEwOTIzMTMxODE3WjB1MQswCQYDVQQG
-EwJQTDEfMB0GA1UEChMWVFAgSW50ZXJuZXQgU3AuIHogby5vLjEkMCIGA1UECxMb
-Q2VudHJ1bSBDZXJ0eWZpa2FjamkgU2lnbmV0MR8wHQYDVQQDExZDQyBTaWduZXQg
-LSBDQSBLbGFzYSAxMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC4SRW9Q58g
-5DY1Hw7hgCRKBEdPdGn0MFHsfw7rlu/oQm7IChI/uWd9q5wwo77YojtTDjRnpgZs
-jqBeynX8T90vFILqsY2K5CF1OESalwvVr3sZiQX79lisuFKat92u6hBFikFIVxfH
-HB67Af+g7u0dEHdDW7lwy81MwFYxBTRy9wIDAQABo4IBbTCCAWkwDwYDVR0TAQH/
-BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwggEEBgNVHSAEgfwwgfkwgfYGDSsGAQQB
-vj8CAQoBAQAwgeQwgZoGCCsGAQUFBwICMIGNGoGKQ2VydHlmaWthdCB3eXN0YXdp
-b255IHpnb2RuaWUgeiBkb2t1bWVudGVtOiAiUG9saXR5a2EgQ2VydHlmaWthY2pp
-IGRsYSBSb290Q0EiLiBDZXJ0eWZpa2F0IHd5c3Rhd2lvbnkgcHJ6ZXogUm9vdENB
-IHcgaGllcmFyY2hpaSBDQyBTaWduZXQuMEUGCCsGAQUFBwIBFjlodHRwOi8vd3d3
-LnNpZ25ldC5wbC9yZXBvenl0b3JpdW0vZG9rdW1lbnR5L3BjX3Jvb3RjYS50eHQw
-HwYDVR0jBBgwFoAUwJvFIw0C4aZOSGsfAOnjmhQbsa8wHQYDVR0OBBYEFMODHtVZ
-d1T7TftXR/nEI1zR54njMA0GCSqGSIb3DQEBBQUAA4IBAQBRIHQBFIGh8Jpxt87A
-gSLwIEEk4+oGy769u3NtoaR0R3WNMdmt7fXTi0tyTQ9V4AIszxVjhnUPaKnF1KYy
-f8Tl+YTzk9ZfFkZ3kCdSaILZAOIrmqWNLPmjUQ5/JiMGho0e1YmWUcMci84+pIis
-TsytFzVP32/W+sz2H4FQAvOIMmxB7EJX9AdbnXn9EXZ+4nCqi0ft5z96ZqOJJiCB
-3vSaoYg+wdkcvb6souMJzuc2uptXtR1Xf3ihlHaGW+hmnpcwFA6AoNrom6Vgzk6U
-1ienx0Cw28BhRSKqzKkyXkuK8gRflZUx84uftXncwKJrMiE3lvgOOBITRzcahirL
-er4c
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIE9zCCA9+gAwIBAgIEPL/xoTANBgkqhkiG9w0BAQUFADB2MQswCQYDVQQGEwJQ
-TDEfMB0GA1UEChMWVFAgSW50ZXJuZXQgU3AuIHogby5vLjEkMCIGA1UECxMbQ2Vu
-dHJ1bSBDZXJ0eWZpa2FjamkgU2lnbmV0MSAwHgYDVQQDExdDQyBTaWduZXQgLSBQ
-Q0EgS2xhc2EgMjAeFw0wMjA0MTkxMDI5NTNaFw0xNzA0MTgxMjUzMDdaMHUxCzAJ
-BgNVBAYTAlBMMR8wHQYDVQQKExZUUCBJbnRlcm5ldCBTcC4geiBvLm8uMSQwIgYD
-VQQLExtDZW50cnVtIENlcnR5ZmlrYWNqaSBTaWduZXQxHzAdBgNVBAMTFkNDIFNp
-Z25ldCAtIENBIEtsYXNhIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
-AQCqgLJuQqY4yavbSgHg8CyfKTx4BokNSDOVz4eD9vptUr11Kqd06ED1hlH7Sg0g
-oBFAfntNU/QTKwSBaNuime7C4sSEdgsKrPoAhGb4Mq8y7Ty7RqZz7mkzNMqzL2L2
-U4yQ2QjvpH8MH0IBqOWEcpSkpwnrCDImRoTfd+YlZWKi2JceQixUUYIQ45Ox8+x8
-hHbvvZdgqtcvo8PW27qoHkp/7hMuJ44kDAGrmxffBXl/OBRZp0uO1CSLcMcVJzyr
-2phKhy406MYdWrtNPEluGs0GFDzd0nrIctiWAO4cmct4S72S9Q6e//0GO9f3/Ca5
-Kb2I1xYLj/xE+HgjHX9aD2MhAgMBAAGjggGMMIIBiDAPBgNVHRMBAf8EBTADAQH/
-MA4GA1UdDwEB/wQEAwIBBjCB4wYDVR0gBIHbMIHYMIHVBg0rBgEEAb4/AhQKAQEA
-MIHDMHUGCCsGAQUFBwICMGkaZ0NlcnR5ZmlrYXQgd3lzdGF3aW9ueSB6Z29kbmll
-IHogZG9rdW1lbnRlbTogIlBvbGl0eWthIENlcnR5ZmlrYWNqaSBQQ0EyIC0gQ2Vy
-dHlmaWthdHkgVXJ6ZWRvdyBLbGFzeSAyIi4wSgYIKwYBBQUHAgEWPmh0dHA6Ly93
-d3cuc2lnbmV0LnBsL3JlcG96eXRvcml1bS9kb2t1bWVudHkva2xhc2EyL3BjX3Bj
-YTIudHh0MD8GA1UdHwQ4MDYwNKAyoDCGLmh0dHA6Ly93d3cuc2lnbmV0LnBsL3Jl
-cG96eXRvcml1bS9jcmwvcGNhMi5jcmwwHwYDVR0jBBgwFoAUwGxGyl2CfpYHRonE
-82AVXO08kMIwHQYDVR0OBBYEFLtFBlILy4HNKVSzvHxBTM0HDowlMA0GCSqGSIb3
-DQEBBQUAA4IBAQBWTsCbqXrXhBBev5v5cIuc6gJM8ww7oR0uMQRZoFSqvQUPWBYM
-2/TLI/f8UM9hSShUVj3zEsSj/vFHagUVmzuVXo5u0WK8iaqATSyEVBhADHrPG6wY
-cLKJlagge/ILA0m+SieyP2sjYD9MUB9KZIEyBKv0429UuDTw6P7pslxMWJBSNyQx
-aLIs0SRKsqZZWkc7ZYAj2apSkBMX2Is1oHA+PwkF6jQMwCao/+CndXPUzfCF6caa
-9WwW31W26MlXCvSmJgfiTPwGvm4PkPmOnmWZ3CczzhHl4q7ztHFzshJH3sZWDnrW
-wBFjzz5ePr3WHV1wA7EY6oT4zBx+2gT9XBTB
+MIIETzCCAzegAwIBAgIEO63vKTANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJQTDEfMB0GA1UE
+ChMWVFAgSW50ZXJuZXQgU3AuIHogby5vLjEkMCIGA1UECxMbQ2VudHJ1bSBDZXJ0eWZpa2Fjamkg
+U2lnbmV0MRswGQYDVQQDExJDQyBTaWduZXQgLSBSb290Q0EwHhcNMDEwOTIzMTQxODE3WhcNMTEw
+OTIzMTMxODE3WjB1MQswCQYDVQQGEwJQTDEfMB0GA1UEChMWVFAgSW50ZXJuZXQgU3AuIHogby5v
+LjEkMCIGA1UECxMbQ2VudHJ1bSBDZXJ0eWZpa2FjamkgU2lnbmV0MR8wHQYDVQQDExZDQyBTaWdu
+ZXQgLSBDQSBLbGFzYSAxMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC4SRW9Q58g5DY1Hw7h
+gCRKBEdPdGn0MFHsfw7rlu/oQm7IChI/uWd9q5wwo77YojtTDjRnpgZsjqBeynX8T90vFILqsY2K
+5CF1OESalwvVr3sZiQX79lisuFKat92u6hBFikFIVxfHHB67Af+g7u0dEHdDW7lwy81MwFYxBTRy
+9wIDAQABo4IBbTCCAWkwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwggEEBgNVHSAE
+gfwwgfkwgfYGDSsGAQQBvj8CAQoBAQAwgeQwgZoGCCsGAQUFBwICMIGNGoGKQ2VydHlmaWthdCB3
+eXN0YXdpb255IHpnb2RuaWUgeiBkb2t1bWVudGVtOiAiUG9saXR5a2EgQ2VydHlmaWthY2ppIGRs
+YSBSb290Q0EiLiBDZXJ0eWZpa2F0IHd5c3Rhd2lvbnkgcHJ6ZXogUm9vdENBIHcgaGllcmFyY2hp
+aSBDQyBTaWduZXQuMEUGCCsGAQUFBwIBFjlodHRwOi8vd3d3LnNpZ25ldC5wbC9yZXBvenl0b3Jp
+dW0vZG9rdW1lbnR5L3BjX3Jvb3RjYS50eHQwHwYDVR0jBBgwFoAUwJvFIw0C4aZOSGsfAOnjmhQb
+sa8wHQYDVR0OBBYEFMODHtVZd1T7TftXR/nEI1zR54njMA0GCSqGSIb3DQEBBQUAA4IBAQBRIHQB
+FIGh8Jpxt87AgSLwIEEk4+oGy769u3NtoaR0R3WNMdmt7fXTi0tyTQ9V4AIszxVjhnUPaKnF1KYy
+f8Tl+YTzk9ZfFkZ3kCdSaILZAOIrmqWNLPmjUQ5/JiMGho0e1YmWUcMci84+pIisTsytFzVP32/W
++sz2H4FQAvOIMmxB7EJX9AdbnXn9EXZ+4nCqi0ft5z96ZqOJJiCB3vSaoYg+wdkcvb6souMJzuc2
+uptXtR1Xf3ihlHaGW+hmnpcwFA6AoNrom6Vgzk6U1ienx0Cw28BhRSKqzKkyXkuK8gRflZUx84uf
+tXncwKJrMiE3lvgOOBITRzcahirLer4c
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIE9zCCA9+gAwIBAgIEPL/xoTANBgkqhkiG9w0BAQUFADB2MQswCQYDVQQGEwJQTDEfMB0GA1UE
+ChMWVFAgSW50ZXJuZXQgU3AuIHogby5vLjEkMCIGA1UECxMbQ2VudHJ1bSBDZXJ0eWZpa2Fjamkg
+U2lnbmV0MSAwHgYDVQQDExdDQyBTaWduZXQgLSBQQ0EgS2xhc2EgMjAeFw0wMjA0MTkxMDI5NTNa
+Fw0xNzA0MTgxMjUzMDdaMHUxCzAJBgNVBAYTAlBMMR8wHQYDVQQKExZUUCBJbnRlcm5ldCBTcC4g
+eiBvLm8uMSQwIgYDVQQLExtDZW50cnVtIENlcnR5ZmlrYWNqaSBTaWduZXQxHzAdBgNVBAMTFkND
+IFNpZ25ldCAtIENBIEtsYXNhIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCqgLJu
+QqY4yavbSgHg8CyfKTx4BokNSDOVz4eD9vptUr11Kqd06ED1hlH7Sg0goBFAfntNU/QTKwSBaNui
+me7C4sSEdgsKrPoAhGb4Mq8y7Ty7RqZz7mkzNMqzL2L2U4yQ2QjvpH8MH0IBqOWEcpSkpwnrCDIm
+RoTfd+YlZWKi2JceQixUUYIQ45Ox8+x8hHbvvZdgqtcvo8PW27qoHkp/7hMuJ44kDAGrmxffBXl/
+OBRZp0uO1CSLcMcVJzyr2phKhy406MYdWrtNPEluGs0GFDzd0nrIctiWAO4cmct4S72S9Q6e//0G
+O9f3/Ca5Kb2I1xYLj/xE+HgjHX9aD2MhAgMBAAGjggGMMIIBiDAPBgNVHRMBAf8EBTADAQH/MA4G
+A1UdDwEB/wQEAwIBBjCB4wYDVR0gBIHbMIHYMIHVBg0rBgEEAb4/AhQKAQEAMIHDMHUGCCsGAQUF
+BwICMGkaZ0NlcnR5ZmlrYXQgd3lzdGF3aW9ueSB6Z29kbmllIHogZG9rdW1lbnRlbTogIlBvbGl0
+eWthIENlcnR5ZmlrYWNqaSBQQ0EyIC0gQ2VydHlmaWthdHkgVXJ6ZWRvdyBLbGFzeSAyIi4wSgYI
+KwYBBQUHAgEWPmh0dHA6Ly93d3cuc2lnbmV0LnBsL3JlcG96eXRvcml1bS9kb2t1bWVudHkva2xh
+c2EyL3BjX3BjYTIudHh0MD8GA1UdHwQ4MDYwNKAyoDCGLmh0dHA6Ly93d3cuc2lnbmV0LnBsL3Jl
+cG96eXRvcml1bS9jcmwvcGNhMi5jcmwwHwYDVR0jBBgwFoAUwGxGyl2CfpYHRonE82AVXO08kMIw
+HQYDVR0OBBYEFLtFBlILy4HNKVSzvHxBTM0HDowlMA0GCSqGSIb3DQEBBQUAA4IBAQBWTsCbqXrX
+hBBev5v5cIuc6gJM8ww7oR0uMQRZoFSqvQUPWBYM2/TLI/f8UM9hSShUVj3zEsSj/vFHagUVmzuV
+Xo5u0WK8iaqATSyEVBhADHrPG6wYcLKJlagge/ILA0m+SieyP2sjYD9MUB9KZIEyBKv0429UuDTw
+6P7pslxMWJBSNyQxaLIs0SRKsqZZWkc7ZYAj2apSkBMX2Is1oHA+PwkF6jQMwCao/+CndXPUzfCF
+6caa9WwW31W26MlXCvSmJgfiTPwGvm4PkPmOnmWZ3CczzhHl4q7ztHFzshJH3sZWDnrWwBFjzz5e
+Pr3WHV1wA7EY6oT4zBx+2gT9XBTB
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEUzCCAzugAwIBAgIEPq+qjzANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQGEwJQTDE3MDUGA1UE
+ChMuQ1ppQyBDZW50cmFzdCBTQSB3IGltaWVuaXUgTWluaXN0cmEgR29zcG9kYXJraTEZMBcGA1UE
+AxMQQ1ppQyBDZW50cmFzdCBTQTAeFw0wMzA0MzAxMDUwNTVaFw0wODA0MjgxMDUwNTVaMGgxCzAJ
+BgNVBAYTAlBMMR8wHQYDVQQKExZUUCBJbnRlcm5ldCBTcC4geiBvLm8uMR8wHQYDVQQDExZDQyBT
+aWduZXQgLSBDQSBLbGFzYSAzMRcwFQYDVQQFEw5OdW1lciB3cGlzdTogNDCCASIwDQYJKoZIhvcN
+AQEBBQADggEPADCCAQoCggEBALVdeOM62cPH2NERFxbS5FIp/HSv3fgesdVsTUFxZbGtE+/E0RMl
+KZQJHH9emx7vRYubsi4EOLCjYsCOTFvgGRIpZzx7R7T5c0Di5XFkRU4gjBl7aHJoKb5SLzGlWdoX
+GsekVtl6keEACrizV2EafqjI8cnBWY7OxQ1ooLQp5AeFjXg+5PT0lO6TUZAubqjFbhVbxSWjqvdj
+93RGfyYE76MnNn4c2xWySD07n7uno06TC0IJe6+3WSX1h+76VsIFouWBXOoM7cxxiLjoqdBVu24+
+P8e81SukE7qEvOwDPmk9ZJFtt1nBNg8a1kaixcljrA/43XwOPz6qnJ+cIj/xywECAwEAAaOCAQow
+ggEGMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMDMGA1UdIAEB/wQpMCcwJQYEVR0g
+ADAdMBsGCCsGAQUFBwIBFg93d3cuY2VudHJhc3QucGwwgY4GA1UdIwSBhjCBg4AU2a7r85Cp1iJN
+W0Ca1LR6VG3996ShZaRjMGExCzAJBgNVBAYTAlBMMTcwNQYDVQQKEy5DWmlDIENlbnRyYXN0IFNB
+IHcgaW1pZW5pdSBNaW5pc3RyYSBHb3Nwb2RhcmtpMRkwFwYDVQQDExBDWmlDIENlbnRyYXN0IFNB
+ggQ9/0sQMB0GA1UdDgQWBBR7Y8wZkHq0zrY7nn1tFSdQ0PlJuTANBgkqhkiG9w0BAQUFAAOCAQEA
+ldt/svO5c1MU08FKgrOXCGEbEPbQxhpM0xcd6Iv3dCo6qugEgjEs9Qm5CwUNKMnFsvR27cJWUvZb
+MVcvwlwCwclOdwF6u/QRS8bC2HYErhYo9bp9yuxxzuow2A94c5fPqfVrjXy+vDouchAm6+A5Wjzv
+J8wxVFDCs+9iGACmyUWr/JGXCYiQIbQkwlkRKHHlan9ymKf1NvIej/3EpeT8fKr6ywxGuhAfqofW
+pg3WJY/RCB4lTzD8vZGNwfMFGkWhJkypad3i9w3lGmDVpsHaWtCgGfd0H7tUtWPkP+t7EjIRCD9J
+HYnTR+wbbewc5vOI+UobR15ynGfFIaSIiMTVtQ==
-----END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIEUzCCAzugAwIBAgIEPq+qjzANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQGEwJQ
-TDE3MDUGA1UEChMuQ1ppQyBDZW50cmFzdCBTQSB3IGltaWVuaXUgTWluaXN0cmEg
-R29zcG9kYXJraTEZMBcGA1UEAxMQQ1ppQyBDZW50cmFzdCBTQTAeFw0wMzA0MzAx
-MDUwNTVaFw0wODA0MjgxMDUwNTVaMGgxCzAJBgNVBAYTAlBMMR8wHQYDVQQKExZU
-UCBJbnRlcm5ldCBTcC4geiBvLm8uMR8wHQYDVQQDExZDQyBTaWduZXQgLSBDQSBL
-bGFzYSAzMRcwFQYDVQQFEw5OdW1lciB3cGlzdTogNDCCASIwDQYJKoZIhvcNAQEB
-BQADggEPADCCAQoCggEBALVdeOM62cPH2NERFxbS5FIp/HSv3fgesdVsTUFxZbGt
-E+/E0RMlKZQJHH9emx7vRYubsi4EOLCjYsCOTFvgGRIpZzx7R7T5c0Di5XFkRU4g
-jBl7aHJoKb5SLzGlWdoXGsekVtl6keEACrizV2EafqjI8cnBWY7OxQ1ooLQp5AeF
-jXg+5PT0lO6TUZAubqjFbhVbxSWjqvdj93RGfyYE76MnNn4c2xWySD07n7uno06T
-C0IJe6+3WSX1h+76VsIFouWBXOoM7cxxiLjoqdBVu24+P8e81SukE7qEvOwDPmk9
-ZJFtt1nBNg8a1kaixcljrA/43XwOPz6qnJ+cIj/xywECAwEAAaOCAQowggEGMA8G
-A1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMDMGA1UdIAEB/wQpMCcwJQYE
-VR0gADAdMBsGCCsGAQUFBwIBFg93d3cuY2VudHJhc3QucGwwgY4GA1UdIwSBhjCB
-g4AU2a7r85Cp1iJNW0Ca1LR6VG3996ShZaRjMGExCzAJBgNVBAYTAlBMMTcwNQYD
-VQQKEy5DWmlDIENlbnRyYXN0IFNBIHcgaW1pZW5pdSBNaW5pc3RyYSBHb3Nwb2Rh
-cmtpMRkwFwYDVQQDExBDWmlDIENlbnRyYXN0IFNBggQ9/0sQMB0GA1UdDgQWBBR7
-Y8wZkHq0zrY7nn1tFSdQ0PlJuTANBgkqhkiG9w0BAQUFAAOCAQEAldt/svO5c1MU
-08FKgrOXCGEbEPbQxhpM0xcd6Iv3dCo6qugEgjEs9Qm5CwUNKMnFsvR27cJWUvZb
-MVcvwlwCwclOdwF6u/QRS8bC2HYErhYo9bp9yuxxzuow2A94c5fPqfVrjXy+vDou
-chAm6+A5WjzvJ8wxVFDCs+9iGACmyUWr/JGXCYiQIbQkwlkRKHHlan9ymKf1NvIe
-j/3EpeT8fKr6ywxGuhAfqofWpg3WJY/RCB4lTzD8vZGNwfMFGkWhJkypad3i9w3l
-GmDVpsHaWtCgGfd0H7tUtWPkP+t7EjIRCD9JHYnTR+wbbewc5vOI+UobR15ynGfF
-IaSIiMTVtQ==
------END CERTIFICATE-----
-
-----BEGIN CERTIFICATE-----
MIIEejCCA2KgAwIBAgIEP4vk6TANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQGEwJQ
TDEfMB0GA1UEChMWVFAgSW50ZXJuZXQgU3AuIHogby5vLjEkMCIGA1UECxMbQ2Vu
@@ -1629,7 +2347,6 @@ iCNe431axGNDWKnpuj2KUpj4CFHYsWCXky847YtTXDjri9NIwJJauazsrSjK+oXp
ngRS506mdQ7vWrtApkh8zhhWp7duCkjcCo1O8JxqYr2qEW1fXmgOISe010v2mmuv
hHxPyVwoAU4KkOw0nbXZn53yak0is5+XmAjh0wWue44AssHrjC9nUh3mkLt6eQ==
-----END CERTIFICATE-----
-
-----BEGIN CERTIFICATE-----
MIIEezCCA2OgAwIBAgIEP4vnLzANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJQ
TDEfMB0GA1UEChMWVFAgSW50ZXJuZXQgU3AuIHogby5vLjEfMB0GA1UEAxMWQ0Mg
@@ -1656,123 +2373,1374 @@ upyWls1BmYUxB91R7QkTiAUSNZ87s3auhZuG4f0V0JLVCcg2rn7AN1rfMkgxCbHk
GxiQbYWFljl6aatxR3odnnzVUe1I8uoY2JXpmmUcOG4dNGuQYziyKG3mtXCQWvug
5qi9Mf3KUh1oSTKx6HfLjjNl1+wMB5Mdb8LF0XyZLdJM9yIZh7SBRsYm9QiXevY=
-----END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIFGjCCBAKgAwIBAgIEPL7eEDANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJQ
-TDEfMB0GA1UEChMWVFAgSW50ZXJuZXQgU3AuIHogby5vLjEkMCIGA1UECxMbQ2Vu
-dHJ1bSBDZXJ0eWZpa2FjamkgU2lnbmV0MRswGQYDVQQDExJDQyBTaWduZXQgLSBS
-b290Q0EwHhcNMDIwNDE4MTQ1NDA4WhcNMjYwOTIxMTU0MjE5WjB2MQswCQYDVQQG
-EwJQTDEfMB0GA1UEChMWVFAgSW50ZXJuZXQgU3AuIHogby5vLjEkMCIGA1UECxMb
-Q2VudHJ1bSBDZXJ0eWZpa2FjamkgU2lnbmV0MSAwHgYDVQQDExdDQyBTaWduZXQg
-LSBQQ0EgS2xhc2EgMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM7B
-rBlbN5maM5eg0BOTqoZ+9NBDvU8Lm5rTdrMswFTCathzpVVLK/JD4K3+4oCZ9SRA
-spEXE4gvwb08ASY6w5s+HpRkeJw8YzMFR5kDZD5adgnCAy4vDfIXYZgppXPaTQ8w
-nfUZ7BZ7Zfa7QBemUIcJIzJBB0UqgtxWCeol9IekpBRVmuuSA6QG0Jkm+pGDJ05y
-j2eQG8jTcBENM7sVA8rGRMyFA4skSZ+D0OG6FS2xC1i9JyN0ag1yII/LPx8HK5J4
-W9MaPRNjAEeaa2qI9EpchwrOxnyVbQfSedCG1VRJfAsE/9tT9CMUPZ3xW20QjQcS
-ZJqVcmGW9gVsXKQOVLsCAwEAAaOCAbMwggGvMA8GA1UdEwEB/wQFMAMBAf8wDgYD
-VR0PAQH/BAQDAgEGMIIBBAYDVR0gBIH8MIH5MIH2Bg0rBgEEAb4/AgEKAQEBMIHk
-MIGaBggrBgEFBQcCAjCBjRqBikNlcnR5ZmlrYXQgd3lzdGF3aW9ueSB6Z29kbmll
-IHogZG9rdW1lbnRlbTogIlBvbGl0eWthIENlcnR5ZmlrYWNqaSBkbGEgUm9vdENB
-Ii4gQ2VydHlmaWthdCB3eXN0YXdpb255IHByemV6IFJvb3RDQSB3IGhpZXJhcmNo
-aWkgQ0MgU2lnbmV0LjBFBggrBgEFBQcCARY5aHR0cDovL3d3dy5zaWduZXQucGwv
-cmVwb3p5dG9yaXVtL2Rva3VtZW50eS9wY19yb290Y2EudHh0MEQGA1UdHwQ9MDsw
-OaA3oDWGM2h0dHA6Ly93d3cuc2lnbmV0LnBsL3JlcG96eXRvcml1bS9yb290Y2Ev
-cm9vdGNhLmNybDAfBgNVHSMEGDAWgBTAm8UjDQLhpk5Iax8A6eOaFBuxrzAdBgNV
-HQ4EFgQUwGxGyl2CfpYHRonE82AVXO08kMIwDQYJKoZIhvcNAQEFBQADggEBABp1
-TAUsa+BeVWg4cjowc8yTJ5XN3GvN96GObMkxUGY7U9kVrLI71xBgoNVyzXTiMNDB
-vjh7vdPWjpl5SDiRpnnKiOFXA43HvNWzUaOkTu1mxjJsZsanot1Xt6j0ZDC+03Fj
-LHdYMyM9kSWp6afb4980EPYZCcSzgM5TOGfJmNii5Tq468VFKrX+52Aou1G22Ohu
-+EEOlOrG7ylKv1hHUJJCjwN0ZVEIn1nDbrU9FeGCz8J9ihVUvnENEBbBkU37PWqW
-uHitKQDVtcwTwJJdR8cmKq3NmkwAm9fPacidQLpaw0WkuGrS+fEDhu1Nhy9xELP6
-NA9GRTCNxm/dXlcwnmY=
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIFGjCCBAKgAwIBAgIEPV0tNDANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJQ
-TDEfMB0GA1UEChMWVFAgSW50ZXJuZXQgU3AuIHogby5vLjEkMCIGA1UECxMbQ2Vu
-dHJ1bSBDZXJ0eWZpa2FjamkgU2lnbmV0MRswGQYDVQQDExJDQyBTaWduZXQgLSBS
-b290Q0EwHhcNMDIwODE2MTY0OTU2WhcNMjYwOTIxMTU0MjE5WjB2MQswCQYDVQQG
-EwJQTDEfMB0GA1UEChMWVFAgSW50ZXJuZXQgU3AuIHogby5vLjEkMCIGA1UECxMb
-Q2VudHJ1bSBDZXJ0eWZpa2FjamkgU2lnbmV0MSAwHgYDVQQDExdDQyBTaWduZXQg
-LSBQQ0EgS2xhc2EgMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALN3
-LanJtdueNe6geWUTFENa+lEuzqELcoqhYB+a/tJcPEkc6TX/bYPzalRRjqs+quMP
-6KZTU0DixOrV+K7iWaqAiQ913HX5IBLmKDCrTVW/ZvSDpiBKbxlHfSNuJxAuVT6H
-dbzK7yAW38ssX+yS2tZYHZ5FhZcfqzPEOpO94mAKcBUhk6T/ki0evXX/ZvvktwmF
-3hKattzwtM4JMLurAEl8SInyEYULw5JdlfcBez2Tg6Dbw34hA1A+ckTwhxzecrB8
-TUe2BnQKOs9vr2cCACpFFcOmPkM0Drtjctr1QHm1tYSqRFRf9VcV5tfC3P8QqoK4
-ONjtLPHc9x5NE1uK/FMCAwEAAaOCAbMwggGvMA8GA1UdEwEB/wQFMAMBAf8wDgYD
-VR0PAQH/BAQDAgEGMIIBBAYDVR0gBIH8MIH5MIH2Bg0rBgEEAb4/AgEKAQECMIHk
-MIGaBggrBgEFBQcCAjCBjRqBikNlcnR5ZmlrYXQgd3lzdGF3aW9ueSB6Z29kbmll
-IHogZG9rdW1lbnRlbTogIlBvbGl0eWthIENlcnR5ZmlrYWNqaSBkbGEgUm9vdENB
-Ii4gQ2VydHlmaWthdCB3eXN0YXdpb255IHByemV6IFJvb3RDQSB3IGhpZXJhcmNo
-aWkgQ0MgU2lnbmV0LjBFBggrBgEFBQcCARY5aHR0cDovL3d3dy5zaWduZXQucGwv
-cmVwb3p5dG9yaXVtL2Rva3VtZW50eS9wY19yb290Y2EudHh0MEQGA1UdHwQ9MDsw
-OaA3oDWGM2h0dHA6Ly93d3cuc2lnbmV0LnBsL3JlcG96eXRvcml1bS9yb290Y2Ev
-cm9vdGNhLmNybDAfBgNVHSMEGDAWgBTAm8UjDQLhpk5Iax8A6eOaFBuxrzAdBgNV
-HQ4EFgQUXvthcPHlH5BgGhlMErJNXWlhlgAwDQYJKoZIhvcNAQEFBQADggEBACIc
-e95Mvn710KCAISA0CuHD4aznTU6pLoCDShW47OR+GTpJUm1coTcUqlBHV9mra4VF
-rBcBuOkHZoBLq/jmE0QJWnpSEULDcH9J3mF0nqO9SM+mWyJGdsJF/XU/7smummgj
-MNQXwzQTtWORF+6v5KUbWX85anO2wR+M6YTBWC55zWpWi4RG3vkHFs5Ze2oFJTlp
-uxw9ZgxTnWlwI9QR2MvEhYIUMKMOWxw1nt0kKj+5TCNQQGh/VJJ1dsiroGh/io1D
-OcePEhKz1Ag52y6Wf0nJJB9yk0sFakqZH18F7eQecQImgZyyeRtsG95leNugB3BX
-WCW+KxwiBrtQTXv4dTE=
------END CERTIFICATE-----
-
-----BEGIN CERTIFICATE-----
-MIIEzzCCA7egAwIBAgIEO6ocGTANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJQ
-TDEfMB0GA1UEChMWVFAgSW50ZXJuZXQgU3AuIHogby5vLjEkMCIGA1UECxMbQ2Vu
-dHJ1bSBDZXJ0eWZpa2FjamkgU2lnbmV0MRswGQYDVQQDExJDQyBTaWduZXQgLSBS
-b290Q0EwHhcNMDEwOTIwMTY0MjE5WhcNMjYwOTIxMTU0MjE5WjBxMQswCQYDVQQG
-EwJQTDEfMB0GA1UEChMWVFAgSW50ZXJuZXQgU3AuIHogby5vLjEkMCIGA1UECxMb
-Q2VudHJ1bSBDZXJ0eWZpa2FjamkgU2lnbmV0MRswGQYDVQQDExJDQyBTaWduZXQg
-LSBSb290Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrr2vydnNp
-ELfGW3KsARiDhJvwDtUe4AbWev+OfMc3+vA29nX8ZmIwno3gmItjo5DbUCCRiCMq
-5c9epcGu+kg4a3BJChVXREl8gVh0ST15rr3RKrSc4VgsvQzl0ZUraeQLl8JoRT5P
-LsUj3qwF78jUCQVckiiLVcnGfZtFCm+DCJXliQBDMB9XFAUEiO/DtEBs0B7wJGx7
-lgJeJpQUcGiaOPjcJDYOk7rNAYmmD2gWeSlepufO8luUYG/YDxTC4mqhRqfa4MnV
-O5dqy+ICj2UvUpHbZDB0KfGRibgBYeQP1kuqgIzJN4UqknVAJb0aMBSPl+9k2fAU
-dchx1njlbdcbAgMBAAGjggFtMIIBaTAPBgNVHRMBAf8EBTADAQH/MIIBBAYDVR0g
-BIH8MIH5MIH2Bg0rBgEEAb4/AgEKAQEAMIHkMIGaBggrBgEFBQcCAjCBjRqBikNl
-cnR5ZmlrYXQgd3lzdGF3aW9ueSB6Z29kbmllIHogZG9rdW1lbnRlbTogIlBvbGl0
-eWthIENlcnR5ZmlrYWNqaSBkbGEgUm9vdENBIi4gQ2VydHlmaWthdCB3eXN0YXdp
-b255IHByemV6IFJvb3RDQSB3IGhpZXJhcmNoaWkgQ0MgU2lnbmV0LjBFBggrBgEF
-BQcCARY5aHR0cDovL3d3dy5zaWduZXQucGwvcmVwb3p5dG9yaXVtL2Rva3VtZW50
-eS9wY19yb290Y2EudHh0MB0GA1UdDgQWBBTAm8UjDQLhpk5Iax8A6eOaFBuxrzAf
-BgNVHSMEGDAWgBTAm8UjDQLhpk5Iax8A6eOaFBuxrzAOBgNVHQ8BAf8EBAMCAQYw
-DQYJKoZIhvcNAQEFBQADggEBAGnY5QmYqnnO9OqFOWZxxb25UHRnaRF6IV9aaGit
-5BZufZj2Tq3v8L3SgE34GOoIcdRMMG5JEpEU4mN/Ef3oY6Eo+7HfqaPHI4KFmbDS
-PiK5s+wmf+bQSm0Yq5/h4ZOdcAESlLQeLSt1CQk2JoKQJ6pyAf6xJBgWEIlm4RXE
-4J3324PUiOp83kW6MDvaa1xY976WyInr4rwoLgxVl11LZeKWha0RJJxJgw/NyWpK
-G7LWCm1fglF8JH51vZNndGYq1iKtfnrIOvLZq6bzaCiZm1EurD8HE6P7pmABKK6o
-3C2OXlNfNIgwkDN/cDqk5TYsTkrpfriJPdxXBH8hQOkW89g=
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIID/TCCA2agAwIBAgIEP4/gkTANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQGEwJQ
-TDEfMB0GA1UEChMWVFAgSW50ZXJuZXQgU3AuIHogby5vLjEkMCIGA1UECxMbQ2Vu
-dHJ1bSBDZXJ0eWZpa2FjamkgU2lnbmV0MR8wHQYDVQQDExZDQyBTaWduZXQgLSBD
-QSBLbGFzYSAxMB4XDTAzMTAxNzEyMjkwMloXDTExMDkyMzExMTgxN1owdjELMAkG
-A1UEBhMCUEwxHzAdBgNVBAoTFlRQIEludGVybmV0IFNwLiB6IG8uby4xJDAiBgNV
-BAsTG0NlbnRydW0gQ2VydHlmaWthY2ppIFNpZ25ldDEgMB4GA1UEAxMXQ0MgU2ln
-bmV0IC0gVFNBIEtsYXNhIDEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOJY
-rISEtSsduHajROh5/n7NGrkpYTT9NEaPe9+ucuQ37KxIbfJwXJjgUc1dw4wCkcQ1
-2FJarD1X6mSQ4cfN/60vLfKI5ZD4nhJTMKlAj1pX9ScQ/MuyvKStCbn5WTkjPhjR
-AM0tdwXSnzuTEunfw0Oup559y3Iqxg1cExflB6cfAgMBAAGjggGXMIIBkzBBBgNV
-HR8EOjA4MDagNKAyhjBodHRwOi8vd3d3LnNpZ25ldC5wbC9yZXBvenl0b3JpdW0v
-Y3JsL2tsYXNhMS5jcmwwDgYDVR0PAQH/BAQDAgeAMBYGA1UdJQEB/wQMMAoGCCsG
-AQUFBwMIMIHaBgNVHSAEgdIwgc8wgcwGDSsGAQQBvj8CZAoRAgEwgbowbwYIKwYB
-BQUHAgIwYxphQ2VydHlmaWthdCB3eXN0YXdpb255IHpnb2RuaWUgeiBkb2t1bWVu
-dGVtICJQb2xpdHlrYSBDZXJ0eWZpa2FjamkgQ0MgU2lnbmV0IC0gWm5ha293YW5p
-ZSBjemFzZW0iLjBHBggrBgEFBQcCARY7aHR0cDovL3d3dy5zaWduZXQucGwvcmVw
-b3p5dG9yaXVtL2Rva3VtZW50eS9wY190c2ExXzJfMS5wZGYwHwYDVR0jBBgwFoAU
-w4Me1Vl3VPtN+1dH+cQjXNHnieMwHQYDVR0OBBYEFJdDwEqtcavOYd9u9tej53vW
-XwNBMAkGA1UdEwQCMAAwDQYJKoZIhvcNAQEFBQADgYEAnpiQkqLCJQYXUrqMHUEz
-+z3rOqS0XzSFnVVLhkVssvXc8S3FkJIiQTUrkScjI4CToCzujj3EyfNxH6yiLlMb
-skF8I31JxIeBvueqV+s+o76CZm3ycu9hb0I4lswuxoT+q5ZzPR8Irrb51rZXlolR
-+7KtwMg4sFDJZ8RNgOf7tbA=
+MIIFGjCCBAKgAwIBAgIEPL7eEDANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJQTDEfMB0GA1UE
+ChMWVFAgSW50ZXJuZXQgU3AuIHogby5vLjEkMCIGA1UECxMbQ2VudHJ1bSBDZXJ0eWZpa2Fjamkg
+U2lnbmV0MRswGQYDVQQDExJDQyBTaWduZXQgLSBSb290Q0EwHhcNMDIwNDE4MTQ1NDA4WhcNMjYw
+OTIxMTU0MjE5WjB2MQswCQYDVQQGEwJQTDEfMB0GA1UEChMWVFAgSW50ZXJuZXQgU3AuIHogby5v
+LjEkMCIGA1UECxMbQ2VudHJ1bSBDZXJ0eWZpa2FjamkgU2lnbmV0MSAwHgYDVQQDExdDQyBTaWdu
+ZXQgLSBQQ0EgS2xhc2EgMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAM7BrBlbN5ma
+M5eg0BOTqoZ+9NBDvU8Lm5rTdrMswFTCathzpVVLK/JD4K3+4oCZ9SRAspEXE4gvwb08ASY6w5s+
+HpRkeJw8YzMFR5kDZD5adgnCAy4vDfIXYZgppXPaTQ8wnfUZ7BZ7Zfa7QBemUIcJIzJBB0UqgtxW
+Ceol9IekpBRVmuuSA6QG0Jkm+pGDJ05yj2eQG8jTcBENM7sVA8rGRMyFA4skSZ+D0OG6FS2xC1i9
+JyN0ag1yII/LPx8HK5J4W9MaPRNjAEeaa2qI9EpchwrOxnyVbQfSedCG1VRJfAsE/9tT9CMUPZ3x
+W20QjQcSZJqVcmGW9gVsXKQOVLsCAwEAAaOCAbMwggGvMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P
+AQH/BAQDAgEGMIIBBAYDVR0gBIH8MIH5MIH2Bg0rBgEEAb4/AgEKAQEBMIHkMIGaBggrBgEFBQcC
+AjCBjRqBikNlcnR5ZmlrYXQgd3lzdGF3aW9ueSB6Z29kbmllIHogZG9rdW1lbnRlbTogIlBvbGl0
+eWthIENlcnR5ZmlrYWNqaSBkbGEgUm9vdENBIi4gQ2VydHlmaWthdCB3eXN0YXdpb255IHByemV6
+IFJvb3RDQSB3IGhpZXJhcmNoaWkgQ0MgU2lnbmV0LjBFBggrBgEFBQcCARY5aHR0cDovL3d3dy5z
+aWduZXQucGwvcmVwb3p5dG9yaXVtL2Rva3VtZW50eS9wY19yb290Y2EudHh0MEQGA1UdHwQ9MDsw
+OaA3oDWGM2h0dHA6Ly93d3cuc2lnbmV0LnBsL3JlcG96eXRvcml1bS9yb290Y2Evcm9vdGNhLmNy
+bDAfBgNVHSMEGDAWgBTAm8UjDQLhpk5Iax8A6eOaFBuxrzAdBgNVHQ4EFgQUwGxGyl2CfpYHRonE
+82AVXO08kMIwDQYJKoZIhvcNAQEFBQADggEBABp1TAUsa+BeVWg4cjowc8yTJ5XN3GvN96GObMkx
+UGY7U9kVrLI71xBgoNVyzXTiMNDBvjh7vdPWjpl5SDiRpnnKiOFXA43HvNWzUaOkTu1mxjJsZsan
+ot1Xt6j0ZDC+03FjLHdYMyM9kSWp6afb4980EPYZCcSzgM5TOGfJmNii5Tq468VFKrX+52Aou1G2
+2Ohu+EEOlOrG7ylKv1hHUJJCjwN0ZVEIn1nDbrU9FeGCz8J9ihVUvnENEBbBkU37PWqWuHitKQDV
+tcwTwJJdR8cmKq3NmkwAm9fPacidQLpaw0WkuGrS+fEDhu1Nhy9xELP6NA9GRTCNxm/dXlcwnmY=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFGjCCBAKgAwIBAgIEPV0tNDANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJQTDEfMB0GA1UE
+ChMWVFAgSW50ZXJuZXQgU3AuIHogby5vLjEkMCIGA1UECxMbQ2VudHJ1bSBDZXJ0eWZpa2Fjamkg
+U2lnbmV0MRswGQYDVQQDExJDQyBTaWduZXQgLSBSb290Q0EwHhcNMDIwODE2MTY0OTU2WhcNMjYw
+OTIxMTU0MjE5WjB2MQswCQYDVQQGEwJQTDEfMB0GA1UEChMWVFAgSW50ZXJuZXQgU3AuIHogby5v
+LjEkMCIGA1UECxMbQ2VudHJ1bSBDZXJ0eWZpa2FjamkgU2lnbmV0MSAwHgYDVQQDExdDQyBTaWdu
+ZXQgLSBQQ0EgS2xhc2EgMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALN3LanJtdue
+Ne6geWUTFENa+lEuzqELcoqhYB+a/tJcPEkc6TX/bYPzalRRjqs+quMP6KZTU0DixOrV+K7iWaqA
+iQ913HX5IBLmKDCrTVW/ZvSDpiBKbxlHfSNuJxAuVT6HdbzK7yAW38ssX+yS2tZYHZ5FhZcfqzPE
+OpO94mAKcBUhk6T/ki0evXX/ZvvktwmF3hKattzwtM4JMLurAEl8SInyEYULw5JdlfcBez2Tg6Db
+w34hA1A+ckTwhxzecrB8TUe2BnQKOs9vr2cCACpFFcOmPkM0Drtjctr1QHm1tYSqRFRf9VcV5tfC
+3P8QqoK4ONjtLPHc9x5NE1uK/FMCAwEAAaOCAbMwggGvMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P
+AQH/BAQDAgEGMIIBBAYDVR0gBIH8MIH5MIH2Bg0rBgEEAb4/AgEKAQECMIHkMIGaBggrBgEFBQcC
+AjCBjRqBikNlcnR5ZmlrYXQgd3lzdGF3aW9ueSB6Z29kbmllIHogZG9rdW1lbnRlbTogIlBvbGl0
+eWthIENlcnR5ZmlrYWNqaSBkbGEgUm9vdENBIi4gQ2VydHlmaWthdCB3eXN0YXdpb255IHByemV6
+IFJvb3RDQSB3IGhpZXJhcmNoaWkgQ0MgU2lnbmV0LjBFBggrBgEFBQcCARY5aHR0cDovL3d3dy5z
+aWduZXQucGwvcmVwb3p5dG9yaXVtL2Rva3VtZW50eS9wY19yb290Y2EudHh0MEQGA1UdHwQ9MDsw
+OaA3oDWGM2h0dHA6Ly93d3cuc2lnbmV0LnBsL3JlcG96eXRvcml1bS9yb290Y2Evcm9vdGNhLmNy
+bDAfBgNVHSMEGDAWgBTAm8UjDQLhpk5Iax8A6eOaFBuxrzAdBgNVHQ4EFgQUXvthcPHlH5BgGhlM
+ErJNXWlhlgAwDQYJKoZIhvcNAQEFBQADggEBACIce95Mvn710KCAISA0CuHD4aznTU6pLoCDShW4
+7OR+GTpJUm1coTcUqlBHV9mra4VFrBcBuOkHZoBLq/jmE0QJWnpSEULDcH9J3mF0nqO9SM+mWyJG
+dsJF/XU/7smummgjMNQXwzQTtWORF+6v5KUbWX85anO2wR+M6YTBWC55zWpWi4RG3vkHFs5Ze2oF
+JTlpuxw9ZgxTnWlwI9QR2MvEhYIUMKMOWxw1nt0kKj+5TCNQQGh/VJJ1dsiroGh/io1DOcePEhKz
+1Ag52y6Wf0nJJB9yk0sFakqZH18F7eQecQImgZyyeRtsG95leNugB3BXWCW+KxwiBrtQTXv4dTE=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEzzCCA7egAwIBAgIEO6ocGTANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJQTDEfMB0GA1UE
+ChMWVFAgSW50ZXJuZXQgU3AuIHogby5vLjEkMCIGA1UECxMbQ2VudHJ1bSBDZXJ0eWZpa2Fjamkg
+U2lnbmV0MRswGQYDVQQDExJDQyBTaWduZXQgLSBSb290Q0EwHhcNMDEwOTIwMTY0MjE5WhcNMjYw
+OTIxMTU0MjE5WjBxMQswCQYDVQQGEwJQTDEfMB0GA1UEChMWVFAgSW50ZXJuZXQgU3AuIHogby5v
+LjEkMCIGA1UECxMbQ2VudHJ1bSBDZXJ0eWZpa2FjamkgU2lnbmV0MRswGQYDVQQDExJDQyBTaWdu
+ZXQgLSBSb290Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrr2vydnNpELfGW3Ks
+ARiDhJvwDtUe4AbWev+OfMc3+vA29nX8ZmIwno3gmItjo5DbUCCRiCMq5c9epcGu+kg4a3BJChVX
+REl8gVh0ST15rr3RKrSc4VgsvQzl0ZUraeQLl8JoRT5PLsUj3qwF78jUCQVckiiLVcnGfZtFCm+D
+CJXliQBDMB9XFAUEiO/DtEBs0B7wJGx7lgJeJpQUcGiaOPjcJDYOk7rNAYmmD2gWeSlepufO8luU
+YG/YDxTC4mqhRqfa4MnVO5dqy+ICj2UvUpHbZDB0KfGRibgBYeQP1kuqgIzJN4UqknVAJb0aMBSP
+l+9k2fAUdchx1njlbdcbAgMBAAGjggFtMIIBaTAPBgNVHRMBAf8EBTADAQH/MIIBBAYDVR0gBIH8
+MIH5MIH2Bg0rBgEEAb4/AgEKAQEAMIHkMIGaBggrBgEFBQcCAjCBjRqBikNlcnR5ZmlrYXQgd3lz
+dGF3aW9ueSB6Z29kbmllIHogZG9rdW1lbnRlbTogIlBvbGl0eWthIENlcnR5ZmlrYWNqaSBkbGEg
+Um9vdENBIi4gQ2VydHlmaWthdCB3eXN0YXdpb255IHByemV6IFJvb3RDQSB3IGhpZXJhcmNoaWkg
+Q0MgU2lnbmV0LjBFBggrBgEFBQcCARY5aHR0cDovL3d3dy5zaWduZXQucGwvcmVwb3p5dG9yaXVt
+L2Rva3VtZW50eS9wY19yb290Y2EudHh0MB0GA1UdDgQWBBTAm8UjDQLhpk5Iax8A6eOaFBuxrzAf
+BgNVHSMEGDAWgBTAm8UjDQLhpk5Iax8A6eOaFBuxrzAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZIhvcN
+AQEFBQADggEBAGnY5QmYqnnO9OqFOWZxxb25UHRnaRF6IV9aaGit5BZufZj2Tq3v8L3SgE34GOoI
+cdRMMG5JEpEU4mN/Ef3oY6Eo+7HfqaPHI4KFmbDSPiK5s+wmf+bQSm0Yq5/h4ZOdcAESlLQeLSt1
+CQk2JoKQJ6pyAf6xJBgWEIlm4RXE4J3324PUiOp83kW6MDvaa1xY976WyInr4rwoLgxVl11LZeKW
+ha0RJJxJgw/NyWpKG7LWCm1fglF8JH51vZNndGYq1iKtfnrIOvLZq6bzaCiZm1EurD8HE6P7pmAB
+KK6o3C2OXlNfNIgwkDN/cDqk5TYsTkrpfriJPdxXBH8hQOkW89g=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIID/TCCA2agAwIBAgIEP4/gkTANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQGEwJQTDEfMB0GA1UE
+ChMWVFAgSW50ZXJuZXQgU3AuIHogby5vLjEkMCIGA1UECxMbQ2VudHJ1bSBDZXJ0eWZpa2Fjamkg
+U2lnbmV0MR8wHQYDVQQDExZDQyBTaWduZXQgLSBDQSBLbGFzYSAxMB4XDTAzMTAxNzEyMjkwMloX
+DTExMDkyMzExMTgxN1owdjELMAkGA1UEBhMCUEwxHzAdBgNVBAoTFlRQIEludGVybmV0IFNwLiB6
+IG8uby4xJDAiBgNVBAsTG0NlbnRydW0gQ2VydHlmaWthY2ppIFNpZ25ldDEgMB4GA1UEAxMXQ0Mg
+U2lnbmV0IC0gVFNBIEtsYXNhIDEwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAOJYrISEtSsd
+uHajROh5/n7NGrkpYTT9NEaPe9+ucuQ37KxIbfJwXJjgUc1dw4wCkcQ12FJarD1X6mSQ4cfN/60v
+LfKI5ZD4nhJTMKlAj1pX9ScQ/MuyvKStCbn5WTkjPhjRAM0tdwXSnzuTEunfw0Oup559y3Iqxg1c
+ExflB6cfAgMBAAGjggGXMIIBkzBBBgNVHR8EOjA4MDagNKAyhjBodHRwOi8vd3d3LnNpZ25ldC5w
+bC9yZXBvenl0b3JpdW0vY3JsL2tsYXNhMS5jcmwwDgYDVR0PAQH/BAQDAgeAMBYGA1UdJQEB/wQM
+MAoGCCsGAQUFBwMIMIHaBgNVHSAEgdIwgc8wgcwGDSsGAQQBvj8CZAoRAgEwgbowbwYIKwYBBQUH
+AgIwYxphQ2VydHlmaWthdCB3eXN0YXdpb255IHpnb2RuaWUgeiBkb2t1bWVudGVtICJQb2xpdHlr
+YSBDZXJ0eWZpa2FjamkgQ0MgU2lnbmV0IC0gWm5ha293YW5pZSBjemFzZW0iLjBHBggrBgEFBQcC
+ARY7aHR0cDovL3d3dy5zaWduZXQucGwvcmVwb3p5dG9yaXVtL2Rva3VtZW50eS9wY190c2ExXzJf
+MS5wZGYwHwYDVR0jBBgwFoAUw4Me1Vl3VPtN+1dH+cQjXNHnieMwHQYDVR0OBBYEFJdDwEqtcavO
+Yd9u9tej53vWXwNBMAkGA1UdEwQCMAAwDQYJKoZIhvcNAQEFBQADgYEAnpiQkqLCJQYXUrqMHUEz
++z3rOqS0XzSFnVVLhkVssvXc8S3FkJIiQTUrkScjI4CToCzujj3EyfNxH6yiLlMbskF8I31JxIeB
+vueqV+s+o76CZm3ycu9hb0I4lswuxoT+q5ZzPR8Irrb51rZXlolR+7KtwMg4sFDJZ8RNgOf7tbA=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHPTCCBSWgAwIBAgIBADANBgkqhkiG9w0BAQQFADB5MRAwDgYDVQQKEwdSb290
+IENBMR4wHAYDVQQLExVodHRwOi8vd3d3LmNhY2VydC5vcmcxIjAgBgNVBAMTGUNB
+IENlcnQgU2lnbmluZyBBdXRob3JpdHkxITAfBgkqhkiG9w0BCQEWEnN1cHBvcnRA
+Y2FjZXJ0Lm9yZzAeFw0wMzAzMzAxMjI5NDlaFw0zMzAzMjkxMjI5NDlaMHkxEDAO
+BgNVBAoTB1Jvb3QgQ0ExHjAcBgNVBAsTFWh0dHA6Ly93d3cuY2FjZXJ0Lm9yZzEi
+MCAGA1UEAxMZQ0EgQ2VydCBTaWduaW5nIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJ
+ARYSc3VwcG9ydEBjYWNlcnQub3JnMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
+CgKCAgEAziLA4kZ97DYoB1CW8qAzQIxL8TtmPzHlawI229Z89vGIj053NgVBlfkJ
+8BLPRoZzYLdufujAWGSuzbCtRRcMY/pnCujW0r8+55jE8Ez64AO7NV1sId6eINm6
+zWYyN3L69wj1x81YyY7nDl7qPv4coRQKFWyGhFtkZip6qUtTefWIonvuLwphK42y
+fk1WpRPs6tqSnqxEQR5YYGUFZvjARL3LlPdCfgv3ZWiYUQXw8wWRBB0bF4LsyFe7
+w2t6iPGwcswlWyCR7BYCEo8y6RcYSNDHBS4CMEK4JZwFaz+qOqfrU0j36NK2B5jc
+G8Y0f3/JHIJ6BVgrCFvzOKKrF11myZjXnhCLotLddJr3cQxyYN/Nb5gznZY0dj4k
+epKwDpUeb+agRThHqtdB7Uq3EvbXG4OKDy7YCbZZ16oE/9KTfWgu3YtLq1i6L43q
+laegw1SJpfvbi1EinbLDvhG+LJGGi5Z4rSDTii8aP8bQUWWHIbEZAWV/RRyH9XzQ
+QUxPKZgh/TMfdQwEUfoZd9vUFBzugcMd9Zi3aQaRIt0AUMyBMawSB3s42mhb5ivU
+fslfrejrckzzAeVLIL+aplfKkQABi6F1ITe1Yw1nPkZPcCBnzsXWWdsC4PDSy826
+YreQQejdIOQpvGQpQsgi3Hia/0PsmBsJUUtaWsJx8cTLc6nloQsCAwEAAaOCAc4w
+ggHKMB0GA1UdDgQWBBQWtTIb1Mfz4OaO873SsDrusjkY0TCBowYDVR0jBIGbMIGY
+gBQWtTIb1Mfz4OaO873SsDrusjkY0aF9pHsweTEQMA4GA1UEChMHUm9vdCBDQTEe
+MBwGA1UECxMVaHR0cDovL3d3dy5jYWNlcnQub3JnMSIwIAYDVQQDExlDQSBDZXJ0
+IFNpZ25pbmcgQXV0aG9yaXR5MSEwHwYJKoZIhvcNAQkBFhJzdXBwb3J0QGNhY2Vy
+dC5vcmeCAQAwDwYDVR0TAQH/BAUwAwEB/zAyBgNVHR8EKzApMCegJaAjhiFodHRw
+czovL3d3dy5jYWNlcnQub3JnL3Jldm9rZS5jcmwwMAYJYIZIAYb4QgEEBCMWIWh0
+dHBzOi8vd3d3LmNhY2VydC5vcmcvcmV2b2tlLmNybDA0BglghkgBhvhCAQgEJxYl
+aHR0cDovL3d3dy5jYWNlcnQub3JnL2luZGV4LnBocD9pZD0xMDBWBglghkgBhvhC
+AQ0ESRZHVG8gZ2V0IHlvdXIgb3duIGNlcnRpZmljYXRlIGZvciBGUkVFIGhlYWQg
+b3ZlciB0byBodHRwOi8vd3d3LmNhY2VydC5vcmcwDQYJKoZIhvcNAQEEBQADggIB
+ACjH7pyCArpcgBLKNQodgW+JapnM8mgPf6fhjViVPr3yBsOQWqy1YPaZQwGjiHCc
+nWKdpIevZ1gNMDY75q1I08t0AoZxPuIrA2jxNGJARjtT6ij0rPtmlVOKTV39O9lg
+18p5aTuxZZKmxoGCXJzN600BiqXfEVWqFcofN8CCmHBh22p8lqOOLlQ+TyGpkO/c
+gr/c6EWtTZBzCDyUZbAEmXZ/4rzCahWqlwQ3JNgelE5tDlG+1sSPypZt90Pf6DBl
+Jzt7u0NDY8RD97LsaMzhGY4i+5jhe1o+ATc7iwiwovOVThrLm82asduycPAtStvY
+sONvRUgzEv/+PDIqVPfE94rwiCPCR/5kenHA0R6mY7AHfqQv0wGP3J8rtsYIqQ+T
+SCX8Ev2fQtzzxD72V7DX3WnRBnc0CkvSyqD/HMaMyRa+xMwyN2hzXwj7UfdJUzYF
+CpUCTPJ5GhD22Dp1nPMd8aINcGeGG7MW9S/lpOt5hvk9C8JzC6WZrG/8Z7jlLwum
+GCSNe9FINSkYQKyTYOGWhlC0elnYjyELn8+CkcY7v2vcB5G5l1YjqrZslMZIBjzk
+zk6q5PYvCdxTby78dOs6Y5nCpqyJvKeyRKANihDjbPIky/qbn3BHLt4Ui9SyIAmW
+omTxJBzcoTWcFbLUvFUufQb1nA5V9FrWk9p2rSVzTMVD
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGCDCCA/CgAwIBAgIBATANBgkqhkiG9w0BAQQFADB5MRAwDgYDVQQKEwdSb290
+IENBMR4wHAYDVQQLExVodHRwOi8vd3d3LmNhY2VydC5vcmcxIjAgBgNVBAMTGUNB
+IENlcnQgU2lnbmluZyBBdXRob3JpdHkxITAfBgkqhkiG9w0BCQEWEnN1cHBvcnRA
+Y2FjZXJ0Lm9yZzAeFw0wNTEwMTQwNzM2NTVaFw0zMzAzMjgwNzM2NTVaMFQxFDAS
+BgNVBAoTC0NBY2VydCBJbmMuMR4wHAYDVQQLExVodHRwOi8vd3d3LkNBY2VydC5v
+cmcxHDAaBgNVBAMTE0NBY2VydCBDbGFzcyAzIFJvb3QwggIiMA0GCSqGSIb3DQEB
+AQUAA4ICDwAwggIKAoICAQCrSTURSHzSJn5TlM9Dqd0o10Iqi/OHeBlYfA+e2ol9
+4fvrcpANdKGWZKufoCSZc9riVXbHF3v1BKxGuMO+f2SNEGwk82GcwPKQ+lHm9WkB
+Y8MPVuJKQs/iRIwlKKjFeQl9RrmK8+nzNCkIReQcn8uUBByBqBSzmGXEQ+xOgo0J
+0b2qW42S0OzekMV/CsLj6+YxWl50PpczWejDAz1gM7/30W9HxM3uYoNSbi4ImqTZ
+FRiRpoWSR7CuSOtttyHshRpocjWr//AQXcD0lKdq1TuSfkyQBX6TwSyLpI5idBVx
+bgtxA+qvFTia1NIFcm+M+SvrWnIl+TlG43IbPgTDZCciECqKT1inA62+tC4T7V2q
+SNfVfdQqe1z6RgRQ5MwOQluM7dvyz/yWk+DbETZUYjQ4jwxgmzuXVjit89Jbi6Bb
+6k6WuHzX1aCGcEDTkSm3ojyt9Yy7zxqSiuQ0e8DYbF/pCsLDpyCaWt8sXVJcukfV
+m+8kKHA4IC/VfynAskEDaJLM4JzMl0tF7zoQCqtwOpiVcK01seqFK6QcgCExqa5g
+eoAmSAC4AcCTY1UikTxW56/bOiXzjzFU6iaLgVn5odFTEcV7nQP2dBHgbbEsPyyG
+kZlxmqZ3izRg0RS0LKydr4wQ05/EavhvE/xzWfdmQnQeiuP43NJvmJzLR5iVQAX7
+6QIDAQABo4G/MIG8MA8GA1UdEwEB/wQFMAMBAf8wXQYIKwYBBQUHAQEEUTBPMCMG
+CCsGAQUFBzABhhdodHRwOi8vb2NzcC5DQWNlcnQub3JnLzAoBggrBgEFBQcwAoYc
+aHR0cDovL3d3dy5DQWNlcnQub3JnL2NhLmNydDBKBgNVHSAEQzBBMD8GCCsGAQQB
+gZBKMDMwMQYIKwYBBQUHAgEWJWh0dHA6Ly93d3cuQ0FjZXJ0Lm9yZy9pbmRleC5w
+aHA/aWQ9MTAwDQYJKoZIhvcNAQEEBQADggIBAH8IiKHaGlBJ2on7oQhy84r3HsQ6
+tHlbIDCxRd7CXdNlafHCXVRUPIVfuXtCkcKZ/RtRm6tGpaEQU55tiKxzbiwzpvD0
+nuB1wT6IRanhZkP+VlrRekF490DaSjrxC1uluxYG5sLnk7mFTZdPsR44Q4Dvmw2M
+77inYACHV30eRBzLI++bPJmdr7UpHEV5FpZNJ23xHGzDwlVks7wU4vOkHx4y/CcV
+Bc/dLq4+gmF78CEQGPZE6lM5+dzQmiDgxrvgu1pPxJnIB721vaLbLmINQjRBvP+L
+ivVRIqqIMADisNS8vmW61QNXeZvo3MhN+FDtkaVSKKKs+zZYPumUK5FQhxvWXtaM
+zPcPEAxSTtAWYeXlCmy/F8dyRlecmPVsYGN6b165Ti/Iubm7aoW8mA3t+T6XhDSU
+rgCvoeXnkm5OvfPi2RSLXNLrAWygF6UtEOucekq9ve7O/e0iQKtwOIj1CodqwqsF
+YMlIBdpTwd5Ed2qz8zw87YC8pjhKKSRf/lk7myV6VmMAZLldpGJ9VzZPrYPvH5JT
+oI53V93lYRE9IwCQTDz6o2CTBKOvNfYOao9PSmCnhQVsRqGP9Md246FZV/dxssRu
+FFxtbUFm3xuTsdQAw+7Lzzw9IYCpX2Nl/N3gX6T0K/CFcUHUZyX7GrGXrtaZghNB
+0m6lG5kngOcLqagA
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDvjCCA3ygAwIBAgIFJQaThoEwCwYHKoZIzjgEAwUAMIGFMQswCQYDVQQGEwJG
+UjEPMA0GA1UECBMGRnJhbmNlMQ4wDAYDVQQHEwVQYXJpczEQMA4GA1UEChMHUE0v
+U0dETjEOMAwGA1UECxMFRENTU0kxDjAMBgNVBAMTBUlHQy9BMSMwIQYJKoZIhvcN
+AQkBFhRpZ2NhQHNnZG4ucG0uZ291di5mcjAeFw0wMjEyMTMxNDM5MTVaFw0yMDEw
+MTcxNDM5MTRaMIGFMQswCQYDVQQGEwJGUjEPMA0GA1UECBMGRnJhbmNlMQ4wDAYD
+VQQHEwVQYXJpczEQMA4GA1UEChMHUE0vU0dETjEOMAwGA1UECxMFRENTU0kxDjAM
+BgNVBAMTBUlHQy9BMSMwIQYJKoZIhvcNAQkBFhRpZ2NhQHNnZG4ucG0uZ291di5m
+cjCCAbYwggErBgcqhkjOOAQBMIIBHgKBgQCFkMImdk9zDzJfTO4XPdAAmLbAdWws
+ZiEMZh19RyTo3CyhFqO77OIXrwY6vc1pcc3MgWJ0dgQpAgrDMtmFFxpUu4gmjVsx
+8GpxQC+4VOgLY8Cvmcd/UDzYg07EIRto8BwCpPJ/JfUxwzV2V3N713aAX+cEoKZ/
+s+kgxC6nZCA7oQIVALME/JYjkdW2uKIGngsEPbXAjdhDAoGADh/uqWJx94UBm31c
+9d8ZTBfRGRnmSSRVFDgPWgA69JD4BR5da8tKz+1HjfMhDXljbMH86ixpD5Ka1Z0V
+pRYUPbyAoB37tsmXMJY7kjyD19d5VdaZboUjVvhH6UJy5lpNNNGSvFl4fqkxyvw+
+pq1QV0N5RcvK120hlXdfHUX+YKYDgYQAAoGAQGr7IuKJcYIvJRMjxwl43KxXY2xC
+aoCiM/bv117MfI94aNf1UusGhp7CbYAY9CXuL60P0oPMAajbaTE5Z34AuITeHq3Y
+CNMHwxalip8BHqSSGmGiQsXeK7T+r1rPXsccZ1c5ikGDZ4xn5gUaCyy2rCmb+fOJ
+6VAfCbAbAjmNKwejdzB1MA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgFGMBUG
+A1UdIAQOMAwwCgYIKoF6AXkBAQEwHQYDVR0OBBYEFPkeNRcUf8idzpKblYbLNxs0
+MQhSMB8GA1UdIwQYMBaAFPkeNRcUf8idzpKblYbLNxs0MQhSMAsGByqGSM44BAMF
+AAMvADAsAhRVh+CJA5eVyEYU5AO9Tm7GxX0rmQIUBCqsU5u1WxoZ5lEXicDX5/Ob
+sRQ=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEAjCCAuqgAwIBAgIFORFFEJQwDQYJKoZIhvcNAQEFBQAwgYUxCzAJBgNVBAYT
+AkZSMQ8wDQYDVQQIEwZGcmFuY2UxDjAMBgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQ
+TS9TR0ROMQ4wDAYDVQQLEwVEQ1NTSTEOMAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG
+9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2LmZyMB4XDTAyMTIxMzE0MjkyM1oXDTIw
+MTAxNzE0MjkyMlowgYUxCzAJBgNVBAYTAkZSMQ8wDQYDVQQIEwZGcmFuY2UxDjAM
+BgNVBAcTBVBhcmlzMRAwDgYDVQQKEwdQTS9TR0ROMQ4wDAYDVQQLEwVEQ1NTSTEO
+MAwGA1UEAxMFSUdDL0ExIzAhBgkqhkiG9w0BCQEWFGlnY2FAc2dkbi5wbS5nb3V2
+LmZyMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsh/R0GLFMzvABIaI
+s9z4iPf930Pfeo2aSVz2TqrMHLmh6yeJ8kbpO0px1R2OLc/mratjUMdUC24SyZA2
+xtgv2pGqaMVy/hcKshd+ebUyiHDKcMCWSo7kVc0dJ5S/znIq7Fz5cyD+vfcuiWe4
+u0dzEvfRNWk68gq5rv9GQkaiv6GFGvm/5P9JhfejcIYyHF2fYPepraX/z9E0+X1b
+F8bc1g4oa8Ld8fUzaJ1O/Id8NhLWo4DoQw1VYZTqZDdH6nfK0LJYBcNdfrGoRpAx
+Vs5wKpayMLh35nnAvSk7/ZR3TL0gzUEl4C7HG7vupARB0l2tEmqKm0f7yd1GQOGd
+PDPQtQIDAQABo3cwdTAPBgNVHRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBRjAVBgNV
+HSAEDjAMMAoGCCqBegF5AQEBMB0GA1UdDgQWBBSjBS8YYFDCiQrdKyFP/45OqDAx
+NjAfBgNVHSMEGDAWgBSjBS8YYFDCiQrdKyFP/45OqDAxNjANBgkqhkiG9w0BAQUF
+AAOCAQEABdwm2Pp3FURo/C9mOnTgXeQp/wYHE4RKq89toB9RlPhJy3Q2FLwV3duJ
+L92PoF189RLrn544pEfMs5bZvpwlqwN+Mw+VgQ39FuCIvjfwbF3QMZsyK10XZZOY
+YLxuj7GoPB7ZHPOpJkL5ZB3C55L29B5aqhlSXa/oovdgoPaN8In1buAKBQGVyYsg
+Crpa/JosPL3Dt8ldeCUFP1YUmwza+zpI/pdpXsoQhvdOlgQITeywvl3cO45Pwf2a
+NjSaTFR+FwNIlQgRHAdvhQh+XU3Endv7rs6y0bO4g2wdsrN58dhwmX7wEwLOXt1R
+0982gaEbeC9xs/FZTEYYKKuF0mBWWg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUF
+ADCBgTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3Rl
+cjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0
+ZWQxJzAlBgNVBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe
+Fw0wNjEyMDEwMDAwMDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJH
+QjEbMBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxm
+b3JkMRowGAYDVQQKExFDT01PRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09N
+T0RPIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF
+AAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3UcEbVASY06m/weaKXTuH+7uIzg3j
+Lz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI2GqGd0S7WWaXUF601CxwRM/a
+N5VCaTwwxHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8Q5sVW7euNJH+1GImGEaa
+P+vB+fGQV+useg2L23IwambV4EajcNxo2f8ESIl33rXp+2dtQem8Ob0y2WIC
+8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA1KGzqSX+DT+nHbrTUcEL
+pNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5OnKVIrLsm
+9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW/zAO
+BgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6g
+PKA6hjhodHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0
+aW9uQXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOCAQEAPpiem/Yb6dc5
+t3iuHXIYSdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CP
+OGEIqB6BCsAvIC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYm
+uNg4ON8qa90SzMc/RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjs
+LjBOlDW0JB9LeGna8gI4zJVSk/BwJVmcIGfE7vmLV2H0knZ9P4SNVbfo5azV
+8fUZVqZa+5Acr5Pr5RzUZ5ddBA6+C4OmF4O5MBKgxTMVBbkN+8cFduPYSo38
+NBejxiEovjBFMR7HeL5YYTisO+IBZQ==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEvTCCA6WgAwIBAgIBADANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJF
+VTEnMCUGA1UEChMeQUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMw
+IQYDVQQLExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEiMCAGA1UEAxMZ
+Q2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdDAeFw0wMzA5MzAxNjEzNDNaFw0z
+NzA5MzAxNjEzNDRaMH8xCzAJBgNVBAYTAkVVMScwJQYDVQQKEx5BQyBDYW1l
+cmZpcm1hIFNBIENJRiBBODI3NDMyODcxIzAhBgNVBAsTGmh0dHA6Ly93d3cu
+Y2hhbWJlcnNpZ24ub3JnMSIwIAYDVQQDExlDaGFtYmVycyBvZiBDb21tZXJj
+ZSBSb290MIIBIDANBgkqhkiG9w0BAQEFAAOCAQ0AMIIBCAKCAQEAtzZV5aVd
+GDDg2olUkfzIx1L4L1DZ77F1c2VHfRtbunXF/KGIJPov7coISjlUxFF6tdpg
+6jg8gbLL8bvZkSM/SAFwdakFKq0fcfPJVD0dBmpAPrMMhe5cG3nCYsS4No41
+XQEMIwRHNaqbYE6gZj3LJgqcQKH0XZi/caulAGgq7YN6D6IUtdQis4CwPAxa
+UWktWBiP7Zme8a7ileb2R6jWDA+wWFjbw2Y3npuRVDM30pQcakjJyfKl2qUM
+I/cjDpwyVV5xnIQFUZot/eZOKjRa3spAN2cMVCFVd9oKDMyXroDclDZK9D7O
+NhMeU+SsTjoF7Nuucpw4i9A5O4kKPnf+dQIBA6OCAUQwggFAMBIGA1UdEwEB
+/wQIMAYBAf8CAQwwPAYDVR0fBDUwMzAxoC+gLYYraHR0cDovL2NybC5jaGFt
+YmVyc2lnbi5vcmcvY2hhbWJlcnNyb290LmNybDAdBgNVHQ4EFgQU45T1sU3p
+26EpW1eLTXYGduHRooowDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQE
+AwIABzAnBgNVHREEIDAegRxjaGFtYmVyc3Jvb3RAY2hhbWJlcnNpZ24ub3Jn
+MCcGA1UdEgQgMB6BHGNoYW1iZXJzcm9vdEBjaGFtYmVyc2lnbi5vcmcwWAYD
+VR0gBFEwTzBNBgsrBgEEAYGHLgoDATA+MDwGCCsGAQUFBwIBFjBodHRwOi8v
+Y3BzLmNoYW1iZXJzaWduLm9yZy9jcHMvY2hhbWJlcnNyb290Lmh0bWwwDQYJ
+KoZIhvcNAQEFBQADggEBAAxBl8IahsAifJ/7kPMa0QOx7xP5IV8EnNrJpY0n
+bJaHkb5BkAFyk+cefV/2icZdp0AJPaxJRUXcLo0waLIJuvvDL8y6C98/d3tG
+fToSJI6WjzwFCm/SlCgdbQzALogi1djPHRPH8EjX1wWnz8dHnjs8NMiAT9QU
+u/wNUPf6s+xCX6ndbcj0dc97wXImsQEcXCz9ek60AcUFV7nnPKoF2YjpB0ZB
+zu9Bga5Y34OirsrXdx/nADydb47kMgkdTXg0eDQ8lJsm7U9xxhl6vSAiSFr+
+S30Dt+dYvsYyTnQeaN2oaFuzPu5ifdmA6Ap1erfutGWaIZDgqtCYvDi1czyL
++Nw=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIExTCCA62gAwIBAgIBADANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJF
+VTEnMCUGA1UEChMeQUMgQ2FtZXJmaXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMw
+IQYDVQQLExpodHRwOi8vd3d3LmNoYW1iZXJzaWduLm9yZzEgMB4GA1UEAxMX
+R2xvYmFsIENoYW1iZXJzaWduIFJvb3QwHhcNMDMwOTMwMTYxNDE4WhcNMzcw
+OTMwMTYxNDE4WjB9MQswCQYDVQQGEwJFVTEnMCUGA1UEChMeQUMgQ2FtZXJm
+aXJtYSBTQSBDSUYgQTgyNzQzMjg3MSMwIQYDVQQLExpodHRwOi8vd3d3LmNo
+YW1iZXJzaWduLm9yZzEgMB4GA1UEAxMXR2xvYmFsIENoYW1iZXJzaWduIFJv
+b3QwggEgMA0GCSqGSIb3DQEBAQUAA4IBDQAwggEIAoIBAQCicKLQn0KuWxfH
+2H3PFIP8T8mhtxOviteePgQKkotgVvq0Mi+ITaFgCPS3CU6gSS9J1tPfnZda
+n5QEcOw/Wdm3zGaLmFIoCQLfxS+EjXqXd7/sQJ0lcqu1PzKY+7e3/HKE5TWH
++VX6ox8Oby4o3Wmg2UIQxvi1RMLQQ3/bvOSiPGpVeAp3qdjqGTK3L/5cPxvu
+sZjsyq16aUXjlg9V9ubtdepl6DJWk0aJqCWKZQbua795B9Dxt6/tLE2Su8Co
+X6dnfQTyFQhwrJLWfQTSM/tMtgsL+xrJxI0DqX5c8lCrEqWhz0hQpe/SyBoT
++rB/sYIcd2oPX9wLlY/vQ37mRQklAgEDo4IBUDCCAUwwEgYDVR0TAQH/BAgw
+BgEB/wIBDDA/BgNVHR8EODA2MDSgMqAwhi5odHRwOi8vY3JsLmNoYW1iZXJz
+aWduLm9yZy9jaGFtYmVyc2lnbnJvb3QuY3JsMB0GA1UdDgQWBBRDnDafsJ4w
+TcbOX60Qq+UDpfqpFDAOBgNVHQ8BAf8EBAMCAQYwEQYJYIZIAYb4QgEBBAQD
+AgAHMCoGA1UdEQQjMCGBH2NoYW1iZXJzaWducm9vdEBjaGFtYmVyc2lnbi5v
+cmcwKgYDVR0SBCMwIYEfY2hhbWJlcnNpZ25yb290QGNoYW1iZXJzaWduLm9y
+ZzBbBgNVHSAEVDBSMFAGCysGAQQBgYcuCgEBMEEwPwYIKwYBBQUHAgEWM2h0
+dHA6Ly9jcHMuY2hhbWJlcnNpZ24ub3JnL2Nwcy9jaGFtYmVyc2lnbnJvb3Qu
+aHRtbDANBgkqhkiG9w0BAQUFAAOCAQEAPDtwkfkEVCeR4e3t/mh/YV3lQWVP
+MvEYBZRqHN4fcNs+ezICNLUMbKGKfKX0j//U2K0X1S0E0T9YgOKBWYi+wONG
+kyT+kL0mojAt6JcmVzWJdJYY9hXiryQZVgICsroPFOrGimbBhkVVi76Svpyk
+BMdJPJ7oKXqJ1/6v/2j1pReQvayZzKWGVwlnRtvWFsJG8eSpUPWP0ZIV018+
+xgBJOm5YstHRJw0lyDL4IBHNfTIzSJRUTN3cecQwn+uOuFW114hcxWokPbLT
+BQNRxgfvzBRydD1ucs4YKIxKoHflCStFREest2d/AYoFWpO+ocH/+OcOZ6RH
+SXZddZAa9SaP8A==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDkjCCAnqgAwIBAgIRAIW9S/PY2uNp9pTXX8OlRCMwDQYJKoZIhvcNAQEF
+BQAwPTELMAkGA1UEBhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRswGQYDVQQD
+ExJDbGFzcyAyIFByaW1hcnkgQ0EwHhcNOTkwNzA3MTcwNTAwWhcNMTkwNzA2
+MjM1OTU5WjA9MQswCQYDVQQGEwJGUjERMA8GA1UEChMIQ2VydHBsdXMxGzAZ
+BgNVBAMTEkNsYXNzIDIgUHJpbWFyeSBDQTCCASIwDQYJKoZIhvcNAQEBBQAD
+ggEPADCCAQoCggEBANxQltAS+DXSCHh6tlJw/W/uz7kRy1134ezpfgSN1sxv
+c0NXYKwzCkTsA18cgCSR5aiRVhKC9+Ar9NuuYS6JEI1rbLqzAr3VNsVINyPi
+8Fo3UjMXEuLRYE2+L0ER4/YXJQyLkcAbmXuZVg2v7tK8R1fjeUl7NIknJITe
+sezpWE7+Tt9avkGtrAjFGA7v0lPubNCdEgETjdyAYveVqUSISnFOYFWe2yMZ
+eVYHDD9jC1yw4r5+FfyUM1hBOHTE4Y+L3yasH7WLO7dDWWuwJKZtkIvEcupd
+M5i3y95ee++U8Rs+yskhwcWYAqqi9lt3m/V+llU0HGdpwPFC40es/CgcZlUC
+AwEAAaOBjDCBiTAPBgNVHRMECDAGAQH/AgEKMAsGA1UdDwQEAwIBBjAdBgNV
+HQ4EFgQU43Mt38sOKAze3bOkynm4jrvoMIkwEQYJYIZIAYb4QgEBBAQDAgEG
+MDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly93d3cuY2VydHBsdXMuY29tL0NS
+TC9jbGFzczIuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQCnVM+IRBnL39R/AN9W
+M2K191EBkOvDP9GIROkkXe/nFL0gt5o8AP5tn9uQ3Nf0YtaLcF3n5QRIqWh8
+yfFC82x/xXp8HVGIutIKPidd3i1RTtMTZGnkLuPT55sJmabglZvOGtd/vjzO
+UrMRFcEPF80Du5wlFbqidon8BvEY0JNLDnyCt6X09l/+7UCmnYR0ObncHoUW
+2ikbhiMAybuJfm6AiB4vFLQDJKgybwOaRywwvlbGp0ICcBvqQNi6BQNwB6SW
+//1IMwrh3KWBkJtN3X3n57LNXMhqlfil9o3EXXgIvnsG1knPGTZQIy4I5p4F
+TUcY1Rbpsda2ENW7l7+ijrRU
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIECTCCAvGgAwIBAgIQDV6ZCtadt3js2AdWO4YV2TANBgkqhkiG9w0BAQUF
+ADBbMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXRGlnaXRhbCBTaWduYXR1cmUg
+VHJ1c3QxETAPBgNVBAsTCERTVCBBQ0VTMRcwFQYDVQQDEw5EU1QgQUNFUyBD
+QSBYNjAeFw0wMzExMjAyMTE5NThaFw0xNzExMjAyMTE5NThaMFsxCzAJBgNV
+BAYTAlVTMSAwHgYDVQQKExdEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdDERMA8G
+A1UECxMIRFNUIEFDRVMxFzAVBgNVBAMTDkRTVCBBQ0VTIENBIFg2MIIBIjAN
+BgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuT31LMmU3HWKlV1j6IR3dma5
+WZFcRt2SPp/5DgO0PWGSvSMmtWPuktKe1jzIDZBfZIGxqAgNTNj50wUoUrQB
+JcWVHAx+PhCEdc/BGZFjz+iokYi5Q1K7gLFViYsx+tC3dr5BPTCapCIlF3Po
+HuLTrCq9Wzgh1SpL11V94zpVvddtawJXa+ZHfAjIgrrep4c9oW24MFbCswKB
+Xy314powGCi4ZtPLAZZv6opFVdbgnf9nKxcCpk4aahELfrd755jWjHZvwTvb
+UJN+5dCOHze4vbrGn2zpfDPyMjwmR/onJALJfh1biEITajV8fTXpLmaRcpPV
+MibEdPVTo7NdmvYJywIDAQABo4HIMIHFMA8GA1UdEwEB/wQFMAMBAf8wDgYD
+VR0PAQH/BAQDAgHGMB8GA1UdEQQYMBaBFHBraS1vcHNAdHJ1c3Rkc3QuY29t
+MGIGA1UdIARbMFkwVwYKYIZIAWUDAgEBATBJMEcGCCsGAQUFBwIBFjtodHRw
+Oi8vd3d3LnRydXN0ZHN0LmNvbS9jZXJ0aWZpY2F0ZXMvcG9saWN5L0FDRVMt
+aW5kZXguaHRtbDAdBgNVHQ4EFgQUCXIGThhDD+XWzMNqizF7eI+og7gwDQYJ
+KoZIhvcNAQEFBQADggEBAKPYjtay284F5zLNAdMEA+V25FYrnJmQ6AgwbN99
+Pe7lv7UkQIRJ4dEorsTCOlMwiPH1d25Ryvr/ma8kXxug/fKshMrfqfBfBC6t
+Fr8hlxCBPeP/h40y3JTlR4peahPJlJU90u7INJXQgNStMgiAVDzgvVJT11J8
+smk/f3rPanTK+gQqnExaBqXpIK1FZg9p8d2/6eMyi/rgwYZNcjwu2JN4Cir4
+2NInPRmJX1p7ijvMDNpRrscL9yuwNwXsvFcj4jjSm2jzVhKIT0J8uDHEtdvk
+yCE06UgRNe76x5JXxZ805Mf29w4LTJxoeHtxMcfrHuBnQfO3oKfN5XozNmr6
+mis=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUF
+ADA/MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAV
+BgNVBAMTDkRTVCBSb290IENBIFgzMB4XDTAwMDkzMDIxMTIxOVoXDTIxMDkz
+MDE0MDExNVowPzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3Qg
+Q28uMRcwFQYDVQQDEw5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEB
+BQADggEPADCCAQoCggEBAN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdA
+wRgUi+DoM3ZJKuM/IUmTrE4Orz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJ
+o6m67XMuegwGMoOifooUMM0RoOEqOLl5CjH9UL2AZd+3UWODyOKIYepLYYHs
+Umu5ouJLGiifSKOeDNoJjj4XLh7dIN9bxiqKqy69cK3FCxolkHRyxXtqqzTW
+MIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw7BZy1SbsOFU5Q9D8/RhcQPGX
+69Wam40dutolucbY38EVAjqr2m7xPi71XAicPNaDaeQQmxkqtilX4+U9m5/w
+Al0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw
+HQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQMA0GCSqGSIb3DQEBBQUA
+A4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69ikugdB/O
+EIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXrAvHR
+AosZy5Q6XkjEGB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZz
+R8srzJmwN0jP41ZL9c8PDHIyh8bwRLtTcm1D9SZImlJnt1ir/md2cXjbDaJW
+FBM5JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubSfZGL+T0yjWW06Xyx
+V3bqxbYoOb8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUF
+ADBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYD
+VQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1
+cmVkIElEIFJvb3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzExMTEwMDAwMDAw
+WjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYD
+VQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1
+cmVkIElEIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB
+AQCtDhXO5EOAXLGH87dg+XESpa7cJpSIqvTO9SA5KFhgDPiA2qkVlTJhPLWx
+KISKityfCgyDF3qPkKyK53lTXDGEKvYPmDI2dsze3Tyoou9q+yHyUmHfnyDX
+H+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+wRvDjDPZ2C8Y/igPs6eD1sNu
+RMBhNZYW/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4VYcgoc/lbQrISXwxmDNs
+IumH0DJaoroTghHtORedmTpyoeb6pNnVFzF1roV9Iq4/AUaG9ih5yLHa5FcX
+xH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whfGHdPAgMBAAGjYzBhMA4G
+A1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRF66Kv
+9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd
+823IDzANBgkqhkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRC
+dWKuh+vy1dneVrOfzM4UKLkNl2BcEkxY5NM9g0lFWJc1aRqoR+pWxnmrEthn
+gYTffwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38FnSbNd67IJKusm7Xi+
+fT8r87cmNW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i
+8b5QZ7dsvfPxH2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwz
+Zr8TDRRu838fYxAe+o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7m
+ULKn+gpFL6Lw8g==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUF
+ADBhMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYD
+VQQLExB3d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9i
+YWwgUm9vdCBDQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGEx
+CzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsT
+EHd3dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBS
+b290IENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLe
+qKTTo1eqUKKPC3eQyaKl7hLOllsBCSDMAZOnTjC3U/dDxGkAV53ijSLdhwZA
+AIEJzs4bg7/fzTtxRuLWZscFs3YnFo97nh6Vfe63SKMI2tavegw5BmV/Sl0f
+vBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt43C/dxC//AH2hdmoRBBYMql1
+GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7PT19sdl6gSzeRntwi5m3O
+FBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4gdW7jVg/tRvoSSii
+cNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAOBgNVHQ8BAf8E
+BAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbRTLtm8KPi
+GxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDQYJ
+KoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr
+hMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV
+5Adg06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBA
+I+0tKIJFPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886
+UAb3LujEV0lsYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDA
+GySj4dzp30d8tbQkCAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWV
+bd4=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUF
+ADBsMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYD
+VQQLExB3d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdo
+IEFzc3VyYW5jZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAwMFoXDTMxMTEx
+MDAwMDAwMFowbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IElu
+YzEZMBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNl
+cnQgSGlnaCBBc3N1cmFuY2UgRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEB
+BQADggEPADCCAQoCggEBAMbM5XPm+9S75S0tMqbf5YE/yc0lSbZxKsPVlDRn
+ogocsF9ppkCxxLeyj9CYpKlBWTrT3JTWPNt0OKRKzE0lgvdKpVMSOO7zSW1x
+kX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEMxChBVfvLWokVfnHoNb9Ncgk9
+vjo4UFt3MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFBIk5lYYeBQVCmeVyJ3hlK
+V9Uu5l0cUyx+mM0aBhakaHPQNAQTXKFx01p8VdteZOE3hzBWBOURtCmAEvF5
+OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUeh10aUAsgEsxBu24LUTi4
+S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8w
+HQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaAFLE+
+w2kD+L9HAdSYJhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3Nec
+nzyIZgYIVyHbIUf4KmeqvxgydkAQV8GK83rZEWWONfqe/EW1ntlMMUu4kehD
+LI6zeM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFpmyPInngiK3BD41VH
+MWEZ71jFhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkK
+mNEVX58Svnw2Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E
+1CAx2/S6cCZdkGCevEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN
+7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UE
+BhMCVVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5l
+bnRydXN0Lm5ldC9DUFMgaXMgaW5jb3Jwb3JhdGVkIGJ5IHJlZmVyZW5jZTEf
+MB0GA1UECxMWKGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsGA1UEAxMkRW50
+cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIw
+MjM0MloXDTI2MTEyNzIwNTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQK
+Ew1FbnRydXN0LCBJbmMuMTkwNwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BT
+IGlzIGluY29ycG9yYXRlZCBieSByZWZlcmVuY2UxHzAdBgNVBAsTFihjKSAy
+MDA2IEVudHJ1c3QsIEluYy4xLTArBgNVBAMTJEVudHJ1c3QgUm9vdCBDZXJ0
+aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
+AQoCggEBALaVtkNC+sZtKm9I35RMOVcF7sN5EUFoNu3s/poBj6E4KPz3EEZm
+Lk0eGrEaTsbRwJWIsMn/MYszA9u3g3s+IIRe7bJWKKf44LlAcTfFy0cOlypo
+wCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOwwCj0Yzfv9KlmaI5UXLEWe
+H25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGIrb68j6xS
+lkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi94Dk
+Zfs0Nw4pgHBNrziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOB
+sDCBrTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zArBgNVHRAE
+JDAigA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1MzQyWjAfBgNVHSME
+GDAWgBRokORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DH
+hmak8fdLQ/uEvW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0G
+CSqGSIb3DQEBBQUAA4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW
++1RaGSwMCPeyvIWonX9tO1KzKtvn1ISMY/YPyyYBkVBs9F8U4pN0wBOeMDpQ
+47RgxRzwIkSNcUesyBrJ6ZuaAGAT/3B+XxFNSRuzFVJ7yVTav52Vr2ua2J7p
+8eRDjeIRRDq/r72DQnNSi6q7pynP9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE
+2jTSW3iDVuycNsMm4hH2Z0kdkquM++v/eu6FSqdQgPCnXEqULl8FmTxSQeDN
+tGPPAUO6nIPcj2A781q0tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/
+WrQ8
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEVzCCAz+gAwIBAgIBATANBgkqhkiG9w0BAQUFADCBnTELMAkGA1UEBhMC
+RVMxIjAgBgNVBAcTGUMvIE11bnRhbmVyIDI0NCBCYXJjZWxvbmExQjBABgNV
+BAMTOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9u
+YWwgQ0lGIEE2MjYzNDA2ODEmMCQGCSqGSIb3DQEJARYXY2FAZmlybWFwcm9m
+ZXNpb25hbC5jb20wHhcNMDExMDI0MjIwMDAwWhcNMTMxMDI0MjIwMDAwWjCB
+nTELMAkGA1UEBhMCRVMxIjAgBgNVBAcTGUMvIE11bnRhbmVyIDI0NCBCYXJj
+ZWxvbmExQjBABgNVBAMTOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZp
+cm1hcHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2ODEmMCQGCSqGSIb3DQEJARYX
+Y2FAZmlybWFwcm9mZXNpb25hbC5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IB
+DwAwggEKAoIBAQDnIwNvbyOlXnjOlSztlB5uCp4Bx+ow0Syd3Tfom5h5VtP8
+c9/Qit5Vj1H5WuretXDE7aTt/6MNbg9kUDGvASdYrv5sp0ovFy3Tc9UTHI9Z
+pTQsHVQERc1ouKDAA6XPhUJHlShbz++AbOCQl4oBPB3zhxAwJkh91/zpnZFx
+/0GaqUC1N5wpIE8fUuOgfRNtVLcK3ulqTgesrBlf3H5idPayBQC6haD9HThu
+y1q7hryUZzM1gywfI834yJFxzJeL764P3CkDG8A563DtwW4O2GcLiam8NeTv
+tjS0pbbELaW+0MOUJEjb35bTALVmGotmBQ/dPz/LP6pemkr4tErvlTcbAgMB
+AAGjgZ8wgZwwKgYDVR0RBCMwIYYfaHR0cDovL3d3dy5maXJtYXByb2Zlc2lv
+bmFsLmNvbTASBgNVHRMBAf8ECDAGAQH/AgEBMCsGA1UdEAQkMCKADzIwMDEx
+MDI0MjIwMDAwWoEPMjAxMzEwMjQyMjAwMDBaMA4GA1UdDwEB/wQEAwIBBjAd
+BgNVHQ4EFgQUMwugZtHq2s7eYpMEKFK1FH84aLcwDQYJKoZIhvcNAQEFBQAD
+ggEBAEdz/o0nVPD11HecJ3lXV7cVVuzH2Fi3AQL0M+2TUIiefEaxvT8Ub/Gz
+R0iLjJcG1+p+o1wqu00vR+L4OQbJnC4xGgN49Lw4xiKLMzHwFgQEffl25EvX
+wOaD7FnMP97/T2u3Z36mhoEyIwOdyPdfwUpgpZKpsaSgYMN4h7Mi8yrrW6nt
+Bas3D7Hi05V2Y1Z0jFhyGzflZKG+TQyTmAyX9odtsz/ny4Cm7YjHX1BiAuiZ
+dBbQ5rQ58SfLyEDW44YQqSMSkuBpQWOnryULwMWSyx6Yo1q6xTMPoJcB3X/g
+e9YGVM+h4k0460tQtcsm9MracEpqoeJ5quGnM/b9Sh/22WA=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDZjCCAk6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBEMQswCQYDVQQGEwJV
+UzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UEAxMUR2VvVHJ1c3Qg
+R2xvYmFsIENBIDIwHhcNMDQwMzA0MDUwMDAwWhcNMTkwMzA0MDUwMDAwWjBE
+MQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEdMBsGA1UE
+AxMUR2VvVHJ1c3QgR2xvYmFsIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IB
+DwAwggEKAoIBAQDvPE1APRDfO1MA4Wf+lGAVPoWI8YkNkMgoI5kF6Csgncbz
+YEbYwbLVjDHZ3CB5JIG/NTL8Y2nbsSpr7iFY8gjpeMtvy/wWUsiRxP89c96x
+PqfCfWbB9X5SJBri1WeR0IIQ13hLTytCOb1kLUCgsBDTOEhGiKEMuzozKmKY
++wCdE1l/bztyqu6mD4b5BWHqZ38MN5aL5mkWRxHCJ1kDs6ZgwiFAVvqgx306
+E+PsV8ez1q6diYD3Aecs9pYrEw15LNnA5IZ7S4wMcoKK+xfNAGw6EzywhIdL
+Fnopsk/bHdQL82Y3vdj2V7teJHq4PIu5+pIaGoSe2HSPqht/XvT+RSIhAgMB
+AAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFHE4NvICMVNHK266
+ZUapEBVYIAUJMB8GA1UdIwQYMBaAFHE4NvICMVNHK266ZUapEBVYIAUJMA4G
+A1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQUFAAOCAQEAA/e1K6tdEPx7srJe
+rJsOflN4WT5CBP51o62sgU7XAotexC3IUnbHLB/8gTKY0UvGkpMzNTEv/Ngd
+RN3ggX+d6YvhZJFiCzkIjKx0nVnZellSlxG5FntvRdOW2TF9AjYPnDtuzywN
+A0ZF66D0f0hExghAzN4bcLUprbqLOzRldRtxIR0sFAqwlpW41uryZfspuk/q
+kZN0abby/+Ea0AzRdoXLiiW9l14sbxWZJue2Kf8i7MkCx1YAzUm5s2x7UwQa
+4qjJqhIFI8LO57sEAszAR6LkxCkvW0VXiVHuPOtSCP8HNR6fNWpHSlaY0VqF
+H4z1Ir+rzoPz4iIprn2DQKi6bA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUF
+ADBYMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8G
+A1UEAxMoR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0
+eTAeFw0wNjExMjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgxCzAJBgNVBAYT
+AlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVz
+dCBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG
+9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHW
+AVlqnEQRr+92/ZV+zmEwu3qDXwK9AWbK7hWNb6EwnL2hhZ6UOvNWiAAxz9ju
+apYC2e0DjPt1befquFUWBRaa9OBesYjAZIVcFU2Ix7e64HXprQU9nceJSOC7
+KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE07e9GceBrAqg1cmuXm2bgyxx5
+X9gaBGgeRwLmnWDiNpcB3841kt++Z8dtd1k7j53WkBWUvEI0EME5+bEnPn7W
+inXFsq+W06Lem+SYvn3h6YGttm/81w7a4DSwDRp35+MImO9Y+pyEtzavwt+s
+0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQE
+AwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJKoZIhvcN
+AQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ16CeP
+bJC/kRYkRj5KTs4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl
+4b7UVXGYNTq+k+qurUKykG/g/CFNNWMziUnWm07Kx+dOCQD32sfvmWKZd7aV
+Il6KoKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHaFloxt/m0cYASSJly
+c1pZU8FjUjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG
+1riR/aYNKxoUAT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJV
+UzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3Qg
+VW5pdmVyc2FsIENBMB4XDTA0MDMwNDA1MDAwMFoXDTI5MDMwNDA1MDAwMFow
+RTELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xHjAcBgNV
+BAMTFUdlb1RydXN0IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQAD
+ggIPADCCAgoCggIBAKYVVaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckU
+HUWCq8YdgNY96xCcOq9tJPi8cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430
+SppyZj6tlcDgFgDgEB8rMQ7XlFTTQjOgNB0eRXbdT8oYN+yFFXoZCPzVx5zw
+8qkuEKmS5j1YPakWaDwvdSEYfyh3peFhF7em6fgemdtzbvQKoiFs7tqqhZJm
+r/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2vc7J2Ha3QsnhnGqQ5HFELZ1aD
+/ThdDc7d8Lsrlh/eezJS/R27tQahsiFepdaVaH/wmZ7cRQg+59IJDTWU3YBO
+U5fXtQlEIGQWFwMCTFMNaN7VqnJNk22CDtucvc+081xdVHppCZbW2xHBjXWo
+tM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3CgaRr0BHdCXteGYO8A3ZNY9
+lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZf9hBZ3Ki
+KN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfReBi9F
+i1jUIxaS5BZuKGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+
+nhutxx9z3SxPGWX9f5NAEC7S8O08ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1Ud
+EwEB/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0XG0D08DYj3rWMB8G
+A1UdIwQYMBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIB
+hjANBgkqhkiG9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIaw
+C/yOsjmPRFWrZIRcaanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv
+9z+ZhP015s8xxtxqv6fXIwjhmF7DWgh2qaavdy+3YL1ERmrvl/9zlcGO6JP7
+/TG37FcREUWbMPEaiDnBTzynANXH/KttgCJwpQzgXQQpAvvLoJHRfNbDflDV
+nVi+QTjruXU8FdmbyUqDWcDaU/0zuzYYm4UPFd3uLax2k7nZAY1IEKj79TiG
+8dsKxr2EoyNB3tZ3b4XUhRxQ4K5RirqNPnbiucon8l+f725ZDQbYKxek0nxr
+u18UGkiPGkzns0ccjkxFKyDuSN/n3QmOGKjaQI2SJhFTYXNd673nxE0pN2Hr
+rDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2DFKWkoRepqO1pD4r2czYG0eq
+8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9ER/frslKxfMnZmaG
+rGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQtDF4JbAiXfKM9
+fJP/P6EUp8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/SfuvmbJxPgWp6
+ZKy7PtXny3YuxadIwVyQD8vIP/rmMuGNG2+k5o7Y+SlIis5z/iw=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJV
+UzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3Qg
+VW5pdmVyc2FsIENBIDIwHhcNMDQwMzA0MDUwMDAwWhcNMjkwMzA0MDUwMDAw
+WjBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEgMB4G
+A1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEB
+AQUAA4ICDwAwggIKAoICAQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6Gq
+dHtXr0om/Nj1XqduGdt0DE81WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQw
+Ax5cTiuFJnSCegx2oG9NzkEtoBUGFF+3Qs17j1hhNNwqCPkuwwGmIkQcTAeC
+5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdqXbboW0W63MOhBW9Wjo8QJqVJwy7X
+QYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxLse4YuU6W3Nx2/zu+z18DwPw7
+6L5GG//aQMJS9/7jOvdqdzXQ2o3rXhhqMcceujwbKNZrVMaqW9eiLBsZzKIC
+9ptZvTdrhrVtgrrY6slWvKk2WP0+GfPtDCapkzj4T8FdIgbQl+rhrcZV4IEr
+KIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP20gaXT73y/Zl92zxlfgC
+OzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRthAAnZqzw
+cEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgocQIgf
+ksILAAX/8sgCSqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4
+Lt1ZrtmhN79UNdxzMk+MBB4zsslG8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAP
+BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2+/CfXGJx7Tz0RzgQ
+KzAfBgNVHSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8E
+BAMCAYYwDQYJKoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7
+WJtAJDday6sWSf+zdXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4s
+NcZj/NwQ6w2jqtB8zNHQL1EuxBRa3ugZ4T7GzKQp5y6EqgYweHZUcyiYWTjg
+AA1i00J9IZ+uPTqM1fp3DRgrFg5fNuH8KrUwJM/gYwx7WBr+mbpCErGR9Hxo
+4sjoryzqyX6uuyo9DRXcNJW2GHSoag/HtPQTxORb7QrSpJdMKu0vbBKJPfEn
+cKpqA1Ihn0CoZ1Dy81of398j9tx4TuaYT1U6U+Pv8vSfx3zYWK8pIpe44L2R
+LrB27FcRz+8pRPPphXpgY+RdM4kX2TGq2tbzGDVyz4crL2MjhF2EjD9XoIj8
+mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiPpm8m1wk8OhwRDqZsN/etRIcs
+KMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJVOCiNUW7dFGdTbHFc
+JoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH6aLcr34YEoP9
+VhdBLtUpgn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwXQMAJKOSL
+akhT2+zNVVXxxvjpoixMptEmX36vWkzaH6byHCx+rgIW0lbQL1dTR+iS
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEg
+MB4GA1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkds
+b2JhbFNpZ24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDYxMjE1MDgwMDAw
+WhcNMjExMjE1MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3Qg
+Q0EgLSBSMjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFs
+U2lnbjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8o
+mUVCxKs+IVSbC9N/hHD6ErPLv4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe
++3t+c4isUoh7SqbKSaZeqKeMWhG8eoLrvozps6yWJQeXSpkqBy+0Hne/ig+1
+AnwblrjFuTosvNYSuetZfeLQBoZfXklqtTleiDTsvHgMCJiEbKjNS7SgfQx5
+TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzdC9XZzPnqJworc5HGnRusyMvo
+4KD0L5CLTfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pazq+r1feqCapgvdzZX99y
+qWATXgAByUr6P6TqBwMhAo6CygPCm48CAwEAAaOBnDCBmTAOBgNVHQ8BAf8E
+BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUm+IHV2ccHsBqBt5Z
+tJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5nbG9iYWxz
+aWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG3lm0
+mi3f3BmGLjANBgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4Gs
+J0/WwbgcQ3izDJr86iw8bmEbTUsp9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4
+h4hO291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu01yiPqFbQfXf5WRD
+LenVOavSot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG7
+9G+dwfCMNYxdAfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmg
+QWpzU/qlULRuJQ/7TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq
+/H5COEBkEveegeGTLg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJV
+UzEhMB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQL
+EyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4X
+DTA0MDYyOTE3MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkGA1UEBhMCVVMx
+ITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMo
+R28gRGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAw
+DQYJKoZIhvcNAQEBBQADggENADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d
+/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv2vLM0D9/AlQiVBDYsoHUwHU9
+S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+qN1j3hybX2C32qRe3H3I2
+TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiOr18SPaAIBQi2XKVl
+OARFmR6jYGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lNf4DD+qta/KFA
+pMoZFv6yyO9ecw3ud72a9nmYvLEHZ6IVDd2gWMZEewo+YihfukEHU1jPEX44
+dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0OBBYEFNLEsNKR1EwRcbNh
+yz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h/t2oatTj
+oWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5IEdy
+b3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmlj
+YXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEF
+BQADggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wimPQoZ+YeAEW5p5JYX
+MP80kWNyOO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKt
+I3lpjbi2Tc7PTMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheab
+IZ0KbIIOqPjCDPoQHmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzr
+Tia2cyvk0/ZM/iZx4mERdEr/VxqHD3VILs9RaRegAhJhldXRQLIQTO7ErBBD
+pqWeCtWVYpoNz4iCxTIM5CufReYNnyicsbkqWletNw+vHX/bvZ8=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFSzCCBLSgAwIBAgIBaTANBgkqhkiG9w0BAQQFADCBmTELMAkGA1UEBhMC
+SFUxETAPBgNVBAcTCEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96
+YXRiaXp0b25zYWdpIEtmdC4xGjAYBgNVBAsTEVRhbnVzaXR2YW55a2lhZG9r
+MTIwMAYDVQQDEylOZXRMb2NrIFV6bGV0aSAoQ2xhc3MgQikgVGFudXNpdHZh
+bnlraWFkbzAeFw05OTAyMjUxNDEwMjJaFw0xOTAyMjAxNDEwMjJaMIGZMQsw
+CQYDVQQGEwJIVTERMA8GA1UEBxMIQnVkYXBlc3QxJzAlBgNVBAoTHk5ldExv
+Y2sgSGFsb3phdGJpenRvbnNhZ2kgS2Z0LjEaMBgGA1UECxMRVGFudXNpdHZh
+bnlraWFkb2sxMjAwBgNVBAMTKU5ldExvY2sgVXpsZXRpIChDbGFzcyBCKSBU
+YW51c2l0dmFueWtpYWRvMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCx
+6gTsIKAjwo84YM/HRrPVG/77uZmeBNwcf4xKgZjupNTKihe5In+DCnVMm8Bp
+2GQ5o+2So/1bXHQawEfKOml2mrriRBf8TKPV/riXiK+IA4kfpPIEPsgHC+b5
+sy96YhQJRhTKZPWLgLViqNhr1nGTLbO/CVRY7QbrqHvcQ7GhaQIDAQABo4IC
+nzCCApswEgYDVR0TAQH/BAgwBgEB/wIBBDAOBgNVHQ8BAf8EBAMCAAYwEQYJ
+YIZIAYb4QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaCAk1GSUdZRUxF
+TSEgRXplbiB0YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3Mg
+U3pvbGdhbHRhdGFzaSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBh
+bGFwamFuIGtlc3p1bHQuIEEgaGl0ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5l
+dExvY2sgS2Z0LiB0ZXJtZWtmZWxlbG9zc2VnLWJpenRvc2l0YXNhIHZlZGku
+IEEgZGlnaXRhbGlzIGFsYWlyYXMgZWxmb2dhZGFzYW5hayBmZWx0ZXRlbGUg
+YXogZWxvaXJ0IGVsbGVub3J6ZXNpIGVsamFyYXMgbWVndGV0ZWxlLiBBeiBl
+bGphcmFzIGxlaXJhc2EgbWVndGFsYWxoYXRvIGEgTmV0TG9jayBLZnQuIElu
+dGVybmV0IGhvbmxhcGphbiBhIGh0dHBzOi8vd3d3Lm5ldGxvY2submV0L2Rv
+Y3MgY2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVub3J6ZXNAbmV0bG9jay5u
+ZXQgZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1YW5jZSBhbmQg
+dGhlIHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3QgdG8gdGhl
+IE5ldExvY2sgQ1BTIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRsb2Nr
+Lm5ldC9kb2NzIG9yIGJ5IGUtbWFpbCBhdCBjcHNAbmV0bG9jay5uZXQuMA0G
+CSqGSIb3DQEBBAUAA4GBAATbrowXr/gOkDFOzT4JwG06sPgzTEdM43WIEJes
+sDgVkcYplswhwG08pXTP2IKlOcNl40JwuyKQ433bNXbhoLXan3BukxowOR0w
+2y7jfLKRstE3Kfq51hdcR0/jHTjrn9V7lagonhVK0dHQKwCXoOKSNitjrFgB
+azMpUIaD8QFI
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFTzCCBLigAwIBAgIBaDANBgkqhkiG9w0BAQQFADCBmzELMAkGA1UEBhMC
+SFUxETAPBgNVBAcTCEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96
+YXRiaXp0b25zYWdpIEtmdC4xGjAYBgNVBAsTEVRhbnVzaXR2YW55a2lhZG9r
+MTQwMgYDVQQDEytOZXRMb2NrIEV4cHJlc3N6IChDbGFzcyBDKSBUYW51c2l0
+dmFueWtpYWRvMB4XDTk5MDIyNTE0MDgxMVoXDTE5MDIyMDE0MDgxMVowgZsx
+CzAJBgNVBAYTAkhVMREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0
+TG9jayBIYWxvemF0Yml6dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0
+dmFueWtpYWRvazE0MDIGA1UEAxMrTmV0TG9jayBFeHByZXNzeiAoQ2xhc3Mg
+QykgVGFudXNpdHZhbnlraWFkbzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkC
+gYEA6+ywbGGKIyWvYCDj2Z/8kwvbXY2wobNAOoLO/XXgeDIDhlqGlZHtU/qd
+QPzm6N3ZW3oDvV3zOwzDUXmbrVWg6dADEK8KuhRC2VImESLH0iDMgqSaqf64
+gXadarfSNnU+sYYJ9m5tfk63euyucYT2BDMIJTLrdKwWRMbkQJMdf60CAwEA
+AaOCAp8wggKbMBIGA1UdEwEB/wQIMAYBAf8CAQQwDgYDVR0PAQH/BAQDAgAG
+MBEGCWCGSAGG+EIBAQQEAwIABzCCAmAGCWCGSAGG+EIBDQSCAlEWggJNRklH
+WUVMRU0hIEV6ZW4gdGFudXNpdHZhbnkgYSBOZXRMb2NrIEtmdC4gQWx0YWxh
+bm9zIFN6b2xnYWx0YXRhc2kgRmVsdGV0ZWxlaWJlbiBsZWlydCBlbGphcmFz
+b2sgYWxhcGphbiBrZXN6dWx0LiBBIGhpdGVsZXNpdGVzIGZvbHlhbWF0YXQg
+YSBOZXRMb2NrIEtmdC4gdGVybWVrZmVsZWxvc3NlZy1iaXp0b3NpdGFzYSB2
+ZWRpLiBBIGRpZ2l0YWxpcyBhbGFpcmFzIGVsZm9nYWRhc2FuYWsgZmVsdGV0
+ZWxlIGF6IGVsb2lydCBlbGxlbm9yemVzaSBlbGphcmFzIG1lZ3RldGVsZS4g
+QXogZWxqYXJhcyBsZWlyYXNhIG1lZ3RhbGFsaGF0byBhIE5ldExvY2sgS2Z0
+LiBJbnRlcm5ldCBob25sYXBqYW4gYSBodHRwczovL3d3dy5uZXRsb2NrLm5l
+dC9kb2NzIGNpbWVuIHZhZ3kga2VyaGV0byBheiBlbGxlbm9yemVzQG5ldGxv
+Y2submV0IGUtbWFpbCBjaW1lbi4gSU1QT1JUQU5UISBUaGUgaXNzdWFuY2Ug
+YW5kIHRoZSB1c2Ugb2YgdGhpcyBjZXJ0aWZpY2F0ZSBpcyBzdWJqZWN0IHRv
+IHRoZSBOZXRMb2NrIENQUyBhdmFpbGFibGUgYXQgaHR0cHM6Ly93d3cubmV0
+bG9jay5uZXQvZG9jcyBvciBieSBlLW1haWwgYXQgY3BzQG5ldGxvY2submV0
+LjANBgkqhkiG9w0BAQQFAAOBgQAQrX/XDDKACtiG8XmYta3UzbM2xJZIwVzN
+mtkFLp++UOv0JhQQLdRmF/iewSf98e3ke0ugbLWrmldwpu2gpO0u9f38vf5N
+NwgMvOOWgyL1SRt/Syu0VMGAfJlOHdCM7tCs5ZL6dVb+ZKATj7i4Fp1hBWeA
+yNDYpQcCNJgEjTME1A==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGfTCCBWWgAwIBAgICAQMwDQYJKoZIhvcNAQEEBQAwga8xCzAJBgNVBAYT
+AkhVMRAwDgYDVQQIEwdIdW5nYXJ5MREwDwYDVQQHEwhCdWRhcGVzdDEnMCUG
+A1UEChMeTmV0TG9jayBIYWxvemF0Yml6dG9uc2FnaSBLZnQuMRowGAYDVQQL
+ExFUYW51c2l0dmFueWtpYWRvazE2MDQGA1UEAxMtTmV0TG9jayBLb3pqZWd5
+em9pIChDbGFzcyBBKSBUYW51c2l0dmFueWtpYWRvMB4XDTk5MDIyNDIzMTQ0
+N1oXDTE5MDIxOTIzMTQ0N1owga8xCzAJBgNVBAYTAkhVMRAwDgYDVQQIEwdI
+dW5nYXJ5MREwDwYDVQQHEwhCdWRhcGVzdDEnMCUGA1UEChMeTmV0TG9jayBI
+YWxvemF0Yml6dG9uc2FnaSBLZnQuMRowGAYDVQQLExFUYW51c2l0dmFueWtp
+YWRvazE2MDQGA1UEAxMtTmV0TG9jayBLb3pqZWd5em9pIChDbGFzcyBBKSBU
+YW51c2l0dmFueWtpYWRvMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC
+AQEAvHSMD7tM9DceqQWC2ObhbHDqeLVu0ThEDaiDzl3S1tWBxdRL51uUcCbb
+O51qTGL3cfNk1mE7PetzozfZz+qMkjvN9wfcZnSX9EUi3fRc4L9t875lM+QV
+Or/bmJBVOMTtplVjC7B4BPTjbsE/jvxReB+SnoPC/tmwqcm8WgD/qaiYdPv2
+LD4VOQ22BFWoDpggQrOxJa1+mm9dU7GrDPzr4PN6s6iz/0b2Y6LYOph7tqyF
+/7AlT3Rj5xMHpQqPBffAZG9+pyeAlt7ULoZgx2srXnN7F+eRP2QM2EsiNCub
+MvJIH5+hCoR64sKtlz2O1cH5VqNQ6ca0+pii7pXmKgOM3wIDAQABo4ICnzCC
+ApswDgYDVR0PAQH/BAQDAgAGMBIGA1UdEwEB/wQIMAYBAf8CAQQwEQYJYIZI
+AYb4QgEBBAQDAgAHMIICYAYJYIZIAYb4QgENBIICURaCAk1GSUdZRUxFTSEg
+RXplbiB0YW51c2l0dmFueSBhIE5ldExvY2sgS2Z0LiBBbHRhbGFub3MgU3pv
+bGdhbHRhdGFzaSBGZWx0ZXRlbGVpYmVuIGxlaXJ0IGVsamFyYXNvayBhbGFw
+amFuIGtlc3p1bHQuIEEgaGl0ZWxlc2l0ZXMgZm9seWFtYXRhdCBhIE5ldExv
+Y2sgS2Z0LiB0ZXJtZWtmZWxlbG9zc2VnLWJpenRvc2l0YXNhIHZlZGkuIEEg
+ZGlnaXRhbGlzIGFsYWlyYXMgZWxmb2dhZGFzYW5hayBmZWx0ZXRlbGUgYXog
+ZWxvaXJ0IGVsbGVub3J6ZXNpIGVsamFyYXMgbWVndGV0ZWxlLiBBeiBlbGph
+cmFzIGxlaXJhc2EgbWVndGFsYWxoYXRvIGEgTmV0TG9jayBLZnQuIEludGVy
+bmV0IGhvbmxhcGphbiBhIGh0dHBzOi8vd3d3Lm5ldGxvY2submV0L2RvY3Mg
+Y2ltZW4gdmFneSBrZXJoZXRvIGF6IGVsbGVub3J6ZXNAbmV0bG9jay5uZXQg
+ZS1tYWlsIGNpbWVuLiBJTVBPUlRBTlQhIFRoZSBpc3N1YW5jZSBhbmQgdGhl
+IHVzZSBvZiB0aGlzIGNlcnRpZmljYXRlIGlzIHN1YmplY3QgdG8gdGhlIE5l
+dExvY2sgQ1BTIGF2YWlsYWJsZSBhdCBodHRwczovL3d3dy5uZXRsb2NrLm5l
+dC9kb2NzIG9yIGJ5IGUtbWFpbCBhdCBjcHNAbmV0bG9jay5uZXQuMA0GCSqG
+SIb3DQEBBAUAA4IBAQBIJEb3ulZv+sgoA0BO5TE5ayZrU3/b39/zcT0mwBQO
+xmd7I6gMc90Bu8bKbjc5VdXHjFYgDigKDtIqpLBJUsY4B/6+CgmM0ZjPytoU
+MaFP0jn8DxEsQ8Pdq5PHVT5HfBgaANzze9jyf1JsIPQLX2lS9O74silg6+NJ
+MSEN1rUQQeJBCWziGppWS3cC9qCbmieH6FUpccKQn0V4GuEVZD3QDtigdp+u
+xdAu6tYPVuxkf1qbFFgBJ34TUMdrKuZoPL9coAob4Q566eKAw+np9v1sEZ7Q
+5SgnK1QyQhSCdeZK8CtmdWOMovsEPoMOmzbwGOQmIMOM8CgHrTwXZoi1/baI
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIG0TCCBbmgAwIBAgIBezANBgkqhkiG9w0BAQUFADCByTELMAkGA1UEBhMC
+SFUxETAPBgNVBAcTCEJ1ZGFwZXN0MScwJQYDVQQKEx5OZXRMb2NrIEhhbG96
+YXRiaXp0b25zYWdpIEtmdC4xGjAYBgNVBAsTEVRhbnVzaXR2YW55a2lhZG9r
+MUIwQAYDVQQDEzlOZXRMb2NrIE1pbm9zaXRldHQgS296amVneXpvaSAoQ2xh
+c3MgUUEpIFRhbnVzaXR2YW55a2lhZG8xHjAcBgkqhkiG9w0BCQEWD2luZm9A
+bmV0bG9jay5odTAeFw0wMzAzMzAwMTQ3MTFaFw0yMjEyMTUwMTQ3MTFaMIHJ
+MQswCQYDVQQGEwJIVTERMA8GA1UEBxMIQnVkYXBlc3QxJzAlBgNVBAoTHk5l
+dExvY2sgSGFsb3phdGJpenRvbnNhZ2kgS2Z0LjEaMBgGA1UECxMRVGFudXNp
+dHZhbnlraWFkb2sxQjBABgNVBAMTOU5ldExvY2sgTWlub3NpdGV0dCBLb3pq
+ZWd5em9pIChDbGFzcyBRQSkgVGFudXNpdHZhbnlraWFkbzEeMBwGCSqGSIb3
+DQEJARYPaW5mb0BuZXRsb2NrLmh1MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A
+MIIBCgKCAQEAx1Ilstg91IRVCacbvWy5FPSKAtt2/GoqeKvld/Bu4IwjZ9ul
+ZJm53QE+b+8tmjwi8F3JV6BVQX/yQ15YglMxZc4e8ia6AFQer7C8HORSjKAy
+r7c3sVNnaHRnUPYtLmTeriZ539+Zhqurf4XsoPuAzPS4DB6TRWO53Lhbm+1b
+OdRfYrCnjnxmOCyqsQhjF2d9zL2z8cM/z1A57dEZgxXbhxInlrfa6uWdvLrq
+OU+L73Sa58XQ0uqGURzk/mQIKAR5BevKxXEOC++r6uwSEaEYBTJp0QwsGj0l
+mT+1fMptsK6ZmfoIYOcZwvK9UdPM0wKswREMgM6r3JSda6M5UzrWhQIDAMV9
+o4ICwDCCArwwEgYDVR0TAQH/BAgwBgEB/wIBBDAOBgNVHQ8BAf8EBAMCAQYw
+ggJ1BglghkgBhvhCAQ0EggJmFoICYkZJR1lFTEVNISBFemVuIHRhbnVzaXR2
+YW55IGEgTmV0TG9jayBLZnQuIE1pbm9zaXRldHQgU3pvbGdhbHRhdGFzaSBT
+emFiYWx5emF0YWJhbiBsZWlydCBlbGphcmFzb2sgYWxhcGphbiBrZXN6dWx0
+LiBBIG1pbm9zaXRldHQgZWxla3Ryb25pa3VzIGFsYWlyYXMgam9naGF0YXMg
+ZXJ2ZW55ZXN1bGVzZW5laywgdmFsYW1pbnQgZWxmb2dhZGFzYW5hayBmZWx0
+ZXRlbGUgYSBNaW5vc2l0ZXR0IFN6b2xnYWx0YXRhc2kgU3phYmFseXphdGJh
+biwgYXogQWx0YWxhbm9zIFN6ZXJ6b2Rlc2kgRmVsdGV0ZWxla2JlbiBlbG9p
+cnQgZWxsZW5vcnplc2kgZWxqYXJhcyBtZWd0ZXRlbGUuIEEgZG9rdW1lbnR1
+bW9rIG1lZ3RhbGFsaGF0b2sgYSBodHRwczovL3d3dy5uZXRsb2NrLmh1L2Rv
+Y3MvIGNpbWVuIHZhZ3kga2VyaGV0b2sgYXogaW5mb0BuZXRsb2NrLm5ldCBl
+LW1haWwgY2ltZW4uIFdBUk5JTkchIFRoZSBpc3N1YW5jZSBhbmQgdGhlIHVz
+ZSBvZiB0aGlzIGNlcnRpZmljYXRlIGFyZSBzdWJqZWN0IHRvIHRoZSBOZXRM
+b2NrIFF1YWxpZmllZCBDUFMgYXZhaWxhYmxlIGF0IGh0dHBzOi8vd3d3Lm5l
+dGxvY2suaHUvZG9jcy8gb3IgYnkgZS1tYWlsIGF0IGluZm9AbmV0bG9jay5u
+ZXQwHQYDVR0OBBYEFAlqYhaSsFq7VQ7LdTI6MuWyIckoMA0GCSqGSIb3DQEB
+BQUAA4IBAQCRalCc23iBmz+LQuM7/KbD7kPgz/PigDVJRXYC4uMvBcXxKufA
+QTPGtpvQMznNwNuhrWw3AkxYQTvyl5LGSKjN5Yo5iWH5Upfpvfb5lHTocQ68
+d4bDBsxafEp+NFAwLvt/MpqNPfMgW/hqyobzMUwsWYACff44yTB1HLdV47yf
+uqhthCgFdbOLDcCRVCHnpgu0mfVRQdzNo0ci2ccBgcTcR08m6h/t280NmPSj
+nLRzMkqWmf68f8glWPhY83ZmiVSkpj7EUFy6iRiCdUgh0k8T6GB+B3bbELVR
+5qq5aKrN9p2QdRLqOBrKROi3macqaJVmlaut74nLYKkGEsaUR+ko
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFtzCCA5+gAwIBAgICBQkwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMC
+Qk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1Zh
+ZGlzIFJvb3QgQ0EgMjAeFw0wNjExMjQxODI3MDBaFw0zMTExMjQxODIzMzNa
+MEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMRsw
+GQYDVQQDExJRdW9WYWRpcyBSb290IENBIDIwggIiMA0GCSqGSIb3DQEBAQUA
+A4ICDwAwggIKAoICAQCaGMpLlA0ALa8DKYrwD4HIrkwZhR0In6spRIXzL4Gt
+Mh6QRr+jhiYaHv5+HBg6XJxgFyo6dIMzMH1hVBHL7avg5tKifvVrbxi3Cgst
+/ek+7wrGsxDp3MJGF/hd/aTa/55JWpzmM+Yklvc/ulsrHHo1wtZn/qtmUItt
+KGAr79dgw8eTvI02kfN/+NsRE8Scd3bBrrcCaoF6qUWD4gXmuVbBlDePSHFj
+IuwXZQeVikvfj8ZaCuWw419eaxGrDPmF60Tp+ARz8un+XJiM9XOva7R+zdRc
+AitMOeGylZUtQofX1bOQQ7dsE/He3fbE+Ik/0XX1ksOR1YqI0JDs3G3eicJl
+cZaLDQP9nL9bFqyS2+r+eXyt66/3FsvbzSUr5R/7mp/iUcw6UwxI5g69ybR2
+BlLmEROFcmMDBOAENisgGQLodKcftslWZvB1JdxnwQ5hYIizPtGo/KPaHbDR
+sSNU30R2be1B2MGyIrZTHN81Hdyhdyox5C315eXbyOD/5YDXC2Og/zOhD7os
+FRXql7PSorW+8oyWHhqPHWykYTe5hnMz15eWniN9gqRMgeKh0bpnX5UHoycR
+7hYQe7xFSkyyBNKr79X9DFHOUGoIMfmR2gyPZFwDwzqLID9ujWc9Otb+fVuI
+yV77zGHcizN300QyNQliBJIWENieJ0f7OyHj+OsdWwIDAQABo4GwMIGtMA8G
+A1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1UdDgQWBBQahGK8SEwz
+JQTU7tD2A8QZRtGUazBuBgNVHSMEZzBlgBQahGK8SEwzJQTU7tD2A8QZRtGU
+a6FJpEcwRTELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0
+ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJvb3QgQ0EgMoICBQkwDQYJKoZIhvcN
+AQEFBQADggIBAD4KFk2fBluornFdLwUvZ+YTRYPENvbzwCYMDbVHZF34tHLJ
+RqUDGCdViXh9duqWNIAXINzng/iN/Ae42l9NLmeyhP3ZRPx3UIHmfLTJDQty
+U/h2BwdBR5YM++CCJpNVjP4iH2BlfF/nJrP3MpCYUNQ3cVX2kiF495V5+vgt
+JodmVjB3pjd4M1IQWK4/YY7yarHvGH5KWWPKjaJW1acvvFYfzznB4vsKqBUs
+fU16Y8Zsl0Q80m/DShcK+JDSV6IZUaUtl0HaB0+pUNqQjZRG4T7wlP0QADj1
+O+hA4bRuVhogzG9Yje0uRY/W6ZM/57Es3zrWIozchLsib9D45MY56QSIPMO6
+61V6bYCZJPVsAfv4l7CUW+v90m/xd2gNNWQjrLhVoQPRTUIZ3Ph1WVaj+ahJ
+efivDrkRoHy3au000LYmYjgahwz46P0u05B/B5EqHdZ+XIWDmbA4CD/pXvk1
+B+TJYm5Xf6dQlfe6yJvmjqIBxdZmv3lh8zwc4bmCXF2gw+nYSL0ZohEUGW6y
+hhtoPkg3Goi3XZZenMfvJ2II4pEZXNLxId26F0KCl3GBUzGpn/Z9Yr9y4aOT
+HcyKJloJONDO1w2AFrR4pTqHTI2KpdVGl/IsELm8VCLAAVBpQ570su9t+Oza
+8eOx79+Rj1QqCyXBJhnEUhAFZdWCEOrCMc0u
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMC
+Qk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1Zh
+ZGlzIFJvb3QgQ0EgMzAeFw0wNjExMjQxOTExMjNaFw0zMTExMjQxOTA2NDRa
+MEUxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMRsw
+GQYDVQQDExJRdW9WYWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUA
+A4ICDwAwggIKAoICAQDMV0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTP
+krgEQK0CSzGrvI2RaNggDhoB4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9
+cI8LoGe+AaJZz3HmDyl2/7FWeUUrH556VOijKTVopAFPD6QuN+8bv+OPEKhy
+q1hX51SGyMnzW9os2l2ObjyjPtr7guXd8lyyBTNvijbO0BNO/79KDDRMpsMh
+vVAEVeuxu537RR5kFd5VAYwCdrXLoT9CabwvvWhDFlaJKjdhkf2mrk7AyxRl
+lDdLkgbvBNDInIjbC3uBr7E9KsRlOni27tyAsdLTmZw67mtaa7ONt9XOnMK+
+pUsvFrGeaDsGb659n/je7Mwpp5ijJUMv7/FfJuGITfhebtfZFG4ZM2mnO4SJ
+k8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8nT8KKdjcT5EOE7zelaTf
+i5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDtWAEXMJPp
+Govgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZc6ts
+gLjoC2SToJyMGf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A
+4iLItLRkT9a6fUg+qGkM17uGcclzuD87nSVL2v9A6wIDAQABo4IBlTCCAZEw
+DwYDVR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHTBgkrBgEEAb5YAAMw
+gcUwgZMGCCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmlj
+YXRlIGNvbnN0aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJv
+b3QgQ0EgMyBDZXJ0aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFBy
+YWN0aWNlIFN0YXRlbWVudC4wLQYIKwYBBQUHAgEWIWh0dHA6Ly93d3cucXVv
+dmFkaXNnbG9iYWwuY29tL2NwczALBgNVHQ8EBAMCAQYwHQYDVR0OBBYEFPLA
+E+CCQz777i9nMpY1XNu4ywLQMG4GA1UdIwRnMGWAFPLAE+CCQz777i9nMpY1
+XNu4ywLQoUmkRzBFMQswCQYDVQQGEwJCTTEZMBcGA1UEChMQUXVvVmFkaXMg
+TGltaXRlZDEbMBkGA1UEAxMSUXVvVmFkaXMgUm9vdCBDQSAzggIFxjANBgkq
+hkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZVqyM07ucp2sNbtrCD2dDQ4iH7
+82CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSemd1o417+shvzuXYO8
+BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd+LJ2w/w4E6oM
+3kJpK27zPOuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B4f/xI4hR
+OJ/yZlZ25w9Rl6VSDE1JUZU2Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadNt54C
+rnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp8kokUvd0/bpO5qgdAm6x
+DYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBCbjPs
+MZ57k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmi
+oHfRMJ6szHXug/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRe
+cCocIdiP4b0jWy10QJLZYxkNc91pvGJHvOB0K7Lrfb5BG7XARsWhIstfTsEo
+kt4YutUqKLsRixeTmJlglFwjz1onl14LBQaTNx47aTbrqZ5hHY8y2o4M1nQ+
+ewkk2gF3R8Q7zTSMmfXK4SVhM7JZG+Ju1zdXtg2pEto=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUF
+ADBIMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9y
+YXRpb24xFzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTA2MTEwNzE5MzEx
+OFoXDTI5MTIzMTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1Nl
+Y3VyZVRydXN0IENvcnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBD
+QTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7C
+T8rU4niVWJxB4Q2ZQCQXOZEzZum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/je
+p4G6pkjGnx29vo6pQT64lO0pGtSO0gMdA+9tDWccV9cGrcrI9f4Or2YlSASW
+C12juhbDCE/RRvgUXPLIXgGZbf2IzIaowW8xQmxSPmjL8xk037uHGFaAJsTQ
+3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj7DaUaHp3pLHnDi+BeuK1cobv
+omuL8A/b01k/unK8RCSc43Oz969XL0Imnal0ugBS8kvNU3xHCzaFDmapCJcW
+NFfBZveA4+1wVMeT4C4oFVmHursCAwEAAaOBnTCBmjATBgkrBgEEAYI3FAIE
+Bh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E
+FgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCegJYYjaHR0
+cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGCNxUB
+BAMCAQAwDQYJKoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt3
+6Z3q059c4EVlew3KW+JwULKUBRSuSceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s
+7Ll/3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHfmbx8IVQr5Fiiu1cp
+rp6poxkmD5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZ
+nMUFdAvnZyPSCPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZG
+BlSm8jIKYyYwa5vR3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShL
+HZ4swrhovO0C7jE=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUF
+ADBKMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9y
+YXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwHhcNMDYxMTA3MTk0
+MjI4WhcNMjkxMjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEgMB4GA1UEChMX
+U2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9i
+YWwgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxV
+aQZx5RNoJLNP2MwhR/jxYDiJiQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7H
+fAo3fg+6MpjhHZevj8fcyTiW89sa/FHtaMbQbqR8JNGuQsiWUGMu4P51/pin
+X0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJjnIFHovdRIWCQtBJwB1g8NEXLJXr
+9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnIHmX5k/Wq8VLcmZg9pYYaDDUz
++kulBAYVHDGA76oYa8J719rO+TMg1fW9ajMtgQT7sFzUnKPiXB3jqUJ1XnvU
+d+85VLrJChgbEplJL4hL/VBi0XPnj3pDAgMBAAGjgZ0wgZowEwYJKwYBBAGC
+NxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHQYD
+VR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCswKaAnoCWG
+I2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsGAQQB
+gjcVAQQDAgEAMA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0L
+URYD7xh8yOOvaliTFGCRsoTciE6+OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X
++nXOH0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cnCDpOGR86p1hcF895
+P4vkp9MmI50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/5
+3CYNv6ZHdAbYiNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNsp
+nWzFacxHVaIw98xcf8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJP
+Ix/abKwfROHdI3hRW8cW
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJV
+UzElMCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAG
+A1UECxMpU3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3Jp
+dHkwHhcNMDQwNjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBoMQswCQYDVQQG
+EwJVUzElMCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEy
+MDAGA1UECxMpU3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRo
+b3JpdHkwggEgMA0GCSqGSIb3DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGm
+BIWtDBFk385N78gDGIc/oav7PKaf8MOh2tTYbitTkPskpD6E8J7oX+zlJ0T1
+KKY/e97gKvDIr1MvnsoFAZMej2YcOadN+lq2cwQlZut3f+dZxkqZJRRU6ybH
+838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0X9tDkYI22WY8sbi5gv2cOj4Q
+yDvvBmVmepsZGD3/cVE8MC5fvj13c7JdBmzDI1aaK4UmkhynArPkPw2vCHmC
+uDY96pzTNbO8acr1zJ3o/WSNF4Azbl5KXZnJHoe0nRrA1W4TNSNe35tfPe/W
+93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HFMIHCMB0GA1UdDgQWBBS/
+X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fRzt0fhvRb
+Vazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0YXJm
+aWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBD
+bGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMB
+Af8wDQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGsafPzWdqbAYcaT1ep
+oXkJKtv3L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLM
+PUxA2IGvd56Deruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L
+7ShZ3U0WixeDyLJlxy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMt
+lb71cZBDzI0fmgAKhynpVSJYACPq4xJDKVtHCN2MQWplBqjlIapBtJUhlbl9
+0TSrE9atvNziPTnNvT51cKEYWQPJIrSPnNVeKtelttQKbfi3QBFGmh95DmK/
+D5fs4C8fF5Q=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIHyTCCBbGgAwIBAgIBATANBgkqhkiG9w0BAQUFADB9MQswCQYDVQQGEwJJ
+TDEWMBQGA1UEChMNU3RhcnRDb20gTHRkLjErMCkGA1UECxMiU2VjdXJlIERp
+Z2l0YWwgQ2VydGlmaWNhdGUgU2lnbmluZzEpMCcGA1UEAxMgU3RhcnRDb20g
+Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDYwOTE3MTk0NjM2WhcNMzYw
+OTE3MTk0NjM2WjB9MQswCQYDVQQGEwJJTDEWMBQGA1UEChMNU3RhcnRDb20g
+THRkLjErMCkGA1UECxMiU2VjdXJlIERpZ2l0YWwgQ2VydGlmaWNhdGUgU2ln
+bmluZzEpMCcGA1UEAxMgU3RhcnRDb20gQ2VydGlmaWNhdGlvbiBBdXRob3Jp
+dHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDBiNsJvGxGfHif
+lXu1M5DycmLWwTYgIiRezul38kMKogZkpMyONvg45iPwbm2xPN1yo4UcodM9
+tDMr0y+v/uqwQVlntsQGfQqedIXWeUyAN3rfOQVSWff0G0ZDpNKFhdLDcfN1
+YjS6LIp/Ho/u7TTQEceWzVI9ujPW3U3eCztKS5/CJi/6tRYccjV3yjxd5srh
+JosaNnZcAdt0FCX+7bWgiA/deMotHweXMAEtcnn6RtYTKqi5pquDSR3l8u/d
+5AGOGAqPY1MWhWKpDhk6zLVmpsJrdAfkK+F2PrRt2PZE4XNiHzvEvqBTViVs
+UQn3qqvKv3b9bZvzndu/PWa8DFaqr5hIlTpL36dYUNk4dalb6kMMAv+Z6+hs
+TXBbKWWc3apdzK8BMewM69KN6Oqce+Zu9ydmDBpI125C4z/eIT574Q1w+2Oq
+qGwaVLRcJXrJosmLFqa7LH4XXgVNWG4SHQHuEhANxjJ/GP/89PrNbpHoNkm+
+Gkhpi8KWTRoSsmkXwQqQ1vp5Iki/untp+HDH+no32NgN0nZPV/+Qt+OR0t3v
+wmC3Zzrd/qqc8NSLf3Iizsafl7b4r4qgEKjZ+xjGtrVcUjyJthkqcwEKDwOz
+EmDyei+B26Nu/yYwl/WL3YlXtq09s68rxbd2AvCl1iuahhQqcvbjM4xdCUsT
+37uMdBNSSwIDAQABo4ICUjCCAk4wDAYDVR0TBAUwAwEB/zALBgNVHQ8EBAMC
+Aa4wHQYDVR0OBBYEFE4L7xqkQFulF2mHMMo0aEPQQa7yMGQGA1UdHwRdMFsw
+LKAqoCiGJmh0dHA6Ly9jZXJ0LnN0YXJ0Y29tLm9yZy9zZnNjYS1jcmwuY3Js
+MCugKaAnhiVodHRwOi8vY3JsLnN0YXJ0Y29tLm9yZy9zZnNjYS1jcmwuY3Js
+MIIBXQYDVR0gBIIBVDCCAVAwggFMBgsrBgEEAYG1NwEBATCCATswLwYIKwYB
+BQUHAgEWI2h0dHA6Ly9jZXJ0LnN0YXJ0Y29tLm9yZy9wb2xpY3kucGRmMDUG
+CCsGAQUFBwIBFilodHRwOi8vY2VydC5zdGFydGNvbS5vcmcvaW50ZXJtZWRp
+YXRlLnBkZjCB0AYIKwYBBQUHAgIwgcMwJxYgU3RhcnQgQ29tbWVyY2lhbCAo
+U3RhcnRDb20pIEx0ZC4wAwIBARqBl0xpbWl0ZWQgTGlhYmlsaXR5LCByZWFk
+IHRoZSBzZWN0aW9uICpMZWdhbCBMaW1pdGF0aW9ucyogb2YgdGhlIFN0YXJ0
+Q29tIENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFBvbGljeSBhdmFpbGFibGUg
+YXQgaHR0cDovL2NlcnQuc3RhcnRjb20ub3JnL3BvbGljeS5wZGYwEQYJYIZI
+AYb4QgEBBAQDAgAHMDgGCWCGSAGG+EIBDQQrFilTdGFydENvbSBGcmVlIFNT
+TCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTANBgkqhkiG9w0BAQUFAAOCAgEA
+FmyZ9GYMNPXQhV59CuzaEE44HF7fpiUFS5Eyweg78T3dRAlbB0mKKctmArex
+mvclmAk8jhvh3TaHK0u7aNM5Zj2gJsfyOZEdUauCe37Vzlrk4gNXcGmXCPle
+WKYK34wGmkUWFjgKXlf2Ysd6AgXmvB618p70qSmD+LIU424oh0TDkBreOKk8
+rENNZEXO3SipXPJzewT4F+irsfMuXGRuczE6Eri8sxHkfY+BUZo7jYn0TZNm
+ezwD7dOaHZrzZVD1oNB1ny+v8OqCQ5j4aZyJecRDjkZy42Q2Eq/3JR44iZB3
+fsNrarnDy0RLrHiQi+fHLB5LEUTINFInzQpdn4XBidUaePKVEFMy3YCEZnXZ
+tWgo+2EuvoSoOMCZEoalHmdkrQYuL6lwhceWD3yJZfWOQ1QOq92lgDmUYMA0
+yZZwLKMS9R9Ie70cfmu3nZD0Ijuu+PwqyvqCUqDvr0tVk+vBtfAii6w0TiYi
+BKGHLHVKt+V9E9e4DGTANtLJL4YSjCMJwRuCO3NJo2pXh5Tl1njFmUNj403g
+dy3hZZlyaQQaRwnmDwFWJPsfvw55qVguucQJAX6Vum0ABj6y6koQOdjQK/W/
+7HW/lwLFCRsI3FU34oH7N4RDYiDK51ZLZer+bMEkkyShNOsF/5oirpt9P/Fl
+UQqmMGqz9IgcgA38corog14=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFFjCCBH+gAwIBAgIBADANBgkqhkiG9w0BAQQFADCBsDELMAkGA1UEBhMC
+SUwxDzANBgNVBAgTBklzcmFlbDEOMAwGA1UEBxMFRWlsYXQxFjAUBgNVBAoT
+DVN0YXJ0Q29tIEx0ZC4xGjAYBgNVBAsTEUNBIEF1dGhvcml0eSBEZXAuMSkw
+JwYDVQQDEyBGcmVlIFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEhMB8G
+CSqGSIb3DQEJARYSYWRtaW5Ac3RhcnRjb20ub3JnMB4XDTA1MDMxNzE3Mzc0
+OFoXDTM1MDMxMDE3Mzc0OFowgbAxCzAJBgNVBAYTAklMMQ8wDQYDVQQIEwZJ
+c3JhZWwxDjAMBgNVBAcTBUVpbGF0MRYwFAYDVQQKEw1TdGFydENvbSBMdGQu
+MRowGAYDVQQLExFDQSBBdXRob3JpdHkgRGVwLjEpMCcGA1UEAxMgRnJlZSBT
+U0wgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxITAfBgkqhkiG9w0BCQEWEmFk
+bWluQHN0YXJ0Y29tLm9yZzCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA
+7YRgACOeyEpRKSfeOqE5tWmrCbIvNP1h3D3TsM+x18LEwrHkllbEvqoUDufM
+OlDIOmKdw6OsWXuO7lUaHEe+o5c5s7XvIywI6Nivcy+5yYPo7QAPyHWlLzRM
+GOh2iCNJitu27Wjaw7ViKUylS7eYtAkUEKD4/mJ2IhULpNYILzUCAwEAAaOC
+AjwwggI4MA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgHmMB0GA1UdDgQW
+BBQcicOWzL3+MtUNjIExtpidjShkjTCB3QYDVR0jBIHVMIHSgBQcicOWzL3+
+MtUNjIExtpidjShkjaGBtqSBszCBsDELMAkGA1UEBhMCSUwxDzANBgNVBAgT
+BklzcmFlbDEOMAwGA1UEBxMFRWlsYXQxFjAUBgNVBAoTDVN0YXJ0Q29tIEx0
+ZC4xGjAYBgNVBAsTEUNBIEF1dGhvcml0eSBEZXAuMSkwJwYDVQQDEyBGcmVl
+IFNTTCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEhMB8GCSqGSIb3DQEJARYS
+YWRtaW5Ac3RhcnRjb20ub3JnggEAMB0GA1UdEQQWMBSBEmFkbWluQHN0YXJ0
+Y29tLm9yZzAdBgNVHRIEFjAUgRJhZG1pbkBzdGFydGNvbS5vcmcwEQYJYIZI
+AYb4QgEBBAQDAgAHMC8GCWCGSAGG+EIBDQQiFiBGcmVlIFNTTCBDZXJ0aWZp
+Y2F0aW9uIEF1dGhvcml0eTAyBglghkgBhvhCAQQEJRYjaHR0cDovL2NlcnQu
+c3RhcnRjb20ub3JnL2NhLWNybC5jcmwwKAYJYIZIAYb4QgECBBsWGWh0dHA6
+Ly9jZXJ0LnN0YXJ0Y29tLm9yZy8wOQYJYIZIAYb4QgEIBCwWKmh0dHA6Ly9j
+ZXJ0LnN0YXJ0Y29tLm9yZy9pbmRleC5waHA/YXBwPTExMTANBgkqhkiG9w0B
+AQQFAAOBgQBscSXhnjSRIe/bbL0BCFaPiNhBOlP1ct8nV0t2hPdopP7rPwl+
+KLhX6h/BquL/lp9JmeaylXOWxkjHXo0Hclb4g4+fd68p00UOpO6wNnQt8M2Y
+I3s3S9r+UZjEHjQ8iP2ZO1CnwYszx8JSFhKVU2Ui77qLzmLbcCOxgN8aIDjn
+fg==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFujCCA6KgAwIBAgIJALtAHEP1Xk+wMA0GCSqGSIb3DQEBBQUAMEUxCzAJ
+BgNVBAYTAkNIMRUwEwYDVQQKEwxTd2lzc1NpZ24gQUcxHzAdBgNVBAMTFlN3
+aXNzU2lnbiBHb2xkIENBIC0gRzIwHhcNMDYxMDI1MDgzMDM1WhcNMzYxMDI1
+MDgzMDM1WjBFMQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dpc3NTaWduIEFH
+MR8wHQYDVQQDExZTd2lzc1NpZ24gR29sZCBDQSAtIEcyMIICIjANBgkqhkiG
+9w0BAQEFAAOCAg8AMIICCgKCAgEAr+TufoskDhJuqVAtFkQ7kpJcyrhdhJJC
+Eyq8ZVeCQD5XJM1QiyUqt2/876LQwB8CJEoTlo8jE+YoWACjR8cGp4QjK7u9
+lit/VcyLwVcfDmJlD909Vopz2q5+bbqBHH5CjCA12UNNhPqE21Is8w4ndwtr
+vxEvcnifLtg+5hg3Wipy+dpikJKVyh+c6bM8K8vzARO/Ws/BtQpgvd21mWRT
+uKCWs2/iJneRjOBiEAKfNA+k1ZIzUd6+jbqEemA8atufK+ze3gE/bk3lUIbL
+tK/tREDFylqM2tIrfKjuvqblCqoOpd8FUrdVxyJdMmqXl2MT28nbeTZ7hTpK
+xVKJ+STnnXepgv9VHKVxaSvRAiTysybUa9oEVeXBCsdtMDeQKuSeFDNeFhdV
+xVu1yzSJkvGdJo+hB9TGsnhQ2wwMC3wLjEHXuendjIj3o02yMszYF9rNt85m
+ndT9Xv+9lz4pded+p2JYryU0pUHHPbwNUMoDAw8IWh+Vc3hiv69yFGkOpeUD
+DniOJihC8AcLYiAQZzlG+qkDzAQ4embvIIO1jEpWjpEA/I5cgt6IoMPiaG59
+je883WX0XaxR7ySArqpWl2/5rX3aYT+YdzylkbYcjCbaZaIJbcHiVOO5ykxM
+gI93e2CaHt+28kgeDrpOVG2Y4OGiGqJ3UM/EY5LsRxmd6+ZrzsECAwEAAaOB
+rDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E
+FgQUWyV7lqRlUX64OfPAeGZe6Drn8O4wHwYDVR0jBBgwFoAUWyV7lqRlUX64
+OfPAeGZe6Drn8O4wRgYDVR0gBD8wPTA7BglghXQBWQECAQEwLjAsBggrBgEF
+BQcCARYgaHR0cDovL3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZI
+hvcNAQEFBQADggIBACe645R88a7A3hfm5djV9VSwg/S7zV4Fe0+fdWavPOhW
+fvxyeDgD2StiGwC5+OlgzczOUYrHUDFu4Up+GC9pWbY9ZIEr44OE5iKHjn3g
+7gKZYbge9LgriBIWhMIxkziWMaa5O1M/wySTVltpkuzFwbs4AOPsF6m43Md8
+AYOfMke6UiI0HTJ6CVanfCU2qT1L2sCCbwq7EsiHSycR+R4tx5M/nttfJmtS
+2S6K8RTGRI0Vqbe/vd6mGu6uLftIdxf+u+yvGPUqUfA5hJeVbG4bwyvEdGB5
+JbAKJ9/fXtI5z0V9QkvfsywexcZdylU6oJxpmo/a77KwPJ+HbBIrZXAVUjEa
+JM9vMSNQH4xPjyPDdEFjHFWoFN0+4FFQz/EbMFYOkrCChdiDyyJkvC24JdVU
+orgG6q2SpCSgwYa1ShNqR88uC1aVVMvOmttqtKay20EIhid392qgQmwLOM7X
+dVAyksLfKzAiSNDVQTglXaTpXZ/GlHXQRf0wl0OPkKsKx4ZzYEppLd6leNcG
+2mqeSz53OiATIgHQv2ieY2BrNU0LbbqhPcCT4H8js1WtciVORvnSFu+wZMEB
+nunKoGqYDs/YYPIvSbjkQuE4NRb0yG5P94FW6LqjviOvrv1vA+ACOzB2+htt
+Qc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJ
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFwTCCA6mgAwIBAgIITrIAZwwDXU8wDQYJKoZIhvcNAQEFBQAwSTELMAkG
+A1UEBhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBBRzEjMCEGA1UEAxMaU3dp
+c3NTaWduIFBsYXRpbnVtIENBIC0gRzIwHhcNMDYxMDI1MDgzNjAwWhcNMzYx
+MDI1MDgzNjAwWjBJMQswCQYDVQQGEwJDSDEVMBMGA1UEChMMU3dpc3NTaWdu
+IEFHMSMwIQYDVQQDExpTd2lzc1NpZ24gUGxhdGludW0gQ0EgLSBHMjCCAiIw
+DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMrfogLi2vj8Bxax3mCq3pZc
+ZB/HL37PZ/pEQtZ2Y5Wu669yIIpFR4ZieIbWIDkm9K6j/SPnpZy1IiEZtzeT
+IsBQnIJ71NUERFzLtMKfkr4k2HtnIuJpX+UFeNSH2XFwMyVTtIc7KZAoNppV
+RDBopIOXfw0enHb/FZ1glwCNioUD7IC+6ixuEFGSzH7VozPY1kneWCqv9hbr
+S3uQMpe5up1Y8fhXSQQeol0GcN1x2/ndi5objM89o03Oy3z2u5yg+gnOI2Ky
+6Q0f4nIoj5+saCB9bzuohTEJfwvH6GXp43gOCWcwizSC+13gzJ2BbWLuCB4E
+LE6b7P6pT1/9aXjvCR+htL/68++QHkwFix7qepF6w9fl+zC8bBsQWJj3Gl/Q
+KTIDE0ZNYWqFTFJ0LwYfexHihJfGmfNtf9dng34TaNhxKFrYzt3oEBSa/m0j
+h26OWnA81Y0JAKeqvLAxN23IhBQeW71FYyBrS3SMvds6DsHPWhaPpZjydomy
+ExI7C3d3rLvlPClKknLKYRorXkzig3R3+jVIeoVNjZpTxN94ypeRSCtFKwH3
+HBqi7Ri6Cr2D+m+8jVeTO9TUps4e8aCxzqv9KyiaTxvXw3LbpMS/XUz13XuW
+ae5ogObnmLo2t/5u7Su9IPhlGdpVCX4l3P5hYnL5fhgC72O00Puv5TtjjGeP
+AgMBAAGjgawwgakwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8w
+HQYDVR0OBBYEFFCvzAeHFUdvOMW0ZdHelarp35zMMB8GA1UdIwQYMBaAFFCv
+zAeHFUdvOMW0ZdHelarp35zMMEYGA1UdIAQ/MD0wOwYJYIV0AVkBAQEBMC4w
+LAYIKwYBBQUHAgEWIGh0dHA6Ly9yZXBvc2l0b3J5LnN3aXNzc2lnbi5jb20v
+MA0GCSqGSIb3DQEBBQUAA4ICAQAIhab1Fgz8RBrBY+D5VUYI/HAcQiiWjrfF
+wUF1TglxeeVtlspLpYhg0DB0uMoI3LQwnkAHFmtllXcBrqS3NQuB2nEVqXQX
+OHtYyvkv+8Bldo1bAbl93oI9ZLi+FHSjClTTLJUYFzX1UWs/j6KWYTl4a0vl
+pqD4U99REJNi54Av4tHgvI42Rncz7Lj7jposiU0xEQ8mngS7twSNC/K5/Fqd
+Oxa3L8iYq/6KUFkuozv8KV2LwUvJ4ooTHbG/u0IdUt1O2BReEMYxB+9xJ/cb
+OQncguqLs5WGXv312l0xpuAxtpTmREl0xRbl9x8DYSjFyMsSoEJL+WuICI20
+MhjzdZ/EfwBPBZWcoxcCw7NTm6ogOSkrZvqdr16zktK1puEa+S1BaYEUtLS1
+7Yk9zvupnTVCRLEcFHOBzyoBNZox1S2PbYTfgE1X4z/FhHXaicYwu+uPyyII
+oK6q8QNsOktNCaUOcsZWayFCTiMlFGiudgp8DAdwZPmaL/YFOSbGDI8Zf0Ne
+bvRbFS/bYV3mZy8/CJT5YLSYMdp08YSTcU1f+2BY0fvEwW2JorsgH51xkcsy
+mxM9Pn2SUjWskpSi0xjCfMfqr3YFFt1nJ8J+HAciIfNAChs0B0QTwoRqjt8Z
+Wr9/6x3iGjjRXK9HkmuAtTClyY3YqzGBH9/CZjfTk6mFhnll0g==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFvTCCA6WgAwIBAgIITxvUL1S7L0swDQYJKoZIhvcNAQEFBQAwRzELMAkG
+A1UEBhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dp
+c3NTaWduIFNpbHZlciBDQSAtIEcyMB4XDTA2MTAyNTA4MzI0NloXDTM2MTAy
+NTA4MzI0NlowRzELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBB
+RzEhMB8GA1UEAxMYU3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMIICIjANBgkq
+hkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxPGHf9N4Mfc4yfjDmUO8x/e8N+dO
+cbpLj6VzHVxumK4DV644N0MvFz0fyM5oEMF4rhkDKxD6LHmD9ui5aLlV8gRE
+pzn5/ASLHvGiTSf5YXu6t+WiE7brYT7QbNHm+/pe7R20nqA1W6GSy/BJkv6F
+CgU+5tkL4k+73JU3/JHpMjUi0R86TieFnbAVlDLaYQ1HTWBCrpJH6INaUFjp
+iou5XaHc3ZlKHzZnu0jkg7Y360g6rw9njxcH6ATK72oxh9TAtvmUcXtnZLi2
+kUpCe2UuMGoM9ZDulebyzYLs2aFK7PayS+VFheZteJMELpyCbTapxDFkH4aD
+Cyr0NQp4yVXPQbBH6TCfmb5hqAaEuSh6XzjZG6k4sIN/c8HDO0gqgg8hm7jM
+qDXDhBuDsz6+pJVpATqJAHgE2cn0mRmrVn5bi4Y5FZGkECwJMoBgs5PAKrYY
+C51+jUnyEEp/+dVGLxmSo5mnJqy7jDzmDrxHB9xzUfFwZC8I+bRHHTBsROop
+N4WSaGa8gzj+ezku01DwH/teYLappvonQfGbGHLy9YR0SslnxFSuSGTfjNFu
+sB3hB48IHpmccelM2KX3RxIfdNFRnobzwqIjQAtz20um53MGjMGg6cFZrEb6
+5i/4z3GcRm25xBWNOHkDRUjvxF3XCO6HOSKGsg0PWEP3calILv3q1h8CAwEA
+AaOBrDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV
+HQ4EFgQUF6DNweRBtjpbO8tFnb0cwpj6hlgwHwYDVR0jBBgwFoAUF6DNweRB
+tjpbO8tFnb0cwpj6hlgwRgYDVR0gBD8wPTA7BglghXQBWQEDAQEwLjAsBggr
+BgEFBQcCARYgaHR0cDovL3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJ
+KoZIhvcNAQEFBQADggIBAHPGgeAn0i0P4JUw4ppBf1AsX19iYamGamkYDHRJ
+1l2E6kFSGG9YrVBWIGrGvShpWJHckRE1qTodvBqlYJ7YH39FkWnZfrt4csEG
+DyrOj4VwYaygzQu4OSlWhDJOhrs9xCrZ1x9y7v5RoSJBsXECYxqCsGKrXlcS
+H9/L3XWgwF15kIwb4FDm3jH+mHtwX6WQ2K34ArZv02DdQEsixT2tOnqfGhpH
+kXkzuoLcMmkDlm4fS/Bx/uNncqCxv1yL5PqZIseEuRuNI5c/7SXgz2W79WEE
+790eslpBIlqhn10s6FvJbakMDHiqYMZWjwFaDGi8aRl5xB9+lwW/xekkUV7U
+1UtT7dkjWjYDZaPBA61BMPNGG4WQr2W11bHkFlt4dR2Xem1ZqSqPe97Dh4kQ
+mUlzeMg9vVE1dCrV8X5pGyq7O70luJpaPXJhkGaH7gzWTdQRdAtq/gsD/KNV
+V4n+SsuuWxcFyPKNIzFTONItaj+CuY0IavdeQXRuwxF+B6wpYJE/OMpXEA29
+MC/HpeZBoNquBYeaoKRlbEwJDIm6uNO5wJOKMPqN5ZprFQFOZ6raYlY+hAhm
+0sQ2fac+EPyI4NSA5QC9qvNOBqN6avlicuMJT+ubDgEj8Z+7fNzcbBGXJbLy
+tGMU0gYqZ4yD9c7qB9iaah7s5Aq7KkzrCWA5zspi2C5u
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIF2TCCA8GgAwIBAgIQXAuFXAvnWUHfV8w/f52oNjANBgkqhkiG9w0BAQUF
+ADBkMQswCQYDVQQGEwJjaDERMA8GA1UEChMIU3dpc3Njb20xJTAjBgNVBAsT
+HERpZ2l0YWwgQ2VydGlmaWNhdGUgU2VydmljZXMxGzAZBgNVBAMTElN3aXNz
+Y29tIFJvb3QgQ0EgMTAeFw0wNTA4MTgxMjA2MjBaFw0yNTA4MTgyMjA2MjBa
+MGQxCzAJBgNVBAYTAmNoMREwDwYDVQQKEwhTd2lzc2NvbTElMCMGA1UECxMc
+RGlnaXRhbCBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczEbMBkGA1UEAxMSU3dpc3Nj
+b20gUm9vdCBDQSAxMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA
+0LmwqAzZuz8h+BvVM5OAFmUgdbI9m2BtRsiMMW8Xw/qabFbtPMWRV8PNq5ZJ
+kCoZSx6jbVfd8StiKHVFXqrWW/oLJdihFvkcxC7mlSpnzNApbjyFNDhhSbEA
+n9Y6cV9Nbc5fuankiX9qUvrKm/LcqfmdmUc/TilftKaNXXsLmREDA/7n29uj
+/x2lzZAeAR81sH8A25Bvxn570e56eqeqDFdvpG3FEzuwpdntMhy0XmeLVNxz
+h+XTF3xmUHJd1BpYwdnP2IkCb6dJtDZd0KTeByy2dbcokdaXvij1mB7qWybJ
+vbCXc9qukSbraMH5ORXWZ0sKbU/Lz7DkQnGMU3nn7uHbHaBuHYwadzVcFh4r
+Ux80i9Fs/PJnB3r1re3WmquhsUvhzDdf/X/NTa64H5xD+SpYVUNFvJbNcA78
+yeNmuk6NO4HLFWR7uZToXTNShXEuT46iBhFRyePLoW4xCGQMwtI89Tbo19AO
+eCMgkckkKmUpWyL3Ic6DXqTz3kvTaI9GdVyDCW4pa8RwjPWd1yAv/0bSKzjC
+L3UcPX7ape8eYIVpQtPM+GP+HkM5haa2Y0EQs3MevNP6yn0WR+Kn1dCjigoI
+lmJWbjTb2QK5MHXjBNLnj8KwEUAKrNVxAmKLMb7dxiNYMUJDLXT5xp6mig/p
+/r+D5kNXJLrvRjSq1xIBOO0CAwEAAaOBhjCBgzAOBgNVHQ8BAf8EBAMCAYYw
+HQYDVR0hBBYwFDASBgdghXQBUwABBgdghXQBUwABMBIGA1UdEwEB/wQIMAYB
+Af8CAQcwHwYDVR0jBBgwFoAUAyUv3m+CATpcLNwroWm1Z9SM0/0wHQYDVR0O
+BBYEFAMlL95vggE6XCzcK6FptWfUjNP9MA0GCSqGSIb3DQEBBQUAA4ICAQA1
+EMvspgQNDQ/NwNurqPKIlwzfky9NfEBWMXrrpA9gzXrzvsMnjgM+pN0S734e
+dAY8PzHyHHuRMSG08NBsl9Tpl7IkVh5WwzW9iAUPWxAaZOHHgjD5Mq2eUCzn
+eAXQMbFamIp1TpBcahQq4FJHgmDmHtqBsfsUC1rxn9KVuj7QG9YVHaO+htXb
+D8BJZLsuUBlL0iT43R4HVtA4oJVwIHaM190e3p9xxCPvgxNcoyQVTSlAPGrE
+qdi3pkSlDfTgnXceQHAm/NrZNuR55LU/vJtlvrsRls/bxig5OgjOR1tTWsWZ
+/l2p3e9M1MalrQLmjAcSHm8D0W+go/MpvRLHUKKwf4ipmXeascClOS5cfGni
+LLDqN2qk4Vrh9VDlg++luyqI54zb/W1elxmofmZ1a3Hqv7HHb6D0jqTsNFFb
+jCYDcKF31QESVwA12yPeDooomf2xEG9L/zgtYE4snOtnta1J7ksfrK/7DZBa
+ZmBwXarNeNQk7shBoJMBkpxqnvy5JMWzFYJ+vq6VK+uxwNrjAWALXmmshFZh
+vnEX/h0TD/7Gh0Xp/jKgGg0TpJRVcaUWi7rKibCyx/yP2FS1k2Kdzs9Z+z0Y
+zirLNRWCXf9UIltxUvu3yf5gmwBBZPCqKuy2QkPOiWaByIufOVQDJdMWNY6E
+0F/6MBr1mmz0DlP5OlvRHA==
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIID+zCCAuOgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBtzE/MD0GA1UEAww2
+VMOcUktUUlVTVCBFbGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xh
+ecSxY8Sxc8SxMQswCQYDVQQGDAJUUjEPMA0GA1UEBwwGQU5LQVJBMVYwVAYD
+VQQKDE0oYykgMjAwNSBUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUg
+QmlsacWfaW0gR8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLjAeFw0wNTA1
+MTMxMDI3MTdaFw0xNTAzMjIxMDI3MTdaMIG3MT8wPQYDVQQDDDZUw5xSS1RS
+VVNUIEVsZWt0cm9uaWsgU2VydGlmaWthIEhpem1ldCBTYcSfbGF5xLFjxLFz
+xLExCzAJBgNVBAYMAlRSMQ8wDQYDVQQHDAZBTktBUkExVjBUBgNVBAoMTShj
+KSAyMDA1IFTDnFJLVFJVU1QgQmlsZ2kgxLBsZXRpxZ9pbSB2ZSBCaWxpxZ9p
+bSBHw7x2ZW5sacSfaSBIaXptZXRsZXJpIEEuxZ4uMIIBIjANBgkqhkiG9w0B
+AQEFAAOCAQ8AMIIBCgKCAQEAylIF1mMD2Bxf3dJ7XfIMYGFbazt0K3gNfUW9
+InTojAPBxhEqPZW8qZSwu5GXyGl8hMW0kWxsE2qkVa2kheiVfrMArwDCBRj1
+cJ02i67L5BuBf5OI+2pVu32Fks66WJ/bMsW9Xe8iSi9BB35JYbOG7E6mQW6E
+vAPs9TscyB/C7qju6hJKjRTP8wrgUDn5CDX4EVmt5yLqS8oUBt5CurKZ8y1U
+iBAG6uEaPj1nH/vO+3yC6BFdSsG5FOpU2WabfIl9BJpiyelSPJ6c79L1JuTm
+5Rh8i27fbMx4W09ysstcP4wFjdFMjK2Sx+F4f2VsSQZQLJ4ywtdKxnWKWU51
+b0dewQIDAQABoxAwDjAMBgNVHRMEBTADAQH/MA0GCSqGSIb3DQEBBQUAA4IB
+AQAV9VX/N5aAWSGk/KEVTCD21F/aAyT8z5Aa9CEKmu46sWrv7/hg0Uw2ZkUd
+82YCdAR7kjCo3gp2D++Vbr3JN+YaDayJSFvMgzbC9UZcWYJWtNX+I7TYVBxE
+q8Sn5RTOPEFhfEPmzcSBCYsk+1Ql1haolgxnB2+zUEfjHCQo3SqYpGH+2+oS
+N7wBGjSFvW5P55FyB0SFHljKVETd96y5y4khctuPwGkplyqjrhgjlxxBKot8
+KsF8kOipKMDTkcatKIdAaLX/7KfS0zgYnNN9aV3wxqUeJBujR/xpB2jn5Jq0
+7Q+hh4cCzofSSE7hvP/L8XKSRGQDJereW26fyfJOrN3H
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEPDCCAySgAwIBAgIBATANBgkqhkiG9w0BAQUFADCBvjE/MD0GA1UEAww2
+VMOcUktUUlVTVCBFbGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xh
+ecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEPMA0GA1UEBwwGQW5rYXJhMV0wWwYD
+VQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmlsacWfaW0g
+R8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUw
+HhcNMDUxMTA3MTAwNzU3WhcNMTUwOTE2MTAwNzU3WjCBvjE/MD0GA1UEAww2
+VMOcUktUUlVTVCBFbGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xh
+ecSxY8Sxc8SxMQswCQYDVQQGEwJUUjEPMA0GA1UEBwwGQW5rYXJhMV0wWwYD
+VQQKDFRUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmlsacWfaW0g
+R8O8dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLiAoYykgS2FzxLFtIDIwMDUw
+ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCpNn7DkUNMwxmYCMjH
+WHtPFoylzkkBH3MOrHUTpvqeLCDe2JAOCtFp0if7qnefJ1Il4std2NiDUBd9
+irWCPwSOtNXwSadktx4uXyCcUHVPr+G1QRT0mJKIx+XlZEdhR3n9wFHxwZnn
+3M5q+6+1ATDcRhzviuyV79z/rxAc653YsKpqhRgNF8k+v/Gb0AmJQv2gQrSd
+iVFVKc8bcLyEVK3BEx+Y9C52YItdP5qtygy/p1Zbj3e41Z55SZI/4PGXJHps
+mxcPbe9TmJEr5A++WXkHeLuXlfSfadRYhwqp48y2WBmfJiGxxFmNskF1wK1p
+zpwACPI2/z7woQ8arBT9pmAPAgMBAAGjQzBBMB0GA1UdDgQWBBTZN7NOBf3Z
+z58SFq62iS/rJTqIHDAPBgNVHQ8BAf8EBQMDBwYAMA8GA1UdEwEB/wQFMAMB
+Af8wDQYJKoZIhvcNAQEFBQADggEBAHJglrfJ3NgpXiOFX7KzLXb7iNcX/ntt
+Rbj2hWyfIvwqECLsqrkw9qtY1jkQMZkpAL2JZkH7dN6RwRgLn7Vhy506vvWo
+lKMiVW4XSf/SKfE4Jl3vpao6+XF75tpYHdN0wgH6PmlYX63LaL4ULptswLbc
+oCb6dxriJNoaN+BnrdFzgw2lGh1uEpJ+hGIAF728JRhX8tepb1mIvDS3LoV4
+nZbcFMMsilKbloxSZj2GFotHuFEJjOp9zYhys2AzsfAKRO8P9Qk3iCQOLGsg
+OqL6EfJANZxEaGM7rDNvY7wsu/LSy3Z9fYjYHcgFHW68lKlmjHdxx/qR+i9R
+nuk5UrbnBEI=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIFcjCCA1qgAwIBAgIQH51ZWtcvwgZEpYAIaeNe9jANBgkqhkiG9w0BAQUF
+ADA/MQswCQYDVQQGEwJUVzEwMC4GA1UECgwnR292ZXJubWVudCBSb290IENl
+cnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTAyMTIwNTEzMjMzM1oXDTMyMTIw
+NTEzMjMzM1owPzELMAkGA1UEBhMCVFcxMDAuBgNVBAoMJ0dvdmVybm1lbnQg
+Um9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEB
+BQADggIPADCCAgoCggIBAJoluOzMonWoe/fOW1mKydGGEghU7Jzy50b2iPN8
+6aXfTEc2pBsBHH8eV4qNw8XRIePaJD9IK/ufLqGU5ywck9G/GwGHU5nOp/UK
+IXZ3/6m3xnOUT0b3EEk3+qhZSV1qgQdW8or5BtD3cCJNtLdBuTK4sfCxw5w/
+cP1T3YGq2GN49thTbqGsaoQkclSGxtKyyhwOeYHWtXBiCAEuTk8O1RGvqa/l
+mr/czIdtJuTJV6L7lvnM4T9TjGxMfptTCAtsF/tnyMKtsc2AtJfcdgEWFelq
+16TheEfOhtX7MfP6Mb40qij7cEwdScevLJ1tZqa2jWR+tSBqnTuBto9AAGdL
+iYa4zGX+FVPpBMHWXx1E1wovJ5pGfaENda1UhhXcSTvxls4Pm6Dso3pdvtUq
+dULle96ltqqvKKyskKw4t9VoNSZ63Pc78/1Fm9G7Q3hub/FCVGqY8A2tl+lS
+XunVanLeavcbYBT0peS2cWeqH+riTcFCQP5nRhc4L0c/cZyu5SHKYS1tB6iE
+fC3uUSXxY5Ce/eFXiGvviiNtsea9P63RPZYLhY3Naye7twWb7LuRqQoHEgKX
+TiCQ8P8NHuJBO9NAOueNXdpm5AKwB1KYXA6OM5zCppX7VRluTI6uSw+9wThN
+Xo+EHWbNxWCWtFJaBYmOlXqYwZE8lSOyDvR5tMl8wUohAgMBAAGjajBoMB0G
+A1UdDgQWBBTMzO/MKWCkO7GStjz6MmKPrCUVOzAMBgNVHRMEBTADAQH/MDkG
+BGcqBwAEMTAvMC0CAQAwCQYFKw4DAhoFADAHBgVnKgMAAAQUA5vwIhP/lSg2
+09yewDL7MTqKUWUwDQYJKoZIhvcNAQEFBQADggIBAECASvomyc5eMN1PhnR2
+WPWus4MzeKR6dBcZTulStbngCnRiqmjKeKBMmo4sIy7VahIkv9Ro04rQ2Jyf
+tB8M3jh+Vzj8jeJPXgyfqzvS/3WXy6TjZwj/5cAWtUgBfen5Cv8b5Wppv3gh
+qMKnI6mGq3ZW6A4M9hPdKmaKZEk9GhiHkASfQlK3T8v+R0F2Ne//AHY2RTKb
+xkaFXeIksB7jSJaYV0eUVXoPQbFEJPPB/hprv4j9wabak2BegUqZIJxIZhm1
+AHlUD7gsL0u8qV1bYH+Mh6XgUmMqvtg7hUAV/h62ZT/FS9p+tXo1KaMuephg
+IqP0fSdOLeq0dDzpD6QzDxARvBMB1uUO07+1EqLhRSPAzAhuYbeJq4PjJB7m
+XQfnHyA+z2fI56wwbSdLaG5LKlwCCDTb+HbkZ6MmnD+iMsJKxYEYMRBWqoTv
+LQr/uB930r+lWKBi5NdLkXWNiYCYfm3LU05er/ayl4WXudpVBrkk7tfGOB5j
+GxI7leFYrPLfhNVfmS8NVVvmONsuP3LpSIXLuykTjx44VbnzssQwmSNOXfJI
+oRIM3BKQCZBUkQM8R+XVyWXgt0t97EfTsws+rZ7QdAAO671RrcDeLMDDav7v
+3Aun+kbfYNucpllQdSNpc5Oy+fwC00fmcc4QAu4njIT/rEUNE1yDMuAlpYYs
+fPQS
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUF
+ADCByjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8w
+HQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykg
+MjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5
+MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENl
+cnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcN
+MzYwNzE2MjM1OTU5WjCByjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlT
+aWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTow
+OAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3Jp
+emVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1Ymxp
+YyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEiMA0G
+CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8
+RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKzj/i5Vbext0uz/o9+B1fs
+70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhDY2pS
+S9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+Q
+ueQA5N06tRn/Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+
+rCpSx4/VBEnkjWNHiDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMK
+z10/NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/BAUwAwEB/zAOBgNV
+HQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2Uv
+Z2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0
+cDovL2xvZ28udmVyaXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/T
+ZafC3ey78DAJ80M5+gKvMzEzMA0GCSqGSIb3DQEBBQUAA4IBAQCTJEowX2LP
+2BqYLz3q3JktvXf2pXkiOOzEp6B4Eq1iDkVwZMXnl2YtmAl+X6/WzChl8gGq
+CBpH3vn5fJJaCGkgDdk+bW48DW7Y5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU
+7qKEKQsTb47bDN0lAtukixlE0kF6BWlKWE9gyn6CagsCqiUXObXbf+eEZSqV
+ir2G3l6BFoMtEMze/aiCKm0oHw0LxOXnGiYZ4fQRbxC1lfznQgUy286dUV4o
+tp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vEZV8NhnacRHr2lVz2XTIIM6RU
+thg/aFzyQkqFOFSDX9HoLPKsEdao7WNq
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIID5TCCAs2gAwIBAgIEOeSXnjANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UE
+BhMCVVMxFDASBgNVBAoTC1dlbGxzIEZhcmdvMSwwKgYDVQQLEyNXZWxscyBG
+YXJnbyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEvMC0GA1UEAxMmV2VsbHMg
+RmFyZ28gUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDAxMDExMTY0
+MTI4WhcNMjEwMTE0MTY0MTI4WjCBgjELMAkGA1UEBhMCVVMxFDASBgNVBAoT
+C1dlbGxzIEZhcmdvMSwwKgYDVQQLEyNXZWxscyBGYXJnbyBDZXJ0aWZpY2F0
+aW9uIEF1dGhvcml0eTEvMC0GA1UEAxMmV2VsbHMgRmFyZ28gUm9vdCBDZXJ0
+aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
+AoIBAQDVqDM7Jvk0/82bfuUER84A4n135zHCLielTWi5MbqNQ1mXx3Oqfz1c
+QJ4F5aHiidlMuD+b+Qy0yGIZLEWukR5zcUHESxP9cMIlrCL1dQu3U+SlK93O
+vRw6esP3E48mVJwWa2uv+9iWsWCaSOAlIiR5NM4OJgALTqv9i86C1y8IcGjB
+qAr5dE8Hq6T54oN+J3N0Prj5OEL8pahbSCOz6+MlsoCultQKnMJ4msZoGK43
+YjdeUXWoWGPAUe5AeH6orxqg4bB4nVCMe+ez/I4jsNtlAHCEAQgAFG5Uhpq6
+zPk3EPbg3oQtnaSFN9OH4xXQwReQfhkhahKpdv0SAulPIV4XAgMBAAGjYTBf
+MA8GA1UdEwEB/wQFMAMBAf8wTAYDVR0gBEUwQzBBBgtghkgBhvt7hwcBCzAy
+MDAGCCsGAQUFBwIBFiRodHRwOi8vd3d3LndlbGxzZmFyZ28uY29tL2NlcnRw
+b2xpY3kwDQYJKoZIhvcNAQEFBQADggEBANIn3ZwKdyu7IvICtUpKkfnRLb7k
+uxpo7w6kAOnu5+/u9vnldKTC2FJYxHT7zmu1Oyl5GFrvm+0fazbuSCUlFLZW
+ohDo7qd/0D+j0MNdJu4HzMPBJCGHHt8qElNvQRbn7a6U+oxy+hNH8Dx+rn0R
+OhPs7fpvcmR7nX1/Jv16+yWt6j4pf0zjAFcysLPp7VMX2YuyFA4w6OXVE8Zk
+r8QA1dhYJPz1j+zxx32l2w8n0cbyQIjmH/ZhqPRCyLk306m+LFZ4wnKbWV01
+QIroTmMatukgalHizqSQ33ZwmVxwQ023tqcZZE6St8WRPH9IFmV7Fv3L/PvZ
+1dZPIWU7Sn9Ho/s=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUF
+ADCBgjELMAkGA1UEBhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5
+LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkgU2VydmljZXMgSW5jMS0w
+KwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkw
+HhcNMDQxMTAxMTcxNDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMC
+VVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMb
+WFJhbXAgU2VjdXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBH
+bG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEB
+AQUAA4IBDwAwggEKAoIBAQCYJB69FbS638eMpSe2OAtp87ZOqCwuIR1cRN8h
+XX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCPKZ2GG9mcDZhtdhAoWORlsH9K
+mHmf4MMxfoArtYzAQDsRhtDLooY2YKTVMIJt2W7QDxIEM5dfT2Fa8OT5kavn
+HTu86M/0ay00fOJIYRyO82FEzG+gSqmUsE3a56k0enI4qEHMPJQRfevIpoy3
+hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqsAxcZZPRaJSKNNCyy9mgd
+Em3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNViPvryxS3T
+/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQD
+AgGGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASs
+jVy16bYbMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1
+cml0eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQEwDQYJKoZIhvcN
+AQEFBQADggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc
+/Kh4ZzXxHfARvbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYS
+Nrsf16GBBEYgoyxtqZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT
+5r7SHpDwCRR5XCOrTdLaIR9NmXmd4c8nnxCbHIgNsIpkQTG4DmyQJKSbXHGP
+urt+HBvbaoAPIbzp26a3QPSyi6mx5O+aGtA9aZnuqCij4Tyz8LIRnM98QObd
+50N9otg6tamN8jSZxNQQ4Qb9CYQQO+7ETPTsJ3xCwnR8gooJybQDJbw=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUF
+ADCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYG
+A1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UE
+CxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl
+IG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYx
+MTE3MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTAT
+BgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBT
+ZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJ
+bmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMTFnRoYXd0
+ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK
+AoIBAQCsoPD7gFnUnMekz52hWXMJEEUMDSxuaPFsW0hoSVk3/AszGcJ3f8wQ
+LZU0HObrTQmnHNK4yZc2AreJ1CRfBsDMRJSUjQJib+ta3RGNKJpchJAQeg29
+dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGcq/gcfomk6KHYcWUNo1F7
+7rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6Sk/KaAcd
+HJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94JNqR3
+2HuHUETVPm4pafs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBA
+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7
+W0XPr87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUFAAOCAQEAeRHAS7OR
+tvzw6WfUDW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeE
+uzLlQRHAd9mzYJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQ
+aEfZYGDm/Ac9IiAXxPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqd
+E8hhuvU5HIe6uL17In/2/qxAeeWsEG89jxt5dovEN7MhGITlNgDrYyCZuen+
+MwS7QcjBAvlEYyCegc5C09Y/LHbTY5xZ3Y+m4Q6gLkH3LpVHz7z9M/P2C2F+
+fpErgUfCJzDupxBdN49cOSvkBPB7jVaMaA==
-----END CERTIFICATE-----
-
-----BEGIN CERTIFICATE-----
MIIEFTCCA36gAwIBAgIBADANBgkqhkiG9w0BAQQFADCBvjELMAkGA1UEBhMCVVMx
EDAOBgNVBAgTB0luZGlhbmExFTATBgNVBAcTDEluZGlhbmFwb2xpczEoMCYGA1UE
@@ -1797,7 +3765,110 @@ AQEEBQADgYEAm/Abn8c2y1nO3fgpAIslxvi9iNBZDhQtJ0VQZY6wgSfANyDOR4DW
iexO/AlorB49KnkFS7TjCAoLOZhcg5FaNiKnlstMI5krQmau1Qnb/vGSNsE/UGms
1ts+QYPUs0KmGEAFUri2XzLy+aQo9Kw74VBvqnxvaaMeY5yMcKNOieY=
-----END CERTIFICATE-----
-
+-----BEGIN CERTIFICATE-----
+MIIIDjCCBfagAwIBAgIJAOiOtsn4KhQoMA0GCSqGSIb3DQEBBQUAMIG8MQswCQYD
+VQQGEwJVUzEQMA4GA1UECBMHSW5kaWFuYTEVMBMGA1UEBxMMSW5kaWFuYXBvbGlz
+MSgwJgYDVQQKEx9Tb2Z0d2FyZSBpbiB0aGUgUHVibGljIEludGVyZXN0MRMwEQYD
+VQQLEwpob3N0bWFzdGVyMR4wHAYDVQQDExVDZXJ0aWZpY2F0ZSBBdXRob3JpdHkx
+JTAjBgkqhkiG9w0BCQEWFmhvc3RtYXN0ZXJAc3BpLWluYy5vcmcwHhcNMDgwNTEz
+MDgwNzU2WhcNMTgwNTExMDgwNzU2WjCBvDELMAkGA1UEBhMCVVMxEDAOBgNVBAgT
+B0luZGlhbmExFTATBgNVBAcTDEluZGlhbmFwb2xpczEoMCYGA1UEChMfU29mdHdh
+cmUgaW4gdGhlIFB1YmxpYyBJbnRlcmVzdDETMBEGA1UECxMKaG9zdG1hc3RlcjEe
+MBwGA1UEAxMVQ2VydGlmaWNhdGUgQXV0aG9yaXR5MSUwIwYJKoZIhvcNAQkBFhZo
+b3N0bWFzdGVyQHNwaS1pbmMub3JnMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
+CgKCAgEA3DbmR0LCxFF1KYdAw9iOIQbSGE7r7yC9kDyFEBOMKVuUY/b0LfEGQpG5
+GcRCaQi/izZF6igFM0lIoCdDkzWKQdh4s/Dvs24t3dHLfer0dSbTPpA67tfnLAS1
+fOH1fMVO73e9XKKTM5LOfYFIz2u1IiwIg/3T1c87Lf21SZBb9q1NE8re06adU1Fx
+Y0b4ShZcmO4tbZoWoXaQ4mBDmdaJ1mwuepiyCwMs43pPx93jzONKao15Uvr0wa8u
+jyoIyxspgpJyQ7zOiKmqp4pRQ1WFmjcDeJPI8L20QcgHQprLNZd6ioFl3h1UCAHx
+ZFy3FxpRvB7DWYd2GBaY7r/2Z4GLBjXFS21ZGcfSxki+bhQog0oQnBv1b7ypjvVp
+/rLBVcznFMn5WxRTUQfqzj3kTygfPGEJ1zPSbqdu1McTCW9rXRTunYkbpWry9vjQ
+co7qch8vNGopCsUK7BxAhRL3pqXTT63AhYxMfHMgzFMY8bJYTAH1v+pk1Vw5xc5s
+zFNaVrpBDyXfa1C2x4qgvQLCxTtVpbJkIoRRKFauMe5e+wsWTUYFkYBE7axt8Feo
++uthSKDLG7Mfjs3FIXcDhB78rKNDCGOM7fkn77SwXWfWT+3Qiz5dW8mRvZYChD3F
+TbxCP3T9PF2sXEg2XocxLxhsxGjuoYvJWdAY4wCAs1QnLpnwFVMCAwEAAaOCAg8w
+ggILMB0GA1UdDgQWBBQ0cdE41xU2g0dr1zdkQjuOjVKdqzCB8QYDVR0jBIHpMIHm
+gBQ0cdE41xU2g0dr1zdkQjuOjVKdq6GBwqSBvzCBvDELMAkGA1UEBhMCVVMxEDAO
+BgNVBAgTB0luZGlhbmExFTATBgNVBAcTDEluZGlhbmFwb2xpczEoMCYGA1UEChMf
+U29mdHdhcmUgaW4gdGhlIFB1YmxpYyBJbnRlcmVzdDETMBEGA1UECxMKaG9zdG1h
+c3RlcjEeMBwGA1UEAxMVQ2VydGlmaWNhdGUgQXV0aG9yaXR5MSUwIwYJKoZIhvcN
+AQkBFhZob3N0bWFzdGVyQHNwaS1pbmMub3JnggkA6I62yfgqFCgwDwYDVR0TAQH/
+BAUwAwEB/zARBglghkgBhvhCAQEEBAMCAAcwCQYDVR0SBAIwADAuBglghkgBhvhC
+AQ0EIRYfU29mdHdhcmUgaW4gdGhlIFB1YmxpYyBJbnRlcmVzdDAwBglghkgBhvhC
+AQQEIxYhaHR0cHM6Ly9jYS5zcGktaW5jLm9yZy9jYS1jcmwucGVtMDIGCWCGSAGG
++EIBAwQlFiNodHRwczovL2NhLnNwaS1pbmMub3JnL2NlcnQtY3JsLnBlbTAhBgNV
+HREEGjAYgRZob3N0bWFzdGVyQHNwaS1pbmMub3JnMA4GA1UdDwEB/wQEAwIBBjAN
+BgkqhkiG9w0BAQUFAAOCAgEAtM294LnqsgMrfjLp3nI/yUuCXp3ir1UJogxU6M8Y
+PCggHam7AwIvUjki+RfPrWeQswN/2BXja367m1YBrzXU2rnHZxeb1NUON7MgQS4M
+AcRb+WU+wmHo0vBqlXDDxm/VNaSsWXLhid+hoJ0kvSl56WEq2dMeyUakCHhBknIP
+qxR17QnwovBc78MKYiC3wihmrkwvLo9FYyaW8O4x5otVm6o6+YI5HYg84gd1GuEP
+sTC8cTLSOv76oYnzQyzWcsR5pxVIBcDYLXIC48s9Fmq6ybgREOJJhcyWR2AFJS7v
+dVkz9UcZFu/abF8HyKZQth3LZjQl/GaD68W2MEH4RkRiqMEMVObqTFoo5q7Gt/5/
+O5aoLu7HaD7dAD0prypjq1/uSSotxdz70cbT0ZdWUoa2lOvUYFG3/B6bzAKb1B+P
++UqPti4oOxfMxaYF49LTtcYDyeFIQpvLP+QX4P4NAZUJurgNceQJcHdC2E3hQqlg
+g9cXiUPS1N2nGLar1CQlh7XU4vwuImm9rWgs/3K1mKoGnOcqarihk3bOsPN/nOHg
+T7jYhkalMwIsJWE3KpLIrIF0aGOHM3a9BX9e1dUCbb2v/ypaqknsmHlHU5H2DjRa
+yaXG67Ljxay2oHA1u8hRadDytaIybrw/oDc5fHE2pgXfDBLkFqfF1stjo5VwP+YE
+o2A=
+-----END CERTIFICATE-----
+-----BEGIN CERTIFICATE-----
+MIIDnzCCAoegAwIBAgIBJjANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJERTEc
+MBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxlU2Vj
+IFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290IENB
+IDIwHhcNOTkwNzA5MTIxMTAwWhcNMTkwNzA5MjM1OTAwWjBxMQswCQYDVQQGEwJE
+RTEcMBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxl
+U2VjIFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290
+IENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrC6M14IspFLEU
+ha88EOQ5bzVdSq7d6mGNlUn0b2SjGmBmpKlAIoTZ1KXleJMOaAGtuU1cOs7TuKhC
+QN/Po7qCWWqSG6wcmtoIKyUn+WkjR/Hg6yx6m/UTAtB+NHzCnjwAWav12gz1Mjwr
+rFDa1sPeg5TKqAyZMg4ISFZbavva4VhYAUlfckE8FQYBjl2tqriTtM2e66foai1S
+NNs671x1Udrb8zH57nGYMsRUFUQM+ZtV7a3fGAigo4aKSe5TBY8ZTNXeWHmb0moc
+QqvF1afPaA+W5OFhmHZhyJF81j4A4pFQh+GdCuatl9Idxjp9y7zaAzTVjlsB9WoH
+txa2bkp/AgMBAAGjQjBAMB0GA1UdDgQWBBQxw3kbuvVT1xfgiXotF2wKsyudMzAP
+BgNVHRMECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOC
+AQEAlGRZrTlk5ynrE/5aw4sTV8gEJPB0d8Bg42f76Ymmg7+Wgnxu1MM9756Abrsp
+tJh6sTtU6zkXR34ajgv8HzFZMQSyzhfzLMdiNlXiItiJVbSYSKpk+tYcNthEeFpa
+IzpXl/V6ME+un2pMSyuOoAPjPuCp1NJ70rOo4nI8rZ7/gFnkm0W09juwzTkZmDLl
+6iFhkOQxIY40sfcvNUqFENrnijchvllj4PKFiDFT1FQUhXB59C4Gdyd1Lx+4ivn+
+xbrYNuSD7Odlt79jWvNGr4GUN9RBjNYj1h7P9WgbRGOiWrqnNVmh5XAFmw4jV5mU
+Cm26OWMohpLzGITY+9HPBVZkVw==
+-----END CERTIFICATE-----
+
+-----BEGIN CERTIFICATE-----
+MIIGJDCCBY2gAwIBAgIEQoaroDANBgkqhkiG9w0BAQUFADCBwzELMAkGA1UEBhMC
+VVMxFDASBgNVBAoTC0VudHJ1c3QubmV0MTswOQYDVQQLEzJ3d3cuZW50cnVzdC5u
+ZXQvQ1BTIGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTElMCMGA1UECxMc
+KGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDE6MDgGA1UEAxMxRW50cnVzdC5u
+ZXQgU2VjdXJlIFNlcnZlciBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjA3
+MTQxNzEwMjhaFw0xNDA3MTQxNzQwMjhaMFwxCzAJBgNVBAYTAlVTMRUwEwYDVQQK
+EwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20xGzAZBgNV
+BAMTEkRpZ2lDZXJ0IEdsb2JhbCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC
+AQoCggEBAMQ8vMy66mLmnkIjr7SyEa5ijdmh04/MFHIZ7Zn2/d5du1nAsMKvaplS
+lVcLNf/hhvqvosPBBWUnIHYvClQlfOor3ZVBV5sPO89H6AEGjMVESPwHLvNygzBR
+lJ5pOoOph5AU2V7EoniPwT7UGWEOGufcGpUgQb5vF9q4HEHumLD61x01PxanBCgT
+XT0FdZouhp4ssBeHIFhX7+HqVWC4LHAhrCljDBD8YLz51Rw3ZNW0+x6rJjlGiKTL
+zTBnwCZ55cpo+SLX5dKxu0hMmwuYW0KS5dLtDkcw+t0nVmNqpQHHjq/wTjsbVRVE
+1T5NVx7hkeq4oI/OOmNflom6CD7+RLsCAwEAAaOCAwUwggMBMBIGA1UdEwEB/wQI
+MAYBAf8CAQAwggEyBgNVHSAEggEpMIIBJTCCASEGCSqGSIb2fQdLAjCCARIwJgYI
+KwYBBQUHAgEWGmh0dHA6Ly93d3cuZW50cnVzdC5uZXQvY3BzMIHnBggrBgEFBQcC
+AjCB2hqB10ZvciB1c2Ugc29sZWx5IHdpdGggU1NMIGFuZCBTL01JTUUgY2VydGlm
+aWNhdGVzIGlzc3VlZCBieSBEaWdpY2VydCwgSW5jLiB0byBhdXRob3JpemVkIHN1
+YnNjcmliZXJzLg0KRE9FUyBOT1QgcmVwcmVzZW50IGFueSBlbmRvcnNlbWVudCBi
+eSBFbnRydXN0IEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMgYXMgdG8gdGhlIGlkZW50
+aXR5IG9mIGFueSBjZXJ0aWZpY2F0ZSBob2xkZXIuMDEGA1UdJQQqMCgGCCsGAQUF
+BwMBBggrBgEFBQcDAgYIKwYBBQUHAwQGCCsGAQUFBwMJMIIBGAYDVR0fBIIBDzCC
+AQswKKAmoCSGImh0dHA6Ly9jcmwuZW50cnVzdC5uZXQvc2VydmVyMS5jcmwwgd6g
+gduggdikgdUwgdIxCzAJBgNVBAYTAlVTMRQwEgYDVQQKEwtFbnRydXN0Lm5ldDE7
+MDkGA1UECxMyd3d3LmVudHJ1c3QubmV0L0NQUyBpbmNvcnAuIGJ5IHJlZi4gKGxp
+bWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1c3QubmV0IExpbWl0
+ZWQxOjA4BgNVBAMTMUVudHJ1c3QubmV0IFNlY3VyZSBTZXJ2ZXIgQ2VydGlmaWNh
+dGlvbiBBdXRob3JpdHkxDTALBgNVBAMTBENSTDEwCwYDVR0PBAQDAgEGMB8GA1Ud
+IwQYMBaAFPAXYhNVPbP/CgBr+1CEl/PtYtAaMB0GA1UdDgQWBBSnxxOgegE8ne+C
+SIJI1XNRthJWKjAZBgkqhkiG9n0HQQAEDDAKGwRWNy4xAwIAgTANBgkqhkiG9w0B
+AQUFAAOBgQBK8bPOaGnjWKNh7bYWyJOxGDA+4HLfTz3iTeG4/D/ByeNFqV2pwdqj
+5TbXjtYPrTavbLxE5ppGlKYRoNBS59pVsPYchftjUnu2mY8f4stHZKLrCGXmUdsc
+S21/U58eDTGT1DBdHm4BBydgXbvT9ONsHSAPdSozEKe3idepFxQyAw==
+-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIEUDCCA7mgAwIBAgIJAN4ppNGwj6yIMA0GCSqGSIb3DQEBBAUAMIHMMQswCQYD
VQQGEwJVUzETMBEGA1UECBMKQ2FsaWZvcm5pYTEWMBQGA1UEBxMNU2FuIEZyYW5j
@@ -1824,48 +3895,3 @@ xA39CIJ65Zozs28Eg1aV9/Y+Of7TnWhW+U3J3/wD/GghaAGiKK6vMn9gJBIdBX/9
e6ef37VGyiOEFFjnUIbuk0RWty0orN76q/lI/xjCi15XSA/VSq2j4vmnwfZcPTDu
glmQ1A==
-----END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIDQTCCAikCBEvyOsEwDQYJKoZIhvcNAQEEBQAwSDENMAsGA1UECxMER0lBQjEi
-MCAGA1UEAxMZY2hpbW5leXJvY2subGluZGVubGFiLmNvbTETMBEGA1UEChMKTGlu
-ZGVuIExhYjAeFw0xMDA1MTcyMTUzMDVaFw0xMTA1MTcyMTUzMDVaMCQxIjAgBgNV
-BAMTGWNoaW1uZXlyb2NrLmxpbmRlbmxhYi5jb20wgZ8wDQYJKoZIhvcNAQEBBQAD
-gY0AMIGJAoGBALYZBzbHpME8PQIO4lhokeLT9mowtw7/XO6DYAJwosRJ4zcEw+/5
-IBfKMfQwtbt9JeJULFEn37NL1UbMxIXXmhc5ksjh04WoOyNhPT10mLJ2bLbTa+xw
-UEm5S3qo/4DKu6I/ONeKDX17XXs0MJQYr4JV0PaXig57Q7GUsEut1hslAgMBAAGj
-gd8wgdwwEwYDVR0lBAwwCgYIKwYBBQUHAwEwCQYDVR0TBAIwADALBgNVHQ8EBAMC
-BaAwfwYDVR0jBHgwdoAgxeADFdbMC6h1FEvUr1CQ+/0Gy9PZFec3OIBsByVVfc2h
-TKRKMEgxDTALBgNVBAsTBEdJQUIxIjAgBgNVBAMTGWNoaW1uZXlyb2NrLmxpbmRl
-bmxhYi5jb20xEzARBgNVBAoTCkxpbmRlbiBMYWKCBEvxusEwLAYDVR0OAQH/BCIE
-IOSsRq4oCDj4UyXZWXuTbBjCxpSmM7K+JBWMRuZJnQm4MA0GCSqGSIb3DQEBBAUA
-A4IBAQBSfsuZTC8dfsJfaIKywQDYMrjutSKEKLm7l9BtBKQKKG97k4GAnQL+9nvn
-sOv5moA8qIuHdj05qoEvaMmOgKWGoNWr5YBN/gE1k15U8KdU6Z4usS5hx+6lcCb4
-kD4LybSGUku/Jl9qikT82mdEQA5FerNeA9XAq9LWDF37IorUsDlJTe4STb01LZO8
-37tAJ2eEgsY3cFFk5Zrdi46BRcixnLDRLTVGSUnOKKmaqUF1fFESO+kJFfYjH6Bu
-gxO37yK5JUII7t4zNaTJnuFPbUxcNa/WQOMTBzp5xXdnqkTxJk4oHvO7x3+SEElZ
-KeKB2mkBRCUG3dznWSFWrUT9hrui
------END CERTIFICATE-----
-
------BEGIN CERTIFICATE-----
-MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBs
-MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
-d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j
-ZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAwMFoXDTMxMTExMDAwMDAwMFowbDEL
-MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3
-LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFuY2Ug
-RVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm
-+9S75S0tMqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTW
-PNt0OKRKzE0lgvdKpVMSOO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEM
-xChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFB
-Ik5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQNAQTXKFx01p8VdteZOE3
-hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUeh10aUAsg
-EsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQF
-MAMBAf8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaA
-FLE+w2kD+L9HAdSYJhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3Nec
-nzyIZgYIVyHbIUf4KmeqvxgydkAQV8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6z
-eM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFpmyPInngiK3BD41VHMWEZ71jF
-hS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkKmNEVX58Svnw2
-Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe
-vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep
-+OkuE6N36B9K
------END CERTIFICATE-----
diff --git a/indra/newview/app_settings/cmd_line.xml b/indra/newview/app_settings/cmd_line.xml
index 5f143431de..00d69f805e 100644
--- a/indra/newview/app_settings/cmd_line.xml
+++ b/indra/newview/app_settings/cmd_line.xml
@@ -296,7 +296,7 @@
<key>multiple</key>
<map>
<key>desc</key>
- <string>Allow multple viewers.</string>
+ <string>Allow multiple viewers.</string>
<key>map-to</key>
<string>AllowMultipleViewers</string>
</map>
diff --git a/indra/newview/app_settings/high_graphics.xml b/indra/newview/app_settings/high_graphics.xml
index 6368f7099e..587b2f2a89 100644
--- a/indra/newview/app_settings/high_graphics.xml
+++ b/indra/newview/app_settings/high_graphics.xml
@@ -12,8 +12,6 @@
<RenderFlexTimeFactor value="1"/>
<!--256... but they don't use this-->
<RenderGlowResolutionPow value="9"/>
- <!--Sun/Moon only-->
- <RenderLightingDetail value="1"/>
<!--Low number-->
<RenderMaxPartCount value="4096"/>
<!--bump okay-->
@@ -31,9 +29,14 @@
<!--Default for now-->
<RenderVolumeLODFactor value="1.125"/>
<!--NO SHADERS-->
- <RenderWaterReflections value="FALSE"/>
- <!--NO SHADERS-->
<VertexShaderEnable value="TRUE"/>
<!--NO SHADERS-->
<WindLightUseAtmosShaders value="TRUE"/>
+ <!--Deferred Shading-->
+ <RenderDeferred value="FALSE"/>
+ <!--SSAO Disabled-->
+ <RenderDeferredSSAO value="FALSE"/>
+ <!--Sun Shadows-->
+ <RenderShadowDetail value="0"/>
+
</settings>
diff --git a/indra/newview/app_settings/ignorable_dialogs.xml b/indra/newview/app_settings/ignorable_dialogs.xml
index d0e1f62a84..0720ccee49 100644
--- a/indra/newview/app_settings/ignorable_dialogs.xml
+++ b/indra/newview/app_settings/ignorable_dialogs.xml
@@ -1,10 +1,10 @@
<?xml version="1.0" ?>
<llsd>
<map>
- <key>FirstAppearance</key>
+ <key>FirstInventoryOffer</key>
<map>
<key>Comment</key>
- <string>Enables FirstAppearance warning dialog</string>
+ <string>Shows hint when a person or object offers resident an inventory item</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
@@ -12,120 +12,54 @@
<key>Value</key>
<integer>1</integer>
</map>
- <key>FirstAttach</key>
- <map>
- <key>Comment</key>
- <string>Enables FirstAttach warning dialog</string>
- <key>Persist</key>
- <integer>1</integer>
- <key>Type</key>
- <string>Boolean</string>
- <key>Value</key>
- <integer>1</integer>
- </map>
- <key>FirstBalanceDecrease</key>
- <map>
- <key>Comment</key>
- <string>Enables FirstBalanceDecrease warning dialog</string>
- <key>Persist</key>
- <integer>1</integer>
- <key>Type</key>
- <string>Boolean</string>
- <key>Value</key>
- <integer>1</integer>
- </map>
- <key>FirstBalanceIncrease</key>
- <map>
- <key>Comment</key>
- <string>Enables FirstBalanceIncrease warning dialog</string>
- <key>Persist</key>
- <integer>1</integer>
- <key>Type</key>
- <string>Boolean</string>
- <key>Value</key>
- <integer>1</integer>
- </map>
- <key>FirstBuild</key>
- <map>
- <key>Comment</key>
- <string>Enables FirstBuild warning dialog</string>
- <key>Persist</key>
- <integer>1</integer>
- <key>Type</key>
- <string>Boolean</string>
- <key>Value</key>
- <integer>1</integer>
- </map>
- <key>FirstDebugMenus</key>
- <map>
- <key>Comment</key>
- <string>Enables FirstDebugMenus warning dialog</string>
- <key>Persist</key>
- <integer>1</integer>
- <key>Type</key>
- <string>Boolean</string>
- <key>Value</key>
- <integer>1</integer>
- </map>
- <key>FirstFlexible</key>
- <map>
- <key>Comment</key>
- <string>Enables FirstFlexible warning dialog</string>
- <key>Persist</key>
- <integer>1</integer>
- <key>Type</key>
- <string>Boolean</string>
- <key>Value</key>
- <integer>1</integer>
- </map>
- <key>FirstGoTo</key>
- <map>
- <key>Comment</key>
- <string>Enables FirstGoTo warning dialog</string>
- <key>Persist</key>
- <integer>1</integer>
- <key>Type</key>
- <string>Boolean</string>
- <key>Value</key>
- <integer>1</integer>
- </map>
- <key>FirstInventory</key>
- <map>
- <key>Comment</key>
- <string>Enables FirstInventory warning dialog</string>
- <key>Persist</key>
- <integer>1</integer>
- <key>Type</key>
- <string>Boolean</string>
- <key>Value</key>
- <integer>1</integer>
- </map>
- <key>FirstLeftClickNoHit</key>
- <map>
- <key>Comment</key>
- <string>Enables FirstLeftClickNoHit warning dialog</string>
- <key>Persist</key>
- <integer>1</integer>
- <key>Type</key>
- <string>Boolean</string>
- <key>Value</key>
- <integer>1</integer>
- </map>
- <key>FirstMap</key>
- <map>
- <key>Comment</key>
- <string>Enables FirstMap warning dialog</string>
- <key>Persist</key>
- <integer>1</integer>
- <key>Type</key>
- <string>Boolean</string>
- <key>Value</key>
- <integer>1</integer>
- </map>
- <key>FirstMedia</key>
+ <key>FirstNotUseDestinationGuide</key>
+ <map>
+ <key>Comment</key>
+ <string>Shows hint when resident doesn't activate destination guide</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>Boolean</string>
+ <key>Value</key>
+ <integer>1</integer>
+ </map>
+ <key>FirstNotUseSidePanel</key>
+ <map>
+ <key>Comment</key>
+ <string>Shows hint when resident doesn't activate side panel</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>Boolean</string>
+ <key>Value</key>
+ <integer>1</integer>
+ </map>
+ <key>FirstNotMoving</key>
+ <map>
+ <key>Comment</key>
+ <string>Shows hint when resident doesn't move</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>Boolean</string>
+ <key>Value</key>
+ <integer>1</integer>
+ </map>
+ <key>FirstReceiveLindens</key>
+ <map>
+ <key>Comment</key>
+ <string>Shows hint when resident receives linden dollars</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>Boolean</string>
+ <key>Value</key>
+ <integer>1</integer>
+ </map>
+ <key>FirstOtherChatBeforeUser</key>
<map>
<key>Comment</key>
- <string>Enables FirstMedia warning dialog</string>
+ <string>Shows hint when someone else chats first</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
@@ -155,43 +89,11 @@
<key>Value</key>
<integer>1</integer>
</map>
- <key>FirstSculptedPrim</key>
- <map>
- <key>Comment</key>
- <string>Enables FirstSculptedPrim warning dialog</string>
- <key>Persist</key>
- <integer>1</integer>
- <key>Type</key>
- <string>Boolean</string>
- <key>Value</key>
- <integer>1</integer>
- </map>
+
<key>FirstSit</key>
<map>
<key>Comment</key>
- <string>Enables FirstSit warning dialog</string>
- <key>Persist</key>
- <integer>1</integer>
- <key>Type</key>
- <string>Boolean</string>
- <key>Value</key>
- <integer>1</integer>
- </map>
- <key>FirstTeleport</key>
- <map>
- <key>Comment</key>
- <string>Enables FirstTeleport warning dialog</string>
- <key>Persist</key>
- <integer>1</integer>
- <key>Type</key>
- <string>Boolean</string>
- <key>Value</key>
- <integer>1</integer>
- </map>
- <key>FirstVoice</key>
- <map>
- <key>Comment</key>
- <string>Enables FirstVoice warning dialog</string>
+ <string>Shows hint when someone sits for the first time</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
diff --git a/indra/newview/app_settings/low_graphics.xml b/indra/newview/app_settings/low_graphics.xml
index d02a13a671..a5bbdfc1d0 100644
--- a/indra/newview/app_settings/low_graphics.xml
+++ b/indra/newview/app_settings/low_graphics.xml
@@ -14,8 +14,6 @@
<RenderFlexTimeFactor value="0.5"/>
<!--256... but they don't use this-->
<RenderGlowResolutionPow value="8"/>
- <!--Sun/Moon only-->
- <RenderLightingDetail value="0"/>
<!--Low number-->
<RenderMaxPartCount value="1024"/>
<!--bump okay-->
@@ -33,9 +31,14 @@
<!--Default for now-->
<RenderVolumeLODFactor value="1.125"/>
<!--NO SHADERS-->
- <RenderWaterReflections value="FALSE"/>
- <!--NO SHADERS-->
<VertexShaderEnable value="FALSE"/>
<!--NO SHADERS-->
<WindLightUseAtmosShaders value="FALSE"/>
+ <!--No Deferred Shading-->
+ <RenderDeferred value="FALSE"/>
+ <!--SSAO Disabled-->
+ <RenderDeferredSSAO value="FALSE"/>
+ <!--No Shadows-->
+ <RenderShadowDetail value="0"/>
+
</settings>
diff --git a/indra/newview/app_settings/mid_graphics.xml b/indra/newview/app_settings/mid_graphics.xml
index 12da77da40..a1430a58f9 100644
--- a/indra/newview/app_settings/mid_graphics.xml
+++ b/indra/newview/app_settings/mid_graphics.xml
@@ -12,8 +12,6 @@
<RenderFlexTimeFactor value="1"/>
<!--256... but they don't use this-->
<RenderGlowResolutionPow value="8"/>
- <!--Sun/Moon only-->
- <RenderLightingDetail value="1"/>
<!--Low number-->
<RenderMaxPartCount value="2048"/>
<!--bump okay-->
@@ -31,9 +29,14 @@
<!--Default for now-->
<RenderVolumeLODFactor value="1.125"/>
<!--NO SHADERS-->
- <RenderWaterReflections value="FALSE"/>
- <!--NO SHADERS-->
<VertexShaderEnable value="TRUE"/>
<!--NO SHADERS-->
<WindLightUseAtmosShaders value="FALSE"/>
+ <!--No Deferred Shading-->
+ <RenderDeferred value="FALSE"/>
+ <!--SSAO Disabled-->
+ <RenderDeferredSSAO value="FALSE"/>
+ <!--No Shadows-->
+ <RenderShadowDetail value="0"/>
+
</settings>
diff --git a/indra/newview/app_settings/settings.xml b/indra/newview/app_settings/settings.xml
index 1d635ef18a..742a20a849 100644
--- a/indra/newview/app_settings/settings.xml
+++ b/indra/newview/app_settings/settings.xml
@@ -585,7 +585,7 @@
<key>Value</key>
<integer>2</integer>
</map>
- <key>AvatarBakedTextureTimeout</key>
+ <key>AvatarBakedTextureUploadTimeout</key>
<map>
<key>Comment</key>
<string>Specifes the maximum time in seconds to wait before sending your baked textures for avatar appearance. Set to 0 to disable and wait until all baked textures are at highest resolution.</string>
@@ -594,8 +594,20 @@
<key>Type</key>
<string>U32</string>
<key>Value</key>
- <integer>120</integer>
+ <integer>60</integer>
</map>
+ <key>AvatarBakedLocalTextureUpdateTimeout</key>
+ <map>
+ <key>Comment</key>
+ <string>Specifes the maximum time in seconds to wait before updating your appearance during appearance mode.</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>U32</string>
+ <key>Value</key>
+ <integer>10</integer>
+ </map>
+
<key>AvatarSex</key>
<map>
<key>Comment</key>
@@ -1135,6 +1147,17 @@
<key>Value</key>
<string />
</map>
+ <key>CacheNumberOfRegionsForObjects</key>
+ <map>
+ <key>Comment</key>
+ <string>Controls number of regions to be cached for objects, ranges from 16 to 128.</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>U32</string>
+ <key>Value</key>
+ <integer>128</integer>
+ </map>
<key>CacheSize</key>
<map>
<key>Comment</key>
@@ -1729,6 +1752,17 @@
<key>Value</key>
<integer>0</integer>
</map>
+ <key>DebugAvatarLocalTexLoadedTime</key>
+ <map>
+ <key>Comment</key>
+ <string>Display time for loading avatar local textures.</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>
@@ -2654,6 +2688,17 @@
<key>Value</key>
<integer>0</integer>
</map>
+ <key>DoubleClickTeleport</key>
+ <map>
+ <key>Comment</key>
+ <string>Enable double-click to teleport where allowed</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>Boolean</string>
+ <key>Value</key>
+ <integer>0</integer>
+ </map>
<key>DragAndDropToolTipDelay</key>
<map>
<key>Comment</key>
@@ -2764,6 +2809,17 @@
<key>Value</key>
<integer>0</integer>
</map>
+ <key>EffectScriptChatParticles</key>
+ <map>
+ <key>Comment</key>
+ <string>1 = normal behavior, 0 = disable display of swirling lights when scripts communicate</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>Boolean</string>
+ <key>Value</key>
+ <integer>1</integer>
+ </map>
<key>EnableRippleWater</key>
<map>
<key>Comment</key>
@@ -2786,6 +2842,17 @@
<key>Value</key>
<integer>0</integer>
</map>
+ <key>EnableUIHints</key>
+ <map>
+ <key>Comment</key>
+ <string>Toggles UI hint popups</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>Boolean</string>
+ <key>Value</key>
+ <integer>1</integer>
+ </map>
<key>EnableVoiceChat</key>
<map>
<key>Comment</key>
@@ -3309,6 +3376,17 @@
<key>Value</key>
<real>1.0</real>
</map>
+ <key>FlycamBuildModeScale</key>
+ <map>
+ <key>Comment</key>
+ <string>Scale factor to apply to flycam movements when in build mode.</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>F32</string>
+ <key>Value</key>
+ <real>1.0</real>
+ </map>
<key>FlycamFeathering</key>
<map>
<key>Comment</key>
@@ -3759,7 +3837,7 @@
<key>Comment</key>
<string>URL for the web page to display in the Home side panel</string>
<key>Persist</key>
- <integer>0</integer>
+ <integer>1</integer>
<key>Type</key>
<string>String</string>
<key>Value</key>
@@ -4635,6 +4713,17 @@
<key>Value</key>
<integer>1</integer>
</map>
+ <key>MiniMapAutoCenter</key>
+ <map>
+ <key>Comment</key>
+ <string>Center the focal point of the minimap.</string>
+ <key>Persist</key>
+ <integer>0</integer>
+ <key>Type</key>
+ <string>Boolean</string>
+ <key>Value</key>
+ <integer>1</integer>
+ </map>
<key>Marker</key>
<map>
<key>Comment</key>
@@ -4655,7 +4744,7 @@
<key>Type</key>
<string>String</string>
<key>Value</key>
- <string>https://www.xstreetsl.com/modules.php?name=Marketplace</string>
+ <string>http://marketplace.secondlife.com/</string>
</map>
<key>MarketplaceURL_objectFemale</key>
<map>
@@ -4710,7 +4799,7 @@
<key>Type</key>
<string>String</string>
<key>Value</key>
- <string>https://www.xstreetsl.com/modules.php?name=Marketplace</string>
+ <string>http://marketplace.secondlife.com</string>
</map>
<key>MarketplaceURL_bodypartMale</key>
<map>
@@ -4721,7 +4810,7 @@
<key>Type</key>
<string>String</string>
<key>Value</key>
- <string>https://www.xstreetsl.com/modules.php?name=Marketplace</string>
+ <string>http://marketplace.secondlife.com/</string>
</map>
<key>MarketplaceURL_glovesMale</key>
<map>
@@ -5141,6 +5230,17 @@
<key>Value</key>
<real>3.0</real>
</map>
+ <key>MediaEnablePopups</key>
+ <map>
+ <key>Comment</key>
+ <string>If true, enable targeted links and javascript in media to open new media browser windows without a prompt.</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>Boolean</string>
+ <key>Value</key>
+ <integer>0</integer>
+ </map>
<key>MediaOnAPrimUI</key>
<map>
<key>Comment</key>
@@ -5338,7 +5438,7 @@
<string>Boolean</string>
<key>Value</key>
<integer>0</integer>
- </map>
+ </map>
<key>MouseSun</key>
<map>
<key>Comment</key>
@@ -5350,7 +5450,7 @@
<key>Value</key>
<integer>0</integer>
</map>
- <key>MuteAmbient</key>
+ <key>MuteAmbient</key>
<map>
<key>Comment</key>
<string>Ambient sound effects, such as wind noise, play at 0 volume</string>
@@ -6402,6 +6502,17 @@
<key>Value</key>
<real>1.0</real>
</map>
+ <key>MediaBrowserWindowLimit</key>
+ <map>
+ <key>Comment</key>
+ <string>Maximum number of media brower windows that can be open at once (0 for no limit)</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>S32</string>
+ <key>Value</key>
+ <integer>5</integer>
+ </map>
<key>MediaRollOffRate</key>
<map>
<key>Comment</key>
@@ -6714,7 +6825,7 @@
<key>Type</key>
<string>U32</string>
<key>Value</key>
- <integer>60</integer>
+ <integer>200</integer>
</map>
<key>RenderSSAOFactor</key>
<map>
@@ -7089,6 +7200,64 @@
<real>0.01</real>
</map>
+ <key>RenderShadowBiasError</key>
+ <map>
+ <key>Comment</key>
+ <string>Error scale for shadow bias (based on altitude).</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>F32</string>
+ <key>Value</key>
+ <real>0</real>
+ </map>
+ <key>RenderShadowOffsetError</key>
+ <map>
+ <key>Comment</key>
+ <string>Error scale for shadow offset (based on altitude).</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>F32</string>
+ <key>Value</key>
+ <real>0</real>
+ </map>
+
+ <key>RenderSpotLightsInNondeferred</key>
+ <map>
+ <key>Comment</key>
+ <string>Whether to support projectors as spotlights when Lighting and Shadows is disabled</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>Boolean</string>
+ <key>Value</key>
+ <integer>0</integer>
+ </map>
+
+ <key>RenderSpotShadowBias</key>
+ <map>
+ <key>Comment</key>
+ <string>Bias value for shadows (prevent shadow acne).</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>F32</string>
+ <key>Value</key>
+ <real>0.0</real>
+ </map>
+ <key>RenderSpotShadowOffset</key>
+ <map>
+ <key>Comment</key>
+ <string>Offset value for shadows (prevent shadow acne).</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>F32</string>
+ <key>Value</key>
+ <real>0.04</real>
+ </map>
+
<key>RenderShadowResolutionScale</key>
<map>
<key>Comment</key>
@@ -7101,8 +7270,6 @@
<real>1.0</real>
</map>
-
-
<key>RenderDeferredTreeShadowBias</key>
<map>
<key>Comment</key>
@@ -7224,7 +7391,7 @@
<key>Type</key>
<string>F32</string>
<key>Value</key>
- <real>1</real>
+ <real>8</real>
</map>
<key>RenderDeferred</key>
@@ -7239,18 +7406,6 @@
<integer>0</integer>
</map>
- <key>RenderDeferredShadow</key>
- <map>
- <key>Comment</key>
- <string>Enable shadows in deferred renderer.</string>
- <key>Persist</key>
- <integer>1</integer>
- <key>Type</key>
- <string>Boolean</string>
- <key>Value</key>
- <integer>1</integer>
- </map>
-
<key>RenderDeferredGI</key>
<map>
<key>Comment</key>
@@ -7263,10 +7418,10 @@
<integer>0</integer>
</map>
- <key>RenderDeferredSunShadow</key>
+ <key>RenderDeferredSun</key>
<map>
<key>Comment</key>
- <string>Generate shadows from the sun.</string>
+ <string>Execute sunlight shader in deferred renderer.</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
@@ -7275,10 +7430,10 @@
<integer>1</integer>
</map>
- <key>RenderDeferredSun</key>
+ <key>RenderDeferredAtmospheric</key>
<map>
<key>Comment</key>
- <string>Execute sunlight shader in deferred renderer.</string>
+ <string>Execute atmospheric shader in deferred renderer.</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
@@ -7287,10 +7442,10 @@
<integer>1</integer>
</map>
- <key>RenderDeferredAtmospheric</key>
+ <key>RenderDeferredSSAO</key>
<map>
<key>Comment</key>
- <string>Execute atmospheric shader in deferred renderer.</string>
+ <string>Execute screen space ambient occlusion shader in deferred renderer.</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
@@ -7549,10 +7704,10 @@
<key>Value</key>
<real>256.0</real>
</map>
- <key>RenderFastAlpha</key>
+ <key>RenderAutoMaskAlphaNonDeferred</key>
<map>
<key>Comment</key>
- <string>Use lossy alpha rendering optimization (opaque/nonexistent small alpha faces).</string>
+ <string>Use alpha masks where appropriate, in the non-deferred (non-'Lighting and Shadows') graphics mode</string>
<key>Persist</key>
<integer>1</integer>
<key>Type</key>
@@ -7560,6 +7715,17 @@
<key>Value</key>
<integer>0</integer>
</map>
+ <key>RenderAutoMaskAlphaDeferred</key>
+ <map>
+ <key>Comment</key>
+ <string>Use alpha masks where appropriate, in the deferred ('Lighting and Shadows') graphics mode</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>Boolean</string>
+ <key>Value</key>
+ <integer>1</integer>
+ </map>
<key>RenderFastUI</key>
<map>
<key>Comment</key>
@@ -7766,6 +7932,17 @@
<key>Value</key>
<integer>0</integer>
</map>
+ <key>RenderHighlightSelections</key>
+ <map>
+ <key>Comment</key>
+ <string>Show selection outlines on objects</string>
+ <key>Persist</key>
+ <integer>0</integer>
+ <key>Type</key>
+ <string>Boolean</string>
+ <key>Value</key>
+ <integer>1</integer>
+ </map>
<key>RenderHiddenSelections</key>
<map>
<key>Comment</key>
@@ -7821,17 +7998,6 @@
<key>Value</key>
<integer>0</integer>
</map>
- <key>RenderLightingDetail</key>
- <map>
- <key>Comment</key>
- <string>Amount of detail for lighting objects/avatars/terrain (0=sun/moon only, 1=enable local lights)</string>
- <key>Persist</key>
- <integer>1</integer>
- <key>Type</key>
- <string>S32</string>
- <key>Value</key>
- <integer>1</integer>
- </map>
<key>RenderMaxPartCount</key>
<map>
<key>Comment</key>
@@ -7931,6 +8097,18 @@
<key>Value</key>
<integer>2</integer>
</map>
+ <key>RenderShadowDetail</key>
+ <map>
+ <key>Comment</key>
+ <string>Detail of shadows.</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>S32</string>
+ <key>Value</key>
+ <integer>2</integer>
+ </map>
+
<key>RenderReflectionRes</key>
<map>
<key>Comment</key>
@@ -8061,7 +8239,7 @@
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
- <integer>0</integer>
+ <integer>1</integer>
</map>
<key>RenderUIBuffer</key>
<map>
@@ -8162,6 +8340,17 @@
<key>Value</key>
<integer>1</integer>
</map>
+ <key>RenderUseStreamVBO</key>
+ <map>
+ <key>Comment</key>
+ <string>Use VBO's for stream buffers</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>Boolean</string>
+ <key>Value</key>
+ <integer>1</integer>
+ </map>
<key>RenderVolumeLODFactor</key>
<map>
<key>Comment</key>
@@ -8206,17 +8395,6 @@
<key>Value</key>
<integer>512</integer>
</map>
- <key>RenderWaterReflections</key>
- <map>
- <key>Comment</key>
- <string>Reflect the environment in the water.</string>
- <key>Persist</key>
- <integer>1</integer>
- <key>Type</key>
- <string>Boolean</string>
- <key>Value</key>
- <integer>0</integer>
- </map>
<key>RotateRight</key>
<map>
<key>Comment</key>
@@ -8239,17 +8417,6 @@
<key>Value</key>
<real>1.0</real>
</map>
- <key>RunMultipleThreads</key>
- <map>
- <key>Comment</key>
- <string>If TRUE keep background threads active during render</string>
- <key>Persist</key>
- <integer>1</integer>
- <key>Type</key>
- <string>Boolean</string>
- <key>Value</key>
- <integer>0</integer>
- </map>
<key>SafeMode</key>
<map>
<key>Comment</key>
@@ -8556,7 +8723,7 @@
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
- <integer>0</integer>
+ <integer>1</integer>
</map>
<key>ShowBetaGrids</key>
<map>
@@ -8765,7 +8932,7 @@
<key>Type</key>
<string>Boolean</string>
<key>Value</key>
- <integer>1</integer>
+ <integer>0</integer>
</map>
<key>GroupListShowIcons</key>
<map>
@@ -8789,6 +8956,17 @@
<key>Value</key>
<integer>1</integer>
</map>
+ <key>FriendsListShowPermissions</key>
+ <map>
+ <key>Comment</key>
+ <string>Show/hide permission icons in the friend list</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>Boolean</string>
+ <key>Value</key>
+ <integer>1</integer>
+ </map>
<key>NearbyListShowIcons</key>
<map>
<key>Comment</key>
@@ -9416,6 +9594,28 @@
<key>Value</key>
<integer>75</integer>
</map>
+ <key>SnapshotSharingEnabled</key>
+ <map>
+ <key>Comment</key>
+ <string>Enable uploading of snapshots to a web service.</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>Boolean</string>
+ <key>Value</key>
+ <integer>0</integer>
+ </map>
+ <key>SnapshotConfigURL</key>
+ <map>
+ <key>Comment</key>
+ <string>URL to fetch Snapshot Sharing configuration data from.</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>String</string>
+ <key>Value</key>
+ <string>http://photos.apps.staging.avatarsunited.com/viewer_config</string>
+ </map>
<key>SnapshotTextureLastResolution</key>
<map>
<key>Comment</key>
@@ -9724,6 +9924,28 @@
<key>Value</key>
<integer>1</integer>
</map>
+ <key>TranslateLanguage</key>
+ <map>
+ <key>Comment</key>
+ <string>Translate Language specifier</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>String</string>
+ <key>Value</key>
+ <string>default</string>
+ </map>
+ <key>TranslateChat</key>
+ <map>
+ <key>Comment</key>
+ <string>Translate incoming chat messages</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>Boolean</string>
+ <key>Value</key>
+ <integer>0</integer>
+ </map>
<key>TutorialURL</key>
<map>
<key>Comment</key>
@@ -11371,9 +11593,9 @@
<key>Persist</key>
<integer>0</integer>
<key>Type</key>
- <string>Boolean</string>
+ <string>S32</string>
<key>Value</key>
- <integer>0</integer>
+ <integer>-1</integer>
</map>
<key>WaterEditPresets</key>
<map>
@@ -11824,5 +12046,49 @@
<key>Value</key>
<integer>1</integer>
</map>
+ <key>TipToastMessageLineCount</key>
+ <map>
+ <key>Comment</key>
+ <string>Max line count of text message on tip toast.</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>S32</string>
+ <key>Value</key>
+ <integer>10</integer>
+ </map>
+ <key>NotMovingHintTimeout</key>
+ <map>
+ <key>Comment</key>
+ <string>Number of seconds to wait for resident to move before displaying move hint.</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>F32</string>
+ <key>Value</key>
+ <real>120.0</real>
+ </map>
+ <key>DestinationGuideHintTimeout</key>
+ <map>
+ <key>Comment</key>
+ <string>Number of seconds to wait before telling resident about destination guide.</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>F32</string>
+ <key>Value</key>
+ <real>600.0</real>
+ </map>
+ <key>SidePanelHintTimeout</key>
+ <map>
+ <key>Comment</key>
+ <string>Number of seconds to wait before telling resident about side panel.</string>
+ <key>Persist</key>
+ <integer>1</integer>
+ <key>Type</key>
+ <string>F32</string>
+ <key>Value</key>
+ <real>300.0</real>
+ </map>
</map>
</llsd>
diff --git a/indra/newview/app_settings/shaders/class1/avatar/avatarF.glsl b/indra/newview/app_settings/shaders/class1/avatar/avatarF.glsl
index b6cc7f7712..5de9cb0790 100644
--- a/indra/newview/app_settings/shaders/class1/avatar/avatarF.glsl
+++ b/indra/newview/app_settings/shaders/class1/avatar/avatarF.glsl
@@ -1,8 +1,8 @@
/**
* @file avatarF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
void default_lighting();
diff --git a/indra/newview/app_settings/shaders/class1/avatar/avatarSkinV.glsl b/indra/newview/app_settings/shaders/class1/avatar/avatarSkinV.glsl
index 292dbfdab4..7e9818e54a 100644
--- a/indra/newview/app_settings/shaders/class1/avatar/avatarSkinV.glsl
+++ b/indra/newview/app_settings/shaders/class1/avatar/avatarSkinV.glsl
@@ -1,8 +1,8 @@
/**
* @file avatarSkinV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
attribute vec4 weight; //1
diff --git a/indra/newview/app_settings/shaders/class1/avatar/avatarV.glsl b/indra/newview/app_settings/shaders/class1/avatar/avatarV.glsl
index ee3410d732..9f06301cc7 100644
--- a/indra/newview/app_settings/shaders/class1/avatar/avatarV.glsl
+++ b/indra/newview/app_settings/shaders/class1/avatar/avatarV.glsl
@@ -1,8 +1,8 @@
/**
* @file avatarV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
vec4 calcLighting(vec3 pos, vec3 norm, vec4 color, vec4 baseCol);
diff --git a/indra/newview/app_settings/shaders/class1/avatar/eyeballF.glsl b/indra/newview/app_settings/shaders/class1/avatar/eyeballF.glsl
index 4d93c19441..0feb88535a 100644
--- a/indra/newview/app_settings/shaders/class1/avatar/eyeballF.glsl
+++ b/indra/newview/app_settings/shaders/class1/avatar/eyeballF.glsl
@@ -1,8 +1,8 @@
/**
* @file eyeballF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
void default_lighting();
diff --git a/indra/newview/app_settings/shaders/class1/avatar/eyeballV.glsl b/indra/newview/app_settings/shaders/class1/avatar/eyeballV.glsl
index b3c988a924..30a2f10f62 100644
--- a/indra/newview/app_settings/shaders/class1/avatar/eyeballV.glsl
+++ b/indra/newview/app_settings/shaders/class1/avatar/eyeballV.glsl
@@ -1,8 +1,8 @@
/**
* @file eyeballV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
vec4 calcLightingSpecular(vec3 pos, vec3 norm, vec4 color, inout vec4 specularColor, vec4 baseCol);
diff --git a/indra/newview/app_settings/shaders/class1/avatar/pickAvatarF.glsl b/indra/newview/app_settings/shaders/class1/avatar/pickAvatarF.glsl
index 2019300418..bcd710dc57 100644
--- a/indra/newview/app_settings/shaders/class1/avatar/pickAvatarF.glsl
+++ b/indra/newview/app_settings/shaders/class1/avatar/pickAvatarF.glsl
@@ -1,8 +1,8 @@
/**
* @file pickAvatarF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
uniform sampler2D diffuseMap;
diff --git a/indra/newview/app_settings/shaders/class1/avatar/pickAvatarV.glsl b/indra/newview/app_settings/shaders/class1/avatar/pickAvatarV.glsl
index 12d8f9d2f9..299def1927 100644
--- a/indra/newview/app_settings/shaders/class1/avatar/pickAvatarV.glsl
+++ b/indra/newview/app_settings/shaders/class1/avatar/pickAvatarV.glsl
@@ -1,8 +1,8 @@
/**
* @file pickAvatarV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
mat4 getSkinnedTransform();
diff --git a/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl b/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl
index 4fb109d687..171a0e76f7 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/alphaF.glsl
@@ -1,8 +1,8 @@
/**
* @file alphaF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
#extension GL_ARB_texture_rectangle : enable
@@ -24,8 +24,6 @@ varying vec3 vary_fragcoord;
varying vec3 vary_position;
varying vec3 vary_light;
-uniform float alpha_soften;
-
uniform mat4 inv_proj;
vec4 getPosition(vec2 pos_screen)
@@ -57,15 +55,6 @@ void main()
color.rgb = scaleSoftClip(color.rgb);
- if (samp_pos.z != 0.0 && gl_Color.a < 1.0)
- {
- float dist_factor = alpha_soften;
- float a = gl_Color.a;
- a *= a;
- dist_factor *= 1.0/(1.0-a);
- color.a *= min((pos.z-samp_pos.z)*dist_factor, 1.0);
- }
-
//gl_FragColor = gl_Color;
gl_FragColor = color;
//gl_FragColor = vec4(1,0,1,1);
diff --git a/indra/newview/app_settings/shaders/class1/deferred/alphaV.glsl b/indra/newview/app_settings/shaders/class1/deferred/alphaV.glsl
index 1a7d58b07b..fabbce0824 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/alphaV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/alphaV.glsl
@@ -1,15 +1,15 @@
/**
* @file alphaV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
vec4 calcLighting(vec3 pos, vec3 norm, vec4 color, vec4 baseCol);
void calcAtmospherics(vec3 inPositionEye);
float calcDirectionalLight(vec3 n, vec3 l);
-float calcPointLight(vec3 v, vec3 n, vec4 lp, float la);
+float calcPointLightOrSpotLight(vec3 v, vec3 n, vec4 lp, vec3 ln, float la, float is_pointlight);
vec3 atmosAmbient(vec3 light);
vec3 atmosAffectDirectionalLight(float lightIntensity);
@@ -41,23 +41,22 @@ void main()
calcAtmospherics(pos.xyz);
//vec4 color = calcLighting(pos.xyz, norm, gl_Color, vec4(0.));
- vec4 col;
- col.a = gl_Color.a;
-
- // Add windlight lights
- col.rgb = atmosAmbient(vec3(0.));
- col.rgb = scaleUpLight(col.rgb);
+
+ vec4 col = vec4(0.0, 0.0, 0.0, gl_Color.a);
// Collect normal lights (need to be divided by two, as we later multiply by 2)
- col.rgb += gl_LightSource[2].diffuse.rgb*calcPointLight(pos.xyz, norm, gl_LightSource[2].position, gl_LightSource[2].linearAttenuation);
- col.rgb += gl_LightSource[3].diffuse.rgb*calcPointLight(pos.xyz, norm, gl_LightSource[3].position, gl_LightSource[3].linearAttenuation);
- col.rgb += gl_LightSource[4].diffuse.rgb*calcPointLight(pos.xyz, norm, gl_LightSource[4].position, gl_LightSource[4].linearAttenuation);
- col.rgb += gl_LightSource[5].diffuse.rgb*calcPointLight(pos.xyz, norm, gl_LightSource[5].position, gl_LightSource[5].linearAttenuation);
- col.rgb += gl_LightSource[6].diffuse.rgb*calcPointLight(pos.xyz, norm, gl_LightSource[6].position, gl_LightSource[6].linearAttenuation);
- col.rgb += gl_LightSource[7].diffuse.rgb*calcPointLight(pos.xyz, norm, gl_LightSource[7].position, gl_LightSource[7].linearAttenuation);
+ col.rgb += gl_LightSource[2].diffuse.rgb*calcPointLightOrSpotLight(pos.xyz, norm, gl_LightSource[2].position, gl_LightSource[2].spotDirection.xyz, gl_LightSource[2].linearAttenuation, gl_LightSource[2].specular.a);
+ col.rgb += gl_LightSource[3].diffuse.rgb*calcPointLightOrSpotLight(pos.xyz, norm, gl_LightSource[3].position, gl_LightSource[3].spotDirection.xyz, gl_LightSource[3].linearAttenuation, gl_LightSource[3].specular.a);
+ col.rgb += gl_LightSource[4].diffuse.rgb*calcPointLightOrSpotLight(pos.xyz, norm, gl_LightSource[4].position, gl_LightSource[4].spotDirection.xyz, gl_LightSource[4].linearAttenuation, gl_LightSource[4].specular.a);
+ col.rgb += gl_LightSource[5].diffuse.rgb*calcPointLightOrSpotLight(pos.xyz, norm, gl_LightSource[5].position, gl_LightSource[5].spotDirection.xyz, gl_LightSource[5].linearAttenuation, gl_LightSource[5].specular.a);
+ col.rgb += gl_LightSource[6].diffuse.rgb*calcPointLightOrSpotLight(pos.xyz, norm, gl_LightSource[6].position, gl_LightSource[6].spotDirection.xyz, gl_LightSource[6].linearAttenuation, gl_LightSource[6].specular.a);
+ col.rgb += gl_LightSource[7].diffuse.rgb*calcPointLightOrSpotLight(pos.xyz, norm, gl_LightSource[7].position, gl_LightSource[7].spotDirection.xyz, gl_LightSource[7].linearAttenuation, gl_LightSource[7].specular.a);
col.rgb += gl_LightSource[1].diffuse.rgb*calcDirectionalLight(norm, gl_LightSource[1].position.xyz);
col.rgb = scaleDownLight(col.rgb);
+ // Add windlight lights
+ col.rgb += atmosAmbient(vec3(0.));
+
vary_light = gl_LightSource[0].position.xyz;
vary_ambient = col.rgb*gl_Color.rgb;
diff --git a/indra/newview/app_settings/shaders/class1/deferred/avatarAlphaF.glsl b/indra/newview/app_settings/shaders/class1/deferred/avatarAlphaF.glsl
index ff64a6b0c3..82ce6d7377 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/avatarAlphaF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/avatarAlphaF.glsl
@@ -1,8 +1,8 @@
/**
* @file avatarAlphaF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
uniform sampler2D diffuseMap;
diff --git a/indra/newview/app_settings/shaders/class1/deferred/avatarAlphaV.glsl b/indra/newview/app_settings/shaders/class1/deferred/avatarAlphaV.glsl
index c1988d3c78..21ddc2fad8 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/avatarAlphaV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/avatarAlphaV.glsl
@@ -1,8 +1,8 @@
/**
* @file avatarAlphaV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
vec4 calcLighting(vec3 pos, vec3 norm, vec4 color, vec4 baseCol);
@@ -10,7 +10,7 @@ mat4 getSkinnedTransform();
void calcAtmospherics(vec3 inPositionEye);
float calcDirectionalLight(vec3 n, vec3 l);
-float calcPointLight(vec3 v, vec3 n, vec4 lp, float la);
+float calcPointLightOrSpotLight(vec3 v, vec3 n, vec4 lp, vec3 ln, float la, float is_pointlight);
vec3 atmosAmbient(vec3 light);
vec3 atmosAffectDirectionalLight(float lightIntensity);
@@ -47,23 +47,22 @@ void main()
calcAtmospherics(pos.xyz);
//vec4 color = calcLighting(pos.xyz, norm, gl_Color, vec4(0.));
- vec4 col;
- col.a = gl_Color.a;
-
- // Add windlight lights
- col.rgb = atmosAmbient(vec3(0.));
- col.rgb = scaleUpLight(col.rgb);
+
+ vec4 col = vec4(0.0, 0.0, 0.0, gl_Color.a);
// Collect normal lights (need to be divided by two, as we later multiply by 2)
- col.rgb += gl_LightSource[2].diffuse.rgb*calcPointLight(pos.xyz, norm, gl_LightSource[2].position, gl_LightSource[2].linearAttenuation);
- col.rgb += gl_LightSource[3].diffuse.rgb*calcPointLight(pos.xyz, norm, gl_LightSource[3].position, gl_LightSource[3].linearAttenuation);
- col.rgb += gl_LightSource[4].diffuse.rgb*calcPointLight(pos.xyz, norm, gl_LightSource[4].position, gl_LightSource[4].linearAttenuation);
- col.rgb += gl_LightSource[5].diffuse.rgb*calcPointLight(pos.xyz, norm, gl_LightSource[5].position, gl_LightSource[5].linearAttenuation);
- col.rgb += gl_LightSource[6].diffuse.rgb*calcPointLight(pos.xyz, norm, gl_LightSource[6].position, gl_LightSource[6].linearAttenuation);
- col.rgb += gl_LightSource[7].diffuse.rgb*calcPointLight(pos.xyz, norm, gl_LightSource[7].position, gl_LightSource[7].linearAttenuation);
+ col.rgb += gl_LightSource[2].diffuse.rgb*calcPointLightOrSpotLight(pos.xyz, norm, gl_LightSource[2].position, gl_LightSource[2].spotDirection.xyz, gl_LightSource[2].linearAttenuation, gl_LightSource[2].specular.a);
+ col.rgb += gl_LightSource[3].diffuse.rgb*calcPointLightOrSpotLight(pos.xyz, norm, gl_LightSource[3].position, gl_LightSource[3].spotDirection.xyz, gl_LightSource[3].linearAttenuation, gl_LightSource[3].specular.a);
+ col.rgb += gl_LightSource[4].diffuse.rgb*calcPointLightOrSpotLight(pos.xyz, norm, gl_LightSource[4].position, gl_LightSource[4].spotDirection.xyz, gl_LightSource[4].linearAttenuation, gl_LightSource[4].specular.a);
+ col.rgb += gl_LightSource[5].diffuse.rgb*calcPointLightOrSpotLight(pos.xyz, norm, gl_LightSource[5].position, gl_LightSource[5].spotDirection.xyz, gl_LightSource[5].linearAttenuation, gl_LightSource[5].specular.a);
+ col.rgb += gl_LightSource[6].diffuse.rgb*calcPointLightOrSpotLight(pos.xyz, norm, gl_LightSource[6].position, gl_LightSource[6].spotDirection.xyz, gl_LightSource[6].linearAttenuation, gl_LightSource[6].specular.a);
+ col.rgb += gl_LightSource[7].diffuse.rgb*calcPointLightOrSpotLight(pos.xyz, norm, gl_LightSource[7].position, gl_LightSource[7].spotDirection.xyz, gl_LightSource[7].linearAttenuation, gl_LightSource[7].specular.a);
col.rgb += gl_LightSource[1].diffuse.rgb*calcDirectionalLight(norm, gl_LightSource[1].position.xyz);
col.rgb = scaleDownLight(col.rgb);
+ // Add windlight lights
+ col.rgb += atmosAmbient(vec3(0.));
+
vary_ambient = col.rgb*gl_Color.rgb;
vary_directional = gl_Color.rgb*atmosAffectDirectionalLight(max(calcDirectionalLight(norm, gl_LightSource[0].position.xyz), (1.0-gl_Color.a)*(1.0-gl_Color.a)));
diff --git a/indra/newview/app_settings/shaders/class1/deferred/avatarF.glsl b/indra/newview/app_settings/shaders/class1/deferred/avatarF.glsl
index 75df388941..e376892e0a 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/avatarF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/avatarF.glsl
@@ -1,8 +1,8 @@
/**
* @file avatarF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
uniform sampler2D diffuseMap;
@@ -20,6 +20,7 @@ void main()
gl_FragData[0] = vec4(diff.rgb, 0.0);
gl_FragData[1] = vec4(0,0,0,0);
- gl_FragData[2] = vec4(normalize(vary_normal)*0.5+0.5, 0.0);
+ vec3 nvn = normalize(vary_normal);
+ gl_FragData[2] = vec4(nvn.xy * 0.5 + 0.5, nvn.z, 0.0);
}
diff --git a/indra/newview/app_settings/shaders/class1/deferred/avatarShadowF.glsl b/indra/newview/app_settings/shaders/class1/deferred/avatarShadowF.glsl
index 00083eb6b3..d88e3ecfd8 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/avatarShadowF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/avatarShadowF.glsl
@@ -1,8 +1,8 @@
/**
* @file avatarShadowF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
uniform sampler2D diffuseMap;
@@ -10,7 +10,7 @@ uniform sampler2D diffuseMap;
void main()
{
- gl_FragColor = vec4(1,1,1,gl_Color.a * texture2D(diffuseMap, gl_TexCoord[0].xy).a);
- //gl_FragColor = vec4(1,1,1,1);
+ //gl_FragColor = vec4(1,1,1,gl_Color.a * texture2D(diffuseMap, gl_TexCoord[0].xy).a);
+ gl_FragColor = vec4(1,1,1,1);
}
diff --git a/indra/newview/app_settings/shaders/class1/deferred/avatarShadowV.glsl b/indra/newview/app_settings/shaders/class1/deferred/avatarShadowV.glsl
index 8c8489d087..2af8c8f5f7 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/avatarShadowV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/avatarShadowV.glsl
@@ -1,8 +1,8 @@
/**
* @file avatarShadowV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
mat4 getSkinnedTransform();
diff --git a/indra/newview/app_settings/shaders/class1/deferred/avatarV.glsl b/indra/newview/app_settings/shaders/class1/deferred/avatarV.glsl
index 471a1f0407..988226fb7c 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/avatarV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/avatarV.glsl
@@ -1,8 +1,8 @@
/**
* @file avatarV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
mat4 getSkinnedTransform();
diff --git a/indra/newview/app_settings/shaders/class1/deferred/blurLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/blurLightF.glsl
index bd5e9dd758..258a9b7c40 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/blurLightF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/blurLightF.glsl
@@ -1,8 +1,8 @@
/**
* @file blurLightF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
#extension GL_ARB_texture_rectangle : enable
@@ -10,13 +10,11 @@
uniform sampler2DRect depthMap;
uniform sampler2DRect normalMap;
uniform sampler2DRect lightMap;
-uniform sampler2DRect giLightMap;
uniform float dist_factor;
uniform float blur_size;
uniform vec2 delta;
-uniform vec3 kern[32];
-uniform int kern_length;
+uniform vec3 kern[4];
uniform float kern_scale;
varying vec2 vary_fragcoord;
@@ -39,7 +37,8 @@ vec4 getPosition(vec2 pos_screen)
void main()
{
- vec3 norm = texture2DRect(normalMap, vary_fragcoord.xy).xyz*2.0-1.0;
+ vec3 norm = texture2DRect(normalMap, vary_fragcoord.xy).xyz;
+ norm = vec3((norm.xy-0.5)*2.0,norm.z); // unpack norm
vec3 pos = getPosition(vary_fragcoord.xy).xyz;
vec4 ccol = texture2DRect(lightMap, vary_fragcoord.xy).rgba;
@@ -50,7 +49,7 @@ void main()
vec2 defined_weight = kern[0].xy; // special case the first (centre) sample's weight in the blur; we have to sample it anyway so we get it for 'free'
vec4 col = defined_weight.xyxx * ccol;
- for (int i = 1; i < kern_length; i++)
+ for (int i = 1; i < 4; i++)
{
vec2 tc = vary_fragcoord.xy + kern[i].z*dlt;
vec3 samppos = getPosition(tc).xyz;
@@ -61,12 +60,22 @@ void main()
defined_weight += kern[i].xy;
}
}
+ for (int i = 1; i < 4; i++)
+ {
+ vec2 tc = vary_fragcoord.xy - kern[i].z*dlt;
+ vec3 samppos = getPosition(tc).xyz;
+ float d = dot(norm.xyz, samppos.xyz-pos.xyz);// dist from plane
+ if (d*d <= 0.003)
+ {
+ col += texture2DRect(lightMap, tc)*kern[i].xyxx;
+ defined_weight += kern[i].xy;
+ }
+ }
col /= defined_weight.xyxx;
gl_FragColor = col;
-
- //gl_FragColor = ccol;
}
+
diff --git a/indra/newview/app_settings/shaders/class1/deferred/blurLightV.glsl b/indra/newview/app_settings/shaders/class1/deferred/blurLightV.glsl
index b7f07e5702..b1b3f55f00 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/blurLightV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/blurLightV.glsl
@@ -1,8 +1,8 @@
/**
* @file blurLightF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
varying vec2 vary_fragcoord;
diff --git a/indra/newview/app_settings/shaders/class1/deferred/bumpF.glsl b/indra/newview/app_settings/shaders/class1/deferred/bumpF.glsl
index 1c29dae5f7..35f334d58e 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/bumpF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/bumpF.glsl
@@ -1,8 +1,8 @@
/**
* @file bumpF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
uniform sampler2D diffuseMap;
@@ -14,14 +14,16 @@ varying vec3 vary_mat2;
void main()
{
- vec3 col = texture2D(diffuseMap, gl_TexCoord[0].xy).rgb;
+ vec3 col = gl_Color.rgb * texture2D(diffuseMap, gl_TexCoord[0].xy).rgb;
vec3 norm = texture2D(bumpMap, gl_TexCoord[0].xy).rgb * 2.0 - 1.0;
vec3 tnorm = vec3(dot(norm,vary_mat0),
- dot(norm,vary_mat1),
- dot(norm,vary_mat2));
+ dot(norm,vary_mat1),
+ dot(norm,vary_mat2));
- gl_FragData[0] = vec4(gl_Color.rgb*col, 0.0);
- gl_FragData[1] = vec4(col*gl_Color.a, gl_Color.a);
- gl_FragData[2] = vec4(normalize(tnorm)*0.5+0.5, 0.0);
+ gl_FragData[0] = vec4(col, 0.0);
+ gl_FragData[1] = gl_Color.aaaa; // spec
+ //gl_FragData[1] = vec4(vec3(gl_Color.a), gl_Color.a+(1.0-gl_Color.a)*gl_Color.a); // spec - from former class3 - maybe better, but not so well tested
+ vec3 nvn = normalize(tnorm);
+ gl_FragData[2] = vec4(nvn.xy * 0.5 + 0.5, nvn.z, 0.0);
}
diff --git a/indra/newview/app_settings/shaders/class1/deferred/bumpV.glsl b/indra/newview/app_settings/shaders/class1/deferred/bumpV.glsl
index 9589912c6c..6c8550cb5b 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/bumpV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/bumpV.glsl
@@ -1,8 +1,8 @@
/**
* @file bumpV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
varying vec3 vary_mat0;
diff --git a/indra/newview/app_settings/shaders/class1/deferred/diffuseF.glsl b/indra/newview/app_settings/shaders/class1/deferred/diffuseF.glsl
index 5895ebda84..9bd622a506 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/diffuseF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/diffuseF.glsl
@@ -1,8 +1,8 @@
/**
* @file diffuseF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
uniform sampler2D diffuseMap;
@@ -11,8 +11,10 @@ varying vec3 vary_normal;
void main()
{
- vec3 col = texture2D(diffuseMap, gl_TexCoord[0].xy).rgb;
- gl_FragData[0] = vec4(gl_Color.rgb*col, 0.0);
- gl_FragData[1] = vec4(col*(gl_Color.a*1.5), gl_Color.a);
- gl_FragData[2] = vec4(normalize(vary_normal)*0.5+0.5, 0.0);
+ vec3 col = gl_Color.rgb * texture2D(diffuseMap, gl_TexCoord[0].xy).rgb;
+ gl_FragData[0] = vec4(col, 0.0);
+ gl_FragData[1] = gl_Color.aaaa; // spec
+ //gl_FragData[1] = vec4(vec3(gl_Color.a), gl_Color.a+(1.0-gl_Color.a)*gl_Color.a); // spec - from former class3 - maybe better, but not so well tested
+ vec3 nvn = normalize(vary_normal);
+ gl_FragData[2] = vec4(nvn.xy * 0.5 + 0.5, nvn.z, 0.0);
}
diff --git a/indra/newview/app_settings/shaders/class1/deferred/diffuseV.glsl b/indra/newview/app_settings/shaders/class1/deferred/diffuseV.glsl
index 44468cdfa2..bd58096317 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/diffuseV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/diffuseV.glsl
@@ -1,8 +1,8 @@
/**
* @file diffuseV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
varying vec3 vary_normal;
diff --git a/indra/newview/app_settings/shaders/class1/deferred/fullbrightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/fullbrightF.glsl
index e518bddb98..f53e15c6cc 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/fullbrightF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/fullbrightF.glsl
@@ -1,8 +1,8 @@
/**
* @file fullbrightF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
#extension GL_ARB_texture_rectangle : enable
@@ -23,8 +23,6 @@ varying vec4 vary_position;
varying vec3 vary_normal;
varying vec3 vary_fragcoord;
-uniform float alpha_soften;
-
uniform mat4 inv_proj;
vec4 getPosition(vec2 pos_screen)
@@ -56,15 +54,6 @@ void main()
color.rgb = fullbrightScaleSoftClip(color.rgb);
- if (samp_pos.z != 0.0 && color.a < 1.0)
- {
- float dist_factor = alpha_soften;
- float a = color.a;
- a *= a;
- dist_factor *= 1.0/(1.0-a);
- color.a *= min((pos.z-samp_pos.z)*dist_factor, 1.0);
- }
-
//gl_FragColor = gl_Color;
gl_FragColor = color;
//gl_FragColor = vec4(1,0,1,1);
diff --git a/indra/newview/app_settings/shaders/class1/deferred/fullbrightV.glsl b/indra/newview/app_settings/shaders/class1/deferred/fullbrightV.glsl
index aff51178b0..dc8b2c6be4 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/fullbrightV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/fullbrightV.glsl
@@ -1,8 +1,8 @@
/**
* @file fullbrightV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
void calcAtmospherics(vec3 inPositionEye);
diff --git a/indra/newview/app_settings/shaders/class1/deferred/giF.glsl b/indra/newview/app_settings/shaders/class1/deferred/giF.glsl
index b351eec6e5..e64e29a0d2 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/giF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/giF.glsl
@@ -1,8 +1,8 @@
/**
* @file giF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
#extension GL_ARB_texture_rectangle : enable
@@ -159,7 +159,8 @@ void main()
{
vec2 pos_screen = vary_fragcoord.xy;
vec4 pos = getPosition(pos_screen);
- vec3 norm = texture2DRect(normalMap, pos_screen).xyz*2.0-1.0;
+ vec3 norm = texture2DRect(normalMap, pos_screen).xyz;
+ norm = vec3((norm.xy-0.5)*2.0,norm.z); // unpack norm
gl_FragData[0].xyz = giAmbient(pos, norm);
}
diff --git a/indra/newview/app_settings/shaders/class1/deferred/giV.glsl b/indra/newview/app_settings/shaders/class1/deferred/giV.glsl
index 71dcea9628..543527612e 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/giV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/giV.glsl
@@ -1,8 +1,8 @@
/**
* @file giV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
varying vec2 vary_fragcoord;
diff --git a/indra/newview/app_settings/shaders/class1/deferred/impostorF.glsl b/indra/newview/app_settings/shaders/class1/deferred/impostorF.glsl
index 8c140a7b4f..7f365fedc8 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/impostorF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/impostorF.glsl
@@ -1,8 +1,8 @@
/**
* @file impostorF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
uniform sampler2D diffuseMap;
@@ -11,7 +11,8 @@ uniform sampler2D specularMap;
void main()
{
- gl_FragData[0] = texture2D(diffuseMap, gl_TexCoord[0].xy);
+ vec4 col = texture2D(diffuseMap, gl_TexCoord[0].xy);
+ gl_FragData[0] = vec4(col.rgb, col.a <= 0.5 ? 0.0 : 0.005);
gl_FragData[1] = texture2D(specularMap, gl_TexCoord[0].xy);
gl_FragData[2] = vec4(texture2D(normalMap, gl_TexCoord[0].xy).xyz, 0.0);
}
diff --git a/indra/newview/app_settings/shaders/class1/deferred/impostorV.glsl b/indra/newview/app_settings/shaders/class1/deferred/impostorV.glsl
index 57532a30b3..4fc27d4412 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/impostorV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/impostorV.glsl
@@ -1,8 +1,8 @@
/**
* @file impostorV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
void main()
diff --git a/indra/newview/app_settings/shaders/class1/deferred/luminanceF.glsl b/indra/newview/app_settings/shaders/class1/deferred/luminanceF.glsl
index e8b53b0293..acb3014d18 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/luminanceF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/luminanceF.glsl
@@ -1,8 +1,8 @@
/**
* @file luminanceF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
uniform sampler2DRect diffuseMap;
diff --git a/indra/newview/app_settings/shaders/class1/deferred/luminanceV.glsl b/indra/newview/app_settings/shaders/class1/deferred/luminanceV.glsl
index db8775f024..6368def830 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/luminanceV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/luminanceV.glsl
@@ -1,8 +1,8 @@
/**
* @file giV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
varying vec2 vary_fragcoord;
diff --git a/indra/newview/app_settings/shaders/class1/deferred/multiPointLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/multiPointLightF.glsl
index 797b9e9f3b..6fca08ae6a 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/multiPointLightF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/multiPointLightF.glsl
@@ -1,8 +1,8 @@
/**
* @file multiPointLightF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
#extension GL_ARB_texture_rectangle : enable
@@ -53,7 +53,9 @@ void main()
discard;
}
- vec3 norm = normalize(texture2DRect(normalMap, frag.xy).xyz*2.0-1.0);
+ vec3 norm = texture2DRect(normalMap, frag.xy).xyz;
+ norm = vec3((norm.xy-0.5)*2.0,norm.z); // unpack norm
+ norm = normalize(norm);
vec4 spec = texture2DRect(specularRect, frag.xy);
vec3 diff = texture2DRect(diffuseRect, frag.xy).rgb;
float noise = texture2D(noiseMap, frag.xy/128.0).b;
diff --git a/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl
index 28bcd720c0..a9f03f7615 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/multiSpotLightF.glsl
@@ -1,13 +1,14 @@
/**
* @file multiSpotLightF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
-
#version 120
+//class 1 -- no shadows
+
#extension GL_ARB_texture_rectangle : enable
uniform sampler2DRect diffuseRect;
@@ -26,12 +27,15 @@ uniform vec3 proj_n;
uniform float proj_focus; //distance from plane to begin blurring
uniform float proj_lod; //(number of mips in proj map)
uniform float proj_range; //range between near clip and far clip plane of projection
+uniform float proj_ambient_lod;
uniform float proj_ambiance;
uniform float near_clip;
uniform float far_clip;
uniform vec3 proj_origin; //origin of projection to be used for angular attenuation
uniform float sun_wash;
+uniform int proj_shadow_idx;
+uniform float shadow_fade;
varying vec4 vary_light;
@@ -40,6 +44,52 @@ uniform vec2 screen_res;
uniform mat4 inv_proj;
+vec4 texture2DLodSpecular(sampler2D projectionMap, vec2 tc, float lod)
+{
+ vec4 ret = texture2DLod(projectionMap, tc, lod);
+
+ vec2 dist = tc-vec2(0.5);
+
+ float det = max(1.0-lod/(proj_lod*0.5), 0.0);
+
+ float d = dot(dist,dist);
+
+ ret *= min(clamp((0.25-d)/0.25, 0.0, 1.0)+det, 1.0);
+
+ return ret;
+}
+
+vec4 texture2DLodDiffuse(sampler2D projectionMap, vec2 tc, float lod)
+{
+ vec4 ret = texture2DLod(projectionMap, tc, lod);
+
+ vec2 dist = vec2(0.5) - abs(tc-vec2(0.5));
+
+ float det = min(lod/(proj_lod*0.5), 1.0);
+
+ float d = min(dist.x, dist.y);
+
+ float edge = 0.25*det;
+
+ ret *= clamp(d/edge, 0.0, 1.0);
+
+ return ret;
+}
+
+vec4 texture2DLodAmbient(sampler2D projectionMap, vec2 tc, float lod)
+{
+ vec4 ret = texture2DLod(projectionMap, tc, lod);
+
+ vec2 dist = tc-vec2(0.5);
+
+ float d = dot(dist,dist);
+
+ ret *= min(clamp((0.25-d)/0.25, 0.0, 1.0), 1.0);
+
+ return ret;
+}
+
+
vec4 getPosition(vec2 pos_screen)
{
float depth = texture2DRect(depthMap, pos_screen.xy).a;
@@ -68,7 +118,7 @@ void main()
{
discard;
}
-
+
vec3 norm = texture2DRect(normalMap, frag.xy).xyz*2.0-1.0;
norm = normalize(norm);
@@ -83,7 +133,11 @@ void main()
proj_tc.xyz /= proj_tc.w;
float fa = gl_Color.a+1.0;
- float dist_atten = clamp(1.0-(dist2-1.0*(1.0-fa))/fa, 0.0, 1.0);
+ float dist_atten = min(1.0-(dist2-1.0*(1.0-fa))/fa, 1.0);
+ if (dist_atten <= 0.0)
+ {
+ discard;
+ }
lv = proj_origin-pos.xyz;
lv = normalize(lv);
@@ -101,32 +155,32 @@ void main()
proj_tc.y > 0.0)
{
float lit = 0.0;
+ float amb_da = proj_ambiance;
+
if (da > 0.0)
{
float diff = clamp((l_dist-proj_focus)/proj_range, 0.0, 1.0);
float lod = diff * proj_lod;
- vec4 plcol = texture2DLod(projectionMap, proj_tc.xy, lod);
+ vec4 plcol = texture2DLodDiffuse(projectionMap, proj_tc.xy, lod);
vec3 lcol = gl_Color.rgb * plcol.rgb * plcol.a;
lit = da * dist_atten * noise;
col = lcol*lit*diff_tex;
+ amb_da += (da*0.5)*proj_ambiance;
}
- float diff = clamp((proj_range-proj_focus)/proj_range, 0.0, 1.0);
- float lod = diff * proj_lod;
- vec4 amb_plcol = texture2DLod(projectionMap, proj_tc.xy, lod);
- //float amb_da = mix(proj_ambiance, proj_ambiance*max(-da, 0.0), max(da, 0.0));
- float amb_da = proj_ambiance;
-
+ //float diff = clamp((proj_range-proj_focus)/proj_range, 0.0, 1.0);
+ vec4 amb_plcol = texture2DLodAmbient(projectionMap, proj_tc.xy, proj_lod);
+
amb_da += (da*da*0.5+0.5)*proj_ambiance;
-
+
amb_da *= dist_atten * noise;
-
+
amb_da = min(amb_da, 1.0-lit);
-
+
col += amb_da*gl_Color.rgb*diff_tex.rgb*amb_plcol.rgb*amb_plcol.a;
}
@@ -144,35 +198,28 @@ void main()
{
vec3 pfinal = pos + ref * dot(pdelta, proj_n)/ds;
- vec3 stc = (proj_mat * vec4(pfinal.xyz, 1.0)).xyz;
+ vec4 stc = (proj_mat * vec4(pfinal.xyz, 1.0));
if (stc.z > 0.0)
{
- stc.xy /= stc.z+proj_near;
-
+ stc.xy /= stc.w;
+
+ float fatten = clamp(spec.a*spec.a+spec.a*0.5, 0.25, 1.0);
+
+ stc.xy = (stc.xy - vec2(0.5)) * fatten + vec2(0.5);
+
if (stc.x < 1.0 &&
stc.y < 1.0 &&
stc.x > 0.0 &&
stc.y > 0.0)
{
- vec4 scol = texture2DLod(projectionMap, stc.xy, proj_lod-spec.a*proj_lod);
+ vec4 scol = texture2DLodSpecular(projectionMap, stc.xy, proj_lod-spec.a*proj_lod);
col += dist_atten*scol.rgb*gl_Color.rgb*scol.a*spec.rgb;
}
}
}
}
- /*if (spec.a > 0.0)
- {
- //vec3 ref = reflect(normalize(pos), norm);
- float sa = dot(normalize(lv-normalize(pos)),norm);;
- //sa = max(sa, 0.0);
- //sa = pow(sa, 128.0 * spec.a*spec.a/dist_atten)*min(dist_atten*4.0, 1.0);
- sa = texture2D(lightFunc, vec2(sa, spec.a)).a * min(dist_atten*4.0, 1.0);
- sa *= noise;
- col += da*sa*lcol*spec.rgb;
- }*/
-
gl_FragColor.rgb = col;
gl_FragColor.a = 0.0;
}
diff --git a/indra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl
index 78256e20cc..43da16436b 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/pointLightF.glsl
@@ -1,8 +1,8 @@
/**
* @file pointLightF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
#extension GL_ARB_texture_rectangle : enable
@@ -55,7 +55,8 @@ void main()
discard;
}
- vec3 norm = texture2DRect(normalMap, frag.xy).xyz*2.0-1.0;
+ vec3 norm = texture2DRect(normalMap, frag.xy).xyz;
+ norm = vec3((norm.xy-0.5)*2.0,norm.z); // unpack norm
float da = dot(norm, lv);
if (da < 0.0)
{
diff --git a/indra/newview/app_settings/shaders/class1/deferred/pointLightV.glsl b/indra/newview/app_settings/shaders/class1/deferred/pointLightV.glsl
index e815ca260f..e056c3e896 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/pointLightV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/pointLightV.glsl
@@ -1,8 +1,8 @@
/**
* @file pointLightF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
varying vec4 vary_light;
diff --git a/indra/newview/app_settings/shaders/class1/deferred/postDeferredF.glsl b/indra/newview/app_settings/shaders/class1/deferred/postDeferredF.glsl
index 71de03663c..650e1a91a8 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/postDeferredF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/postDeferredF.glsl
@@ -1,8 +1,8 @@
/**
* @file postDeferredF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
#extension GL_ARB_texture_rectangle : enable
diff --git a/indra/newview/app_settings/shaders/class1/deferred/postDeferredV.glsl b/indra/newview/app_settings/shaders/class1/deferred/postDeferredV.glsl
index 9819232fd5..0ec81dcb02 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/postDeferredV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/postDeferredV.glsl
@@ -1,8 +1,8 @@
/**
* @file postDeferredV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
varying vec2 vary_fragcoord;
diff --git a/indra/newview/app_settings/shaders/class1/deferred/postgiF.glsl b/indra/newview/app_settings/shaders/class1/deferred/postgiF.glsl
index 9612aee405..e8e58f50e1 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/postgiF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/postgiF.glsl
@@ -1,8 +1,8 @@
/**
* @file postgiF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
uniform sampler2DRect depthMap;
@@ -38,10 +38,10 @@ vec4 getPosition(vec2 pos_screen)
void main()
{
- vec3 norm = texture2DRect(normalMap, vary_fragcoord.xy).xyz*2.0-1.0;
+ vec3 norm = texture2DRect(normalMap, vary_fragcoord.xy).xyz;
+ norm = vec3((norm.xy-0.5)*2.0,norm.z); // unpack norm
vec3 pos = getPosition(vary_fragcoord.xy).xyz;
-
vec3 ccol = texture2DRect(giLightMap, vary_fragcoord.xy).rgb;
vec2 dlt = kern_scale * delta/(1.0+norm.xy*norm.xy);
dlt /= max(-pos.z*dist_factor, 1.0);
@@ -51,9 +51,10 @@ void main()
for (int i = 0; i < kern_length; i++)
{
vec2 tc = vary_fragcoord.xy + kern[i].y*dlt;
- vec3 sampNorm = texture2DRect(normalMap, tc.xy).xyz*2.0-1.0;
+ vec3 sampNorm = texture2DRect(normalMap, tc.xy).xyz;
+ sampNorm = vec3((sampNorm.xy-0.5)*2.0,sampNorm.z); // unpack norm
- float d = dot(norm.xyz, sampNorm);
+ float d = dot(norm.xyz, sampNorm);
if (d > 0.8)
{
diff --git a/indra/newview/app_settings/shaders/class1/deferred/postgiV.glsl b/indra/newview/app_settings/shaders/class1/deferred/postgiV.glsl
index 6adcda82a3..e5f6217644 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/postgiV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/postgiV.glsl
@@ -1,8 +1,8 @@
/**
* @file postgiV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
varying vec2 vary_fragcoord;
diff --git a/indra/newview/app_settings/shaders/class1/deferred/shadowF.glsl b/indra/newview/app_settings/shaders/class1/deferred/shadowF.glsl
index b0b31fd4ba..378a3295ec 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/shadowF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/shadowF.glsl
@@ -1,8 +1,8 @@
/**
* @file shadowF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
uniform sampler2D diffuseMap;
diff --git a/indra/newview/app_settings/shaders/class1/deferred/shadowV.glsl b/indra/newview/app_settings/shaders/class1/deferred/shadowV.glsl
index 7214d246a4..666f909f01 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/shadowV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/shadowV.glsl
@@ -1,8 +1,8 @@
/**
* @file shadowV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
varying vec4 post_pos;
diff --git a/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl
index b4b0d0ce9d..5fbeceba81 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/softenLightF.glsl
@@ -1,8 +1,8 @@
/**
* @file softenLightF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
#extension GL_ARB_texture_rectangle : enable
@@ -11,6 +11,7 @@ uniform sampler2DRect diffuseRect;
uniform sampler2DRect specularRect;
uniform sampler2DRect positionMap;
uniform sampler2DRect normalMap;
+uniform sampler2DRect lightMap;
uniform sampler2DRect depthMap;
uniform sampler2D noiseMap;
uniform samplerCube environmentMap;
@@ -40,7 +41,7 @@ uniform float scene_light_strength;
uniform vec3 env_mat[3];
//uniform mat4 shadow_matrix[3];
//uniform vec4 shadow_clip;
-//uniform mat3 ssao_effect_mat;
+uniform mat3 ssao_effect_mat;
varying vec4 vary_light;
varying vec2 vary_fragcoord;
@@ -55,9 +56,8 @@ vec3 vary_AtmosAttenuation;
uniform mat4 inv_proj;
uniform vec2 screen_res;
-vec4 getPosition(vec2 pos_screen)
-{ //get position in screen space (world units) given window coordinate and depth map
- float depth = texture2DRect(depthMap, pos_screen.xy).a;
+vec4 getPosition_d(vec2 pos_screen, float depth)
+{
vec2 sc = pos_screen.xy*2.0;
sc /= screen_res;
sc -= vec2(1.0,1.0);
@@ -68,6 +68,12 @@ vec4 getPosition(vec2 pos_screen)
return pos;
}
+vec4 getPosition(vec2 pos_screen)
+{ //get position in screen space (world units) given window coordinate and depth map
+ float depth = texture2DRect(depthMap, pos_screen.xy).a;
+ return getPosition_d(pos_screen, depth);
+}
+
vec3 getPositionEye()
{
return vary_PositionEye;
@@ -178,7 +184,17 @@ void calcAtmospherics(vec3 inPositionEye, float ambFactor) {
temp2.x += .25;
//increase ambient when there are more clouds
- vec4 tmpAmbient = ambient + (vec4(1.) - ambient) * cloud_shadow.x * 0.5;
+ vec4 tmpAmbient = ambient + (vec4(1.) - ambient) * cloud_shadow.x * 0.5;
+
+ /* decrease value and saturation (that in HSV, not HSL) for occluded areas
+ * // for HSV color/geometry used here, see http://gimp-savvy.com/BOOK/index.html?node52.html
+ * // The following line of code performs the equivalent of:
+ * float ambAlpha = tmpAmbient.a;
+ * float ambValue = dot(vec3(tmpAmbient), vec3(0.577)); // projection onto <1/rt(3), 1/rt(3), 1/rt(3)>, the neutral white-black axis
+ * vec3 ambHueSat = vec3(tmpAmbient) - vec3(ambValue);
+ * tmpAmbient = vec4(RenderSSAOEffect.valueFactor * vec3(ambValue) + RenderSSAOEffect.saturationFactor *(1.0 - ambFactor) * ambHueSat, ambAlpha);
+ */
+ tmpAmbient = vec4(mix(ssao_effect_mat * tmpAmbient.rgb, tmpAmbient.rgb, ambFactor), tmpAmbient.a);
//haze color
setAdditiveColor(
@@ -241,8 +257,10 @@ vec3 scaleSoftClip(vec3 light)
void main()
{
vec2 tc = vary_fragcoord.xy;
- vec3 pos = getPosition(tc).xyz;
- vec3 norm = texture2DRect(normalMap, tc).xyz*2.0-1.0;
+ float depth = texture2DRect(depthMap, tc.xy).a;
+ vec3 pos = getPosition_d(tc, depth).xyz;
+ vec3 norm = texture2DRect(normalMap, tc).xyz;
+ norm = vec3((norm.xy-0.5)*2.0,norm.z); // unpack norm
//vec3 nz = texture2D(noiseMap, vary_fragcoord.xy/128.0).xyz;
float da = max(dot(norm.xyz, vary_light.xyz), 0.0);
@@ -250,23 +268,76 @@ void main()
vec4 diffuse = texture2DRect(diffuseRect, tc);
vec4 spec = texture2DRect(specularRect, vary_fragcoord.xy);
- calcAtmospherics(pos.xyz, 0.0);
+ vec2 scol_ambocc = texture2DRect(lightMap, vary_fragcoord.xy).rg;
+ float scol = max(scol_ambocc.r, diffuse.a);
+ float ambocc = scol_ambocc.g;
+
+ calcAtmospherics(pos.xyz, ambocc);
vec3 col = atmosAmbient(vec3(0));
- col += atmosAffectDirectionalLight(clamp(da, diffuse.a, 1.0));
+ col += atmosAffectDirectionalLight(max(min(da, scol), diffuse.a));
col *= diffuse.rgb;
- if (spec.a > 0.0)
+ if (spec.a > 0.0) // specular reflection
{
- vec3 ref = normalize(reflect(pos.xyz, norm.xyz));
- float sa = dot(ref, vary_light.xyz);
- col.rgb += vary_SunlitColor*spec.rgb*texture2D(lightFunc, vec2(sa, spec.a)).a;
+ // the old infinite-sky shiny reflection
+ //
+ vec3 refnormpersp = normalize(reflect(pos.xyz, norm.xyz));
+ float sa = dot(refnormpersp, vary_light.xyz);
+ vec3 dumbshiny = vary_SunlitColor*scol_ambocc.r*texture2D(lightFunc, vec2(sa, spec.a)).a;
+
+ /*
+ // screen-space cheap fakey reflection map
+ //
+ vec3 refnorm = normalize(reflect(vec3(0,0,-1), norm.xyz));
+ depth -= 0.5; // unbias depth
+ // first figure out where we'll make our 2D guess from
+ vec2 ref2d = (0.25 * screen_res.y) * (refnorm.xy) * abs(refnorm.z) / depth;
+ // Offset the guess source a little according to a trivial
+ // checkerboard dither function and spec.a.
+ // This is meant to be similar to sampling a blurred version
+ // of the diffuse map. LOD would be better in that regard.
+ // The goal of the blur is to soften reflections in surfaces
+ // with low shinyness, and also to disguise our lameness.
+ float checkerboard = floor(mod(tc.x+tc.y, 2.0)); // 0.0, 1.0
+ float checkoffset = (3.0 + (7.0*(1.0-spec.a)))*(checkerboard-0.5);
+ ref2d += vec2(checkoffset, checkoffset);
+ ref2d += tc.xy; // use as offset from destination
+ // Get attributes from the 2D guess point.
+ // We average two samples of diffuse (not of anything else) per
+ // pixel to try to reduce aliasing some more.
+ vec3 refcol = 0.5 * (texture2DRect(diffuseRect, ref2d + vec2(0.0, -checkoffset)).rgb +
+ texture2DRect(diffuseRect, ref2d + vec2(-checkoffset, 0.0)).rgb);
+ float refdepth = texture2DRect(depthMap, ref2d).a;
+ vec3 refpos = getPosition_d(ref2d, refdepth).xyz;
+ vec3 refn = texture2DRect(normalMap, ref2d).rgb;
+ refn = normalize(vec3((refn.xy-0.5)*2.0,refn.z)); // unpack norm
+ // figure out how appropriate our guess actually was
+ float refapprop = max(0.0, dot(-refnorm, normalize(pos - refpos)));
+ // darken reflections from points which face away from the reflected ray - our guess was a back-face
+ //refapprop *= step(dot(refnorm, refn), 0.0);
+ refapprop = min(refapprop, max(0.0, -dot(refnorm, refn))); // more conservative variant
+ // get appropriate light strength for guess-point.
+ // reflect light direction to increase the illusion that
+ // these are reflections.
+ vec3 reflight = reflect(lightnorm.xyz, norm.xyz);
+ float reflit = max(dot(refn, reflight.xyz), 0.0);
+ // apply sun color to guess-point, dampen according to inappropriateness of guess
+ float refmod = min(refapprop, reflit);
+ vec3 refprod = vary_SunlitColor * refcol.rgb * refmod;
+ vec3 ssshiny = (refprod * spec.a);
+ ssshiny *= 0.3; // dampen it even more
+ */
+ vec3 ssshiny = vec3(0,0,0);
+
+ // add the two types of shiny together
+ col += (ssshiny + dumbshiny) * spec.rgb;
}
col = atmosLighting(col);
col = scaleSoftClip(col);
-
+
gl_FragColor.rgb = col;
gl_FragColor.a = 0.0;
}
diff --git a/indra/newview/app_settings/shaders/class1/deferred/softenLightV.glsl b/indra/newview/app_settings/shaders/class1/deferred/softenLightV.glsl
index ad8af4780d..9d187b46e2 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/softenLightV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/softenLightV.glsl
@@ -1,8 +1,8 @@
/**
* @file softenLightF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
uniform vec2 screen_res;
diff --git a/indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl
index 2a7234fd83..29fac46bfe 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/spotLightF.glsl
@@ -1,8 +1,8 @@
/**
* @file spotLightF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
#version 120
@@ -68,7 +68,8 @@ void main()
discard;
}
- vec3 norm = texture2DRect(normalMap, frag.xy).xyz*2.0-1.0;
+ vec3 norm = texture2DRect(normalMap, frag.xy).xyz;
+ norm = vec3((norm.xy-0.5)*2.0,norm.z); // unpack norm
norm = normalize(norm);
float l_dist = -dot(lv, proj_n);
@@ -161,17 +162,6 @@ void main()
}
}
- /*if (spec.a > 0.0)
- {
- //vec3 ref = reflect(normalize(pos), norm);
- float sa = dot(normalize(lv-normalize(pos)),norm);;
- //sa = max(sa, 0.0);
- //sa = pow(sa, 128.0 * spec.a*spec.a/dist_atten)*min(dist_atten*4.0, 1.0);
- sa = texture2D(lightFunc, vec2(sa, spec.a)).a * min(dist_atten*4.0, 1.0);
- sa *= noise;
- col += da*sa*lcol*spec.rgb;
- }*/
-
gl_FragColor.rgb = col;
gl_FragColor.a = 0.0;
}
diff --git a/indra/newview/app_settings/shaders/class1/deferred/sunLightF.glsl b/indra/newview/app_settings/shaders/class1/deferred/sunLightF.glsl
index 22bdd2c7f3..d4d686bbb7 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/sunLightF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/sunLightF.glsl
@@ -1,200 +1,15 @@
/**
* @file sunLightF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
-#extension GL_ARB_texture_rectangle : enable
-
-uniform sampler2DRect depthMap;
-uniform sampler2DRect normalMap;
-uniform sampler2DRectShadow shadowMap0;
-uniform sampler2DRectShadow shadowMap1;
-uniform sampler2DRectShadow shadowMap2;
-uniform sampler2DRectShadow shadowMap3;
-uniform sampler2DRectShadow shadowMap4;
-uniform sampler2DRectShadow shadowMap5;
-uniform sampler2D noiseMap;
-
-uniform sampler2D lightFunc;
-
-
-// Inputs
-uniform mat4 shadow_matrix[6];
-uniform vec4 shadow_clip;
-uniform float ssao_radius;
-uniform float ssao_max_radius;
-uniform float ssao_factor;
-uniform float ssao_factor_inv;
-
-varying vec2 vary_fragcoord;
-varying vec4 vary_light;
-
-uniform mat4 inv_proj;
-uniform vec2 screen_res;
-
-uniform float shadow_bias;
-uniform float shadow_offset;
-
-vec4 getPosition(vec2 pos_screen)
-{
- float depth = texture2DRect(depthMap, pos_screen.xy).a;
- vec2 sc = pos_screen.xy*2.0;
- sc /= screen_res;
- sc -= vec2(1.0,1.0);
- vec4 ndc = vec4(sc.x, sc.y, 2.0*depth-1.0, 1.0);
- vec4 pos = inv_proj * ndc;
- pos /= pos.w;
- pos.w = 1.0;
- return pos;
-}
+//class 1, no shadow, no SSAO, should never be called
-//calculate decreases in ambient lighting when crowded out (SSAO)
-float calcAmbientOcclusion(vec4 pos, vec3 norm)
-{
- vec2 kern[8];
- // exponentially (^2) distant occlusion samples spread around origin
- kern[0] = vec2(-1.0, 0.0) * 0.125*0.125;
- kern[1] = vec2(1.0, 0.0) * 0.250*0.250;
- kern[2] = vec2(0.0, 1.0) * 0.375*0.375;
- kern[3] = vec2(0.0, -1.0) * 0.500*0.500;
- kern[4] = vec2(0.7071, 0.7071) * 0.625*0.625;
- kern[5] = vec2(-0.7071, -0.7071) * 0.750*0.750;
- kern[6] = vec2(-0.7071, 0.7071) * 0.875*0.875;
- kern[7] = vec2(0.7071, -0.7071) * 1.000*1.000;
-
- vec2 pos_screen = vary_fragcoord.xy;
- vec3 pos_world = pos.xyz;
- vec2 noise_reflect = texture2D(noiseMap, vary_fragcoord.xy/128.0).xy;
-
- float angle_hidden = 0.0;
- int points = 0;
-
- float scale = min(ssao_radius / -pos_world.z, ssao_max_radius);
-
- // it was found that keeping # of samples a constant was the fastest, probably due to compiler optimizations (unrolling?)
- for (int i = 0; i < 8; i++)
- {
- vec2 samppos_screen = pos_screen + scale * reflect(kern[i], noise_reflect);
- vec3 samppos_world = getPosition(samppos_screen).xyz;
-
- vec3 diff = pos_world - samppos_world;
- float dist2 = dot(diff, diff);
-
- // assume each sample corresponds to an occluding sphere with constant radius, constant x-sectional area
- // --> solid angle shrinking by the square of distance
- //radius is somewhat arbitrary, can approx with just some constant k * 1 / dist^2
- //(k should vary inversely with # of samples, but this is taken care of later)
-
- //if (dot((samppos_world - 0.05*norm - pos_world), norm) > 0.0) // -0.05*norm to shift sample point back slightly for flat surfaces
- // angle_hidden += min(1.0/dist2, ssao_factor_inv); // dist != 0 follows from conditional. max of 1.0 (= ssao_factor_inv * ssao_factor)
- angle_hidden = angle_hidden + float(dot((samppos_world - 0.05*norm - pos_world), norm) > 0.0) * min(1.0/dist2, ssao_factor_inv);
-
- // 'blocked' samples (significantly closer to camera relative to pos_world) are "no data", not "no occlusion"
- points = points + int(diff.z > -1.0);
- }
-
- angle_hidden = min(ssao_factor*angle_hidden/float(points), 1.0);
-
- return (1.0 - (float(points != 0) * angle_hidden));
-}
+#extension GL_ARB_texture_rectangle : enable
void main()
{
- vec2 pos_screen = vary_fragcoord.xy;
-
- //try doing an unproject here
-
- vec4 pos = getPosition(pos_screen);
-
- vec3 norm = texture2DRect(normalMap, pos_screen).xyz*2.0-1.0;
-
- /*if (pos.z == 0.0) // do nothing for sky *FIX: REMOVE THIS IF/WHEN THE POSITION MAP IS BEING USED AS A STENCIL
- {
- gl_FragColor = vec4(0.0); // doesn't matter
- return;
- }*/
-
- float shadow = 1.0;
- float dp_directional_light = max(0.0, dot(norm, vary_light.xyz));
-
- vec4 spos = vec4(pos.xyz + norm.xyz * (-pos.z/64.0*shadow_offset+shadow_bias), 1.0);
-
- //vec3 debug = vec3(0,0,0);
-
- if (dp_directional_light == 0.0)
- {
- // if we know this point is facing away from the sun then we know it's in shadow without having to do a squirrelly shadow-map lookup
- shadow = 0.0;
- }
- else if (spos.z > -shadow_clip.w)
- {
- vec4 lpos;
-
- if (spos.z < -shadow_clip.z)
- {
- lpos = shadow_matrix[3]*spos;
- lpos.xy *= screen_res;
- shadow = shadow2DRectProj(shadowMap3, lpos).x;
- shadow += max((pos.z+shadow_clip.z)/(shadow_clip.z-shadow_clip.w)*2.0-1.0, 0.0);
- }
- else if (spos.z < -shadow_clip.y)
- {
- lpos = shadow_matrix[2]*spos;
- lpos.xy *= screen_res;
- shadow = shadow2DRectProj(shadowMap2, lpos).x;
- }
- else if (spos.z < -shadow_clip.x)
- {
- lpos = shadow_matrix[1]*spos;
- lpos.xy *= screen_res;
- shadow = shadow2DRectProj(shadowMap1, lpos).x;
- }
- else
- {
- lpos = shadow_matrix[0]*spos;
- lpos.xy *= screen_res;
- shadow = shadow2DRectProj(shadowMap0, lpos).x;
- }
-
- // take the most-shadowed value out of these two:
- // * the blurred sun shadow in the light (shadow) map
- // * an unblurred dot product between the sun and this norm
- // the goal is to err on the side of most-shadow to fill-in shadow holes and reduce artifacting
- shadow = min(shadow, dp_directional_light);
-
- /*debug.r = lpos.y / (lpos.w*screen_res.y);
-
- lpos.xy /= lpos.w*32.0;
- if (fract(lpos.x) < 0.1 || fract(lpos.y) < 0.1)
- {
- debug.gb = vec2(0.5, 0.5);
- }
-
- debug += (1.0-shadow)*0.5;*/
-
- }
- else
- {
- // more distant than the shadow map covers - just use directional shading as shadow
- shadow = dp_directional_light;
- }
-
- gl_FragColor[0] = shadow;
- gl_FragColor[1] = calcAmbientOcclusion(pos, norm);
-
- //spotlight shadow 1
- vec4 lpos = shadow_matrix[4]*spos;
- lpos.xy *= screen_res;
- gl_FragColor[2] = shadow2DRectProj(shadowMap4, lpos).x;
-
- //spotlight shadow 2
- lpos = shadow_matrix[5]*spos;
- lpos.xy *= screen_res;
- gl_FragColor[3] = shadow2DRectProj(shadowMap5, lpos).x;
-
- //gl_FragColor.rgb = pos.xyz;
- //gl_FragColor.b = shadow;
- //gl_FragColor.rgb = debug;
+ gl_FragColor = vec4(0,0,0,0);
}
diff --git a/indra/newview/app_settings/shaders/class1/deferred/sunLightSSAOF.glsl b/indra/newview/app_settings/shaders/class1/deferred/sunLightSSAOF.glsl
new file mode 100644
index 0000000000..cdbed4b791
--- /dev/null
+++ b/indra/newview/app_settings/shaders/class1/deferred/sunLightSSAOF.glsl
@@ -0,0 +1,124 @@
+/**
+ * @file sunLightSSAOF.glsl
+ *
+ * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
+ * $License$
+ */
+
+#extension GL_ARB_texture_rectangle : enable
+
+//class 1 -- no shadow, SSAO only
+
+uniform sampler2DRect depthMap;
+uniform sampler2DRect normalMap;
+uniform sampler2D noiseMap;
+
+uniform sampler2D lightFunc;
+
+
+// Inputs
+uniform mat4 shadow_matrix[6];
+uniform vec4 shadow_clip;
+uniform float ssao_radius;
+uniform float ssao_max_radius;
+uniform float ssao_factor;
+uniform float ssao_factor_inv;
+
+varying vec2 vary_fragcoord;
+varying vec4 vary_light;
+
+uniform mat4 inv_proj;
+uniform vec2 screen_res;
+
+uniform float shadow_bias;
+uniform float shadow_offset;
+
+vec4 getPosition(vec2 pos_screen)
+{
+ float depth = texture2DRect(depthMap, pos_screen.xy).a;
+ vec2 sc = pos_screen.xy*2.0;
+ sc /= screen_res;
+ sc -= vec2(1.0,1.0);
+ vec4 ndc = vec4(sc.x, sc.y, 2.0*depth-1.0, 1.0);
+ vec4 pos = inv_proj * ndc;
+ pos /= pos.w;
+ pos.w = 1.0;
+ return pos;
+}
+
+//calculate decreases in ambient lighting when crowded out (SSAO)
+float calcAmbientOcclusion(vec4 pos, vec3 norm)
+{
+ float ret = 1.0;
+
+ float dist = dot(pos.xyz,pos.xyz);
+
+ if (dist < 64.0*64.0)
+ {
+ vec2 kern[8];
+ // exponentially (^2) distant occlusion samples spread around origin
+ kern[0] = vec2(-1.0, 0.0) * 0.125*0.125;
+ kern[1] = vec2(1.0, 0.0) * 0.250*0.250;
+ kern[2] = vec2(0.0, 1.0) * 0.375*0.375;
+ kern[3] = vec2(0.0, -1.0) * 0.500*0.500;
+ kern[4] = vec2(0.7071, 0.7071) * 0.625*0.625;
+ kern[5] = vec2(-0.7071, -0.7071) * 0.750*0.750;
+ kern[6] = vec2(-0.7071, 0.7071) * 0.875*0.875;
+ kern[7] = vec2(0.7071, -0.7071) * 1.000*1.000;
+
+ vec2 pos_screen = vary_fragcoord.xy;
+ vec3 pos_world = pos.xyz;
+ vec2 noise_reflect = texture2D(noiseMap, vary_fragcoord.xy/128.0).xy;
+
+ float angle_hidden = 0.0;
+ int points = 0;
+
+ float scale = min(ssao_radius / -pos_world.z, ssao_max_radius);
+
+ // it was found that keeping # of samples a constant was the fastest, probably due to compiler optimizations (unrolling?)
+ for (int i = 0; i < 8; i++)
+ {
+ vec2 samppos_screen = pos_screen + scale * reflect(kern[i], noise_reflect);
+ vec3 samppos_world = getPosition(samppos_screen).xyz;
+
+ vec3 diff = pos_world - samppos_world;
+ float dist2 = dot(diff, diff);
+
+ // assume each sample corresponds to an occluding sphere with constant radius, constant x-sectional area
+ // --> solid angle shrinking by the square of distance
+ //radius is somewhat arbitrary, can approx with just some constant k * 1 / dist^2
+ //(k should vary inversely with # of samples, but this is taken care of later)
+
+ //if (dot((samppos_world - 0.05*norm - pos_world), norm) > 0.0) // -0.05*norm to shift sample point back slightly for flat surfaces
+ // angle_hidden += min(1.0/dist2, ssao_factor_inv); // dist != 0 follows from conditional. max of 1.0 (= ssao_factor_inv * ssao_factor)
+ angle_hidden = angle_hidden + float(dot((samppos_world - 0.05*norm - pos_world), norm) > 0.0) * min(1.0/dist2, ssao_factor_inv);
+
+ // 'blocked' samples (significantly closer to camera relative to pos_world) are "no data", not "no occlusion"
+ points = points + int(diff.z > -1.0);
+ }
+
+ angle_hidden = min(ssao_factor*angle_hidden/float(points), 1.0);
+
+ ret = (1.0 - (float(points != 0) * angle_hidden));
+ ret += max((dist-32.0*32.0)/(32.0*32.0), 0.0);
+ }
+
+ return min(ret, 1.0);
+}
+
+void main()
+{
+ vec2 pos_screen = vary_fragcoord.xy;
+
+ //try doing an unproject here
+
+ vec4 pos = getPosition(pos_screen);
+
+ vec3 norm = texture2DRect(normalMap, pos_screen).xyz;
+ norm = vec3((norm.xy-0.5)*2.0,norm.z); // unpack norm
+
+ gl_FragColor[0] = 1.0;
+ gl_FragColor[1] = calcAmbientOcclusion(pos, norm);
+ gl_FragColor[2] = 1.0;
+ gl_FragColor[3] = 1.0;
+}
diff --git a/indra/newview/app_settings/shaders/class1/deferred/sunLightV.glsl b/indra/newview/app_settings/shaders/class1/deferred/sunLightV.glsl
index 5081485c4b..9d092d9cea 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/sunLightV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/sunLightV.glsl
@@ -1,8 +1,8 @@
/**
* @file sunLightF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
varying vec4 vary_light;
diff --git a/indra/newview/app_settings/shaders/class1/deferred/terrainF.glsl b/indra/newview/app_settings/shaders/class1/deferred/terrainF.glsl
index 3cccfb7202..9ba508a30c 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/terrainF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/terrainF.glsl
@@ -1,8 +1,8 @@
/**
* @file terrainF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
uniform sampler2D detail_0;
@@ -29,6 +29,7 @@ void main()
gl_FragData[0] = vec4(outColor.rgb, 0.0);
gl_FragData[1] = vec4(outColor.rgb*0.2, 0.2);
- gl_FragData[2] = vec4(normalize(vary_normal)*0.5+0.5, 0.0);
+ vec3 nvn = normalize(vary_normal);
+ gl_FragData[2] = vec4(nvn.xy * 0.5 + 0.5, nvn.z, 0.0);
}
diff --git a/indra/newview/app_settings/shaders/class1/deferred/terrainV.glsl b/indra/newview/app_settings/shaders/class1/deferred/terrainV.glsl
index 3038b14772..789e53b789 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/terrainV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/terrainV.glsl
@@ -1,8 +1,8 @@
/**
* @file terrainV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
varying vec3 vary_normal;
diff --git a/indra/newview/app_settings/shaders/class1/deferred/treeF.glsl b/indra/newview/app_settings/shaders/class1/deferred/treeF.glsl
index 258acee08c..1c1725a95c 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/treeF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/treeF.glsl
@@ -1,8 +1,8 @@
/**
* @file treeF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
uniform sampler2D diffuseMap;
@@ -14,5 +14,6 @@ void main()
vec4 col = texture2D(diffuseMap, gl_TexCoord[0].xy);
gl_FragData[0] = vec4(gl_Color.rgb*col.rgb, col.a <= 0.5 ? 0.0 : 0.005);
gl_FragData[1] = vec4(0,0,0,0);
- gl_FragData[2] = vec4(normalize(vary_normal)*0.5+0.5, 0.0);
+ vec3 nvn = normalize(vary_normal);
+ gl_FragData[2] = vec4(nvn.xy * 0.5 + 0.5, nvn.z, 0.0);
}
diff --git a/indra/newview/app_settings/shaders/class1/deferred/treeV.glsl b/indra/newview/app_settings/shaders/class1/deferred/treeV.glsl
index 6b9dc2defb..45832e350f 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/treeV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/treeV.glsl
@@ -1,8 +1,8 @@
/**
* @file treeV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
varying vec3 vary_normal;
diff --git a/indra/newview/app_settings/shaders/class1/deferred/waterF.glsl b/indra/newview/app_settings/shaders/class1/deferred/waterF.glsl
index d21575119d..ea531de24a 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/waterF.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/waterF.glsl
@@ -1,8 +1,8 @@
/**
* @file waterF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
#extension GL_ARB_texture_rectangle : enable
@@ -115,7 +115,7 @@ void main()
vec4 fb = texture2D(screenTex, distort2);
//mix with reflection
- // Note we actually want to use just df1, but multiplying by 0.999999 gets around and nvidia compiler bug
+ // Note we actually want to use just df1, but multiplying by 0.999999 gets around an nvidia compiler bug
color.rgb = mix(fb.rgb, refcol.rgb, df1 * 0.99999);
float shadow = 1.0;
@@ -131,11 +131,11 @@ void main()
//color.rgb = scaleSoftClip(color.rgb);
//color.a = spec * sunAngle2;
- //wavef.z = -0.25f;
- wavef = normalize(wavef);
- wavef = (norm_mat*vec4(wavef, 1.0)).xyz;
+ //wavef.z *= 0.1f;
+ //wavef = normalize(wavef);
+ vec3 screenspacewavef = (norm_mat*vec4(wavef, 1.0)).xyz;
- gl_FragData[0] = vec4(color.rgb, 0.75);
- gl_FragData[1] = vec4(1,1,1, 0.8);
- gl_FragData[2] = vec4(wavef*0.5+0.5, 0.0);
+ gl_FragData[0] = vec4(color.rgb, 0.5); // diffuse
+ gl_FragData[1] = vec4(0.5,0.5,0.5, 0.95); // speccolor*spec, spec
+ gl_FragData[2] = vec4(screenspacewavef.xy*0.5+0.5, screenspacewavef.z, screenspacewavef.z*0.5); // normalxyz, displace
}
diff --git a/indra/newview/app_settings/shaders/class1/deferred/waterV.glsl b/indra/newview/app_settings/shaders/class1/deferred/waterV.glsl
index b45e5c5302..e002d75ebe 100644
--- a/indra/newview/app_settings/shaders/class1/deferred/waterV.glsl
+++ b/indra/newview/app_settings/shaders/class1/deferred/waterV.glsl
@@ -1,8 +1,8 @@
/**
* @file waterV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
void calcAtmospherics(vec3 inPositionEye);
diff --git a/indra/newview/app_settings/shaders/class1/effects/glowExtractF.glsl b/indra/newview/app_settings/shaders/class1/effects/glowExtractF.glsl
index 5d7af2c13a..2d40a19fa6 100644
--- a/indra/newview/app_settings/shaders/class1/effects/glowExtractF.glsl
+++ b/indra/newview/app_settings/shaders/class1/effects/glowExtractF.glsl
@@ -1,8 +1,8 @@
/**
* @file glowExtractF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
#extension GL_ARB_texture_rectangle : enable
diff --git a/indra/newview/app_settings/shaders/class1/effects/glowExtractV.glsl b/indra/newview/app_settings/shaders/class1/effects/glowExtractV.glsl
index 61dfd2f126..fe45898ed2 100644
--- a/indra/newview/app_settings/shaders/class1/effects/glowExtractV.glsl
+++ b/indra/newview/app_settings/shaders/class1/effects/glowExtractV.glsl
@@ -1,8 +1,8 @@
/**
* @file glowExtractV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
diff --git a/indra/newview/app_settings/shaders/class1/effects/glowF.glsl b/indra/newview/app_settings/shaders/class1/effects/glowF.glsl
index 21c7ad765f..5b4e8b3ecc 100644
--- a/indra/newview/app_settings/shaders/class1/effects/glowF.glsl
+++ b/indra/newview/app_settings/shaders/class1/effects/glowF.glsl
@@ -1,8 +1,8 @@
/**
* @file glowF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
uniform sampler2D diffuseMap;
diff --git a/indra/newview/app_settings/shaders/class1/effects/glowV.glsl b/indra/newview/app_settings/shaders/class1/effects/glowV.glsl
index 13ce7c7854..97696e4719 100644
--- a/indra/newview/app_settings/shaders/class1/effects/glowV.glsl
+++ b/indra/newview/app_settings/shaders/class1/effects/glowV.glsl
@@ -1,8 +1,8 @@
/**
* @file glowV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
uniform vec2 glowDelta;
diff --git a/indra/newview/app_settings/shaders/class1/environment/terrainF.glsl b/indra/newview/app_settings/shaders/class1/environment/terrainF.glsl
index 2278c6916d..3a852239fb 100644
--- a/indra/newview/app_settings/shaders/class1/environment/terrainF.glsl
+++ b/indra/newview/app_settings/shaders/class1/environment/terrainF.glsl
@@ -1,8 +1,8 @@
/**
* @file terrainF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
uniform sampler2D detail0;
diff --git a/indra/newview/app_settings/shaders/class1/environment/terrainV.glsl b/indra/newview/app_settings/shaders/class1/environment/terrainV.glsl
index 112d669819..0d781fd849 100644
--- a/indra/newview/app_settings/shaders/class1/environment/terrainV.glsl
+++ b/indra/newview/app_settings/shaders/class1/environment/terrainV.glsl
@@ -1,8 +1,8 @@
/**
* @file terrainV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
vec4 calcLighting(vec3 pos, vec3 norm, vec4 color, vec4 baseCol);
diff --git a/indra/newview/app_settings/shaders/class1/environment/terrainWaterF.glsl b/indra/newview/app_settings/shaders/class1/environment/terrainWaterF.glsl
index e2f68e8826..99c340d91a 100644
--- a/indra/newview/app_settings/shaders/class1/environment/terrainWaterF.glsl
+++ b/indra/newview/app_settings/shaders/class1/environment/terrainWaterF.glsl
@@ -1,8 +1,8 @@
/**
* @file terrainWaterF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
// this class1 shader is just a copy of terrainF
diff --git a/indra/newview/app_settings/shaders/class1/environment/underWaterF.glsl b/indra/newview/app_settings/shaders/class1/environment/underWaterF.glsl
index f1740a4dcd..66458ec66d 100644
--- a/indra/newview/app_settings/shaders/class1/environment/underWaterF.glsl
+++ b/indra/newview/app_settings/shaders/class1/environment/underWaterF.glsl
@@ -1,8 +1,8 @@
/**
* @file underWaterF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
uniform sampler2D diffuseMap;
diff --git a/indra/newview/app_settings/shaders/class1/environment/waterF.glsl b/indra/newview/app_settings/shaders/class1/environment/waterF.glsl
index 7e1788678d..5f1fbee1df 100644
--- a/indra/newview/app_settings/shaders/class1/environment/waterF.glsl
+++ b/indra/newview/app_settings/shaders/class1/environment/waterF.glsl
@@ -1,8 +1,8 @@
/**
* @file waterF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
vec3 scaleSoftClip(vec3 inColor);
diff --git a/indra/newview/app_settings/shaders/class1/environment/waterFogF.glsl b/indra/newview/app_settings/shaders/class1/environment/waterFogF.glsl
index 7ee41998e2..e5eb25f3fa 100644
--- a/indra/newview/app_settings/shaders/class1/environment/waterFogF.glsl
+++ b/indra/newview/app_settings/shaders/class1/environment/waterFogF.glsl
@@ -1,8 +1,8 @@
/**
* @file waterFogF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
vec4 applyWaterFog(vec4 color)
diff --git a/indra/newview/app_settings/shaders/class1/environment/waterV.glsl b/indra/newview/app_settings/shaders/class1/environment/waterV.glsl
index 48ac87ef07..608a7a5807 100644
--- a/indra/newview/app_settings/shaders/class1/environment/waterV.glsl
+++ b/indra/newview/app_settings/shaders/class1/environment/waterV.glsl
@@ -1,8 +1,8 @@
/**
* @file waterV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
void calcAtmospherics(vec3 inPositionEye);
diff --git a/indra/newview/app_settings/shaders/class1/interface/highlightF.glsl b/indra/newview/app_settings/shaders/class1/interface/highlightF.glsl
index 328c41652d..5ac9e96601 100644
--- a/indra/newview/app_settings/shaders/class1/interface/highlightF.glsl
+++ b/indra/newview/app_settings/shaders/class1/interface/highlightF.glsl
@@ -1,8 +1,8 @@
/**
* @file highlightF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
uniform sampler2D diffuseMap;
diff --git a/indra/newview/app_settings/shaders/class1/interface/highlightV.glsl b/indra/newview/app_settings/shaders/class1/interface/highlightV.glsl
index a9ea6e856a..c5f69c4ad4 100644
--- a/indra/newview/app_settings/shaders/class1/interface/highlightV.glsl
+++ b/indra/newview/app_settings/shaders/class1/interface/highlightV.glsl
@@ -1,8 +1,8 @@
/**
* @file highlightV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
void main()
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightF.glsl
index 071489bca8..ad128dae8d 100644
--- a/indra/newview/app_settings/shaders/class1/lighting/lightF.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/lightF.glsl
@@ -1,8 +1,8 @@
/**
* @file lightF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
uniform sampler2D diffuseMap;
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightF.glsl
index b12cca9126..1742b9fc1c 100644
--- a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightF.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightF.glsl
@@ -1,8 +1,8 @@
/**
* @file lightFullbrightF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyF.glsl
index bc795a7513..68b6603b4a 100644
--- a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyF.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightShinyF.glsl
@@ -1,8 +1,8 @@
/**
* @file lightFullbrightShinyF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterF.glsl
index b13088fb19..693ed289f2 100644
--- a/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterF.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/lightFullbrightWaterF.glsl
@@ -1,8 +1,8 @@
/**
* @file lightFullbrightWaterF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightFuncSpecularV.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightFuncSpecularV.glsl
index bbbd9f3dfe..b888e70325 100644
--- a/indra/newview/app_settings/shaders/class1/lighting/lightFuncSpecularV.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/lightFuncSpecularV.glsl
@@ -1,8 +1,8 @@
/**
* @file lightFuncSpecularV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
float calcDirectionalLight(vec3 n, vec3 l)
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightFuncV.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightFuncV.glsl
index 3e8fdfb3e4..4b6d95e177 100644
--- a/indra/newview/app_settings/shaders/class1/lighting/lightFuncV.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/lightFuncV.glsl
@@ -1,8 +1,8 @@
/**
* @file lightFuncV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
@@ -12,7 +12,8 @@ float calcDirectionalLight(vec3 n, vec3 l)
return a;
}
-float calcPointLight(vec3 v, vec3 n, vec4 lp, float la)
+
+float calcPointLightOrSpotLight(vec3 v, vec3 n, vec4 lp, vec3 ln, float la, float is_pointlight)
{
//get light vector
vec3 lv = lp.xyz-v;
@@ -26,9 +27,13 @@ float calcPointLight(vec3 v, vec3 n, vec4 lp, float la)
//distance attenuation
float da = clamp(1.0/(la * d), 0.0, 1.0);
+ // spotlight coefficient.
+ float spot = max(dot(-ln, lv), is_pointlight);
+ da *= spot*spot; // GL_SPOT_EXPONENT=2
+
//angular attenuation
da *= calcDirectionalLight(n, lv);
-
+
return da;
}
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightShinyF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightShinyF.glsl
index 89785c45cb..b127b1f8ea 100644
--- a/indra/newview/app_settings/shaders/class1/lighting/lightShinyF.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/lightShinyF.glsl
@@ -1,8 +1,8 @@
/**
* @file lightShinyF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightShinyWaterF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightShinyWaterF.glsl
index 7ac3c359bf..05ad3256af 100644
--- a/indra/newview/app_settings/shaders/class1/lighting/lightShinyWaterF.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/lightShinyWaterF.glsl
@@ -1,8 +1,8 @@
/**
* @file lightShinyWaterF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightSpecularV.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightSpecularV.glsl
index 853212923c..b1a7cb46ff 100644
--- a/indra/newview/app_settings/shaders/class1/lighting/lightSpecularV.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/lightSpecularV.glsl
@@ -1,8 +1,8 @@
/**
* @file lightV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
float calcDirectionalLight(vec3 n, vec3 l);
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightV.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightV.glsl
index 8c2813a859..f6afa6a3ae 100644
--- a/indra/newview/app_settings/shaders/class1/lighting/lightV.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/lightV.glsl
@@ -1,8 +1,8 @@
/**
* @file lightV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
float calcDirectionalLight(vec3 n, vec3 l);
diff --git a/indra/newview/app_settings/shaders/class1/lighting/lightWaterF.glsl b/indra/newview/app_settings/shaders/class1/lighting/lightWaterF.glsl
index 81dff1ef39..e5e6ddc2d8 100644
--- a/indra/newview/app_settings/shaders/class1/lighting/lightWaterF.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/lightWaterF.glsl
@@ -1,8 +1,8 @@
/**
* @file lightWaterF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
uniform sampler2D diffuseMap;
diff --git a/indra/newview/app_settings/shaders/class1/lighting/sumLightsSpecularV.glsl b/indra/newview/app_settings/shaders/class1/lighting/sumLightsSpecularV.glsl
index 218585fb86..a0649aea88 100644
--- a/indra/newview/app_settings/shaders/class1/lighting/sumLightsSpecularV.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/sumLightsSpecularV.glsl
@@ -1,8 +1,8 @@
/**
* @file sumLightsSpecularV.glsl
*
- * Copyright (c) 2005-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
+ * $/LicenseInfo$
*/
float calcDirectionalLightSpecular(inout vec4 specular, vec3 view, vec3 n, vec3 l, vec3 lightCol, float da);
vec3 atmosAmbient(vec3 light);
diff --git a/indra/newview/app_settings/shaders/class1/lighting/sumLightsV.glsl b/indra/newview/app_settings/shaders/class1/lighting/sumLightsV.glsl
index e5361033ef..c7d40d853f 100644
--- a/indra/newview/app_settings/shaders/class1/lighting/sumLightsV.glsl
+++ b/indra/newview/app_settings/shaders/class1/lighting/sumLightsV.glsl
@@ -1,8 +1,8 @@
/**
* @file sumLightsV.glsl
*
- * Copyright (c) 2005-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
+ * $/LicenseInfo$
*/
float calcDirectionalLight(vec3 n, vec3 l);
diff --git a/indra/newview/app_settings/shaders/class1/objects/fullbrightF.glsl b/indra/newview/app_settings/shaders/class1/objects/fullbrightF.glsl
index 1b0ffb911a..9da4c2c92b 100644
--- a/indra/newview/app_settings/shaders/class1/objects/fullbrightF.glsl
+++ b/indra/newview/app_settings/shaders/class1/objects/fullbrightF.glsl
@@ -1,8 +1,8 @@
/**
* @file fullbrightF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
void fullbright_lighting();
diff --git a/indra/newview/app_settings/shaders/class1/objects/fullbrightShinyF.glsl b/indra/newview/app_settings/shaders/class1/objects/fullbrightShinyF.glsl
index 936c228b4e..1c8a9a1a30 100644
--- a/indra/newview/app_settings/shaders/class1/objects/fullbrightShinyF.glsl
+++ b/indra/newview/app_settings/shaders/class1/objects/fullbrightShinyF.glsl
@@ -1,8 +1,8 @@
/**
* @file fullbrightShinyF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
void fullbright_shiny_lighting();
diff --git a/indra/newview/app_settings/shaders/class1/objects/fullbrightShinyV.glsl b/indra/newview/app_settings/shaders/class1/objects/fullbrightShinyV.glsl
index ba2aa024dc..032def63b3 100644
--- a/indra/newview/app_settings/shaders/class1/objects/fullbrightShinyV.glsl
+++ b/indra/newview/app_settings/shaders/class1/objects/fullbrightShinyV.glsl
@@ -1,8 +1,8 @@
/**
* @file fullbrightShinyV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
void calcAtmospherics(vec3 inPositionEye);
diff --git a/indra/newview/app_settings/shaders/class1/objects/fullbrightV.glsl b/indra/newview/app_settings/shaders/class1/objects/fullbrightV.glsl
index e64ccb844d..914e417ca0 100644
--- a/indra/newview/app_settings/shaders/class1/objects/fullbrightV.glsl
+++ b/indra/newview/app_settings/shaders/class1/objects/fullbrightV.glsl
@@ -1,8 +1,8 @@
/**
* @file fullbrightV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
void calcAtmospherics(vec3 inPositionEye);
diff --git a/indra/newview/app_settings/shaders/class1/objects/fullbrightWaterF.glsl b/indra/newview/app_settings/shaders/class1/objects/fullbrightWaterF.glsl
index fd855aa910..df76e9e1eb 100644
--- a/indra/newview/app_settings/shaders/class1/objects/fullbrightWaterF.glsl
+++ b/indra/newview/app_settings/shaders/class1/objects/fullbrightWaterF.glsl
@@ -1,8 +1,8 @@
/**
* @file fullbrightWaterF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
void fullbright_lighting_water();
diff --git a/indra/newview/app_settings/shaders/class1/objects/shinyF.glsl b/indra/newview/app_settings/shaders/class1/objects/shinyF.glsl
index bdb0b05f97..6bcd44506d 100644
--- a/indra/newview/app_settings/shaders/class1/objects/shinyF.glsl
+++ b/indra/newview/app_settings/shaders/class1/objects/shinyF.glsl
@@ -1,8 +1,8 @@
/**
* @file shinyF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
void shiny_lighting();
diff --git a/indra/newview/app_settings/shaders/class1/objects/shinyV.glsl b/indra/newview/app_settings/shaders/class1/objects/shinyV.glsl
index c2e1ddf734..074892c98e 100644
--- a/indra/newview/app_settings/shaders/class1/objects/shinyV.glsl
+++ b/indra/newview/app_settings/shaders/class1/objects/shinyV.glsl
@@ -1,8 +1,8 @@
/**
* @file shinyV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
void calcAtmospherics(vec3 inPositionEye);
diff --git a/indra/newview/app_settings/shaders/class1/objects/shinyWaterF.glsl b/indra/newview/app_settings/shaders/class1/objects/shinyWaterF.glsl
index 0a2a5f624b..54b30573e7 100644
--- a/indra/newview/app_settings/shaders/class1/objects/shinyWaterF.glsl
+++ b/indra/newview/app_settings/shaders/class1/objects/shinyWaterF.glsl
@@ -1,8 +1,8 @@
/**
* @file shinyWaterF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
void shiny_lighting_water();
diff --git a/indra/newview/app_settings/shaders/class1/objects/simpleF.glsl b/indra/newview/app_settings/shaders/class1/objects/simpleF.glsl
index 7dacca4fe1..61c2ce4272 100644
--- a/indra/newview/app_settings/shaders/class1/objects/simpleF.glsl
+++ b/indra/newview/app_settings/shaders/class1/objects/simpleF.glsl
@@ -1,8 +1,8 @@
/**
* @file simpleF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
void default_lighting();
diff --git a/indra/newview/app_settings/shaders/class1/objects/simpleV.glsl b/indra/newview/app_settings/shaders/class1/objects/simpleV.glsl
index 78b96b3025..ced1a4be01 100644
--- a/indra/newview/app_settings/shaders/class1/objects/simpleV.glsl
+++ b/indra/newview/app_settings/shaders/class1/objects/simpleV.glsl
@@ -1,8 +1,8 @@
/**
* @file simpleV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
vec4 calcLighting(vec3 pos, vec3 norm, vec4 color, vec4 baseCol);
diff --git a/indra/newview/app_settings/shaders/class1/objects/simpleWaterF.glsl b/indra/newview/app_settings/shaders/class1/objects/simpleWaterF.glsl
index e066b3d02f..5e44212aed 100644
--- a/indra/newview/app_settings/shaders/class1/objects/simpleWaterF.glsl
+++ b/indra/newview/app_settings/shaders/class1/objects/simpleWaterF.glsl
@@ -1,8 +1,8 @@
/**
* @file simpleWaterF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
void default_lighting_water();
diff --git a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsF.glsl b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsF.glsl
index 248c322011..7a05b8c8c6 100644
--- a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsF.glsl
+++ b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsF.glsl
@@ -1,8 +1,8 @@
/**
* @file atmosphericsF.glsl
*
- * Copyright (c) 2005-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
+ * $/LicenseInfo$
*/
vec3 atmosLighting(vec3 light)
diff --git a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsHelpersV.glsl b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsHelpersV.glsl
index c2c39e2e10..874f2b4843 100644
--- a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsHelpersV.glsl
+++ b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsHelpersV.glsl
@@ -1,8 +1,8 @@
/**
* @file atmosphericsHelpersV.glsl
*
- * Copyright (c) 2005-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
+ * $/LicenseInfo$
*/
vec3 atmosAmbient(vec3 light)
diff --git a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsV.glsl b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsV.glsl
index 551b643403..7ead9ddf26 100644
--- a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsV.glsl
+++ b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsV.glsl
@@ -1,8 +1,8 @@
/**
* @file atmosphericsV.glsl
*
- * Copyright (c) 2005-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
+ * $/LicenseInfo$
*/
void setPositionEye(vec3 v);
diff --git a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsF.glsl b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsF.glsl
index c001a4070b..f6032f8d41 100644
--- a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsF.glsl
+++ b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsF.glsl
@@ -1,8 +1,8 @@
/**
* @file atmosphericVarsF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
varying vec3 vary_PositionEye;
diff --git a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsV.glsl b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsV.glsl
index 1b263b0854..a696ddf607 100644
--- a/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsV.glsl
+++ b/indra/newview/app_settings/shaders/class1/windlight/atmosphericsVarsV.glsl
@@ -1,8 +1,8 @@
/**
* @file atmosphericVarsV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
varying vec3 vary_PositionEye;
diff --git a/indra/newview/app_settings/shaders/class1/windlight/gammaF.glsl b/indra/newview/app_settings/shaders/class1/windlight/gammaF.glsl
index c1ffda1596..4a1899798a 100644
--- a/indra/newview/app_settings/shaders/class1/windlight/gammaF.glsl
+++ b/indra/newview/app_settings/shaders/class1/windlight/gammaF.glsl
@@ -1,8 +1,8 @@
/**
* @file gammaF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
uniform vec4 gamma;
diff --git a/indra/newview/app_settings/shaders/class1/windlight/transportF.glsl b/indra/newview/app_settings/shaders/class1/windlight/transportF.glsl
index 7097906fdd..b78b90545e 100644
--- a/indra/newview/app_settings/shaders/class1/windlight/transportF.glsl
+++ b/indra/newview/app_settings/shaders/class1/windlight/transportF.glsl
@@ -1,8 +1,8 @@
/**
* @file transportF.glsl
*
- * Copyright (c) 2005-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
+ * $/LicenseInfo$
*/
vec3 atmosTransport(vec3 light)
diff --git a/indra/newview/app_settings/shaders/class2/avatar/eyeballV.glsl b/indra/newview/app_settings/shaders/class2/avatar/eyeballV.glsl
index 3dd62d2d14..47300f0b39 100644
--- a/indra/newview/app_settings/shaders/class2/avatar/eyeballV.glsl
+++ b/indra/newview/app_settings/shaders/class2/avatar/eyeballV.glsl
@@ -1,8 +1,8 @@
/**
* @file eyeballV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
vec4 calcLightingSpecular(vec3 pos, vec3 norm, vec4 color, inout vec4 specularColor, vec4 baseCol);
diff --git a/indra/newview/app_settings/shaders/class2/deferred/alphaF.glsl b/indra/newview/app_settings/shaders/class2/deferred/alphaF.glsl
index ad16de6d81..e2d7cd94da 100644
--- a/indra/newview/app_settings/shaders/class2/deferred/alphaF.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/alphaF.glsl
@@ -1,8 +1,8 @@
/**
* @file alphaF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
#extension GL_ARB_texture_rectangle : enable
@@ -29,8 +29,6 @@ varying vec3 vary_fragcoord;
varying vec3 vary_position;
varying vec3 vary_light;
-uniform float alpha_soften;
-
uniform float shadow_bias;
uniform mat4 inv_proj;
@@ -115,15 +113,6 @@ void main()
color.rgb = scaleSoftClip(color.rgb);
- if (samp_pos.z != 0.0 && gl_Color.a < 1.0)
- {
- float dist_factor = alpha_soften;
- float a = gl_Color.a;
- a *= a;
- dist_factor *= 1.0/(1.0-a);
- color.a *= min((pos.z-samp_pos.z)*dist_factor, 1.0);
- }
-
//gl_FragColor = gl_Color;
gl_FragColor = color;
//gl_FragColor = vec4(1,0,1,1)*shadow;
diff --git a/indra/newview/app_settings/shaders/class2/deferred/alphaV.glsl b/indra/newview/app_settings/shaders/class2/deferred/alphaV.glsl
index 5991e1f3b5..45f727951e 100644
--- a/indra/newview/app_settings/shaders/class2/deferred/alphaV.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/alphaV.glsl
@@ -1,15 +1,15 @@
/**
* @file alphaV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
vec4 calcLighting(vec3 pos, vec3 norm, vec4 color, vec4 baseCol);
void calcAtmospherics(vec3 inPositionEye);
float calcDirectionalLight(vec3 n, vec3 l);
-float calcPointLight(vec3 v, vec3 n, vec4 lp, float la);
+float calcPointLightOrSpotLight(vec3 v, vec3 n, vec4 lp, vec3 ln, float la, float is_pointlight);
vec3 atmosAmbient(vec3 light);
vec3 atmosAffectDirectionalLight(float lightIntensity);
@@ -42,23 +42,21 @@ void main()
calcAtmospherics(pos.xyz);
//vec4 color = calcLighting(pos.xyz, norm, gl_Color, vec4(0.));
- vec4 col;
- col.a = gl_Color.a;
-
- // Add windlight lights
- col.rgb = atmosAmbient(vec3(0.));
- col.rgb = scaleUpLight(col.rgb);
+ vec4 col = vec4(0.0, 0.0, 0.0, gl_Color.a);
// Collect normal lights (need to be divided by two, as we later multiply by 2)
- col.rgb += gl_LightSource[2].diffuse.rgb*calcPointLight(pos.xyz, norm, gl_LightSource[2].position, gl_LightSource[2].linearAttenuation);
- col.rgb += gl_LightSource[3].diffuse.rgb*calcPointLight(pos.xyz, norm, gl_LightSource[3].position, gl_LightSource[3].linearAttenuation);
- col.rgb += gl_LightSource[4].diffuse.rgb*calcPointLight(pos.xyz, norm, gl_LightSource[4].position, gl_LightSource[4].linearAttenuation);
- col.rgb += gl_LightSource[5].diffuse.rgb*calcPointLight(pos.xyz, norm, gl_LightSource[5].position, gl_LightSource[5].linearAttenuation);
- col.rgb += gl_LightSource[6].diffuse.rgb*calcPointLight(pos.xyz, norm, gl_LightSource[6].position, gl_LightSource[6].linearAttenuation);
- col.rgb += gl_LightSource[7].diffuse.rgb*calcPointLight(pos.xyz, norm, gl_LightSource[7].position, gl_LightSource[7].linearAttenuation);
+ col.rgb += gl_LightSource[2].diffuse.rgb*calcPointLightOrSpotLight(pos.xyz, norm, gl_LightSource[2].position, gl_LightSource[2].spotDirection.xyz, gl_LightSource[2].linearAttenuation, gl_LightSource[2].specular.a);
+ col.rgb += gl_LightSource[3].diffuse.rgb*calcPointLightOrSpotLight(pos.xyz, norm, gl_LightSource[3].position, gl_LightSource[3].spotDirection.xyz, gl_LightSource[3].linearAttenuation, gl_LightSource[3].specular.a);
+ col.rgb += gl_LightSource[4].diffuse.rgb*calcPointLightOrSpotLight(pos.xyz, norm, gl_LightSource[4].position, gl_LightSource[4].spotDirection.xyz, gl_LightSource[4].linearAttenuation, gl_LightSource[4].specular.a);
+ col.rgb += gl_LightSource[5].diffuse.rgb*calcPointLightOrSpotLight(pos.xyz, norm, gl_LightSource[5].position, gl_LightSource[5].spotDirection.xyz, gl_LightSource[5].linearAttenuation, gl_LightSource[5].specular.a);
+ col.rgb += gl_LightSource[6].diffuse.rgb*calcPointLightOrSpotLight(pos.xyz, norm, gl_LightSource[6].position, gl_LightSource[6].spotDirection.xyz, gl_LightSource[6].linearAttenuation, gl_LightSource[6].specular.a);
+ col.rgb += gl_LightSource[7].diffuse.rgb*calcPointLightOrSpotLight(pos.xyz, norm, gl_LightSource[7].position, gl_LightSource[7].spotDirection.xyz, gl_LightSource[7].linearAttenuation, gl_LightSource[7].specular.a);
col.rgb += gl_LightSource[1].diffuse.rgb*calcDirectionalLight(norm, gl_LightSource[1].position.xyz);
col.rgb = scaleDownLight(col.rgb);
+ // Add windlight lights
+ col.rgb += atmosAmbient(vec3(0.));
+
vary_light = gl_LightSource[0].position.xyz;
vary_ambient = col.rgb*gl_Color.rgb;
diff --git a/indra/newview/app_settings/shaders/class2/deferred/avatarAlphaF.glsl b/indra/newview/app_settings/shaders/class2/deferred/avatarAlphaF.glsl
index a81e4caf4c..5ecbbd2c4f 100644
--- a/indra/newview/app_settings/shaders/class2/deferred/avatarAlphaF.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/avatarAlphaF.glsl
@@ -1,8 +1,8 @@
/**
* @file avatarAlphaF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
#extension GL_ARB_texture_rectangle : enable
diff --git a/indra/newview/app_settings/shaders/class2/deferred/avatarAlphaV.glsl b/indra/newview/app_settings/shaders/class2/deferred/avatarAlphaV.glsl
index a939499b17..d7d1111ba8 100644
--- a/indra/newview/app_settings/shaders/class2/deferred/avatarAlphaV.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/avatarAlphaV.glsl
@@ -1,8 +1,8 @@
/**
* @file avatarAlphaV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
vec4 calcLighting(vec3 pos, vec3 norm, vec4 color, vec4 baseCol);
@@ -10,7 +10,7 @@ mat4 getSkinnedTransform();
void calcAtmospherics(vec3 inPositionEye);
float calcDirectionalLight(vec3 n, vec3 l);
-float calcPointLight(vec3 v, vec3 n, vec4 lp, float la);
+float calcPointLightOrSpotLight(vec3 v, vec3 n, vec4 lp, vec3 ln, float la, float is_pointlight);
vec3 atmosAmbient(vec3 light);
vec3 atmosAffectDirectionalLight(float lightIntensity);
@@ -53,23 +53,22 @@ void main()
calcAtmospherics(pos.xyz);
//vec4 color = calcLighting(pos.xyz, norm, gl_Color, vec4(0.));
- vec4 col;
- col.a = gl_Color.a;
-
- // Add windlight lights
- col.rgb = atmosAmbient(vec3(0.));
- col.rgb = scaleUpLight(col.rgb);
+
+ vec4 col = vec4(0.0, 0.0, 0.0, gl_Color.a);
// Collect normal lights (need to be divided by two, as we later multiply by 2)
- col.rgb += gl_LightSource[2].diffuse.rgb*calcPointLight(pos.xyz, norm, gl_LightSource[2].position, gl_LightSource[2].linearAttenuation);
- col.rgb += gl_LightSource[3].diffuse.rgb*calcPointLight(pos.xyz, norm, gl_LightSource[3].position, gl_LightSource[3].linearAttenuation);
- col.rgb += gl_LightSource[4].diffuse.rgb*calcPointLight(pos.xyz, norm, gl_LightSource[4].position, gl_LightSource[4].linearAttenuation);
- col.rgb += gl_LightSource[5].diffuse.rgb*calcPointLight(pos.xyz, norm, gl_LightSource[5].position, gl_LightSource[5].linearAttenuation);
- col.rgb += gl_LightSource[6].diffuse.rgb*calcPointLight(pos.xyz, norm, gl_LightSource[6].position, gl_LightSource[6].linearAttenuation);
- col.rgb += gl_LightSource[7].diffuse.rgb*calcPointLight(pos.xyz, norm, gl_LightSource[7].position, gl_LightSource[7].linearAttenuation);
+ col.rgb += gl_LightSource[2].diffuse.rgb*calcPointLightOrSpotLight(pos.xyz, norm, gl_LightSource[2].position, gl_LightSource[2].spotDirection.xyz, gl_LightSource[2].linearAttenuation, gl_LightSource[2].specular.a);
+ col.rgb += gl_LightSource[3].diffuse.rgb*calcPointLightOrSpotLight(pos.xyz, norm, gl_LightSource[3].position, gl_LightSource[3].spotDirection.xyz, gl_LightSource[3].linearAttenuation, gl_LightSource[3].specular.a);
+ col.rgb += gl_LightSource[4].diffuse.rgb*calcPointLightOrSpotLight(pos.xyz, norm, gl_LightSource[4].position, gl_LightSource[4].spotDirection.xyz, gl_LightSource[4].linearAttenuation, gl_LightSource[4].specular.a);
+ col.rgb += gl_LightSource[5].diffuse.rgb*calcPointLightOrSpotLight(pos.xyz, norm, gl_LightSource[5].position, gl_LightSource[5].spotDirection.xyz, gl_LightSource[5].linearAttenuation, gl_LightSource[5].specular.a);
+ col.rgb += gl_LightSource[6].diffuse.rgb*calcPointLightOrSpotLight(pos.xyz, norm, gl_LightSource[6].position, gl_LightSource[6].spotDirection.xyz, gl_LightSource[6].linearAttenuation, gl_LightSource[6].specular.a);
+ col.rgb += gl_LightSource[7].diffuse.rgb*calcPointLightOrSpotLight(pos.xyz, norm, gl_LightSource[7].position, gl_LightSource[7].spotDirection.xyz, gl_LightSource[7].linearAttenuation, gl_LightSource[7].specular.a);
col.rgb += gl_LightSource[1].diffuse.rgb*calcDirectionalLight(norm, gl_LightSource[1].position.xyz);
col.rgb = scaleDownLight(col.rgb);
+ // Add windlight lights
+ col.rgb += atmosAmbient(vec3(0.));
+
vary_ambient = col.rgb*gl_Color.rgb;
vary_directional = gl_Color.rgb*atmosAffectDirectionalLight(max(calcDirectionalLight(norm, gl_LightSource[0].position.xyz), (1.0-gl_Color.a)*(1.0-gl_Color.a)));
diff --git a/indra/newview/app_settings/shaders/class2/deferred/blurLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/blurLightF.glsl
index 0fad5b4b50..258a9b7c40 100644
--- a/indra/newview/app_settings/shaders/class2/deferred/blurLightF.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/blurLightF.glsl
@@ -1,8 +1,8 @@
/**
* @file blurLightF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
#extension GL_ARB_texture_rectangle : enable
@@ -37,7 +37,8 @@ vec4 getPosition(vec2 pos_screen)
void main()
{
- vec3 norm = texture2DRect(normalMap, vary_fragcoord.xy).xyz*2.0-1.0;
+ vec3 norm = texture2DRect(normalMap, vary_fragcoord.xy).xyz;
+ norm = vec3((norm.xy-0.5)*2.0,norm.z); // unpack norm
vec3 pos = getPosition(vary_fragcoord.xy).xyz;
vec4 ccol = texture2DRect(lightMap, vary_fragcoord.xy).rgba;
diff --git a/indra/newview/app_settings/shaders/class2/deferred/blurLightV.glsl b/indra/newview/app_settings/shaders/class2/deferred/blurLightV.glsl
index b7f07e5702..b1b3f55f00 100644
--- a/indra/newview/app_settings/shaders/class2/deferred/blurLightV.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/blurLightV.glsl
@@ -1,8 +1,8 @@
/**
* @file blurLightF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
varying vec2 vary_fragcoord;
diff --git a/indra/newview/app_settings/shaders/class2/deferred/edgeF.glsl b/indra/newview/app_settings/shaders/class2/deferred/edgeF.glsl
index 02beddd43b..ff32a15c54 100644
--- a/indra/newview/app_settings/shaders/class2/deferred/edgeF.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/edgeF.glsl
@@ -1,8 +1,8 @@
/**
* @file edgeF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
#extension GL_ARB_texture_rectangle : enable
@@ -31,7 +31,8 @@ float getDepth(vec2 pos_screen)
void main()
{
- vec3 norm = texture2DRect(normalMap, vary_fragcoord.xy).xyz*2.0-1.0;
+ vec3 norm = texture2DRect(normalMap, vary_fragcoord.xy).xyz;
+ norm = vec3((norm.xy-0.5)*2.0,norm.z); // unpack norm
float depth = getDepth(vary_fragcoord.xy);
vec2 tc = vary_fragcoord.xy;
@@ -46,8 +47,12 @@ void main()
de = step(depth_cutoff, de);
vec2 ne;
- ne.x = dot(texture2DRect(normalMap, tc+vec2(-sc,-sc)).rgb*2.0-1.0, norm);
- ne.y = dot(texture2DRect(normalMap, tc+vec2(sc,sc)).rgb*2.0-1.0, norm);
+ vec3 nexnorm = texture2DRect(normalMap, tc+vec2(-sc,-sc)).rgb;
+ nexnorm = vec3((nexnorm.xy-0.5)*2.0,nexnorm.z); // unpack norm
+ ne.x = dot(nexnorm, norm);
+ vec3 neynorm = texture2DRect(normalMap, tc+vec2(sc,sc)).rgb;
+ neynorm = vec3((neynorm.xy-0.5)*2.0,neynorm.z); // unpack norm
+ ne.y = dot(neynorm, norm);
ne = 1.0-ne;
diff --git a/indra/newview/app_settings/shaders/class2/deferred/edgeV.glsl b/indra/newview/app_settings/shaders/class2/deferred/edgeV.glsl
index f1938c92b8..74f2bd9818 100644
--- a/indra/newview/app_settings/shaders/class2/deferred/edgeV.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/edgeV.glsl
@@ -1,8 +1,8 @@
/**
* @file edgeV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
varying vec2 vary_fragcoord;
diff --git a/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl
index 651959413c..d6cd984ebe 100644
--- a/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/multiSpotLightF.glsl
@@ -1,8 +1,8 @@
/**
* @file multiSpotLightF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
#version 120
@@ -43,6 +43,52 @@ uniform vec2 screen_res;
uniform mat4 inv_proj;
+vec4 texture2DLodSpecular(sampler2D projectionMap, vec2 tc, float lod)
+{
+ vec4 ret = texture2DLod(projectionMap, tc, lod);
+
+ vec2 dist = tc-vec2(0.5);
+
+ float det = max(1.0-lod/(proj_lod*0.5), 0.0);
+
+ float d = dot(dist,dist);
+
+ ret *= min(clamp((0.25-d)/0.25, 0.0, 1.0)+det, 1.0);
+
+ return ret;
+}
+
+vec4 texture2DLodDiffuse(sampler2D projectionMap, vec2 tc, float lod)
+{
+ vec4 ret = texture2DLod(projectionMap, tc, lod);
+
+ vec2 dist = vec2(0.5) - abs(tc-vec2(0.5));
+
+ float det = min(lod/(proj_lod*0.5), 1.0);
+
+ float d = min(dist.x, dist.y);
+
+ float edge = 0.25*det;
+
+ ret *= clamp(d/edge, 0.0, 1.0);
+
+ return ret;
+}
+
+vec4 texture2DLodAmbient(sampler2D projectionMap, vec2 tc, float lod)
+{
+ vec4 ret = texture2DLod(projectionMap, tc, lod);
+
+ vec2 dist = tc-vec2(0.5);
+
+ float d = dot(dist,dist);
+
+ ret *= min(clamp((0.25-d)/0.25, 0.0, 1.0), 1.0);
+
+ return ret;
+}
+
+
vec4 getPosition(vec2 pos_screen)
{
float depth = texture2DRect(depthMap, pos_screen.xy).a;
@@ -83,7 +129,8 @@ void main()
shadow = min(sh[proj_shadow_idx]+shadow_fade, 1.0);
}
- vec3 norm = texture2DRect(normalMap, frag.xy).xyz*2.0-1.0;
+ vec3 norm = texture2DRect(normalMap, frag.xy).xyz;
+ norm = vec3((norm.xy-0.5)*2.0,norm.z); // unpack norm
norm = normalize(norm);
float l_dist = -dot(lv, proj_n);
@@ -126,7 +173,7 @@ void main()
float diff = clamp((l_dist-proj_focus)/proj_range, 0.0, 1.0);
float lod = diff * proj_lod;
- vec4 plcol = texture2DLod(projectionMap, proj_tc.xy, lod);
+ vec4 plcol = texture2DLodDiffuse(projectionMap, proj_tc.xy, lod);
vec3 lcol = gl_Color.rgb * plcol.rgb * plcol.a;
@@ -137,7 +184,7 @@ void main()
}
//float diff = clamp((proj_range-proj_focus)/proj_range, 0.0, 1.0);
- vec4 amb_plcol = texture2DLod(projectionMap, proj_tc.xy, proj_ambient_lod);
+ vec4 amb_plcol = texture2DLodAmbient(projectionMap, proj_tc.xy, proj_lod);
amb_da += (da*da*0.5+0.5)*proj_ambiance;
@@ -167,22 +214,23 @@ void main()
if (stc.z > 0.0)
{
stc.xy /= stc.w;
-
+
+ float fatten = clamp(spec.a*spec.a+spec.a*0.5, 0.25, 1.0);
+
+ stc.xy = (stc.xy - vec2(0.5)) * fatten + vec2(0.5);
+
if (stc.x < 1.0 &&
stc.y < 1.0 &&
stc.x > 0.0 &&
stc.y > 0.0)
{
- vec4 scol = texture2DLod(projectionMap, stc.xy, proj_lod-spec.a*proj_lod);
+ vec4 scol = texture2DLodSpecular(projectionMap, stc.xy, proj_lod-spec.a*proj_lod);
col += dist_atten*scol.rgb*gl_Color.rgb*scol.a*spec.rgb*shadow;
}
}
}
}
- //attenuate point light contribution by SSAO component
- col *= texture2DRect(lightMap, frag.xy).g;
-
gl_FragColor.rgb = col;
gl_FragColor.a = 0.0;
}
diff --git a/indra/newview/app_settings/shaders/class2/deferred/postDeferredF.glsl b/indra/newview/app_settings/shaders/class2/deferred/postDeferredF.glsl
index ee0e9d6367..757e3e7aab 100644
--- a/indra/newview/app_settings/shaders/class2/deferred/postDeferredF.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/postDeferredF.glsl
@@ -1,8 +1,8 @@
/**
* @file postDeferredF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
uniform sampler2DRect diffuseRect;
diff --git a/indra/newview/app_settings/shaders/class2/deferred/postDeferredV.glsl b/indra/newview/app_settings/shaders/class2/deferred/postDeferredV.glsl
index 9819232fd5..0ec81dcb02 100644
--- a/indra/newview/app_settings/shaders/class2/deferred/postDeferredV.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/postDeferredV.glsl
@@ -1,8 +1,8 @@
/**
* @file postDeferredV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
varying vec2 vary_fragcoord;
diff --git a/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl
index 531f7376a3..1067be1e6e 100644
--- a/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/softenLightF.glsl
@@ -1,8 +1,8 @@
/**
* @file softenLightF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
#extension GL_ARB_texture_rectangle : enable
@@ -11,6 +11,7 @@ uniform sampler2DRect diffuseRect;
uniform sampler2DRect specularRect;
uniform sampler2DRect normalMap;
uniform sampler2DRect lightMap;
+uniform sampler2DRect depthMap;
uniform sampler2D noiseMap;
uniform samplerCube environmentMap;
uniform sampler2D lightFunc;
@@ -41,7 +42,6 @@ uniform vec3 env_mat[3];
uniform vec4 shadow_clip;
uniform mat3 ssao_effect_mat;
-uniform sampler2DRect depthMap;
uniform mat4 inv_proj;
uniform vec2 screen_res;
@@ -55,9 +55,8 @@ vec3 vary_AmblitColor;
vec3 vary_AdditiveColor;
vec3 vary_AtmosAttenuation;
-vec4 getPosition(vec2 pos_screen)
-{ //get position in screen space (world units) given window coordinate and depth map
- float depth = texture2DRect(depthMap, pos_screen.xy).a;
+vec4 getPosition_d(vec2 pos_screen, float depth)
+{
vec2 sc = pos_screen.xy*2.0;
sc /= screen_res;
sc -= vec2(1.0,1.0);
@@ -68,6 +67,12 @@ vec4 getPosition(vec2 pos_screen)
return pos;
}
+vec4 getPosition(vec2 pos_screen)
+{ //get position in screen space (world units) given window coordinate and depth map
+ float depth = texture2DRect(depthMap, pos_screen.xy).a;
+ return getPosition_d(pos_screen, depth);
+}
+
vec3 getPositionEye()
{
return vary_PositionEye;
@@ -251,8 +256,10 @@ vec3 scaleSoftClip(vec3 light)
void main()
{
vec2 tc = vary_fragcoord.xy;
- vec3 pos = getPosition(tc).xyz;
- vec3 norm = texture2DRect(normalMap, tc).xyz*2.0-1.0;
+ float depth = texture2DRect(depthMap, tc.xy).a;
+ vec3 pos = getPosition_d(tc, depth).xyz;
+ vec3 norm = texture2DRect(normalMap, tc).xyz;
+ norm = vec3((norm.xy-0.5)*2.0,norm.z); // unpack norm
//vec3 nz = texture2D(noiseMap, vary_fragcoord.xy/128.0).xyz;
float da = max(dot(norm.xyz, vary_light.xyz), 0.0);
@@ -271,24 +278,67 @@ void main()
col *= diffuse.rgb;
- if (spec.a > 0.0)
+ if (spec.a > 0.0) // specular reflection
{
- vec3 ref = normalize(reflect(pos.xyz, norm.xyz));
- float sa = dot(ref, vary_light.xyz);
- col.rgb += vary_SunlitColor*scol*spec.rgb*texture2D(lightFunc, vec2(sa, spec.a)).a;
+ // the old infinite-sky shiny reflection
+ //
+ vec3 refnormpersp = normalize(reflect(pos.xyz, norm.xyz));
+ float sa = dot(refnormpersp, vary_light.xyz);
+ vec3 dumbshiny = vary_SunlitColor*scol_ambocc.r*texture2D(lightFunc, vec2(sa, spec.a)).a;
+
+ /*
+ // screen-space cheap fakey reflection map
+ //
+ vec3 refnorm = normalize(reflect(vec3(0,0,-1), norm.xyz));
+ depth -= 0.5; // unbias depth
+ // first figure out where we'll make our 2D guess from
+ vec2 ref2d = (0.25 * screen_res.y) * (refnorm.xy) * abs(refnorm.z) / depth;
+ // Offset the guess source a little according to a trivial
+ // checkerboard dither function and spec.a.
+ // This is meant to be similar to sampling a blurred version
+ // of the diffuse map. LOD would be better in that regard.
+ // The goal of the blur is to soften reflections in surfaces
+ // with low shinyness, and also to disguise our lameness.
+ float checkerboard = floor(mod(tc.x+tc.y, 2.0)); // 0.0, 1.0
+ float checkoffset = (3.0 + (7.0*(1.0-spec.a)))*(checkerboard-0.5);
+ ref2d += vec2(checkoffset, checkoffset);
+ ref2d += tc.xy; // use as offset from destination
+ // Get attributes from the 2D guess point.
+ // We average two samples of diffuse (not of anything else) per
+ // pixel to try to reduce aliasing some more.
+ vec3 refcol = 0.5 * (texture2DRect(diffuseRect, ref2d + vec2(0.0, -checkoffset)).rgb +
+ texture2DRect(diffuseRect, ref2d + vec2(-checkoffset, 0.0)).rgb);
+ float refdepth = texture2DRect(depthMap, ref2d).a;
+ vec3 refpos = getPosition_d(ref2d, refdepth).xyz;
+ float refshad = texture2DRect(lightMap, ref2d).r;
+ vec3 refn = texture2DRect(normalMap, ref2d).rgb;
+ refn = vec3((refn.xy-0.5)*2.0,refn.z); // unpack norm
+ refn = normalize(refn);
+ // figure out how appropriate our guess actually was
+ float refapprop = max(0.0, dot(-refnorm, normalize(pos - refpos)));
+ // darken reflections from points which face away from the reflected ray - our guess was a back-face
+ //refapprop *= step(dot(refnorm, refn), 0.0);
+ refapprop = min(refapprop, max(0.0, -dot(refnorm, refn))); // more conservative variant
+ // get appropriate light strength for guess-point
+ // reflect light direction to increase the illusion that
+ // these are reflections.
+ vec3 reflight = reflect(lightnorm.xyz, norm.xyz);
+ float reflit = min(max(dot(refn, reflight.xyz), 0.0), refshad);
+ // apply sun color to guess-point, dampen according to inappropriateness of guess
+ float refmod = min(refapprop, reflit);
+ vec3 refprod = vary_SunlitColor * refcol.rgb * refmod;
+ vec3 ssshiny = (refprod * spec.a);
+ ssshiny *= 0.3; // dampen it even more
+ */
+ vec3 ssshiny = vec3(0,0,0);
+
+ // add the two types of shiny together
+ col += (ssshiny + dumbshiny) * spec.rgb;
}
col = atmosLighting(col);
col = scaleSoftClip(col);
gl_FragColor.rgb = col;
-
- //gl_FragColor.rgb = gi_col.rgb;
gl_FragColor.a = 0.0;
-
- //gl_FragColor.rg = scol_ambocc.rg;
- //gl_FragColor.rgb = texture2DRect(lightMap, vary_fragcoord.xy).rgb;
- //gl_FragColor.rgb = norm.rgb*0.5+0.5;
- //gl_FragColor.rgb = vec3(ambocc);
- //gl_FragColor.rgb = vec3(scol);
}
diff --git a/indra/newview/app_settings/shaders/class2/deferred/softenLightV.glsl b/indra/newview/app_settings/shaders/class2/deferred/softenLightV.glsl
index ad8af4780d..9d187b46e2 100644
--- a/indra/newview/app_settings/shaders/class2/deferred/softenLightV.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/softenLightV.glsl
@@ -1,8 +1,8 @@
/**
* @file softenLightF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
uniform vec2 screen_res;
diff --git a/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl
index d6534083cf..d0e242c2d4 100644
--- a/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/spotLightF.glsl
@@ -1,8 +1,8 @@
/**
* @file spotLightF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
#version 120
@@ -82,7 +82,8 @@ void main()
discard;
}
- vec3 norm = texture2DRect(normalMap, frag.xy).xyz*2.0-1.0;
+ vec3 norm = texture2DRect(normalMap, frag.xy).xyz;
+ norm = vec3((norm.xy-0.5)*2.0,norm.z); // unpack norm
norm = normalize(norm);
float l_dist = -dot(lv, proj_n);
@@ -179,21 +180,6 @@ void main()
}
}
- /*if (spec.a > 0.0)
- {
- //vec3 ref = reflect(normalize(pos), norm);
- float sa = dot(normalize(lv-normalize(pos)),norm);;
- //sa = max(sa, 0.0);
- //sa = pow(sa, 128.0 * spec.a*spec.a/dist_atten)*min(dist_atten*4.0, 1.0);
- sa = texture2D(lightFunc, vec2(sa, spec.a)).a * min(dist_atten*4.0, 1.0);
- sa *= noise;
- col += da*sa*lcol*spec.rgb;
- }*/
-
- //attenuate point light contribution by SSAO component
- col *= texture2DRect(lightMap, frag.xy).g;
-
-
gl_FragColor.rgb = col;
gl_FragColor.a = 0.0;
}
diff --git a/indra/newview/app_settings/shaders/class2/deferred/sunLightF.glsl b/indra/newview/app_settings/shaders/class2/deferred/sunLightF.glsl
index a0026edcd2..f565d3bdb9 100644
--- a/indra/newview/app_settings/shaders/class2/deferred/sunLightF.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/sunLightF.glsl
@@ -1,12 +1,14 @@
/**
* @file sunLightF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
#extension GL_ARB_texture_rectangle : enable
+//class 2, shadows, no SSAO
+
uniform sampler2DRect depthMap;
uniform sampler2DRect normalMap;
uniform sampler2DRectShadow shadowMap0;
@@ -39,6 +41,9 @@ uniform vec2 proj_shadow_res;
uniform float shadow_bias;
uniform float shadow_offset;
+uniform float spot_shadow_bias;
+uniform float spot_shadow_offset;
+
vec4 getPosition(vec2 pos_screen)
{
float depth = texture2DRect(depthMap, pos_screen.xy).a;
@@ -52,56 +57,6 @@ vec4 getPosition(vec2 pos_screen)
return pos;
}
-//calculate decreases in ambient lighting when crowded out (SSAO)
-float calcAmbientOcclusion(vec4 pos, vec3 norm)
-{
- vec2 kern[8];
- // exponentially (^2) distant occlusion samples spread around origin
- kern[0] = vec2(-1.0, 0.0) * 0.125*0.125;
- kern[1] = vec2(1.0, 0.0) * 0.250*0.250;
- kern[2] = vec2(0.0, 1.0) * 0.375*0.375;
- kern[3] = vec2(0.0, -1.0) * 0.500*0.500;
- kern[4] = vec2(0.7071, 0.7071) * 0.625*0.625;
- kern[5] = vec2(-0.7071, -0.7071) * 0.750*0.750;
- kern[6] = vec2(-0.7071, 0.7071) * 0.875*0.875;
- kern[7] = vec2(0.7071, -0.7071) * 1.000*1.000;
-
- vec2 pos_screen = vary_fragcoord.xy;
- vec3 pos_world = pos.xyz;
- vec2 noise_reflect = texture2D(noiseMap, vary_fragcoord.xy/128.0).xy;
-
- float angle_hidden = 0.0;
- int points = 0;
-
- float scale = min(ssao_radius / -pos_world.z, ssao_max_radius);
-
- // it was found that keeping # of samples a constant was the fastest, probably due to compiler optimizations (unrolling?)
- for (int i = 0; i < 8; i++)
- {
- vec2 samppos_screen = pos_screen + scale * reflect(kern[i], noise_reflect);
- vec3 samppos_world = getPosition(samppos_screen).xyz;
-
- vec3 diff = pos_world - samppos_world;
- float dist2 = dot(diff, diff);
-
- // assume each sample corresponds to an occluding sphere with constant radius, constant x-sectional area
- // --> solid angle shrinking by the square of distance
- //radius is somewhat arbitrary, can approx with just some constant k * 1 / dist^2
- //(k should vary inversely with # of samples, but this is taken care of later)
-
- //if (dot((samppos_world - 0.05*norm - pos_world), norm) > 0.0) // -0.05*norm to shift sample point back slightly for flat surfaces
- // angle_hidden += min(1.0/dist2, ssao_factor_inv); // dist != 0 follows from conditional. max of 1.0 (= ssao_factor_inv * ssao_factor)
- angle_hidden = angle_hidden + float(dot((samppos_world - 0.05*norm - pos_world), norm) > 0.0) * min(1.0/dist2, ssao_factor_inv);
-
- // 'blocked' samples (significantly closer to camera relative to pos_world) are "no data", not "no occlusion"
- points = points + int(diff.z > -1.0);
- }
-
- angle_hidden = min(ssao_factor*angle_hidden/float(points), 1.0);
-
- return (1.0 - (float(points != 0) * angle_hidden));
-}
-
float pcfShadow(sampler2DRectShadow shadowMap, vec4 stc, float scl)
{
stc.xyz /= stc.w;
@@ -123,7 +78,7 @@ float pcfShadow(sampler2DRectShadow shadowMap, vec4 stc, float scl)
float pcfShadow(sampler2DShadow shadowMap, vec4 stc, float scl)
{
stc.xyz /= stc.w;
- stc.z += shadow_bias*scl;
+ stc.z += spot_shadow_bias*scl;
float cs = shadow2D(shadowMap, stc.xyz).x;
float shadow = cs;
@@ -134,8 +89,7 @@ float pcfShadow(sampler2DShadow shadowMap, vec4 stc, float scl)
shadow += max(shadow2D(shadowMap, stc.xyz+vec3(off.x, -off.y, 0.0)).x, cs);
shadow += max(shadow2D(shadowMap, stc.xyz+vec3(-off.x, off.y, 0.0)).x, cs);
shadow += max(shadow2D(shadowMap, stc.xyz+vec3(-off.x, -off.y, 0.0)).x, cs);
-
-
+
return shadow/5.0;
//return shadow;
@@ -149,7 +103,10 @@ void main()
vec4 pos = getPosition(pos_screen);
- vec3 norm = texture2DRect(normalMap, pos_screen).xyz*2.0-1.0;
+ vec4 nmap4 = texture2DRect(normalMap, pos_screen);
+ nmap4 = vec4((nmap4.xy-0.5)*2.0,nmap4.z,nmap4.w); // unpack norm
+ float displace = nmap4.w;
+ vec3 norm = nmap4.xyz;
/*if (pos.z == 0.0) // do nothing for sky *FIX: REMOVE THIS IF/WHEN THE POSITION MAP IS BEING USED AS A STENCIL
{
@@ -158,9 +115,12 @@ void main()
}*/
float shadow = 1.0;
- float dp_directional_light = max(0.0, dot(norm, vary_light.xyz));
+ float dp_directional_light = max(0.0, dot(norm, vary_light.xyz));
- vec4 spos = vec4(pos.xyz + vary_light.xyz * (1.0-dp_directional_light)*shadow_offset, 1.0);
+ vec3 shadow_pos = pos.xyz + displace*norm;
+ vec3 offset = vary_light.xyz * (1.0-dp_directional_light);
+
+ vec4 spos = vec4(shadow_pos+offset*shadow_offset, 1.0);
if (spos.z > -shadow_clip.w)
{
@@ -220,15 +180,17 @@ void main()
}
gl_FragColor[0] = shadow;
- gl_FragColor[1] = calcAmbientOcclusion(pos, norm);
+ gl_FragColor[1] = 1.0;
+
+ spos = vec4(shadow_pos+norm*spot_shadow_offset, 1.0);
//spotlight shadow 1
vec4 lpos = shadow_matrix[4]*spos;
- gl_FragColor[2] = pcfShadow(shadowMap4, lpos, 0.1).x;
+ gl_FragColor[2] = pcfShadow(shadowMap4, lpos, 0.8);
//spotlight shadow 2
lpos = shadow_matrix[5]*spos;
- gl_FragColor[3] = pcfShadow(shadowMap5, lpos, 0.1).x;
+ gl_FragColor[3] = pcfShadow(shadowMap5, lpos, 0.8);
//gl_FragColor.rgb = pos.xyz;
//gl_FragColor.b = shadow;
diff --git a/indra/newview/app_settings/shaders/class2/deferred/sunLightSSAOF.glsl b/indra/newview/app_settings/shaders/class2/deferred/sunLightSSAOF.glsl
new file mode 100644
index 0000000000..4e33a1af45
--- /dev/null
+++ b/indra/newview/app_settings/shaders/class2/deferred/sunLightSSAOF.glsl
@@ -0,0 +1,257 @@
+/**
+ * @file sunLightSSAOF.glsl
+ *
+ * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
+ * $License$
+ */
+
+#extension GL_ARB_texture_rectangle : enable
+
+//class 2 -- shadows and SSAO
+
+uniform sampler2DRect depthMap;
+uniform sampler2DRect normalMap;
+uniform sampler2DRectShadow shadowMap0;
+uniform sampler2DRectShadow shadowMap1;
+uniform sampler2DRectShadow shadowMap2;
+uniform sampler2DRectShadow shadowMap3;
+uniform sampler2DShadow shadowMap4;
+uniform sampler2DShadow shadowMap5;
+uniform sampler2D noiseMap;
+
+uniform sampler2D lightFunc;
+
+// Inputs
+uniform mat4 shadow_matrix[6];
+uniform vec4 shadow_clip;
+uniform float ssao_radius;
+uniform float ssao_max_radius;
+uniform float ssao_factor;
+uniform float ssao_factor_inv;
+
+varying vec2 vary_fragcoord;
+varying vec4 vary_light;
+
+uniform mat4 inv_proj;
+uniform vec2 screen_res;
+uniform vec2 shadow_res;
+uniform vec2 proj_shadow_res;
+
+uniform float shadow_bias;
+uniform float shadow_offset;
+
+uniform float spot_shadow_bias;
+uniform float spot_shadow_offset;
+
+vec4 getPosition(vec2 pos_screen)
+{
+ float depth = texture2DRect(depthMap, pos_screen.xy).a;
+ vec2 sc = pos_screen.xy*2.0;
+ sc /= screen_res;
+ sc -= vec2(1.0,1.0);
+ vec4 ndc = vec4(sc.x, sc.y, 2.0*depth-1.0, 1.0);
+ vec4 pos = inv_proj * ndc;
+ pos /= pos.w;
+ pos.w = 1.0;
+ return pos;
+}
+
+//calculate decreases in ambient lighting when crowded out (SSAO)
+float calcAmbientOcclusion(vec4 pos, vec3 norm)
+{
+ float ret = 1.0;
+
+ float dist = dot(pos.xyz,pos.xyz);
+
+ if (dist < 64.0*64.0)
+ {
+ vec2 kern[8];
+ // exponentially (^2) distant occlusion samples spread around origin
+ kern[0] = vec2(-1.0, 0.0) * 0.125*0.125;
+ kern[1] = vec2(1.0, 0.0) * 0.250*0.250;
+ kern[2] = vec2(0.0, 1.0) * 0.375*0.375;
+ kern[3] = vec2(0.0, -1.0) * 0.500*0.500;
+ kern[4] = vec2(0.7071, 0.7071) * 0.625*0.625;
+ kern[5] = vec2(-0.7071, -0.7071) * 0.750*0.750;
+ kern[6] = vec2(-0.7071, 0.7071) * 0.875*0.875;
+ kern[7] = vec2(0.7071, -0.7071) * 1.000*1.000;
+
+ vec2 pos_screen = vary_fragcoord.xy;
+ vec3 pos_world = pos.xyz;
+ vec2 noise_reflect = texture2D(noiseMap, vary_fragcoord.xy/128.0).xy;
+
+ float angle_hidden = 0.0;
+ int points = 0;
+
+ float scale = min(ssao_radius / -pos_world.z, ssao_max_radius);
+
+ // it was found that keeping # of samples a constant was the fastest, probably due to compiler optimizations (unrolling?)
+ for (int i = 0; i < 8; i++)
+ {
+ vec2 samppos_screen = pos_screen + scale * reflect(kern[i], noise_reflect);
+ vec3 samppos_world = getPosition(samppos_screen).xyz;
+
+ vec3 diff = pos_world - samppos_world;
+ float dist2 = dot(diff, diff);
+
+ // assume each sample corresponds to an occluding sphere with constant radius, constant x-sectional area
+ // --> solid angle shrinking by the square of distance
+ //radius is somewhat arbitrary, can approx with just some constant k * 1 / dist^2
+ //(k should vary inversely with # of samples, but this is taken care of later)
+
+ //if (dot((samppos_world - 0.05*norm - pos_world), norm) > 0.0) // -0.05*norm to shift sample point back slightly for flat surfaces
+ // angle_hidden += min(1.0/dist2, ssao_factor_inv); // dist != 0 follows from conditional. max of 1.0 (= ssao_factor_inv * ssao_factor)
+ angle_hidden = angle_hidden + float(dot((samppos_world - 0.05*norm - pos_world), norm) > 0.0) * min(1.0/dist2, ssao_factor_inv);
+
+ // 'blocked' samples (significantly closer to camera relative to pos_world) are "no data", not "no occlusion"
+ points = points + int(diff.z > -1.0);
+ }
+
+ angle_hidden = min(ssao_factor*angle_hidden/float(points), 1.0);
+
+ ret = (1.0 - (float(points != 0) * angle_hidden));
+ ret += max((dist-32.0*32.0)/(32.0*32.0), 0.0);
+ }
+
+ return min(ret, 1.0);
+}
+
+float pcfShadow(sampler2DRectShadow shadowMap, vec4 stc, float scl)
+{
+ stc.xyz /= stc.w;
+ stc.z += shadow_bias*scl;
+
+ float cs = shadow2DRect(shadowMap, stc.xyz).x;
+ float shadow = cs;
+
+ shadow += max(shadow2DRect(shadowMap, stc.xyz+vec3(1.5, 1.5, 0.0)).x, cs);
+ shadow += max(shadow2DRect(shadowMap, stc.xyz+vec3(1.5, -1.5, 0.0)).x, cs);
+ shadow += max(shadow2DRect(shadowMap, stc.xyz+vec3(-1.5, 1.5, 0.0)).x, cs);
+ shadow += max(shadow2DRect(shadowMap, stc.xyz+vec3(-1.5, -1.5, 0.0)).x, cs);
+
+ return shadow/5.0;
+
+ //return shadow;
+}
+
+float pcfShadow(sampler2DShadow shadowMap, vec4 stc, float scl)
+{
+ stc.xyz /= stc.w;
+ stc.z += spot_shadow_bias*scl;
+
+ float cs = shadow2D(shadowMap, stc.xyz).x;
+ float shadow = cs;
+
+ vec2 off = 1.5/proj_shadow_res;
+
+ shadow += max(shadow2D(shadowMap, stc.xyz+vec3(off.x, off.y, 0.0)).x, cs);
+ shadow += max(shadow2D(shadowMap, stc.xyz+vec3(off.x, -off.y, 0.0)).x, cs);
+ shadow += max(shadow2D(shadowMap, stc.xyz+vec3(-off.x, off.y, 0.0)).x, cs);
+ shadow += max(shadow2D(shadowMap, stc.xyz+vec3(-off.x, -off.y, 0.0)).x, cs);
+
+
+ return shadow/5.0;
+
+ //return shadow;
+}
+
+void main()
+{
+ vec2 pos_screen = vary_fragcoord.xy;
+
+ //try doing an unproject here
+
+ vec4 pos = getPosition(pos_screen);
+
+ vec4 nmap4 = texture2DRect(normalMap, pos_screen);
+ nmap4 = vec4((nmap4.xy-0.5)*2.0,nmap4.z,nmap4.w); // unpack norm
+ float displace = nmap4.w;
+ vec3 norm = nmap4.xyz;
+
+ /*if (pos.z == 0.0) // do nothing for sky *FIX: REMOVE THIS IF/WHEN THE POSITION MAP IS BEING USED AS A STENCIL
+ {
+ gl_FragColor = vec4(0.0); // doesn't matter
+ return;
+ }*/
+
+ float shadow = 1.0;
+ float dp_directional_light = max(0.0, dot(norm, vary_light.xyz));
+
+ vec3 shadow_pos = pos.xyz + displace*norm;
+ vec3 offset = vary_light.xyz * (1.0-dp_directional_light);
+
+ vec4 spos = vec4(shadow_pos+offset*shadow_offset, 1.0);
+
+ if (spos.z > -shadow_clip.w)
+ {
+ if (dp_directional_light == 0.0)
+ {
+ // if we know this point is facing away from the sun then we know it's in shadow without having to do a squirrelly shadow-map lookup
+ shadow = 0.0;
+ }
+ else
+ {
+ vec4 lpos;
+
+ if (spos.z < -shadow_clip.z)
+ {
+ lpos = shadow_matrix[3]*spos;
+ lpos.xy *= shadow_res;
+ shadow = pcfShadow(shadowMap3, lpos, 0.25);
+ shadow += max((pos.z+shadow_clip.z)/(shadow_clip.z-shadow_clip.w)*2.0-1.0, 0.0);
+ }
+ else if (spos.z < -shadow_clip.y)
+ {
+ lpos = shadow_matrix[2]*spos;
+ lpos.xy *= shadow_res;
+ shadow = pcfShadow(shadowMap2, lpos, 0.5);
+ }
+ else if (spos.z < -shadow_clip.x)
+ {
+ lpos = shadow_matrix[1]*spos;
+ lpos.xy *= shadow_res;
+ shadow = pcfShadow(shadowMap1, lpos, 0.75);
+ }
+ else
+ {
+ lpos = shadow_matrix[0]*spos;
+ lpos.xy *= shadow_res;
+ shadow = pcfShadow(shadowMap0, lpos, 1.0);
+ }
+
+ // take the most-shadowed value out of these two:
+ // * the blurred sun shadow in the light (shadow) map
+ // * an unblurred dot product between the sun and this norm
+ // the goal is to err on the side of most-shadow to fill-in shadow holes and reduce artifacting
+ shadow = min(shadow, dp_directional_light);
+
+ //lpos.xy /= lpos.w*32.0;
+ //if (fract(lpos.x) < 0.1 || fract(lpos.y) < 0.1)
+ //{
+ // shadow = 0.0;
+ //}
+
+ }
+ }
+ else
+ {
+ // more distant than the shadow map covers
+ shadow = 1.0;
+ }
+
+ gl_FragColor[0] = shadow;
+ gl_FragColor[1] = calcAmbientOcclusion(pos, norm);
+
+ spos.xyz = shadow_pos+offset*spot_shadow_offset;
+
+ //spotlight shadow 1
+ vec4 lpos = shadow_matrix[4]*spos;
+ gl_FragColor[2] = pcfShadow(shadowMap4, lpos, 0.8);
+
+ //spotlight shadow 2
+ lpos = shadow_matrix[5]*spos;
+ gl_FragColor[3] = pcfShadow(shadowMap5, lpos, 0.8);
+
+ //gl_FragColor.rgb = pos.xyz;
+ //gl_FragColor.b = shadow;
+}
diff --git a/indra/newview/app_settings/shaders/class2/deferred/sunLightV.glsl b/indra/newview/app_settings/shaders/class2/deferred/sunLightV.glsl
index 5081485c4b..9d092d9cea 100644
--- a/indra/newview/app_settings/shaders/class2/deferred/sunLightV.glsl
+++ b/indra/newview/app_settings/shaders/class2/deferred/sunLightV.glsl
@@ -1,8 +1,8 @@
/**
* @file sunLightF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
varying vec4 vary_light;
diff --git a/indra/newview/app_settings/shaders/class2/effects/blurF.glsl b/indra/newview/app_settings/shaders/class2/effects/blurF.glsl
index 94433202af..4173709298 100644
--- a/indra/newview/app_settings/shaders/class2/effects/blurF.glsl
+++ b/indra/newview/app_settings/shaders/class2/effects/blurF.glsl
@@ -1,8 +1,8 @@
/**
* @file blurf.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
uniform sampler2DRect RenderTexture;
diff --git a/indra/newview/app_settings/shaders/class2/effects/blurV.glsl b/indra/newview/app_settings/shaders/class2/effects/blurV.glsl
index ba65b16cc1..f66609527d 100644
--- a/indra/newview/app_settings/shaders/class2/effects/blurV.glsl
+++ b/indra/newview/app_settings/shaders/class2/effects/blurV.glsl
@@ -1,8 +1,8 @@
/**
* @file blurV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
uniform vec2 texelSize;
diff --git a/indra/newview/app_settings/shaders/class2/effects/colorFilterF.glsl b/indra/newview/app_settings/shaders/class2/effects/colorFilterF.glsl
index 623ef7a81a..df41dae757 100644
--- a/indra/newview/app_settings/shaders/class2/effects/colorFilterF.glsl
+++ b/indra/newview/app_settings/shaders/class2/effects/colorFilterF.glsl
@@ -1,8 +1,8 @@
/**
* @file colorFilterF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
uniform sampler2DRect RenderTexture;
diff --git a/indra/newview/app_settings/shaders/class2/effects/drawQuadV.glsl b/indra/newview/app_settings/shaders/class2/effects/drawQuadV.glsl
index 29c2a0948c..e836caf93f 100644
--- a/indra/newview/app_settings/shaders/class2/effects/drawQuadV.glsl
+++ b/indra/newview/app_settings/shaders/class2/effects/drawQuadV.glsl
@@ -1,8 +1,8 @@
/**
* @file drawQuadV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
void main(void)
diff --git a/indra/newview/app_settings/shaders/class2/effects/extractF.glsl b/indra/newview/app_settings/shaders/class2/effects/extractF.glsl
index a1583b13eb..06d5fc9797 100644
--- a/indra/newview/app_settings/shaders/class2/effects/extractF.glsl
+++ b/indra/newview/app_settings/shaders/class2/effects/extractF.glsl
@@ -1,8 +1,8 @@
/**
* @file extractF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
uniform sampler2DRect RenderTexture;
diff --git a/indra/newview/app_settings/shaders/class2/effects/nightVisionF.glsl b/indra/newview/app_settings/shaders/class2/effects/nightVisionF.glsl
index 271d5cf8d6..0a2767ad02 100644
--- a/indra/newview/app_settings/shaders/class2/effects/nightVisionF.glsl
+++ b/indra/newview/app_settings/shaders/class2/effects/nightVisionF.glsl
@@ -1,8 +1,8 @@
/**
* @file nightVisionF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
uniform sampler2DRect RenderTexture;
diff --git a/indra/newview/app_settings/shaders/class2/effects/simpleF.glsl b/indra/newview/app_settings/shaders/class2/effects/simpleF.glsl
index e55d278b81..29ad9a995b 100644
--- a/indra/newview/app_settings/shaders/class2/effects/simpleF.glsl
+++ b/indra/newview/app_settings/shaders/class2/effects/simpleF.glsl
@@ -1,8 +1,8 @@
/**
* @file simpleF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
uniform sampler2DRect RenderTexture;
diff --git a/indra/newview/app_settings/shaders/class2/environment/terrainF.glsl b/indra/newview/app_settings/shaders/class2/environment/terrainF.glsl
index 4253bc21c3..32259acf1b 100644
--- a/indra/newview/app_settings/shaders/class2/environment/terrainF.glsl
+++ b/indra/newview/app_settings/shaders/class2/environment/terrainF.glsl
@@ -1,8 +1,8 @@
/**
* @file terrainF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
uniform sampler2D detail_0;
diff --git a/indra/newview/app_settings/shaders/class2/environment/terrainV.glsl b/indra/newview/app_settings/shaders/class2/environment/terrainV.glsl
index 119d55a2cd..2234f0bd89 100644
--- a/indra/newview/app_settings/shaders/class2/environment/terrainV.glsl
+++ b/indra/newview/app_settings/shaders/class2/environment/terrainV.glsl
@@ -1,8 +1,8 @@
/**
* @file terrainV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
void calcAtmospherics(vec3 inPositionEye);
diff --git a/indra/newview/app_settings/shaders/class2/environment/terrainWaterF.glsl b/indra/newview/app_settings/shaders/class2/environment/terrainWaterF.glsl
index 3a98970f8c..1650912fc8 100644
--- a/indra/newview/app_settings/shaders/class2/environment/terrainWaterF.glsl
+++ b/indra/newview/app_settings/shaders/class2/environment/terrainWaterF.glsl
@@ -1,8 +1,8 @@
/**
* @file terrainWaterF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
uniform sampler2D detail_0;
diff --git a/indra/newview/app_settings/shaders/class2/environment/underWaterF.glsl b/indra/newview/app_settings/shaders/class2/environment/underWaterF.glsl
index 1998fea227..9e936a3790 100644
--- a/indra/newview/app_settings/shaders/class2/environment/underWaterF.glsl
+++ b/indra/newview/app_settings/shaders/class2/environment/underWaterF.glsl
@@ -1,8 +1,8 @@
/**
* @file underWaterF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
uniform sampler2D diffuseMap;
diff --git a/indra/newview/app_settings/shaders/class2/environment/waterF.glsl b/indra/newview/app_settings/shaders/class2/environment/waterF.glsl
index 6ec3dc4788..e477107c0b 100644
--- a/indra/newview/app_settings/shaders/class2/environment/waterF.glsl
+++ b/indra/newview/app_settings/shaders/class2/environment/waterF.glsl
@@ -1,8 +1,8 @@
/**
* @file waterF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
vec3 scaleSoftClip(vec3 inColor);
diff --git a/indra/newview/app_settings/shaders/class2/environment/waterFogF.glsl b/indra/newview/app_settings/shaders/class2/environment/waterFogF.glsl
index 522c990cf8..7bcdcf5d5b 100644
--- a/indra/newview/app_settings/shaders/class2/environment/waterFogF.glsl
+++ b/indra/newview/app_settings/shaders/class2/environment/waterFogF.glsl
@@ -1,8 +1,8 @@
/**
* @file waterFogF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
uniform vec4 lightnorm;
diff --git a/indra/newview/app_settings/shaders/class2/lighting/lightF.glsl b/indra/newview/app_settings/shaders/class2/lighting/lightF.glsl
index b372d66298..269d11a085 100644
--- a/indra/newview/app_settings/shaders/class2/lighting/lightF.glsl
+++ b/indra/newview/app_settings/shaders/class2/lighting/lightF.glsl
@@ -1,8 +1,8 @@
/**
* @file lightF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
uniform sampler2D diffuseMap;
diff --git a/indra/newview/app_settings/shaders/class2/lighting/lightFullbrightF.glsl b/indra/newview/app_settings/shaders/class2/lighting/lightFullbrightF.glsl
index e6b6d85808..9ffe3c6f4a 100644
--- a/indra/newview/app_settings/shaders/class2/lighting/lightFullbrightF.glsl
+++ b/indra/newview/app_settings/shaders/class2/lighting/lightFullbrightF.glsl
@@ -1,8 +1,8 @@
/**
* @file lightFullbrightF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
uniform sampler2D diffuseMap;
diff --git a/indra/newview/app_settings/shaders/class2/lighting/lightFullbrightShinyF.glsl b/indra/newview/app_settings/shaders/class2/lighting/lightFullbrightShinyF.glsl
index 8f408c0436..b7181dec3a 100644
--- a/indra/newview/app_settings/shaders/class2/lighting/lightFullbrightShinyF.glsl
+++ b/indra/newview/app_settings/shaders/class2/lighting/lightFullbrightShinyF.glsl
@@ -1,8 +1,8 @@
/**
* @file lightFullbrightShinyF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
uniform sampler2D diffuseMap;
diff --git a/indra/newview/app_settings/shaders/class2/lighting/lightFullbrightWaterF.glsl b/indra/newview/app_settings/shaders/class2/lighting/lightFullbrightWaterF.glsl
index 060ad9cb67..ee38790cc4 100644
--- a/indra/newview/app_settings/shaders/class2/lighting/lightFullbrightWaterF.glsl
+++ b/indra/newview/app_settings/shaders/class2/lighting/lightFullbrightWaterF.glsl
@@ -1,8 +1,8 @@
/**
* @file lightFullbrightWaterF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
uniform sampler2D diffuseMap;
diff --git a/indra/newview/app_settings/shaders/class2/lighting/lightShinyF.glsl b/indra/newview/app_settings/shaders/class2/lighting/lightShinyF.glsl
index b3927c77a6..b96b5d75bc 100644
--- a/indra/newview/app_settings/shaders/class2/lighting/lightShinyF.glsl
+++ b/indra/newview/app_settings/shaders/class2/lighting/lightShinyF.glsl
@@ -1,8 +1,8 @@
/**
* @file lightShinyF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
uniform sampler2D diffuseMap;
diff --git a/indra/newview/app_settings/shaders/class2/lighting/lightShinyWaterF.glsl b/indra/newview/app_settings/shaders/class2/lighting/lightShinyWaterF.glsl
index f090306be6..0f5b2d6fcf 100644
--- a/indra/newview/app_settings/shaders/class2/lighting/lightShinyWaterF.glsl
+++ b/indra/newview/app_settings/shaders/class2/lighting/lightShinyWaterF.glsl
@@ -1,8 +1,8 @@
/**
* @file lightShinyWaterF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
diff --git a/indra/newview/app_settings/shaders/class2/lighting/lightSpecularV.glsl b/indra/newview/app_settings/shaders/class2/lighting/lightSpecularV.glsl
index c3384ffc5d..6400b45d9e 100644
--- a/indra/newview/app_settings/shaders/class2/lighting/lightSpecularV.glsl
+++ b/indra/newview/app_settings/shaders/class2/lighting/lightSpecularV.glsl
@@ -1,8 +1,8 @@
/**
* @file lightSpecularV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
// All lights, no specular highlights
diff --git a/indra/newview/app_settings/shaders/class2/lighting/lightV.glsl b/indra/newview/app_settings/shaders/class2/lighting/lightV.glsl
index ff3bcb5cd2..89ef510d7c 100644
--- a/indra/newview/app_settings/shaders/class2/lighting/lightV.glsl
+++ b/indra/newview/app_settings/shaders/class2/lighting/lightV.glsl
@@ -1,8 +1,8 @@
/**
* @file lightV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
// All lights, no specular highlights
diff --git a/indra/newview/app_settings/shaders/class2/lighting/lightWaterF.glsl b/indra/newview/app_settings/shaders/class2/lighting/lightWaterF.glsl
index 086954cd47..016258bd18 100644
--- a/indra/newview/app_settings/shaders/class2/lighting/lightWaterF.glsl
+++ b/indra/newview/app_settings/shaders/class2/lighting/lightWaterF.glsl
@@ -1,8 +1,8 @@
/**
* @file lightWaterF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
uniform sampler2D diffuseMap;
diff --git a/indra/newview/app_settings/shaders/class2/lighting/sumLightsSpecularV.glsl b/indra/newview/app_settings/shaders/class2/lighting/sumLightsSpecularV.glsl
index edd1a8a946..8cfeeb1cf9 100644
--- a/indra/newview/app_settings/shaders/class2/lighting/sumLightsSpecularV.glsl
+++ b/indra/newview/app_settings/shaders/class2/lighting/sumLightsSpecularV.glsl
@@ -1,8 +1,8 @@
/**
* @file sumLightsV.glsl
*
- * Copyright (c) 2005-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
+ * $/LicenseInfo$
*/
float calcDirectionalLightSpecular(inout vec4 specular, vec3 view, vec3 n, vec3 l, vec3 lightCol, float da);
diff --git a/indra/newview/app_settings/shaders/class2/lighting/sumLightsV.glsl b/indra/newview/app_settings/shaders/class2/lighting/sumLightsV.glsl
index f4c59734a4..a512b9d6fb 100644
--- a/indra/newview/app_settings/shaders/class2/lighting/sumLightsV.glsl
+++ b/indra/newview/app_settings/shaders/class2/lighting/sumLightsV.glsl
@@ -1,12 +1,12 @@
/**
* @file sumLightsV.glsl
*
- * Copyright (c) 2005-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
+ * $/LicenseInfo$
*/
float calcDirectionalLight(vec3 n, vec3 l);
-float calcPointLight(vec3 v, vec3 n, vec4 lp, float la);
+float calcPointLightOrSpotLight(vec3 v, vec3 n, vec4 lp, vec3 ln, float la, float is_pointlight);
vec3 atmosAmbient(vec3 light);
vec3 atmosAffectDirectionalLight(float lightIntensity);
@@ -18,9 +18,10 @@ vec4 sumLights(vec3 pos, vec3 norm, vec4 color, vec4 baseLight)
// Collect normal lights (need to be divided by two, as we later multiply by 2)
col.rgb += gl_LightSource[1].diffuse.rgb * calcDirectionalLight(norm, gl_LightSource[1].position.xyz);
- col.rgb += gl_LightSource[2].diffuse.rgb * calcPointLight(pos, norm, gl_LightSource[2].position, gl_LightSource[2].linearAttenuation);
- col.rgb += gl_LightSource[3].diffuse.rgb * calcPointLight(pos, norm, gl_LightSource[3].position, gl_LightSource[3].linearAttenuation);
- //col.rgb += gl_LightSource[4].diffuse.rgb * calcPointLight(pos, norm, gl_LightSource[4].position, gl_LightSource[4].linearAttenuation);
+
+ col.rgb += gl_LightSource[2].diffuse.rgb * calcPointLightOrSpotLight(pos, norm, gl_LightSource[2].position, gl_LightSource[2].spotDirection.xyz, gl_LightSource[2].linearAttenuation, gl_LightSource[2].specular.a);
+ col.rgb += gl_LightSource[3].diffuse.rgb * calcPointLightOrSpotLight(pos, norm, gl_LightSource[3].position, gl_LightSource[3].spotDirection.xyz, gl_LightSource[3].linearAttenuation, gl_LightSource[3].specular.a);
+ //col.rgb += gl_LightSource[4].diffuse.rgb * calcPointLightOrSpotLight(pos, norm, gl_LightSource[4].position, gl_LightSource[4].spotDirection.xyz, gl_LightSource[4].linearAttenuation, gl_LightSource[4].specular.a);
col.rgb = scaleDownLight(col.rgb);
// Add windlight lights
diff --git a/indra/newview/app_settings/shaders/class2/objects/shinyV.glsl b/indra/newview/app_settings/shaders/class2/objects/shinyV.glsl
index 0d52f32a2e..c428bbb28e 100644
--- a/indra/newview/app_settings/shaders/class2/objects/shinyV.glsl
+++ b/indra/newview/app_settings/shaders/class2/objects/shinyV.glsl
@@ -1,8 +1,8 @@
/**
* @file shinyV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
vec4 calcLighting(vec3 pos, vec3 norm, vec4 color, vec4 baseCol);
diff --git a/indra/newview/app_settings/shaders/class2/windlight/atmosphericsF.glsl b/indra/newview/app_settings/shaders/class2/windlight/atmosphericsF.glsl
index 92c0664a5e..8baff24dbd 100644
--- a/indra/newview/app_settings/shaders/class2/windlight/atmosphericsF.glsl
+++ b/indra/newview/app_settings/shaders/class2/windlight/atmosphericsF.glsl
@@ -1,8 +1,8 @@
/**
* @file atmosphericsF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
//////////////////////////////////////////////////////////
diff --git a/indra/newview/app_settings/shaders/class2/windlight/atmosphericsHelpersV.glsl b/indra/newview/app_settings/shaders/class2/windlight/atmosphericsHelpersV.glsl
index 32d5ed5db2..6883edc1f1 100644
--- a/indra/newview/app_settings/shaders/class2/windlight/atmosphericsHelpersV.glsl
+++ b/indra/newview/app_settings/shaders/class2/windlight/atmosphericsHelpersV.glsl
@@ -1,8 +1,8 @@
/**
* @file atmosphericsHelpersV.glsl
*
- * Copyright (c) 2005-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
+ * $/LicenseInfo$
*/
// Output variables
diff --git a/indra/newview/app_settings/shaders/class2/windlight/atmosphericsV.glsl b/indra/newview/app_settings/shaders/class2/windlight/atmosphericsV.glsl
index e40372e819..f5c513bbdd 100644
--- a/indra/newview/app_settings/shaders/class2/windlight/atmosphericsV.glsl
+++ b/indra/newview/app_settings/shaders/class2/windlight/atmosphericsV.glsl
@@ -1,8 +1,8 @@
/**
* @file atmosphericsV.glsl
*
- * Copyright (c) 2005-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
+ * $/LicenseInfo$
*/
// varying param funcs
diff --git a/indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsF.glsl b/indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsF.glsl
index 0dbf2d35e7..d0b60e918e 100644
--- a/indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsF.glsl
+++ b/indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsF.glsl
@@ -1,8 +1,8 @@
/**
* @file atmosphericVars.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
varying vec3 vary_PositionEye;
diff --git a/indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsV.glsl b/indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsV.glsl
index b528837a5f..4b4baf50d0 100644
--- a/indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsV.glsl
+++ b/indra/newview/app_settings/shaders/class2/windlight/atmosphericsVarsV.glsl
@@ -1,8 +1,8 @@
/**
* @file atmosphericVars.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
varying vec3 vary_PositionEye;
diff --git a/indra/newview/app_settings/shaders/class2/windlight/cloudsF.glsl b/indra/newview/app_settings/shaders/class2/windlight/cloudsF.glsl
index b7d7e5a2c2..2a559440fc 100644
--- a/indra/newview/app_settings/shaders/class2/windlight/cloudsF.glsl
+++ b/indra/newview/app_settings/shaders/class2/windlight/cloudsF.glsl
@@ -1,8 +1,8 @@
/**
* @file WLCloudsF.glsl
*
- * Copyright (c) 2005-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
+ * $/LicenseInfo$
*/
/////////////////////////////////////////////////////////////////////////
diff --git a/indra/newview/app_settings/shaders/class2/windlight/cloudsV.glsl b/indra/newview/app_settings/shaders/class2/windlight/cloudsV.glsl
index e149d5861f..865c0e9da8 100644
--- a/indra/newview/app_settings/shaders/class2/windlight/cloudsV.glsl
+++ b/indra/newview/app_settings/shaders/class2/windlight/cloudsV.glsl
@@ -1,8 +1,8 @@
/**
* @file WLCloudsV.glsl
*
- * Copyright (c) 2005-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
+ * $/LicenseInfo$
*/
//////////////////////////////////////////////////////////////////////////
diff --git a/indra/newview/app_settings/shaders/class2/windlight/gammaF.glsl b/indra/newview/app_settings/shaders/class2/windlight/gammaF.glsl
index 5410889ed8..ce4bd2358f 100644
--- a/indra/newview/app_settings/shaders/class2/windlight/gammaF.glsl
+++ b/indra/newview/app_settings/shaders/class2/windlight/gammaF.glsl
@@ -1,8 +1,8 @@
/**
* @file gammaF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
uniform vec4 gamma;
diff --git a/indra/newview/app_settings/shaders/class2/windlight/skyF.glsl b/indra/newview/app_settings/shaders/class2/windlight/skyF.glsl
index bc6d6d33ff..b69a88a45f 100644
--- a/indra/newview/app_settings/shaders/class2/windlight/skyF.glsl
+++ b/indra/newview/app_settings/shaders/class2/windlight/skyF.glsl
@@ -1,8 +1,8 @@
/**
* @file WLSkyF.glsl
*
- * Copyright (c) 2005-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
+ * $/LicenseInfo$
*/
/////////////////////////////////////////////////////////////////////////
diff --git a/indra/newview/app_settings/shaders/class2/windlight/skyV.glsl b/indra/newview/app_settings/shaders/class2/windlight/skyV.glsl
index e396aea6c9..397db01378 100644
--- a/indra/newview/app_settings/shaders/class2/windlight/skyV.glsl
+++ b/indra/newview/app_settings/shaders/class2/windlight/skyV.glsl
@@ -1,8 +1,8 @@
/**
* @file WLSkyV.glsl
*
- * Copyright (c) 2005-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
+ * $/LicenseInfo$
*/
// SKY ////////////////////////////////////////////////////////////////////////
diff --git a/indra/newview/app_settings/shaders/class2/windlight/transportF.glsl b/indra/newview/app_settings/shaders/class2/windlight/transportF.glsl
index b7678cac66..b30313bdc8 100644
--- a/indra/newview/app_settings/shaders/class2/windlight/transportF.glsl
+++ b/indra/newview/app_settings/shaders/class2/windlight/transportF.glsl
@@ -1,8 +1,8 @@
/**
* @file transportF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
//////////////////////////////////////////////////////////
diff --git a/indra/newview/app_settings/shaders/class3/avatar/avatarV.glsl b/indra/newview/app_settings/shaders/class3/avatar/avatarV.glsl
index 04c10536e0..c85ba0c734 100644
--- a/indra/newview/app_settings/shaders/class3/avatar/avatarV.glsl
+++ b/indra/newview/app_settings/shaders/class3/avatar/avatarV.glsl
@@ -1,8 +1,8 @@
/**
* @file avatarV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
vec4 calcLighting(vec3 pos, vec3 norm, vec4 color, vec4 baseCol);
diff --git a/indra/newview/app_settings/shaders/class3/deferred/giDownsampleF.glsl b/indra/newview/app_settings/shaders/class3/deferred/giDownsampleF.glsl
index 7325825d6d..d26b244fa3 100644
--- a/indra/newview/app_settings/shaders/class3/deferred/giDownsampleF.glsl
+++ b/indra/newview/app_settings/shaders/class3/deferred/giDownsampleF.glsl
@@ -1,8 +1,8 @@
/**
* @file giDownsampleF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
uniform sampler2DRect giLightMap;
@@ -44,7 +44,8 @@ float getDepth(vec2 pos_screen)
void main()
{
- vec3 norm = texture2DRect(normalMap, vary_fragcoord.xy).xyz*2.0-1.0;
+ vec3 norm = texture2DRect(normalMap, vary_fragcoord.xy).xyz;
+ norm = vec3((norm.xy-0.5)*2.0,norm.z); // unpack norm
float depth = getDepth(vary_fragcoord.xy);
vec3 ccol = texture2DRect(giLightMap, vary_fragcoord.xy).rgb;
@@ -56,9 +57,10 @@ void main()
for (int i = 0; i < kern_length; i++)
{
vec2 tc = vary_fragcoord.xy + kern[i].y*dlt;
- vec3 sampNorm = texture2DRect(normalMap, tc.xy).xyz*2.0-1.0;
-
- float d = dot(norm.xyz, sampNorm);
+ vec3 sampNorm = texture2DRect(normalMap, tc.xy).xyz;
+ sampNorm = vec3((sampNorm.xy-0.5)*2.0,sampNorm.z); // unpack norm
+
+ float d = dot(norm.xyz, sampNorm);
if (d > 0.5)
{
diff --git a/indra/newview/app_settings/shaders/class3/deferred/giDownsampleV.glsl b/indra/newview/app_settings/shaders/class3/deferred/giDownsampleV.glsl
index 6adcda82a3..e5f6217644 100644
--- a/indra/newview/app_settings/shaders/class3/deferred/giDownsampleV.glsl
+++ b/indra/newview/app_settings/shaders/class3/deferred/giDownsampleV.glsl
@@ -1,8 +1,8 @@
/**
* @file postgiV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
varying vec2 vary_fragcoord;
diff --git a/indra/newview/app_settings/shaders/class3/deferred/giF.glsl b/indra/newview/app_settings/shaders/class3/deferred/giF.glsl
index 939710cb56..735150a78c 100644
--- a/indra/newview/app_settings/shaders/class3/deferred/giF.glsl
+++ b/indra/newview/app_settings/shaders/class3/deferred/giF.glsl
@@ -1,8 +1,8 @@
/**
* @file giF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
#extension GL_ARB_texture_rectangle : enable
@@ -178,7 +178,8 @@ void main()
float rad = gi_range*0.5;
- vec3 norm = texture2DRect(normalMap, pos_screen).xyz*2.0-1.0;
+ vec3 norm = texture2DRect(normalMap, pos_screen).xyz;
+ norm = vec3((norm.xy-0.5)*2.0,norm.z); // unpack norm
float dist = max(length(pos.xyz)-rad, 0.0);
float da = clamp(1.0-dist/rad, 0.0, 1.0);
diff --git a/indra/newview/app_settings/shaders/class3/deferred/giFinalF.glsl b/indra/newview/app_settings/shaders/class3/deferred/giFinalF.glsl
index e0eeebf8b6..e0f4a3e4f5 100644
--- a/indra/newview/app_settings/shaders/class3/deferred/giFinalF.glsl
+++ b/indra/newview/app_settings/shaders/class3/deferred/giFinalF.glsl
@@ -1,8 +1,8 @@
/**
* @file giFinalF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
#extension GL_ARB_texture_rectangle : enable
diff --git a/indra/newview/app_settings/shaders/class3/deferred/giFinalV.glsl b/indra/newview/app_settings/shaders/class3/deferred/giFinalV.glsl
index 41a29c31bd..fbf2c17370 100644
--- a/indra/newview/app_settings/shaders/class3/deferred/giFinalV.glsl
+++ b/indra/newview/app_settings/shaders/class3/deferred/giFinalV.glsl
@@ -1,8 +1,8 @@
/**
* @file giFinalV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
varying vec2 vary_fragcoord;
diff --git a/indra/newview/app_settings/shaders/class3/deferred/giV.glsl b/indra/newview/app_settings/shaders/class3/deferred/giV.glsl
index 71dcea9628..543527612e 100644
--- a/indra/newview/app_settings/shaders/class3/deferred/giV.glsl
+++ b/indra/newview/app_settings/shaders/class3/deferred/giV.glsl
@@ -1,8 +1,8 @@
/**
* @file giV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
varying vec2 vary_fragcoord;
diff --git a/indra/newview/app_settings/shaders/class3/deferred/luminanceF.glsl b/indra/newview/app_settings/shaders/class3/deferred/luminanceF.glsl
index 406a7e07cf..d9483bc6e4 100644
--- a/indra/newview/app_settings/shaders/class3/deferred/luminanceF.glsl
+++ b/indra/newview/app_settings/shaders/class3/deferred/luminanceF.glsl
@@ -1,8 +1,8 @@
/**
* @file luminanceF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
#extension GL_ARB_texture_rectangle : enable
diff --git a/indra/newview/app_settings/shaders/class3/deferred/luminanceV.glsl b/indra/newview/app_settings/shaders/class3/deferred/luminanceV.glsl
index db8775f024..6368def830 100644
--- a/indra/newview/app_settings/shaders/class3/deferred/luminanceV.glsl
+++ b/indra/newview/app_settings/shaders/class3/deferred/luminanceV.glsl
@@ -1,8 +1,8 @@
/**
* @file giV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
varying vec2 vary_fragcoord;
diff --git a/indra/newview/app_settings/shaders/class3/deferred/postDeferredF.glsl b/indra/newview/app_settings/shaders/class3/deferred/postDeferredF.glsl
index 5e69bf36d9..51ab579e3c 100644
--- a/indra/newview/app_settings/shaders/class3/deferred/postDeferredF.glsl
+++ b/indra/newview/app_settings/shaders/class3/deferred/postDeferredF.glsl
@@ -1,8 +1,8 @@
/**
* @file postDeferredF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
#extension GL_ARB_texture_rectangle : enable
diff --git a/indra/newview/app_settings/shaders/class3/deferred/postDeferredV.glsl b/indra/newview/app_settings/shaders/class3/deferred/postDeferredV.glsl
index 9819232fd5..0ec81dcb02 100644
--- a/indra/newview/app_settings/shaders/class3/deferred/postDeferredV.glsl
+++ b/indra/newview/app_settings/shaders/class3/deferred/postDeferredV.glsl
@@ -1,8 +1,8 @@
/**
* @file postDeferredV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
varying vec2 vary_fragcoord;
diff --git a/indra/newview/app_settings/shaders/class3/deferred/postgiF.glsl b/indra/newview/app_settings/shaders/class3/deferred/postgiF.glsl
index 901b60af59..24fa07f251 100644
--- a/indra/newview/app_settings/shaders/class3/deferred/postgiF.glsl
+++ b/indra/newview/app_settings/shaders/class3/deferred/postgiF.glsl
@@ -1,8 +1,8 @@
/**
* @file postgiF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
#extension GL_ARB_texture_rectangle : enable
diff --git a/indra/newview/app_settings/shaders/class3/deferred/postgiV.glsl b/indra/newview/app_settings/shaders/class3/deferred/postgiV.glsl
index 6adcda82a3..e5f6217644 100644
--- a/indra/newview/app_settings/shaders/class3/deferred/postgiV.glsl
+++ b/indra/newview/app_settings/shaders/class3/deferred/postgiV.glsl
@@ -1,8 +1,8 @@
/**
* @file postgiV.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
varying vec2 vary_fragcoord;
diff --git a/indra/newview/app_settings/shaders/class3/deferred/softenLightF.glsl b/indra/newview/app_settings/shaders/class3/deferred/softenLightF.glsl
index 96a083b522..a2db247331 100644
--- a/indra/newview/app_settings/shaders/class3/deferred/softenLightF.glsl
+++ b/indra/newview/app_settings/shaders/class3/deferred/softenLightF.glsl
@@ -1,8 +1,8 @@
/**
* @file softenLightF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
#extension GL_ARB_texture_rectangle : enable
@@ -56,9 +56,8 @@ vec3 vary_AdditiveColor;
vec3 vary_AtmosAttenuation;
uniform float gi_ambiance;
-vec4 getPosition(vec2 pos_screen)
-{ //get position in screen space (world units) given window coordinate and depth map
- float depth = texture2DRect(depthMap, pos_screen.xy).a;
+vec4 getPosition_d(vec2 pos_screen, float depth)
+{
vec2 sc = pos_screen.xy*2.0;
sc /= screen_res;
sc -= vec2(1.0,1.0);
@@ -69,6 +68,12 @@ vec4 getPosition(vec2 pos_screen)
return pos;
}
+vec4 getPosition(vec2 pos_screen)
+{ //get position in screen space (world units) given window coordinate and depth map
+ float depth = texture2DRect(depthMap, pos_screen.xy).a;
+ return getPosition_d(pos_screen, depth);
+}
+
vec3 getPositionEye()
{
return vary_PositionEye;
@@ -252,8 +257,10 @@ vec3 scaleSoftClip(vec3 light)
void main()
{
vec2 tc = vary_fragcoord.xy;
- vec3 pos = getPosition(tc).xyz;
- vec3 norm = texture2DRect(normalMap, tc).xyz*2.0-1.0;
+ float depth = texture2DRect(depthMap, tc.xy).a;
+ vec3 pos = getPosition_d(tc, depth).xyz;
+ vec3 norm = texture2DRect(normalMap, tc).xyz;
+ norm = vec3((norm.xy-0.5)*2.0,norm.z); // unpack norm
//vec3 nz = texture2D(noiseMap, vary_fragcoord.xy/128.0).xyz;
float da = max(dot(norm.xyz, vary_light.xyz), 0.0);
@@ -274,11 +281,63 @@ void main()
col *= diffuse.rgb;
- if (spec.a > 0.0)
+ if (spec.a > 0.0) // specular reflection
{
- vec3 ref = normalize(reflect(pos.xyz, norm.xyz));
- float sa = dot(ref, vary_light.xyz);
- col.rgb += vary_SunlitColor*scol*spec.rgb*texture2D(lightFunc, vec2(sa, spec.a)).a;
+ // the old infinite-sky shiny reflection
+ //
+ vec3 refnormpersp = normalize(reflect(pos.xyz, norm.xyz));
+ float sa = dot(refnormpersp, vary_light.xyz);
+ vec3 dumbshiny = vary_SunlitColor*scol*texture2D(lightFunc, vec2(sa, spec.a)).a;
+
+ /*
+ // screen-space cheap fakey reflection map
+ //
+ vec3 refnorm = normalize(reflect(vec3(0,0,-1), norm.xyz));
+ depth -= 0.5; // unbias depth
+ // first figure out where we'll make our 2D guess from
+ vec2 ref2d = (0.25 * screen_res.y) * (refnorm.xy) * abs(refnorm.z) / depth;
+ // Offset the guess source a little according to a trivial
+ // checkerboard dither function and spec.a.
+ // This is meant to be similar to sampling a blurred version
+ // of the diffuse map. LOD would be better in that regard.
+ // The goal of the blur is to soften reflections in surfaces
+ // with low shinyness, and also to disguise our lameness.
+ float checkerboard = floor(mod(tc.x+tc.y, 2.0)); // 0.0, 1.0
+ float checkoffset = (3.0 + (7.0*(1.0-spec.a)))*(checkerboard-0.5);
+
+ ref2d += vec2(checkoffset, checkoffset);
+ ref2d += tc.xy; // use as offset from destination
+ // Get attributes from the 2D guess point.
+ // We average two samples of diffuse (not of anything else) per
+ // pixel to try to reduce aliasing some more.
+ vec3 refcol = 0.5 * (texture2DRect(diffuseRect, ref2d + vec2(0.0, -checkoffset)).rgb +
+ texture2DRect(diffuseRect, ref2d + vec2(-checkoffset, 0.0)).rgb);
+ float refdepth = texture2DRect(depthMap, ref2d).a;
+ vec3 refpos = getPosition_d(ref2d, refdepth).xyz;
+ float refshad = texture2DRect(lightMap, ref2d).r;
+ vec3 refn = texture2DRect(normalMap, ref2d).rgb;
+ refn = vec3((refn.xy-0.5)*2.0,refn.z); // unpack norm
+ refn = normalize(refn);
+ // figure out how appropriate our guess actually was
+ float refapprop = max(0.0, dot(-refnorm, normalize(pos - refpos)));
+ // darken reflections from points which face away from the reflected ray - our guess was a back-face
+ //refapprop *= step(dot(refnorm, refn), 0.0);
+ refapprop = min(refapprop, max(0.0, -dot(refnorm, refn))); // more conservative variant
+ // get appropriate light strength for guess-point.
+ // reflect light direction to increase the illusion that
+ // these are reflections.
+ vec3 reflight = reflect(lightnorm.xyz, norm.xyz);
+ float reflit = min(max(dot(refn, reflight.xyz), 0.0), refshad);
+ // apply sun color to guess-point, dampen according to inappropriateness of guess
+ float refmod = min(refapprop, reflit);
+ vec3 refprod = vary_SunlitColor * refcol.rgb * refmod;
+ vec3 ssshiny = (refprod * spec.a);
+ ssshiny *= 0.3; // dampen it even more
+ */
+ vec3 ssshiny = vec3(0,0,0);
+
+ // add the two types of shiny together
+ col += (ssshiny + dumbshiny) * spec.rgb;
}
col = atmosLighting(col);
diff --git a/indra/newview/app_settings/shaders/class3/deferred/softenLightV.glsl b/indra/newview/app_settings/shaders/class3/deferred/softenLightV.glsl
index ad8af4780d..9d187b46e2 100644
--- a/indra/newview/app_settings/shaders/class3/deferred/softenLightV.glsl
+++ b/indra/newview/app_settings/shaders/class3/deferred/softenLightV.glsl
@@ -1,8 +1,8 @@
/**
* @file softenLightF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
uniform vec2 screen_res;
diff --git a/indra/newview/app_settings/shaders/class3/deferred/treeF.glsl b/indra/newview/app_settings/shaders/class3/deferred/treeF.glsl
index 258acee08c..1c1725a95c 100644
--- a/indra/newview/app_settings/shaders/class3/deferred/treeF.glsl
+++ b/indra/newview/app_settings/shaders/class3/deferred/treeF.glsl
@@ -1,8 +1,8 @@
/**
* @file treeF.glsl
*
- * Copyright (c) 2007-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
+ * $/LicenseInfo$
*/
uniform sampler2D diffuseMap;
@@ -14,5 +14,6 @@ void main()
vec4 col = texture2D(diffuseMap, gl_TexCoord[0].xy);
gl_FragData[0] = vec4(gl_Color.rgb*col.rgb, col.a <= 0.5 ? 0.0 : 0.005);
gl_FragData[1] = vec4(0,0,0,0);
- gl_FragData[2] = vec4(normalize(vary_normal)*0.5+0.5, 0.0);
+ vec3 nvn = normalize(vary_normal);
+ gl_FragData[2] = vec4(nvn.xy * 0.5 + 0.5, nvn.z, 0.0);
}
diff --git a/indra/newview/app_settings/shaders/class3/lighting/sumLightsSpecularV.glsl b/indra/newview/app_settings/shaders/class3/lighting/sumLightsSpecularV.glsl
index bf5c78f3ea..2b44aedd5a 100644
--- a/indra/newview/app_settings/shaders/class3/lighting/sumLightsSpecularV.glsl
+++ b/indra/newview/app_settings/shaders/class3/lighting/sumLightsSpecularV.glsl
@@ -1,8 +1,8 @@
/**
* @file sumLightsV.glsl
*
- * Copyright (c) 2005-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
+ * $/LicenseInfo$
*/
float calcDirectionalLightSpecular(inout vec4 specular, vec3 view, vec3 n, vec3 l, vec3 lightCol, float da);
diff --git a/indra/newview/app_settings/shaders/class3/lighting/sumLightsV.glsl b/indra/newview/app_settings/shaders/class3/lighting/sumLightsV.glsl
index 1c5234c450..329b0c4305 100644
--- a/indra/newview/app_settings/shaders/class3/lighting/sumLightsV.glsl
+++ b/indra/newview/app_settings/shaders/class3/lighting/sumLightsV.glsl
@@ -1,12 +1,12 @@
/**
* @file sumLightsV.glsl
*
- * Copyright (c) 2005-$CurrentYear$, Linden Research, Inc.
- * $License$
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
+ * $/LicenseInfo$
*/
float calcDirectionalLight(vec3 n, vec3 l);
-float calcPointLight(vec3 v, vec3 n, vec4 lp, float la);
+float calcPointLightOrSpotLight(vec3 v, vec3 n, vec4 lp, vec3 ln, float la, float is_pointlight);
vec3 atmosAmbient(vec3 light);
vec3 atmosAffectDirectionalLight(float lightIntensity);
@@ -15,24 +15,21 @@ vec3 scaleUpLight(vec3 light);
vec4 sumLights(vec3 pos, vec3 norm, vec4 color, vec4 baseLight)
{
- vec4 col;
- col.a = color.a;
+ vec4 col = vec4(0.0, 0.0, 0.0, color.a);
- // Add windlight lights
- col.rgb = atmosAffectDirectionalLight(calcDirectionalLight(norm, gl_LightSource[0].position.xyz));
- col.rgb += atmosAmbient(baseLight.rgb);
- col.rgb = scaleUpLight(col.rgb);
-
// Collect normal lights (need to be divided by two, as we later multiply by 2)
- col.rgb += gl_LightSource[2].diffuse.rgb*calcPointLight(pos, norm, gl_LightSource[2].position, gl_LightSource[2].linearAttenuation);
- col.rgb += gl_LightSource[3].diffuse.rgb*calcPointLight(pos, norm, gl_LightSource[3].position, gl_LightSource[3].linearAttenuation);
- col.rgb += gl_LightSource[4].diffuse.rgb*calcPointLight(pos, norm, gl_LightSource[4].position, gl_LightSource[4].linearAttenuation);
- col.rgb += gl_LightSource[5].diffuse.rgb*calcPointLight(pos, norm, gl_LightSource[5].position, gl_LightSource[5].linearAttenuation);
- col.rgb += gl_LightSource[6].diffuse.rgb*calcPointLight(pos, norm, gl_LightSource[6].position, gl_LightSource[6].linearAttenuation);
- col.rgb += gl_LightSource[7].diffuse.rgb*calcPointLight(pos, norm, gl_LightSource[7].position, gl_LightSource[7].linearAttenuation);
+ col.rgb += gl_LightSource[2].diffuse.rgb*calcPointLightOrSpotLight(pos.xyz, norm, gl_LightSource[2].position, gl_LightSource[2].spotDirection.xyz, gl_LightSource[2].linearAttenuation, gl_LightSource[2].specular.a);
+ col.rgb += gl_LightSource[3].diffuse.rgb*calcPointLightOrSpotLight(pos.xyz, norm, gl_LightSource[3].position, gl_LightSource[3].spotDirection.xyz, gl_LightSource[3].linearAttenuation, gl_LightSource[3].specular.a);
+ col.rgb += gl_LightSource[4].diffuse.rgb*calcPointLightOrSpotLight(pos.xyz, norm, gl_LightSource[4].position, gl_LightSource[4].spotDirection.xyz, gl_LightSource[4].linearAttenuation, gl_LightSource[4].specular.a);
+ col.rgb += gl_LightSource[5].diffuse.rgb*calcPointLightOrSpotLight(pos.xyz, norm, gl_LightSource[5].position, gl_LightSource[5].spotDirection.xyz, gl_LightSource[5].linearAttenuation, gl_LightSource[5].specular.a);
+ col.rgb += gl_LightSource[6].diffuse.rgb*calcPointLightOrSpotLight(pos.xyz, norm, gl_LightSource[6].position, gl_LightSource[6].spotDirection.xyz, gl_LightSource[6].linearAttenuation, gl_LightSource[6].specular.a);
+ col.rgb += gl_LightSource[7].diffuse.rgb*calcPointLightOrSpotLight(pos.xyz, norm, gl_LightSource[7].position, gl_LightSource[7].spotDirection.xyz, gl_LightSource[7].linearAttenuation, gl_LightSource[7].specular.a);
col.rgb += gl_LightSource[1].diffuse.rgb*calcDirectionalLight(norm, gl_LightSource[1].position.xyz);
col.rgb = scaleDownLight(col.rgb);
-
+
+ // Add windlight lights
+ col.rgb += atmosAffectDirectionalLight(calcDirectionalLight(norm, gl_LightSource[0].position.xyz));
+ col.rgb += atmosAmbient(baseLight.rgb);
col.rgb = min(col.rgb*color.rgb, 1.0);
diff --git a/indra/newview/app_settings/static_data.db2 b/indra/newview/app_settings/static_data.db2
new file mode 100644
index 0000000000..f85aa81601
--- /dev/null
+++ 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
new file mode 100644
index 0000000000..a5440f96f2
--- /dev/null
+++ b/indra/newview/app_settings/static_index.db2
Binary files differ
diff --git a/indra/newview/app_settings/ultra_graphics.xml b/indra/newview/app_settings/ultra_graphics.xml
index f16ec6c30f..f741089ca2 100644
--- a/indra/newview/app_settings/ultra_graphics.xml
+++ b/indra/newview/app_settings/ultra_graphics.xml
@@ -12,14 +12,12 @@
<RenderFlexTimeFactor value="1"/>
<!--256... but they don't use this-->
<RenderGlowResolutionPow value="9"/>
- <!--Sun/Moon only-->
- <RenderLightingDetail value="1"/>
<!--Low number-->
<RenderMaxPartCount value="4096"/>
<!--bump okay-->
<RenderObjectBump value="TRUE"/>
<!--NO SHADERS-->
- <RenderReflectionDetail value="3"/>
+ <RenderReflectionDetail value="4"/>
<!--Simple-->
<RenderTerrainDetail value="1"/>
<!--Default for now-->
@@ -31,9 +29,14 @@
<!--Default for now-->
<RenderVolumeLODFactor value="2.0"/>
<!--NO SHADERS-->
- <RenderWaterReflections value="TRUE"/>
- <!--NO SHADERS-->
<VertexShaderEnable value="TRUE"/>
<!--NO SHADERS-->
<WindLightUseAtmosShaders value="TRUE"/>
+ <!--Deferred Shading-->
+ <RenderDeferred value="TRUE"/>
+ <!--SSAO Enabled-->
+ <RenderDeferredSSAO value="TRUE"/>
+ <!--Full Shadows-->
+ <RenderShadowDetail value="2"/>
+
</settings>
diff --git a/indra/newview/build_win32_appConfig.py b/indra/newview/build_win32_appConfig.py
index 8eadf0068f..9fdceee1be 100644
--- a/indra/newview/build_win32_appConfig.py
+++ b/indra/newview/build_win32_appConfig.py
@@ -1,31 +1,25 @@
# @file build_win32_appConfig.py
# @brief Create the windows app.config file to redirect crt linkage.
#
-# $LicenseInfo:firstyear=2009&license=viewergpl$
-#
-# Copyright (c) 2009, Linden Research, Inc.
-#
+# $LicenseInfo:firstyear=2009&license=viewerlgpl$
# Second Life Viewer Source Code
-# The source code in this file ("Source Code") is provided by Linden Lab
-# to you under the terms of the GNU General Public License, version 2.0
-# ("GPL"), unless you have obtained a separate licensing agreement
-# ("Other License"), formally executed by you and Linden Lab. Terms of
-# the GPL can be found in doc/GPL-license.txt in this distribution, or
-# online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+# 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.
#
-# There are special exceptions to the terms and conditions of the GPL as
-# it is applied to this Source Code. View the full text of the exception
-# in the file doc/FLOSS-exception.txt in this software distribution, or
-# online at
-# http://secondlifegrid.net/programs/open_source/licensing/flossexception
+# 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.
#
-# By copying, modifying or distributing this software, you acknowledge
-# that you have read and understood your obligations described above,
-# and agree to abide by those obligations.
+# 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
#
-# ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
-# WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
-# COMPLETENESS OR PERFORMANCE.
+# Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
# $/LicenseInfo$
import sys, os, re
diff --git a/indra/newview/character/avatar_lad.xml b/indra/newview/character/avatar_lad.xml
index 9564236ad2..a9b4ff02c5 100644
--- a/indra/newview/character/avatar_lad.xml
+++ b/indra/newview/character/avatar_lad.xml
@@ -11533,7 +11533,7 @@ render_pass="bump">
<param
id="1071"
- group="0"
+ group="2"
wearable="tattoo"
edit_group="colorpicker"
name="tattoo_red"
@@ -11566,7 +11566,7 @@ render_pass="bump">
<param
id="1072"
- group="0"
+ group="2"
wearable="tattoo"
edit_group="colorpicker"
name="tattoo_green"
@@ -11599,7 +11599,7 @@ render_pass="bump">
<param
id="1073"
- group="0"
+ group="2"
wearable="tattoo"
edit_group="colorpicker"
name="tattoo_blue"
diff --git a/indra/newview/featuretable.txt b/indra/newview/featuretable.txt
index e8591ca086..721fe81a3c 100644
--- a/indra/newview/featuretable.txt
+++ b/indra/newview/featuretable.txt
@@ -1,4 +1,4 @@
-version 21
+version 23
// NOTE: This is mostly identical to featuretable_mac.txt with a few differences
// Should be combined into one table
@@ -23,7 +23,7 @@ version 21
// NOTE: All settings are set to the MIN of applied values, including 'all'!
//
list all
-RenderAnisotropic 1 0
+RenderAnisotropic 1 1
RenderAvatarCloth 1 1
RenderAvatarLODFactor 1 1.0
RenderAvatarMaxVisible 1 12
@@ -36,18 +36,16 @@ RenderFogRatio 1 4.0
RenderGamma 1 0
RenderGlowResolutionPow 1 9
RenderGround 1 1
-RenderLightingDetail 1 1
RenderMaxPartCount 1 8192
RenderNightBrightness 1 1.0
RenderObjectBump 1 1
-RenderReflectionDetail 1 3
+RenderReflectionDetail 1 4
RenderTerrainDetail 1 1
RenderTerrainLODFactor 1 2.0
RenderTreeLODFactor 1 1.0
RenderUseImpostors 1 1
RenderVBOEnable 1 1
RenderVolumeLODFactor 1 2.0
-RenderWaterReflections 1 1
UseStartScreen 1 1
UseOcclusion 1 1
VertexShaderEnable 1 1
@@ -58,6 +56,11 @@ Disregard96DefaultDrawDistance 1 1
RenderTextureMemoryMultiple 1 1.0
RenderShaderLightingMaxLevel 1 3
SkyUseClassicClouds 1 1
+RenderDeferred 1 0
+RenderDeferredSSAO 1 0
+RenderShadowDetail 1 0
+WatchdogDisabled 1 1
+RenderUseStreamVBO 1 1
//
// Low Graphics Settings
@@ -71,7 +74,6 @@ RenderAvatarVP 1 0
RenderFarClip 1 64
RenderFlexTimeFactor 1 0
RenderGlowResolutionPow 1 8
-RenderLightingDetail 1 0
RenderMaxPartCount 1 0
RenderObjectBump 1 0
RenderReflectionDetail 1 0
@@ -79,12 +81,15 @@ RenderTerrainDetail 1 0
RenderTerrainLODFactor 1 1
RenderTreeLODFactor 1 0
RenderUseImpostors 1 1
-RenderVolumeLODFactor 1 0
-RenderWaterReflections 1 0
+RenderVolumeLODFactor 1 0.5
VertexShaderEnable 1 0
WindLightUseAtmosShaders 1 0
WLSkyDetail 1 48
SkyUseClassicClouds 1 0
+RenderDeferred 1 0
+RenderDeferredSSAO 1 0
+RenderShadowDetail 1 0
+
//
// Mid Graphics Settings
@@ -97,7 +102,6 @@ RenderAvatarVP 1 1
RenderFarClip 1 96
RenderFlexTimeFactor 1 1.0
RenderGlowResolutionPow 1 8
-RenderLightingDetail 1 1
RenderMaxPartCount 1 2048
RenderObjectBump 1 1
RenderReflectionDetail 1 0
@@ -106,10 +110,13 @@ RenderTerrainLODFactor 1 1.0
RenderTreeLODFactor 1 0.5
RenderUseImpostors 1 1
RenderVolumeLODFactor 1 1.125
-RenderWaterReflections 1 0
VertexShaderEnable 1 1
WindLightUseAtmosShaders 1 0
WLSkyDetail 1 48
+RenderDeferred 1 0
+RenderDeferredSSAO 1 0
+RenderShadowDetail 1 0
+
//
// High Graphics Settings (purty)
@@ -122,7 +129,6 @@ RenderAvatarVP 1 1
RenderFarClip 1 128
RenderFlexTimeFactor 1 1.0
RenderGlowResolutionPow 1 9
-RenderLightingDetail 1 1
RenderMaxPartCount 1 4096
RenderObjectBump 1 1
RenderReflectionDetail 1 2
@@ -131,10 +137,13 @@ RenderTerrainLODFactor 1 2.0
RenderTreeLODFactor 1 0.5
RenderUseImpostors 1 1
RenderVolumeLODFactor 1 1.125
-RenderWaterReflections 1 0
VertexShaderEnable 1 1
WindLightUseAtmosShaders 1 1
WLSkyDetail 1 48
+RenderDeferred 1 0
+RenderDeferredSSAO 1 0
+RenderShadowDetail 1 0
+
//
// Ultra graphics (REALLY PURTY!)
@@ -147,19 +156,20 @@ RenderAvatarVP 1 1
RenderFarClip 1 256
RenderFlexTimeFactor 1 1.0
RenderGlowResolutionPow 1 9
-RenderLightingDetail 1 1
RenderMaxPartCount 1 8192
RenderObjectBump 1 1
-RenderReflectionDetail 1 3
+RenderReflectionDetail 1 4
RenderTerrainDetail 1 1
RenderTerrainLODFactor 1 2.0
RenderTreeLODFactor 1 1.0
RenderUseImpostors 1 1
RenderVolumeLODFactor 1 2.0
-RenderWaterReflections 1 1
VertexShaderEnable 1 1
WindLightUseAtmosShaders 1 1
WLSkyDetail 1 128
+RenderDeferred 1 0
+RenderDeferredSSAO 1 0
+RenderShadowDetail 1 0
//
// Class Unknown Hardware (unknown)
@@ -197,9 +207,12 @@ RenderVBOEnable 1 1
list NoPixelShaders
RenderAvatarVP 0 0
RenderAvatarCloth 0 0
-RenderWaterReflections 0 0
+RenderReflectionDetail 0 0
VertexShaderEnable 0 0
WindLightUseAtmosShaders 0 0
+RenderDeferred 0 0
+RenderDeferredSSAO 0 0
+RenderShadowDetail 0 0
//
// No Vertex Shaders available
@@ -207,24 +220,30 @@ WindLightUseAtmosShaders 0 0
list NoVertexShaders
RenderAvatarVP 0 0
RenderAvatarCloth 0 0
-RenderWaterReflections 0 0
+RenderReflectionDetail 0 0
VertexShaderEnable 0 0
WindLightUseAtmosShaders 0 0
+RenderDeferred 0 0
+RenderDeferredSSAO 0 0
+RenderShadowDetail 0 0
+//
// "Default" setups for safe, low, medium, high
//
list safe
RenderAnisotropic 1 0
RenderAvatarCloth 0 0
RenderAvatarVP 0 0
-RenderLightingDetail 1 0
RenderObjectBump 0 0
RenderMaxPartCount 1 1024
RenderTerrainDetail 1 0
RenderUseImpostors 0 0
RenderVBOEnable 1 0
-RenderWaterReflections 0 0
+RenderReflectionDetail 0 0
WindLightUseAtmosShaders 0 0
+RenderDeferred 0 0
+RenderDeferredSSAO 0 0
+RenderShadowDetail 0 0
//
// CPU based feature masks
@@ -248,11 +267,9 @@ RenderVBOEnable 1 0
list Intel
RenderAnisotropic 1 0
-RenderLightingDetail 1 0
list GeForce2
RenderAnisotropic 1 0
-RenderLightingDetail 1 0
RenderMaxPartCount 1 2048
RenderTerrainDetail 1 0
RenderVBOEnable 1 1
@@ -429,6 +446,10 @@ list ATIOldDriver
RenderAvatarVP 0 0
RenderAvatarCloth 0 0
+// ATI cards generally perform better when not using VBOs for streaming data
+
+list ATI
+RenderUseStreamVBO 1 0
/// Tweaked NVIDIA
@@ -529,4 +550,3 @@ list NVIDIA_GeForce_Go_7800
RenderShaderLightingMaxLevel 1 2
list NVIDIA_GeForce_Go_7900
RenderShaderLightingMaxLevel 1 2
-
diff --git a/indra/newview/featuretable_linux.txt b/indra/newview/featuretable_linux.txt
index 779490c9f7..1bad7e5260 100644
--- a/indra/newview/featuretable_linux.txt
+++ b/indra/newview/featuretable_linux.txt
@@ -1,4 +1,4 @@
-version 21
+version 22
// NOTE: This is mostly identical to featuretable_mac.txt with a few differences
// Should be combined into one table
@@ -23,7 +23,7 @@ version 21
// NOTE: All settings are set to the MIN of applied values, including 'all'!
//
list all
-RenderAnisotropic 1 0
+RenderAnisotropic 1 1
RenderAvatarCloth 1 1
RenderAvatarLODFactor 1 1.0
RenderAvatarMaxVisible 1 12
@@ -36,18 +36,16 @@ RenderFogRatio 1 4.0
RenderGamma 1 0
RenderGlowResolutionPow 1 9
RenderGround 1 1
-RenderLightingDetail 1 1
RenderMaxPartCount 1 8192
RenderNightBrightness 1 1.0
RenderObjectBump 1 1
-RenderReflectionDetail 1 3
+RenderReflectionDetail 1 4
RenderTerrainDetail 1 1
RenderTerrainLODFactor 1 2.0
RenderTreeLODFactor 1 1.0
RenderUseImpostors 1 1
RenderVBOEnable 1 1
RenderVolumeLODFactor 1 2.0
-RenderWaterReflections 1 1
UseStartScreen 1 1
UseOcclusion 1 1
VertexShaderEnable 1 1
@@ -57,6 +55,11 @@ Disregard128DefaultDrawDistance 1 1
Disregard96DefaultDrawDistance 1 1
RenderTextureMemoryMultiple 1 1.0
SkyUseClassicClouds 1 1
+RenderShaderLightingMaxLevel 1 3
+RenderDeferred 1 0
+RenderDeferredSSAO 1 0
+RenderShadowDetail 1 0
+WatchdogDisabled 1 1
//
// Low Graphics Settings
@@ -70,7 +73,6 @@ RenderAvatarVP 1 0
RenderFarClip 1 64
RenderFlexTimeFactor 1 0
RenderGlowResolutionPow 1 8
-RenderLightingDetail 1 0
RenderMaxPartCount 1 0
RenderObjectBump 1 0
RenderReflectionDetail 1 0
@@ -78,12 +80,15 @@ RenderTerrainDetail 1 0
RenderTerrainLODFactor 1 1
RenderTreeLODFactor 1 0
RenderUseImpostors 1 1
-RenderVolumeLODFactor 1 0
-RenderWaterReflections 1 0
+RenderVolumeLODFactor 1 0.5
VertexShaderEnable 1 0
WindLightUseAtmosShaders 1 0
WLSkyDetail 1 48
SkyUseClassicClouds 1 0
+RenderDeferred 1 0
+RenderDeferredSSAO 1 0
+RenderShadowDetail 1 0
+
//
// Mid Graphics Settings
@@ -96,7 +101,6 @@ RenderAvatarVP 1 1
RenderFarClip 1 96
RenderFlexTimeFactor 1 1.0
RenderGlowResolutionPow 1 8
-RenderLightingDetail 1 1
RenderMaxPartCount 1 2048
RenderObjectBump 1 1
RenderReflectionDetail 1 0
@@ -105,10 +109,13 @@ RenderTerrainLODFactor 1 1.0
RenderTreeLODFactor 1 0.5
RenderUseImpostors 1 1
RenderVolumeLODFactor 1 1.125
-RenderWaterReflections 1 0
VertexShaderEnable 1 1
WindLightUseAtmosShaders 1 0
WLSkyDetail 1 48
+RenderDeferred 1 0
+RenderDeferredSSAO 1 0
+RenderShadowDetail 1 0
+
//
// High Graphics Settings (purty)
@@ -121,7 +128,6 @@ RenderAvatarVP 1 1
RenderFarClip 1 128
RenderFlexTimeFactor 1 1.0
RenderGlowResolutionPow 1 9
-RenderLightingDetail 1 1
RenderMaxPartCount 1 4096
RenderObjectBump 1 1
RenderReflectionDetail 1 2
@@ -130,10 +136,13 @@ RenderTerrainLODFactor 1 2.0
RenderTreeLODFactor 1 0.5
RenderUseImpostors 1 1
RenderVolumeLODFactor 1 1.125
-RenderWaterReflections 1 0
VertexShaderEnable 1 1
WindLightUseAtmosShaders 1 1
WLSkyDetail 1 48
+RenderDeferred 1 0
+RenderDeferredSSAO 1 0
+RenderShadowDetail 1 0
+
//
// Ultra graphics (REALLY PURTY!)
@@ -146,19 +155,21 @@ RenderAvatarVP 1 1
RenderFarClip 1 256
RenderFlexTimeFactor 1 1.0
RenderGlowResolutionPow 1 9
-RenderLightingDetail 1 1
RenderMaxPartCount 1 8192
RenderObjectBump 1 1
-RenderReflectionDetail 1 3
+RenderReflectionDetail 1 4
RenderTerrainDetail 1 1
RenderTerrainLODFactor 1 2.0
RenderTreeLODFactor 1 1.0
RenderUseImpostors 1 1
RenderVolumeLODFactor 1 2.0
-RenderWaterReflections 1 1
VertexShaderEnable 1 1
WindLightUseAtmosShaders 1 1
WLSkyDetail 1 128
+RenderDeferred 1 0
+RenderDeferredSSAO 1 0
+RenderShadowDetail 1 0
+
//
// Class Unknown Hardware (unknown)
@@ -196,9 +207,12 @@ RenderVBOEnable 1 1
list NoPixelShaders
RenderAvatarVP 0 0
RenderAvatarCloth 0 0
-RenderWaterReflections 0 0
+RenderReflectionDetail 0 0
VertexShaderEnable 0 0
WindLightUseAtmosShaders 0 0
+RenderDeferred 0 0
+RenderDeferredSSAO 0 0
+RenderShadowDetail 0 0
//
// No Vertex Shaders available
@@ -206,9 +220,13 @@ WindLightUseAtmosShaders 0 0
list NoVertexShaders
RenderAvatarVP 0 0
RenderAvatarCloth 0 0
-RenderWaterReflections 0 0
+RenderReflectionDetail 0 0
VertexShaderEnable 0 0
WindLightUseAtmosShaders 0 0
+RenderDeferred 0 0
+RenderDeferredSSAO 0 0
+RenderShadowDetail 0 0
+
// "Default" setups for safe, low, medium, high
//
@@ -216,14 +234,17 @@ list safe
RenderAnisotropic 1 0
RenderAvatarCloth 0 0
RenderAvatarVP 0 0
-RenderLightingDetail 1 0
RenderObjectBump 0 0
RenderMaxPartCount 1 1024
RenderTerrainDetail 1 0
RenderUseImpostors 0 0
RenderVBOEnable 1 0
-RenderWaterReflections 0 0
+RenderReflectionDetail 0 0
WindLightUseAtmosShaders 0 0
+RenderDeferred 0 0
+RenderDeferredSSAO 0 0
+RenderShadowDetail 0 0
+
//
// CPU based feature masks
@@ -247,13 +268,11 @@ RenderVBOEnable 1 0
list Intel
RenderAnisotropic 1 0
-RenderLightingDetail 1 0
// Avoid some Intel crashes on Linux
RenderCubeMap 0 0
list GeForce2
RenderAnisotropic 1 0
-RenderLightingDetail 1 0
RenderMaxPartCount 1 2048
RenderTerrainDetail 1 0
RenderVBOEnable 1 1
@@ -465,17 +484,47 @@ list NVIDIA_GeForce_Go_6
RenderVBOEnable 1 0
Disregard128DefaultDrawDistance 1 0
+list NVIDIA_GeForce_7000
+RenderShaderLightingMaxLevel 1 2
+list NVIDIA_GeForce_7100
+RenderShaderLightingMaxLevel 1 2
list NVIDIA_GeForce_7200
Disregard128DefaultDrawDistance 1 0
+RenderShaderLightingMaxLevel 1 2
list NVIDIA_GeForce_7300
Disregard128DefaultDrawDistance 1 0
+RenderShaderLightingMaxLevel 1 2
list NVIDIA_GeForce_7400
Disregard128DefaultDrawDistance 1 0
+RenderShaderLightingMaxLevel 1 2
+list NVIDIA_GeForce_7500
+RenderShaderLightingMaxLevel 1 2
+list NVIDIA_GeForce_7600
+RenderShaderLightingMaxLevel 1 2
+list NVIDIA_GeForce_7700
+RenderShaderLightingMaxLevel 1 2
+list NVIDIA_GeForce_7800
+RenderShaderLightingMaxLevel 1 2
+list NVIDIA_GeForce_7900
+RenderShaderLightingMaxLevel 1 2
list NVIDIA_GeForce_Go_7200
Disregard128DefaultDrawDistance 1 0
+RenderShaderLightingMaxLevel 1 2
list NVIDIA_GeForce_Go_7300
Disregard128DefaultDrawDistance 1 0
+RenderShaderLightingMaxLevel 1 2
+list NVIDIA_GeForce_Go_7300_LE
+RenderShaderLightingMaxLevel 1 2
list NVIDIA_GeForce_Go_7400
Disregard128DefaultDrawDistance 1 0
+RenderShaderLightingMaxLevel 1 2
+list NVIDIA_GeForce_Go_7600
+RenderShaderLightingMaxLevel 1 2
+list NVIDIA_GeForce_Go_7700
+RenderShaderLightingMaxLevel 1 2
+list NVIDIA_GeForce_Go_7800
+RenderShaderLightingMaxLevel 1 2
+list NVIDIA_GeForce_Go_7900
+RenderShaderLightingMaxLevel 1 2
diff --git a/indra/newview/featuretable_mac.txt b/indra/newview/featuretable_mac.txt
index 47033efc47..4fba47e3df 100644
--- a/indra/newview/featuretable_mac.txt
+++ b/indra/newview/featuretable_mac.txt
@@ -1,4 +1,4 @@
-version 21
+version 22
// NOTE: This is mostly identical to featuretable_mac.txt with a few differences
// Should be combined into one table
@@ -59,6 +59,7 @@ RenderTextureMemoryMultiple 1 0.5
Disregard128DefaultDrawDistance 1 1
Disregard96DefaultDrawDistance 1 1
SkyUseClassicClouds 1 1
+WatchdogDisabled 1 1
//
// Low Graphics Settings
@@ -80,7 +81,7 @@ RenderTerrainDetail 1 0
RenderTerrainLODFactor 1 1
RenderTreeLODFactor 1 0
RenderUseImpostors 1 1
-RenderVolumeLODFactor 1 0
+RenderVolumeLODFactor 1 0.5
RenderWaterReflections 1 0
VertexShaderEnable 1 0
WindLightUseAtmosShaders 1 0
@@ -370,6 +371,7 @@ list ATI_Radeon_X1500
Disregard128DefaultDrawDistance 1 0
list ATI_Radeon_X1600
Disregard128DefaultDrawDistance 1 0
+RenderUseFBO 0 0
list ATI_Radeon_X1700
Disregard128DefaultDrawDistance 1 0
list ATI_Mobility_Radeon_X1xxx
diff --git a/indra/newview/featuretable_solaris.txt b/indra/newview/featuretable_solaris.txt
index 6edd280686..0ae463332c 100644
--- a/indra/newview/featuretable_solaris.txt
+++ b/indra/newview/featuretable_solaris.txt
@@ -37,6 +37,8 @@ VertexShaderEnable 1 1
RenderTextureMemoryMultiple 1 1.0
UseOcclusion 1 1
RenderCubeMap 1 1
+WatchdogDisabled 1 1
+
//
// Class 0 Hardware (Unknown or just old)
diff --git a/indra/newview/featuretable_xp.txt b/indra/newview/featuretable_xp.txt
new file mode 100644
index 0000000000..9b901022c4
--- /dev/null
+++ b/indra/newview/featuretable_xp.txt
@@ -0,0 +1,554 @@
+version 23
+
+// NOTE: This is mostly identical to featuretable_mac.txt with a few differences
+// Should be combined into one table
+
+//
+// Generates lists of feature mask that can be applied on top of each other.
+//
+// // Begin comments
+// list <name>
+// Starts a feature list named <name>
+// <name> <available> <recommended>
+// <name> is the name of a feature
+// <available> is 0 or 1, whether the feature is available
+// <recommended> is an F32 which is the recommended value
+//
+// For now, the first list read sets up all of the default values
+//
+
+
+//
+// All contains everything at their default settings for high end machines
+// NOTE: All settings are set to the MIN of applied values, including 'all'!
+//
+list all
+RenderAnisotropic 1 1
+RenderAvatarCloth 1 1
+RenderAvatarLODFactor 1 1.0
+RenderAvatarMaxVisible 1 12
+RenderAvatarVP 1 1
+RenderCubeMap 1 1
+RenderDelayVBUpdate 1 0
+RenderFarClip 1 256
+RenderFlexTimeFactor 1 1.0
+RenderFogRatio 1 4.0
+RenderGamma 1 0
+RenderGlowResolutionPow 1 9
+RenderGround 1 1
+RenderMaxPartCount 1 8192
+RenderNightBrightness 1 1.0
+RenderObjectBump 1 1
+RenderReflectionDetail 1 4
+RenderTerrainDetail 1 1
+RenderTerrainLODFactor 1 2.0
+RenderTreeLODFactor 1 1.0
+RenderUseImpostors 1 1
+RenderVBOEnable 1 1
+RenderVolumeLODFactor 1 2.0
+UseStartScreen 1 1
+UseOcclusion 1 1
+VertexShaderEnable 1 1
+WindLightUseAtmosShaders 1 1
+WLSkyDetail 1 128
+Disregard128DefaultDrawDistance 1 1
+Disregard96DefaultDrawDistance 1 1
+RenderTextureMemoryMultiple 1 1.0
+RenderShaderLightingMaxLevel 1 3
+SkyUseClassicClouds 1 1
+RenderDeferred 1 0
+RenderDeferredSSAO 1 0
+RenderShadowDetail 1 0
+WatchdogDisabled 1 1
+RenderUseStreamVBO 1 1
+
+//
+// Low Graphics Settings
+//
+list Low
+RenderAnisotropic 1 0
+RenderAvatarCloth 1 0
+RenderAvatarLODFactor 1 0
+RenderAvatarMaxVisible 1 3
+RenderAvatarVP 1 0
+RenderFarClip 1 64
+RenderFlexTimeFactor 1 0
+RenderGlowResolutionPow 1 8
+RenderMaxPartCount 1 0
+RenderObjectBump 1 0
+RenderReflectionDetail 1 0
+RenderTerrainDetail 1 0
+RenderTerrainLODFactor 1 1
+RenderTreeLODFactor 1 0
+RenderUseImpostors 1 1
+RenderVolumeLODFactor 1 0.5
+VertexShaderEnable 1 0
+WindLightUseAtmosShaders 1 0
+WLSkyDetail 1 48
+SkyUseClassicClouds 1 0
+RenderDeferred 1 0
+RenderDeferredSSAO 1 0
+RenderShadowDetail 1 0
+
+
+//
+// Mid Graphics Settings
+//
+list Mid
+RenderAnisotropic 1 0
+RenderAvatarCloth 1 0
+RenderAvatarLODFactor 1 0.5
+RenderAvatarVP 1 1
+RenderFarClip 1 96
+RenderFlexTimeFactor 1 1.0
+RenderGlowResolutionPow 1 8
+RenderMaxPartCount 1 2048
+RenderObjectBump 1 1
+RenderReflectionDetail 1 0
+RenderTerrainDetail 1 1
+RenderTerrainLODFactor 1 1.0
+RenderTreeLODFactor 1 0.5
+RenderUseImpostors 1 1
+RenderVolumeLODFactor 1 1.125
+VertexShaderEnable 1 1
+WindLightUseAtmosShaders 1 0
+WLSkyDetail 1 48
+RenderDeferred 1 0
+RenderDeferredSSAO 1 0
+RenderShadowDetail 1 0
+
+
+//
+// High Graphics Settings (purty)
+//
+list High
+RenderAnisotropic 1 1
+RenderAvatarCloth 1 0
+RenderAvatarLODFactor 1 1.0
+RenderAvatarVP 1 1
+RenderFarClip 1 128
+RenderFlexTimeFactor 1 1.0
+RenderGlowResolutionPow 1 9
+RenderMaxPartCount 1 4096
+RenderObjectBump 1 1
+RenderReflectionDetail 1 2
+RenderTerrainDetail 1 1
+RenderTerrainLODFactor 1 2.0
+RenderTreeLODFactor 1 0.5
+RenderUseImpostors 1 1
+RenderVolumeLODFactor 1 1.125
+VertexShaderEnable 1 1
+WindLightUseAtmosShaders 1 1
+WLSkyDetail 1 48
+RenderDeferred 1 0
+RenderDeferredSSAO 1 0
+RenderShadowDetail 1 0
+
+
+//
+// Ultra graphics (REALLY PURTY!)
+//
+list Ultra
+RenderAnisotropic 1 1
+RenderAvatarCloth 1 1
+RenderAvatarLODFactor 1 1.0
+RenderAvatarVP 1 1
+RenderFarClip 1 256
+RenderFlexTimeFactor 1 1.0
+RenderGlowResolutionPow 1 9
+RenderMaxPartCount 1 8192
+RenderObjectBump 1 1
+RenderReflectionDetail 1 4
+RenderTerrainDetail 1 1
+RenderTerrainLODFactor 1 2.0
+RenderTreeLODFactor 1 1.0
+RenderUseImpostors 1 1
+RenderVolumeLODFactor 1 2.0
+VertexShaderEnable 1 1
+WindLightUseAtmosShaders 1 1
+WLSkyDetail 1 128
+RenderDeferred 1 0
+RenderDeferredSSAO 1 0
+RenderShadowDetail 1 0
+
+//
+// Class Unknown Hardware (unknown)
+//
+list Unknown
+RenderVBOEnable 1 0
+
+//
+// Class 0 Hardware (just old)
+//
+list Class0
+RenderVBOEnable 1 1
+
+//
+// Class 1 Hardware
+//
+list Class1
+RenderVBOEnable 1 1
+
+//
+// Class 2 Hardware (make it purty)
+//
+list Class2
+RenderVBOEnable 1 1
+
+//
+// Class 3 Hardware (make it purty)
+//
+list Class3
+RenderVBOEnable 1 1
+
+//
+// No Pixel Shaders available
+//
+list NoPixelShaders
+RenderAvatarVP 0 0
+RenderAvatarCloth 0 0
+RenderReflectionDetail 0 0
+VertexShaderEnable 0 0
+WindLightUseAtmosShaders 0 0
+RenderDeferred 0 0
+RenderDeferredSSAO 0 0
+RenderShadowDetail 0 0
+
+//
+// No Vertex Shaders available
+//
+list NoVertexShaders
+RenderAvatarVP 0 0
+RenderAvatarCloth 0 0
+RenderReflectionDetail 0 0
+VertexShaderEnable 0 0
+WindLightUseAtmosShaders 0 0
+RenderDeferred 0 0
+RenderDeferredSSAO 0 0
+RenderShadowDetail 0 0
+
+//
+// "Default" setups for safe, low, medium, high
+//
+list safe
+RenderAnisotropic 1 0
+RenderAvatarCloth 0 0
+RenderAvatarVP 0 0
+RenderObjectBump 0 0
+RenderMaxPartCount 1 1024
+RenderTerrainDetail 1 0
+RenderUseImpostors 0 0
+RenderVBOEnable 1 0
+RenderReflectionDetail 0 0
+WindLightUseAtmosShaders 0 0
+RenderDeferred 0 0
+RenderDeferredSSAO 0 0
+RenderShadowDetail 0 0
+
+//
+// CPU based feature masks
+//
+
+// 1Ghz or less (equiv)
+list CPUSlow
+RenderMaxPartCount 1 1024
+
+//
+// RAM based feature masks
+//
+list RAM256MB
+RenderObjectBump 0 0
+
+//
+// Graphics card based feature masks
+//
+list OpenGLPre15
+RenderVBOEnable 1 0
+
+list Intel
+RenderAnisotropic 1 0
+
+list GeForce2
+RenderAnisotropic 1 0
+RenderMaxPartCount 1 2048
+RenderTerrainDetail 1 0
+RenderVBOEnable 1 1
+
+list SiS
+UseOcclusion 0 0
+
+
+list Intel_830M
+RenderTerrainDetail 1 0
+RenderVBOEnable 1 0
+RenderUseImpostors 0 0
+
+list Intel_845G
+RenderTerrainDetail 1 0
+RenderVBOEnable 1 0
+RenderUseImpostors 0 0
+
+list Intel_855GM
+RenderTerrainDetail 1 0
+RenderVBOEnable 1 0
+RenderUseImpostors 0 0
+
+list Intel_865G
+RenderTerrainDetail 1 0
+RenderVBOEnable 1 0
+RenderUseImpostors 0 0
+
+list Intel_900
+RenderTerrainDetail 1 0
+RenderVBOEnable 1 0
+RenderUseImpostors 0 0
+
+list Intel_915GM
+RenderTerrainDetail 1 0
+RenderVBOEnable 1 0
+RenderUseImpostors 0 0
+
+list Intel_915G
+RenderTerrainDetail 1 0
+RenderVBOEnable 1 0
+RenderUseImpostors 0 0
+
+list Intel_945GM
+RenderTerrainDetail 1 0
+RenderVBOEnable 1 0
+
+list Intel_945G
+RenderTerrainDetail 1 0
+RenderVBOEnable 1 0
+
+list Intel_950
+RenderTerrainDetail 1 0
+RenderVBOEnable 1 0
+
+list Intel_965
+RenderTerrainDetail 1 0
+RenderVBOEnable 1 0
+RenderUseImpostors 1 0
+UseOcclusion 0 0
+
+list Intel_G33
+RenderTerrainDetail 1 0
+RenderVBOEnable 1 0
+
+list Intel_G45
+WindLightUseAtmosShaders 0 0
+
+list Intel_Bear_Lake
+RenderTerrainDetail 1 0
+RenderVBOEnable 1 0
+
+list Intel_Broadwater
+RenderTerrainDetail 1 0
+RenderVBOEnable 1 0
+
+list Intel_Brookdale
+RenderTerrainDetail 1 0
+RenderVBOEnable 1 0
+
+list Intel_Eaglelake
+WindLightUseAtmosShaders 0 0
+
+list Intel_Montara
+RenderTerrainDetail 1 0
+RenderVBOEnable 1 0
+
+list Intel_Springdale
+RenderTerrainDetail 1 0
+RenderVBOEnable 1 0
+
+
+list ATI_FireGL_5200
+RenderVBOEnable 1 0
+WindLightUseAtmosShaders 0 0
+
+
+list ATI_Mobility_Radeon_7xxx
+RenderVBOEnable 0 0
+
+list ATI_Radeon_7xxx
+RenderVBOEnable 0 0
+
+list ATI_All-in-Wonder_Radeon
+RenderVBOEnable 0 0
+
+list ATI_All-in-Wonder_7500
+RenderVBOEnable 0 0
+
+list ATI_Mobility_Radeon_9600
+Disregard96DefaultDrawDistance 1 0
+
+
+/// tweaked ATI to 96 Draw distance
+
+list ATI_Radeon_9000
+Disregard96DefaultDrawDistance 1 0
+list ATI_Radeon_9200
+Disregard96DefaultDrawDistance 1 0
+list ATI_Radeon_9500
+Disregard96DefaultDrawDistance 1 0
+list ATI_Radeon_9600
+Disregard96DefaultDrawDistance 1 0
+
+/// tweaked ATI to 128 draw distance
+
+list ATI_Radeon_X300
+Disregard128DefaultDrawDistance 1 0
+RenderVBOEnable 1 0
+list ATI_Radeon_X400
+Disregard128DefaultDrawDistance 1 0
+RenderVBOEnable 1 0
+list ATI_Radeon_X500
+Disregard128DefaultDrawDistance 1 0
+RenderVBOEnable 1 0
+list ATI_Radeon_X600
+Disregard128DefaultDrawDistance 1 0
+RenderVBOEnable 1 0
+list ATI_Radeon_X700
+Disregard128DefaultDrawDistance 1 0
+RenderVBOEnable 1 0
+list ATI_Radeon_X1300
+Disregard128DefaultDrawDistance 1 0
+RenderVBOEnable 1 0
+UseStartScreen 0 0
+list ATI_Radeon_X1400
+Disregard128DefaultDrawDistance 1 0
+RenderVBOEnable 1 0
+list ATI_Radeon_X1500
+Disregard128DefaultDrawDistance 1 0
+RenderVBOEnable 1 0
+UseStartScreen 0 0
+list ATI_Radeon_X1600
+Disregard128DefaultDrawDistance 1 0
+RenderVBOEnable 1 0
+list ATI_Radeon_X1700
+Disregard128DefaultDrawDistance 1 0
+RenderVBOEnable 1 0
+list ATI_Mobility_Radeon_X1xxx
+Disregard128DefaultDrawDistance 1 0
+RenderVBOEnable 1 0
+
+list ATI_Radeon_HD_2300
+Disregard128DefaultDrawDistance 1 0
+list ATI_Radeon_HD_2400
+Disregard128DefaultDrawDistance 1 0
+list ATI_ASUS_AH24xx
+Disregard128DefaultDrawDistance 1 0
+
+
+// Avatar hardware skinning causes invisible avatars
+// on various ATI chipsets on drivers before 8.2
+
+list ATIOldDriver
+RenderAvatarVP 0 0
+RenderAvatarCloth 0 0
+
+// ATI cards generally perform better when not using VBOs for streaming data
+
+list ATI
+RenderUseStreamVBO 1 0
+
+/// Tweaked NVIDIA
+
+list NVIDIA_GeForce_FX_5100
+Disregard96DefaultDrawDistance 1 0
+list NVIDIA_GeForce_FX_5200
+Disregard96DefaultDrawDistance 1 0
+list NVIDIA_GeForce_FX_5500
+Disregard96DefaultDrawDistance 1 0
+list NVIDIA_GeForce_FX_5600
+Disregard96DefaultDrawDistance 1 0
+
+list NVIDIA_GeForce_FX_Go5100
+Disregard96DefaultDrawDistance 1 0
+list NVIDIA_GeForce_FX_Go5200
+Disregard96DefaultDrawDistance 1 0
+list NVIDIA_GeForce_FX_Go5300
+Disregard96DefaultDrawDistance 1 0
+list NVIDIA_GeForce_FX_Go5500
+Disregard96DefaultDrawDistance 1 0
+list NVIDIA_GeForce_FX_Go5600
+Disregard96DefaultDrawDistance 1 0
+
+list NVIDIA_GeForce_6100
+Disregard128DefaultDrawDistance 1 0
+list NVIDIA_GeForce_6200
+Disregard128DefaultDrawDistance 1 0
+list NVIDIA_GeForce_6500
+Disregard128DefaultDrawDistance 1 0
+list NVIDIA_GeForce_6600
+Disregard128DefaultDrawDistance 1 0
+
+list NVIDIA_G73
+Disregard128DefaultDrawDistance 1 0
+
+list NVIDIA_GeForce_Go_6100
+RenderVBOEnable 1 0
+Disregard128DefaultDrawDistance 1 0
+list NVIDIA_GeForce_Go_6200
+RenderVBOEnable 1 0
+Disregard128DefaultDrawDistance 1 0
+list NVIDIA_GeForce_Go_6500
+RenderVBOEnable 1 0
+Disregard128DefaultDrawDistance 1 0
+list NVIDIA_GeForce_Go_6600
+RenderVBOEnable 1 0
+Disregard128DefaultDrawDistance 1 0
+list NVIDIA_GeForce_Go_6700
+RenderVBOEnable 1 0
+Disregard128DefaultDrawDistance 1 0
+list NVIDIA_GeForce_Go_6800
+RenderVBOEnable 1 0
+Disregard128DefaultDrawDistance 1 0
+list NVIDIA_GeForce_Go_6
+RenderVBOEnable 1 0
+Disregard128DefaultDrawDistance 1 0
+
+list NVIDIA_GeForce_7000
+RenderShaderLightingMaxLevel 1 2
+list NVIDIA_GeForce_7100
+RenderShaderLightingMaxLevel 1 2
+list NVIDIA_GeForce_7200
+Disregard128DefaultDrawDistance 1 0
+RenderShaderLightingMaxLevel 1 2
+list NVIDIA_GeForce_7300
+Disregard128DefaultDrawDistance 1 0
+RenderShaderLightingMaxLevel 1 2
+list NVIDIA_GeForce_7400
+Disregard128DefaultDrawDistance 1 0
+RenderShaderLightingMaxLevel 1 2
+list NVIDIA_GeForce_7500
+RenderShaderLightingMaxLevel 1 2
+list NVIDIA_GeForce_7600
+RenderShaderLightingMaxLevel 1 2
+list NVIDIA_GeForce_7700
+RenderShaderLightingMaxLevel 1 2
+list NVIDIA_GeForce_7800
+RenderShaderLightingMaxLevel 1 2
+list NVIDIA_GeForce_7900
+RenderShaderLightingMaxLevel 1 2
+
+list NVIDIA_GeForce_Go_7200
+Disregard128DefaultDrawDistance 1 0
+RenderShaderLightingMaxLevel 1 2
+list NVIDIA_GeForce_Go_7300
+Disregard128DefaultDrawDistance 1 0
+RenderShaderLightingMaxLevel 1 2
+list NVIDIA_GeForce_Go_7300_LE
+RenderShaderLightingMaxLevel 1 2
+list NVIDIA_GeForce_Go_7400
+Disregard128DefaultDrawDistance 1 0
+RenderShaderLightingMaxLevel 1 2
+list NVIDIA_GeForce_Go_7600
+RenderShaderLightingMaxLevel 1 2
+list NVIDIA_GeForce_Go_7700
+RenderShaderLightingMaxLevel 1 2
+list NVIDIA_GeForce_Go_7800
+RenderShaderLightingMaxLevel 1 2
+list NVIDIA_GeForce_Go_7900
+RenderShaderLightingMaxLevel 1 2
+
diff --git a/indra/newview/fmodwrapper.cpp b/indra/newview/fmodwrapper.cpp
index 1307f7412f..16f1d19a78 100644
--- a/indra/newview/fmodwrapper.cpp
+++ b/indra/newview/fmodwrapper.cpp
@@ -2,31 +2,25 @@
* @file fmodwrapper.cpp
* @brief dummy source file for building a shared library to wrap libfmod.a
*
- * $LicenseInfo:firstyear=2005&license=viewergpl$
- *
- * Copyright (c) 2005-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/generate_breakpad_symbols.py b/indra/newview/generate_breakpad_symbols.py
index 1f42004bb7..8f2dfd2348 100644
--- a/indra/newview/generate_breakpad_symbols.py
+++ b/indra/newview/generate_breakpad_symbols.py
@@ -4,31 +4,25 @@
# @brief Simple tool for generating google_breakpad symbol information
# for the crash reporter.
#
-# $LicenseInfo:firstyear=2010&license=viewergpl$
-#
-# Copyright (c) 2010-2010, Linden Research, Inc.
-#
+# $LicenseInfo:firstyear=2010&license=viewerlgpl$
# Second Life Viewer Source Code
-# The source code in this file ("Source Code") is provided by Linden Lab
-# to you under the terms of the GNU General Public License, version 2.0
-# ("GPL"), unless you have obtained a separate licensing agreement
-# ("Other License"), formally executed by you and Linden Lab. Terms of
-# the GPL can be found in doc/GPL-license.txt in this distribution, or
-# online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+# 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.
#
-# There are special exceptions to the terms and conditions of the GPL as
-# it is applied to this Source Code. View the full text of the exception
-# in the file doc/FLOSS-exception.txt in this software distribution, or
-# online at
-# http://secondlifegrid.net/programs/open_source/licensing/flossexception
+# 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.
#
-# By copying, modifying or distributing this software, you acknowledge
-# that you have read and understood your obligations described above,
-# and agree to abide by those obligations.
+# 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
#
-# ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
-# WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
-# COMPLETENESS OR PERFORMANCE.
+# Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
# $/LicenseInfo$
diff --git a/indra/newview/gpu_table.txt b/indra/newview/gpu_table.txt
index 62766f9229..da888bc64d 100644
--- a/indra/newview/gpu_table.txt
+++ b/indra/newview/gpu_table.txt
@@ -47,9 +47,11 @@ ATI ASUS EAH26xx .*ATI.*ASUS.*EAH26.* 3 1
ATI ASUS EAH34xx .*ATI.*ASUS.*EAH34.* 1 1
ATI ASUS EAH36xx .*ATI.*ASUS.*EAH36.* 3 1
ATI ASUS EAH38xx .*ATI.*ASUS.*EAH38.* 3 1
+ATI ASUS EAH43xx .*ATI.*ASUS.*EAH43.* 1 1
ATI ASUS EAH45xx .*ATI.*ASUS.*EAH45.* 1 1
ATI ASUS EAH48xx .*ATI.*ASUS.*EAH48.* 3 1
ATI ASUS EAH57xx .*ATI.*ASUS.*EAH57.* 3 1
+ATI ASUS EAH58xx .*ATI.*ASUS.*EAH58.* 3 1
ATI Radeon X1xxx .*ATI.*ASUS.*X1.* 3 1
ATI Radeon X7xx .*ATI.*ASUS.*X7.* 1 1
ATI Radeon X500 .*ATI.*Diamond X5.* 1 1
@@ -70,6 +72,7 @@ ATI M56 .*ATI.*M56.* 1 1
ATI M71 .*ATI.*M71.* 1 1
ATI M72 .*ATI.*M72.* 1 1
ATI M76 .*ATI.*M76.* 3 1
+ATI Mobility Radeon 4100 .*ATI.*Mobility *41.* 0 1
ATI Mobility Radeon 7xxx .*ATI.*Mobility *Radeon 7.* 0 1
ATI Mobility Radeon 8xxx .*ATI.*Mobility *Radeon 8.* 0 1
ATI Mobility Radeon 9800 .*ATI.*Mobility *98.* 0 1
@@ -81,6 +84,8 @@ ATI Mobility Radeon HD 2600 .*ATI.*Mobility *HD *26.* 3 1
ATI Mobility Radeon HD 3400 .*ATI.*Mobility *HD *34.* 1 1
ATI Mobility Radeon HD 3600 .*ATI.*Mobility *HD *36.* 3 1
ATI Mobility Radeon HD 3800 .*ATI.*Mobility *HD *38.* 3 1
+ATI Mobility Radeon HD 5400 .*ATI.*Mobility *HD *54.* 1 1
+ATI Mobility Radeon HD 5500 .*ATI.*Mobility *HD *55.* 1 1
ATI Mobility Radeon X1xxx .*ATI.*Mobility *X1.* 0 1
ATI Mobility Radeon X2xxx .*ATI.*Mobility *X2.* 0 1
ATI Mobility Radeon X3xx .*ATI.*Mobility *X3.* 1 1
@@ -102,13 +107,16 @@ ATI Radeon HD 4500 .*ATI.*Radeon HD *45.* 3 1
ATI Radeon HD 4600 .*ATI.*Radeon HD *46.* 3 1
ATI Radeon HD 4700 .*ATI.*Radeon HD *47.* 3 1
ATI Radeon HD 4800 .*ATI.*Radeon.*HD *48.* 3 1
+ATI Radeon HD 5400 .*ATI.*Radeon.*HD *54.* 3 1
+ATI Radeon HD 5500 .*ATI.*Radeon.*HD *55.* 3 1
ATI Radeon HD 5600 .*ATI.*Radeon.*HD *56.* 3 1
ATI Radeon HD 5700 .*ATI.*Radeon.*HD *57.* 3 1
ATI Radeon HD 5800 .*ATI.*Radeon.*HD *58.* 3 1
ATI Radeon HD 5900 .*ATI.*Radeon.*HD *59.* 3 1
ATI Radeon OpenGL .*ATI.*Radeon OpenGL.* 0 0
ATI Radeon 2100 .*ATI.*Radeon 21.* 0 1
-ATI Radeon 3100 .*ATI.*Radeon 31.* 1 1
+ATI Radeon 3000 .*ATI.*Radeon 30.* 0 1
+ATI Radeon 3100 .*ATI.*Radeon 31.* 0 1
ATI Radeon 7xxx .*ATI.*Radeon 7.* 0 1
ATI Radeon 8xxx .*ATI.*Radeon 8.* 0 1
ATI Radeon 9000 .*ATI.*Radeon 90.* 0 1
@@ -166,20 +174,39 @@ Intel Broadwater .*Intel.*Broadwater.* 0 0
Intel Brookdale .*Intel.*Brookdale.* 0 0
Intel Cantiga .*Intel.*Cantiga.* 0 0
Intel Eaglelake .*Intel.*Eaglelake.* 0 1
+Intel Graphics Media HD .*Intel(R) Graphics Media.*HD.* 0 1
+Intel HD Graphics .*Intel(R) HD Graphics.* 0 1
Intel Mobile 4 Series .*Intel.*Mobile.*4 Series.* 0 1
-Intel Media Graphics HD .*Intel.*Media.*Graphics.*HD.* 0 1
+Intel Media Graphics HD .*Intel Media Graphics HD.* 0 1
Intel Montara .*Intel.*Montara.* 0 0
Intel Pineview .*Intel.*Pineview.* 0 1
Intel Springdale .*Intel.*Springdale.* 0 0
Matrox .*Matrox.* 0 0
Mesa .*Mesa.* 0 0
-NVIDIA GT 120 .*NVIDIA.*GeForce.*GT.*12.* 2 1
-NVIDIA GT 130 .*NVIDIA.*GeForce.*GT.*13.* 3 1
-NVIDIA GTS 250 .*NVIDIA.*GeForce.*GTS.*25.* 3 1
-NVIDIA GTX 260 .*NVIDIA.*GeForce.*GTX.*26.* 3 1
-NVIDIA GTX 270 .*NVIDIA.*GeForce.*GTX.*27.* 3 1
-NVIDIA GTX 280 .*NVIDIA.*GeForce.*GTX.*28.* 3 1
-NVIDIA GTX 290 .*NVIDIA.*GeForce.*GTX.*29.* 3 1
+NVIDIA 310M .*NVIDIA.*GeForce 310M.* 0 1
+NVIDIA 310 .*NVIDIA.*GeForce 310.* 0 1
+NVIDIA 320M .*NVIDIA.*GeForce 320M.* 0 1
+NVIDIA G100M .*NVIDIA.*GeForce G *100M.* 0 1
+NVIDIA G102M .*NVIDIA.*GeForce G *102M.* 0 1
+NVIDIA G103M .*NVIDIA.*GeForce G *103M.* 0 1
+NVIDIA G105M .*NVIDIA.*GeForce G *105M.* 0 1
+NVIDIA G210M .*NVIDIA.*GeForce G210M.* 0 1
+NVIDIA GT 120 .*NVIDIA.*GeForce GT 12.* 1 1
+NVIDIA GT 130 .*NVIDIA.*GeForce GT 13.* 1 1
+NVIDIA GT 220 .*NVIDIA.*GeForce GT 22.* 1 1
+NVIDIA GT 230 .*NVIDIA.*GeForce GT 23.* 1 1
+NVIDIA GT 240 .*NVIDIA.*GeForce GT 24.* 1 1
+NVIDIA GT 320 .*NVIDIA.*GeForce GT 32.* 0 1
+NVIDIA GT 330M .*NVIDIA.*GeForce GT 330M.* 1 1
+NVIDIA GTS 240 .*NVIDIA.*GeForce GTS 24.* 1 1
+NVIDIA GTS 250 .*NVIDIA.*GeForce GTS 25.* 3 1
+NVIDIA GTS 360M .*NVIDIA.*GeForce GTS 360M.* 3 1
+NVIDIA GTX 260 .*NVIDIA.*GeForce GTX 26.* 3 1
+NVIDIA GTX 270 .*NVIDIA.*GeForce GTX 27.* 3 1
+NVIDIA GTX 280 .*NVIDIA.*GeForce GTX 28.* 3 1
+NVIDIA GTX 290 .*NVIDIA.*GeForce GTX 29.* 3 1
+NVIDIA GTX 470 .*NVIDIA.*GeForce GTX 47.* 3 1
+NVIDIA GTX 480 .*NVIDIA.*GeForce GTX 48.* 3 1
NVIDIA C51 .*NVIDIA.*C51.* 0 1
NVIDIA G72 .*NVIDIA.*G72.* 1 1
NVIDIA G73 .*NVIDIA.*G73.* 1 1
@@ -215,6 +242,8 @@ NVIDIA GeForce 8600M .*NVIDIA.*GeForce.*8600M.* 1 1
NVIDIA GeForce 8600 .*NVIDIA.*GeForce 86.* 3 1
NVIDIA GeForce 8700 .*NVIDIA.*GeForce 87.* 3 1
NVIDIA GeForce 8800 .*NVIDIA.*GeForce 88.* 3 1
+NVIDIA GeForce 9100 .*NVIDIA.*GeForce 9100.* 0 1
+NVIDIA GeForce 9200 .*NVIDIA.*GeForce 9200.* 0 1
NVIDIA GeForce 9300M .*NVIDIA.*GeForce 9300M.* 1 1
NVIDIA GeForce 9400M .*NVIDIA.*GeForce 9400M.* 1 1
NVIDIA GeForce 9500M .*NVIDIA.*GeForce 9500M.* 2 1
diff --git a/indra/newview/installers/windows/installer_template.nsi b/indra/newview/installers/windows/installer_template.nsi
index b7b4c54001..d1cd335783 100644
--- a/indra/newview/installers/windows/installer_template.nsi
+++ b/indra/newview/installers/windows/installer_template.nsi
@@ -1,6 +1,6 @@
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; secondlife setup.nsi
-;; Copyright 2004-2008, Linden Research, Inc.
+;; Copyright 2004-2010, Linden Research, Inc.
;;
;; NSIS Unicode 2.38.1 or higher required
;; http://www.scratchpaper.com/
@@ -29,6 +29,7 @@ RequestExecutionLevel admin ; on Vista we must be admin because we write to Prog
;; (these files are in the same place as the nsi template but the python script generates a new nsi file in the
;; application directory so we have to add a path to these include files)
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+!include "%%SOURCE%%\installers\windows\lang_da.nsi"
!include "%%SOURCE%%\installers\windows\lang_de.nsi"
!include "%%SOURCE%%\installers\windows\lang_en-us.nsi"
!include "%%SOURCE%%\installers\windows\lang_es.nsi"
@@ -37,10 +38,12 @@ RequestExecutionLevel admin ; on Vista we must be admin because we write to Prog
!include "%%SOURCE%%\installers\windows\lang_it.nsi"
!include "%%SOURCE%%\installers\windows\lang_ko.nsi"
!include "%%SOURCE%%\installers\windows\lang_nl.nsi"
+!include "%%SOURCE%%\installers\windows\lang_pl.nsi"
!include "%%SOURCE%%\installers\windows\lang_pt-br.nsi"
!include "%%SOURCE%%\installers\windows\lang_zh.nsi"
# *TODO: Move these into the language files themselves
+LangString LanguageCode ${LANG_DANISH} "da"
LangString LanguageCode ${LANG_GERMAN} "de"
LangString LanguageCode ${LANG_ENGLISH} "en"
LangString LanguageCode ${LANG_SPANISH} "es"
@@ -49,6 +52,7 @@ LangString LanguageCode ${LANG_JAPANESE} "ja"
LangString LanguageCode ${LANG_ITALIAN} "it"
LangString LanguageCode ${LANG_KOREAN} "ko"
LangString LanguageCode ${LANG_DUTCH} "nl"
+LangString LanguageCode ${LANG_POLISH} "da"
LangString LanguageCode ${LANG_PORTUGUESEBR} "pt"
LangString LanguageCode ${LANG_SIMPCHINESE} "zh"
diff --git a/indra/newview/installers/windows/lang_da.nsi b/indra/newview/installers/windows/lang_da.nsi
new file mode 100644
index 0000000000..0c832e8ba9
--- /dev/null
+++ b/indra/newview/installers/windows/lang_da.nsi
Binary files differ
diff --git a/indra/newview/installers/windows/lang_pl.nsi b/indra/newview/installers/windows/lang_pl.nsi
new file mode 100644
index 0000000000..191bae4755
--- /dev/null
+++ b/indra/newview/installers/windows/lang_pl.nsi
Binary files differ
diff --git a/indra/newview/installers/windows/language_menu.nsi b/indra/newview/installers/windows/language_menu.nsi
index 988f452dea..fef8d40c69 100644
--- a/indra/newview/installers/windows/language_menu.nsi
+++ b/indra/newview/installers/windows/language_menu.nsi
Binary files differ
diff --git a/indra/newview/llagent.cpp b/indra/newview/llagent.cpp
index 03efcadc98..c9bd7851ed 100644
--- a/indra/newview/llagent.cpp
+++ b/indra/newview/llagent.cpp
@@ -2,31 +2,25 @@
* @file llagent.cpp
* @brief LLAgent class implementation
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -44,6 +38,7 @@
#include "llcallingcard.h"
#include "llchannelmanager.h"
#include "llconsole.h"
+#include "llfirstuse.h"
#include "llfloatercamera.h"
#include "llfloaterreg.h"
#include "llfloatertools.h"
@@ -57,6 +52,7 @@
#include "llnavigationbar.h" // to show/hide navigation bar when changing mouse look state
#include "llnearbychatbar.h"
#include "llnotificationsutil.h"
+#include "llpaneltopinfobar.h"
#include "llparcel.h"
#include "llrendersphere.h"
#include "llsdutil.h"
@@ -172,6 +168,7 @@ LLAgent::LLAgent() :
mbAlwaysRun(false),
mbRunning(false),
+ mbTeleportKeepsLookAt(false),
mAgentAccess(gSavedSettings),
mTeleportState( TELEPORT_NONE ),
@@ -198,8 +195,6 @@ LLAgent::LLAgent() :
mbFlagsDirty(FALSE),
mbFlagsNeedReset(FALSE),
- mbJump(FALSE),
-
mAutoPilot(FALSE),
mAutoPilotFlyOnStop(FALSE),
mAutoPilotTargetGlobal(),
@@ -231,8 +226,9 @@ LLAgent::LLAgent() :
mControlsTakenPassedOnCount[i] = 0;
}
-
mListener.reset(new LLAgentListener(*this));
+
+ mMoveTimer.stop();
}
// Requires gSavedSettings to be initialized.
@@ -241,6 +237,8 @@ LLAgent::LLAgent() :
//-----------------------------------------------------------------------------
void LLAgent::init()
{
+ mMoveTimer.start();
+
gSavedSettings.declareBOOL("SlowMotionAnimation", FALSE, "Declared in code", FALSE);
gSavedSettings.getControl("SlowMotionAnimation")->getSignal()->connect(boost::bind(&handleSlowMotionAnimation, _2));
@@ -305,6 +303,9 @@ void LLAgent::ageChat()
//-----------------------------------------------------------------------------
void LLAgent::moveAt(S32 direction, bool reset)
{
+ mMoveTimer.reset();
+ LLFirstUse::notMoving(false);
+
// age chat timer so it fades more quickly when you are intentionally moving
ageChat();
@@ -330,6 +331,9 @@ void LLAgent::moveAt(S32 direction, bool reset)
//-----------------------------------------------------------------------------
void LLAgent::moveAtNudge(S32 direction)
{
+ mMoveTimer.reset();
+ LLFirstUse::notMoving(false);
+
// age chat timer so it fades more quickly when you are intentionally moving
ageChat();
@@ -352,6 +356,9 @@ void LLAgent::moveAtNudge(S32 direction)
//-----------------------------------------------------------------------------
void LLAgent::moveLeft(S32 direction)
{
+ mMoveTimer.reset();
+ LLFirstUse::notMoving(false);
+
// age chat timer so it fades more quickly when you are intentionally moving
ageChat();
@@ -374,6 +381,9 @@ void LLAgent::moveLeft(S32 direction)
//-----------------------------------------------------------------------------
void LLAgent::moveLeftNudge(S32 direction)
{
+ mMoveTimer.reset();
+ LLFirstUse::notMoving(false);
+
// age chat timer so it fades more quickly when you are intentionally moving
ageChat();
@@ -396,6 +406,9 @@ void LLAgent::moveLeftNudge(S32 direction)
//-----------------------------------------------------------------------------
void LLAgent::moveUp(S32 direction)
{
+ mMoveTimer.reset();
+ LLFirstUse::notMoving(false);
+
// age chat timer so it fades more quickly when you are intentionally moving
ageChat();
@@ -541,6 +554,9 @@ void LLAgent::toggleFlying()
{
BOOL fly = !gAgent.getFlying();
+ gAgent.mMoveTimer.reset();
+ LLFirstUse::notMoving(false);
+
gAgent.setFlying( fly );
gAgentCamera.resetView();
}
@@ -832,6 +848,11 @@ LLVector3d LLAgent::getPosGlobalFromAgent(const LLVector3 &pos_agent) const
return pos_agent_d + mAgentOriginGlobal;
}
+void LLAgent::sitDown()
+{
+ setControlFlags(AGENT_CONTROL_SIT_ON_GROUND);
+}
+
//-----------------------------------------------------------------------------
// resetAxes()
@@ -1533,6 +1554,11 @@ void LLAgent::propagate(const F32 dt)
//-----------------------------------------------------------------------------
void LLAgent::updateAgentPosition(const F32 dt, const F32 yaw_radians, const S32 mouse_x, const S32 mouse_y)
{
+ if (mMoveTimer.getStarted() && mMoveTimer.getElapsedTimeF32() > gSavedSettings.getF32("NotMovingHintTimeout"))
+ {
+ LLFirstUse::notMoving();
+ }
+
propagate(dt);
// static S32 cameraUpdateCount = 0;
@@ -1693,6 +1719,11 @@ void LLAgent::endAnimationUpdateUI()
LLNavigationBar::getInstance()->setVisible(TRUE);
gStatusBar->setVisibleForMouselook(true);
+ if (gSavedSettings.getBOOL("ShowMiniLocationPanel"))
+ {
+ LLPanelTopInfoBar::getInstance()->setVisible(TRUE);
+ }
+
LLBottomTray::getInstance()->onMouselookModeOut();
LLSideTray::getInstance()->getButtonsPanel()->setVisible(TRUE);
@@ -1779,6 +1810,8 @@ void LLAgent::endAnimationUpdateUI()
}
gAgentCamera.setLookAt(LOOKAT_TARGET_CLEAR);
+
+ LLFloaterCamera::onAvatarEditingAppearance(false);
}
//---------------------------------------------------------------------
@@ -1791,6 +1824,8 @@ void LLAgent::endAnimationUpdateUI()
LLNavigationBar::getInstance()->setVisible(FALSE);
gStatusBar->setVisibleForMouselook(false);
+ LLPanelTopInfoBar::getInstance()->setVisible(FALSE);
+
LLBottomTray::getInstance()->onMouselookModeIn();
LLSideTray::getInstance()->getButtonsPanel()->setVisible(FALSE);
@@ -1883,6 +1918,8 @@ void LLAgent::endAnimationUpdateUI()
{
mPauseRequest = gAgentAvatarp->requestPause();
}
+
+ LLFloaterCamera::onAvatarEditingAppearance(true);
}
if (isAgentAvatarValid())
@@ -2950,12 +2987,6 @@ void LLAgent::processScriptControlChange(LLMessageSystem *msg, void **)
total_count++;
}
}
-
- // Any control taken? If so, might be first time.
- //if (total_count > 0)
- //{
- //LLFirstUse::useOverrideKeys();
- //}
}
else
{
@@ -3067,7 +3098,7 @@ void LLAgent::processAgentCachedTextureResponse(LLMessageSystem *mesgsys, void *
return;
}
- if (gAgentCamera.cameraCustomizeAvatar())
+ if (isAgentAvatarValid() && !gAgentAvatarp->isUsingBakedTextures())
{
// ignore baked textures when in customize mode
return;
@@ -3226,6 +3257,9 @@ bool LLAgent::teleportCore(bool is_local)
// hide land floater too - it'll be out of date
LLFloaterReg::hideInstance("about_land");
+ // hide the search floater (EXT-8276)
+ LLFloaterReg::hideInstance("search");
+
LLViewerParcelMgr::getInstance()->deselectLand();
LLViewerMediaFocus::getInstance()->clearFocus();
@@ -3235,7 +3269,11 @@ bool LLAgent::teleportCore(bool is_local)
// local logic
LLViewerStats::getInstance()->incStat(LLViewerStats::ST_TELEPORT_COUNT);
- if (!is_local)
+ if (is_local)
+ {
+ gAgent.setTeleportState( LLAgent::TELEPORT_LOCAL );
+ }
+ else
{
gTeleportDisplay = TRUE;
gAgent.setTeleportState( LLAgent::TELEPORT_START );
@@ -3254,13 +3292,15 @@ bool LLAgent::teleportCore(bool is_local)
void LLAgent::teleportRequest(
const U64& region_handle,
- const LLVector3& pos_local)
+ const LLVector3& pos_local,
+ bool look_at_from_camera)
{
LLViewerRegion* regionp = getRegion();
- if(regionp && teleportCore())
+ bool is_local = (region_handle == to_region_handle(getPositionGlobal()));
+ if(regionp && teleportCore(is_local))
{
- llinfos << "TeleportRequest: '" << region_handle << "':" << pos_local
- << llendl;
+ LL_INFOS("") << "TeleportLocationRequest: '" << region_handle << "':"
+ << pos_local << LL_ENDL;
LLMessageSystem* msg = gMessageSystem;
msg->newMessage("TeleportLocationRequest");
msg->nextBlockFast(_PREHASH_AgentData);
@@ -3270,6 +3310,10 @@ void LLAgent::teleportRequest(
msg->addU64("RegionHandle", region_handle);
msg->addVector3("Position", pos_local);
LLVector3 look_at(0,1,0);
+ if (look_at_from_camera)
+ {
+ look_at = LLViewerCamera::getInstance()->getAtAxis();
+ }
msg->addVector3("LookAt", look_at);
sendReliableMessage();
}
@@ -3381,6 +3425,16 @@ void LLAgent::teleportViaLocation(const LLVector3d& pos_global)
}
}
+// Teleport to global position, but keep facing in the same direction
+void LLAgent::teleportViaLocationLookAt(const LLVector3d& pos_global)
+{
+ mbTeleportKeepsLookAt = true;
+ gAgentCamera.setFocusOnAvatar(FALSE, ANIMATE); // detach camera form avatar, so it keeps direction
+ U64 region_handle = to_region_handle(pos_global);
+ LLVector3 pos_local = (LLVector3)(pos_global - from_region_handle(region_handle));
+ teleportRequest(region_handle, pos_local, getTeleportKeepsLookAt());
+}
+
void LLAgent::setTeleportState(ETeleportState state)
{
mTeleportState = state;
@@ -3388,15 +3442,28 @@ void LLAgent::setTeleportState(ETeleportState state)
{
LLFloaterReg::hideInstance("snapshot");
}
- if (mTeleportState == TELEPORT_MOVING)
+
+ switch (mTeleportState)
{
+ case TELEPORT_NONE:
+ mbTeleportKeepsLookAt = false;
+ break;
+
+ case TELEPORT_MOVING:
// We're outa here. Save "back" slurl.
LLAgentUI::buildSLURL(mTeleportSourceSLURL);
- }
- else if(mTeleportState == TELEPORT_ARRIVING)
- {
+ break;
+
+ case TELEPORT_ARRIVING:
+ // First two position updates after a teleport tend to be weird
+ LLViewerStats::getInstance()->mAgentPositionSnaps.mCountOfNextUpdatesToIgnore = 2;
+
// Let the interested parties know we've teleported.
LLViewerParcelMgr::getInstance()->onTeleportFinished(false, getPositionGlobal());
+ break;
+
+ default:
+ break;
}
}
@@ -3530,7 +3597,7 @@ void LLAgent::sendAgentSetAppearance()
{
if (!isAgentAvatarValid()) return;
- if (gAgentQueryManager.mNumPendingQueries > 0 && !gAgentCamera.cameraCustomizeAvatar())
+ if (gAgentQueryManager.mNumPendingQueries > 0 && (isAgentAvatarValid() && gAgentAvatarp->isUsingBakedTextures()))
{
return;
}
@@ -3619,7 +3686,7 @@ void LLAgent::sendAgentSetAppearance()
param;
param = (LLViewerVisualParam*)gAgentAvatarp->getNextVisualParam())
{
- if (param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE)
+ if (param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE) // do not transmit params of group VISUAL_PARAM_GROUP_TWEAKABLE_NO_TRANSMIT
{
msg->nextBlockFast(_PREHASH_VisualParam );
diff --git a/indra/newview/llagent.h b/indra/newview/llagent.h
index 32f9b00135..6c598d5d71 100644
--- a/indra/newview/llagent.h
+++ b/indra/newview/llagent.h
@@ -2,31 +2,25 @@
* @file llagent.h
* @brief LLAgent class header file
*
- * $LicenseInfo:firstyear=2000&license=viewergpl$
- *
- * Copyright (c) 2000-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2000&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -270,6 +264,7 @@ public:
private:
LLFrameTimer mFidgetTimer;
LLFrameTimer mFocusObjectFadeTimer;
+ LLFrameTimer mMoveTimer;
F32 mNextFidgetTime;
S32 mCurrentFidget;
@@ -345,12 +340,15 @@ public:
private:
bool mbAlwaysRun; // Should the avatar run by default rather than walk?
bool mbRunning; // Is the avatar trying to run right now?
+ bool mbTeleportKeepsLookAt; // Try to keep look-at after teleport is complete
//--------------------------------------------------------------------
// Sit and stand
//--------------------------------------------------------------------
public:
void standUp();
+ /// @brief ground-sit at agent's current position
+ void sitDown();
//--------------------------------------------------------------------
// Busy
@@ -363,14 +361,6 @@ private:
BOOL mIsBusy;
//--------------------------------------------------------------------
- // Jump
- //--------------------------------------------------------------------
-public:
- BOOL getJump() const { return mbJump; }
-private:
- BOOL mbJump;
-
- //--------------------------------------------------------------------
// Grab
//--------------------------------------------------------------------
public:
@@ -510,7 +500,8 @@ public:
TELEPORT_REQUESTED = 2, // Waiting for source simulator to respond
TELEPORT_MOVING = 3, // Viewer has received destination location from source simulator
TELEPORT_START_ARRIVAL = 4, // Transition to ARRIVING. Viewer has received avatar update, etc., from destination simulator
- TELEPORT_ARRIVING = 5 // Make the user wait while content "pre-caches"
+ TELEPORT_ARRIVING = 5, // Make the user wait while content "pre-caches"
+ TELEPORT_LOCAL = 6 // Teleporting in-sim without showing the progress screen
};
public:
@@ -528,12 +519,15 @@ private:
//--------------------------------------------------------------------
public:
void teleportRequest(const U64& region_handle,
- const LLVector3& pos_local); // Go to a named location home
+ const LLVector3& pos_local, // Go to a named location home
+ bool look_at_from_camera = false);
void teleportViaLandmark(const LLUUID& landmark_id); // Teleport to a landmark
void teleportHome() { teleportViaLandmark(LLUUID::null); } // Go home
void teleportViaLure(const LLUUID& lure_id, BOOL godlike); // To an invited location
void teleportViaLocation(const LLVector3d& pos_global); // To a global location - this will probably need to be deprecated
+ void teleportViaLocationLookAt(const LLVector3d& pos_global);// To a global location, preserving camera rotation
void teleportCancel(); // May or may not be allowed by server
+ bool getTeleportKeepsLookAt() { return mbTeleportKeepsLookAt; } // Whether look-at reset after teleport
protected:
bool teleportCore(bool is_local = false); // Stuff for all teleports; returns true if the teleport can proceed
diff --git a/indra/newview/llagentaccess.cpp b/indra/newview/llagentaccess.cpp
index 915dabb935..08a33ab04a 100644
--- a/indra/newview/llagentaccess.cpp
+++ b/indra/newview/llagentaccess.cpp
@@ -2,31 +2,25 @@
* @file llagentaccess.cpp
* @brief LLAgentAccess class implementation - manages maturity and godmode info
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
#include "llviewerprecompiledheaders.h"
diff --git a/indra/newview/llagentaccess.h b/indra/newview/llagentaccess.h
index 49da5f44cc..2e98e4eea1 100644
--- a/indra/newview/llagentaccess.h
+++ b/indra/newview/llagentaccess.h
@@ -2,31 +2,25 @@
* @file llagentaccess.h
* @brief LLAgentAccess class implementation - manages maturity and godmode info
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llagentcamera.cpp b/indra/newview/llagentcamera.cpp
index 9cf0a659c1..68e408d3e4 100644
--- a/indra/newview/llagentcamera.cpp
+++ b/indra/newview/llagentcamera.cpp
@@ -2,31 +2,25 @@
* @file llagentcamera.cpp
* @brief LLAgent class implementation
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -85,7 +79,7 @@ const F32 MAX_CAMERA_SMOOTH_DISTANCE = 50.0f;
const F32 HEAD_BUFFER_SIZE = 0.3f;
-const F32 CUSTOMIZE_AVATAR_CAMERA_ANIM_SLOP = 0.2f;
+const F32 CUSTOMIZE_AVATAR_CAMERA_ANIM_SLOP = 0.1f;
const F32 LAND_MIN_ZOOM = 0.15f;
@@ -95,6 +89,8 @@ const F32 OBJECT_MIN_ZOOM = 0.02f;
const F32 APPEARANCE_MIN_ZOOM = 0.39f;
const F32 APPEARANCE_MAX_ZOOM = 8.f;
+const F32 CUSTOMIZE_AVATAR_CAMERA_DEFAULT_DIST = 3.5f;
+
const F32 GROUND_TO_AIR_CAMERA_TRANSITION_TIME = 0.5f;
const F32 GROUND_TO_AIR_CAMERA_TRANSITION_START_TIME = 0.5f;
@@ -156,7 +152,6 @@ LLAgentCamera::LLAgentCamera() :
mFocusObjectOffset(),
mFocusDotRadius( 0.1f ), // meters
mTrackFocusObject(TRUE),
- mUIOffset(0.f),
mAtKey(0), // Either 1, 0, or -1... indicates that movement-key is pressed
mWalkKey(0), // like AtKey, but causes less forward thrust
@@ -940,7 +935,7 @@ void LLAgentCamera::cameraZoomIn(const F32 fraction)
*/
}
- if( cameraCustomizeAvatar() )
+ if(cameraCustomizeAvatar())
{
new_distance = llclamp( new_distance, APPEARANCE_MIN_ZOOM, APPEARANCE_MAX_ZOOM );
}
@@ -1148,10 +1143,9 @@ void LLAgentCamera::updateCamera()
static LLFastTimer::DeclareTimer ftm("Camera");
LLFastTimer t(ftm);
- //Ventrella - changed camera_skyward to the new global "mCameraUpVector"
+ // - changed camera_skyward to the new global "mCameraUpVector"
mCameraUpVector = LLVector3::z_axis;
//LLVector3 camera_skyward(0.f, 0.f, 1.f);
- //end Ventrella
U32 camera_mode = mCameraAnimating ? mLastCameraMode : mCameraMode;
@@ -1161,10 +1155,8 @@ void LLAgentCamera::updateCamera()
gAgentAvatarp->isSitting() &&
camera_mode == CAMERA_MODE_MOUSELOOK)
{
- //Ventrella
//changed camera_skyward to the new global "mCameraUpVector"
mCameraUpVector = mCameraUpVector * gAgentAvatarp->getRenderRotation();
- //end Ventrella
}
if (cameraThirdPerson() && mFocusOnAvatar && LLFollowCamMgr::getActiveFollowCamParams())
@@ -1172,13 +1164,11 @@ void LLAgentCamera::updateCamera()
changeCameraToFollow();
}
- //Ventrella
//NOTE - this needs to be integrated into a general upVector system here within llAgent.
if ( camera_mode == CAMERA_MODE_FOLLOW && mFocusOnAvatar )
{
mCameraUpVector = mFollowCam.getUpVector();
}
- //end Ventrella
if (mSitCameraEnabled)
{
@@ -1255,7 +1245,6 @@ void LLAgentCamera::updateCamera()
// lerp camera focus offset
mCameraFocusOffset = lerp(mCameraFocusOffset, mCameraFocusOffsetTarget, LLCriticalDamp::getInterpolant(CAMERA_FOCUS_HALF_LIFE));
- //Ventrella
if ( mCameraMode == CAMERA_MODE_FOLLOW )
{
if (isAgentAvatarValid())
@@ -1282,7 +1271,6 @@ void LLAgentCamera::updateCamera()
}
}
}
- // end Ventrella
BOOL hit_limit;
LLVector3d camera_pos_global;
@@ -1407,26 +1395,14 @@ void LLAgentCamera::updateCamera()
// llinfos << "Current FOV Zoom: " << mCameraCurrentFOVZoomFactor << " Target FOV Zoom: " << mCameraFOVZoomFactor << " Object penetration: " << mFocusObjectDist << llendl;
- F32 ui_offset = 0.f;
- if( CAMERA_MODE_CUSTOMIZE_AVATAR == mCameraMode )
- {
- ui_offset = calcCustomizeAvatarUIOffset( camera_pos_global );
- }
-
-
LLVector3 focus_agent = gAgent.getPosAgentFromGlobal(mFocusGlobal);
mCameraPositionAgent = gAgent.getPosAgentFromGlobal(camera_pos_global);
// Move the camera
- //Ventrella
LLViewerCamera::getInstance()->updateCameraLocation(mCameraPositionAgent, mCameraUpVector, focus_agent);
//LLViewerCamera::getInstance()->updateCameraLocation(mCameraPositionAgent, camera_skyward, focus_agent);
- //end Ventrella
-
- //RN: translate UI offset after camera is oriented properly
- LLViewerCamera::getInstance()->translate(LLViewerCamera::getInstance()->getLeftAxis() * ui_offset);
// Change FOV
LLViewerCamera::getInstance()->setView(LLViewerCamera::getInstance()->getDefaultFOV() / (1.f + mCameraCurrentFOVZoomFactor));
@@ -1532,18 +1508,6 @@ void LLAgentCamera::validateFocusObject()
}
//-----------------------------------------------------------------------------
-// calcCustomizeAvatarUIOffset()
-//-----------------------------------------------------------------------------
-F32 LLAgentCamera::calcCustomizeAvatarUIOffset(const LLVector3d& camera_pos_global)
-{
- F32 ui_offset = 0.f;
-
- F32 range = (F32)dist_vec(camera_pos_global, getFocusGlobal());
- mUIOffset = lerp(mUIOffset, ui_offset, LLCriticalDamp::getInterpolant(0.05f));
- return mUIOffset * range;
-}
-
-//-----------------------------------------------------------------------------
// calcFocusPositionTargetGlobal()
//-----------------------------------------------------------------------------
LLVector3d LLAgentCamera::calcFocusPositionTargetGlobal()
@@ -1553,12 +1517,11 @@ LLVector3d LLAgentCamera::calcFocusPositionTargetGlobal()
clearFocusObject();
}
- // Ventrella
if (mCameraMode == CAMERA_MODE_FOLLOW && mFocusOnAvatar)
{
mFocusTargetGlobal = gAgent.getPosGlobalFromAgent(mFollowCam.getSimulatedFocus());
return mFocusTargetGlobal;
- }// End Ventrella
+ }
else if (mCameraMode == CAMERA_MODE_MOUSELOOK)
{
LLVector3d at_axis(1.0, 0.0, 0.0);
@@ -1727,11 +1690,10 @@ LLVector3d LLAgentCamera::calcCameraPositionTargetGlobal(BOOL *hit_limit)
LLVector3d camera_position_global;
- // Ventrella
if (mCameraMode == CAMERA_MODE_FOLLOW && mFocusOnAvatar)
{
camera_position_global = gAgent.getPosGlobalFromAgent(mFollowCam.getSimulatedPosition());
- }// End Ventrella
+ }
else if (mCameraMode == CAMERA_MODE_MOUSELOOK)
{
if (!isAgentAvatarValid() || gAgentAvatarp->mDrawable.isNull())
@@ -2086,6 +2048,7 @@ void LLAgentCamera::changeCameraToMouselook(BOOL animate)
// Menus should not remain open on switching to mouselook...
LLMenuGL::sMenuContainer->hideMenus();
+ LLUI::clearPopups();
// unpause avatar animation
gAgent.unpauseAnimation();
@@ -2150,7 +2113,6 @@ void LLAgentCamera::changeCameraToDefault()
}
-// Ventrella
//-----------------------------------------------------------------------------
// changeCameraToFollow()
//-----------------------------------------------------------------------------
@@ -2190,12 +2152,7 @@ void LLAgentCamera::changeCameraToFollow(BOOL animate)
// unpause avatar animation
gAgent.unpauseAnimation();
- const U32 old_flags = gAgent.getControlFlags();
gAgent.clearControlFlags(AGENT_CONTROL_MOUSELOOK);
- if (old_flags != gAgent.getControlFlags())
- {
- gAgent.setFlagsDirty();
- }
if (animate)
{
@@ -2254,13 +2211,7 @@ void LLAgentCamera::changeCameraToThirdPerson(BOOL animate)
}
updateLastCamera();
mCameraMode = CAMERA_MODE_THIRD_PERSON;
- const U32 old_flags = gAgent.getControlFlags();
gAgent.clearControlFlags(AGENT_CONTROL_MOUSELOOK);
- if (old_flags != gAgent.getControlFlags())
- {
- gAgent.setFlagsDirty();
- }
-
}
// Remove any pitch from the avatar
@@ -2295,7 +2246,7 @@ void LLAgentCamera::changeCameraToThirdPerson(BOOL animate)
//-----------------------------------------------------------------------------
// changeCameraToCustomizeAvatar()
//-----------------------------------------------------------------------------
-void LLAgentCamera::changeCameraToCustomizeAvatar(BOOL avatar_animate, BOOL camera_animate)
+void LLAgentCamera::changeCameraToCustomizeAvatar()
{
if (LLViewerJoystick::getInstance()->getOverrideCamera())
{
@@ -2310,36 +2261,23 @@ void LLAgentCamera::changeCameraToCustomizeAvatar(BOOL avatar_animate, BOOL came
LLToolMgr::getInstance()->setCurrentToolset(gFaceEditToolset);
}
- if (camera_animate)
- {
- startCameraAnimation();
- }
+ startCameraAnimation();
if (mCameraMode != CAMERA_MODE_CUSTOMIZE_AVATAR)
{
updateLastCamera();
mCameraMode = CAMERA_MODE_CUSTOMIZE_AVATAR;
- const U32 old_flags = gAgent.getControlFlags();
gAgent.clearControlFlags(AGENT_CONTROL_MOUSELOOK);
- if (old_flags != gAgent.getControlFlags())
- {
- gAgent.setFlagsDirty();
- }
gFocusMgr.setKeyboardFocus( NULL );
gFocusMgr.setMouseCapture( NULL );
LLVOAvatarSelf::onCustomizeStart();
- }
- if (isAgentAvatarValid())
- {
- if(avatar_animate)
- {
- // slamming the avatar's axis to the camera so that when the rotation
- // completes it correctly points to the front of the avatar
+ if (isAgentAvatarValid())
+ {
// Remove any pitch or rotation from the avatar
- LLVector3 at = LLViewerCamera::getInstance()->getAtAxis();
+ LLVector3 at = gAgent.getAtAxis();
at.mV[VZ] = 0.f;
at.normalize();
gAgent.resetAxes(at);
@@ -2351,25 +2289,31 @@ void LLAgentCamera::changeCameraToCustomizeAvatar(BOOL avatar_animate, BOOL came
if (turn_motion)
{
- mAnimationDuration = turn_motion->getDuration() + CUSTOMIZE_AVATAR_CAMERA_ANIM_SLOP;
-
- }
- else
- {
- mAnimationDuration = gSavedSettings.getF32("ZoomTime");
+ // delay camera animation long enough to play through turn animation
+ setAnimationDuration(turn_motion->getDuration() + CUSTOMIZE_AVATAR_CAMERA_ANIM_SLOP);
}
- }
- // this is what sets the avatar as the mFocusTargetGlobal
- setFocusGlobal(LLVector3d::zero);
-
- gAgentAvatarp->updateMeshTextures();
- }
- else
- {
- mCameraAnimating = FALSE;
- gAgent.endAnimationUpdateUI();
+ gAgentAvatarp->invalidateAll();
+ gAgentAvatarp->updateMeshTextures();
+ }
}
+
+ LLVector3 agent_at = gAgent.getAtAxis();
+ agent_at.mV[VZ] = 0.f;
+ agent_at.normalize();
+
+ // default focus point for customize avatar
+ LLVector3 focus_target = isAgentAvatarValid()
+ ? gAgentAvatarp->mHeadp->getWorldPosition()
+ : gAgent.getPositionAgent();
+
+ LLVector3d camera_offset(agent_at * -1.0);
+ // push camera up and out from avatar
+ camera_offset.mdV[VZ] = 0.1f;
+ camera_offset *= CUSTOMIZE_AVATAR_CAMERA_DEFAULT_DIST;
+ LLVector3d focus_target_global = gAgent.getPosGlobalFromAgent(focus_target);
+ setAnimationDuration(gSavedSettings.getF32("ZoomTime"));
+ setCameraPosAndFocusGlobal(focus_target_global + camera_offset, focus_target_global, gAgent.getID());
}
@@ -2391,6 +2335,20 @@ void LLAgentCamera::switchCameraPreset(ECameraPreset preset)
// Focus point management
//
+void LLAgentCamera::setAnimationDuration(F32 duration)
+{
+ if (mCameraAnimating)
+ {
+ // do not cut any existing camera animation short
+ F32 animation_left = llmax(0.f, mAnimationDuration - mAnimationTimer.getElapsedTimeF32());
+ mAnimationDuration = llmax(duration, animation_left);
+ }
+ else
+ {
+ mAnimationDuration = duration;
+ }
+}
+
//-----------------------------------------------------------------------------
// startCameraAnimation()
//-----------------------------------------------------------------------------
@@ -2398,9 +2356,9 @@ void LLAgentCamera::startCameraAnimation()
{
mAnimationCameraStartGlobal = getCameraPositionGlobal();
mAnimationFocusStartGlobal = mFocusGlobal;
+ setAnimationDuration(gSavedSettings.getF32("ZoomTime"));
mAnimationTimer.reset();
mCameraAnimating = TRUE;
- mAnimationDuration = gSavedSettings.getF32("ZoomTime");
}
//-----------------------------------------------------------------------------
@@ -2539,19 +2497,13 @@ void LLAgentCamera::setFocusGlobal(const LLVector3d& focus, const LLUUID &object
//-----------------------------------------------------------------------------
void LLAgentCamera::setCameraPosAndFocusGlobal(const LLVector3d& camera_pos, const LLVector3d& focus, const LLUUID &object_id)
{
- LLVector3d old_focus = mFocusTargetGlobal;
+ LLVector3d old_focus = mFocusTargetGlobal.isExactlyZero() ? focus : mFocusTargetGlobal;
F64 focus_delta_squared = (old_focus - focus).magVecSquared();
const F64 ANIM_EPSILON_SQUARED = 0.0001;
if (focus_delta_squared > ANIM_EPSILON_SQUARED)
{
startCameraAnimation();
-
- if (CAMERA_MODE_CUSTOMIZE_AVATAR == mCameraMode)
- {
- // Compensate for the fact that the camera has already been offset to make room for LLFloaterCustomize.
- mAnimationCameraStartGlobal -= LLVector3d(LLViewerCamera::getInstance()->getLeftAxis() * calcCustomizeAvatarUIOffset( mAnimationCameraStartGlobal ));
- }
}
//LLViewerCamera::getInstance()->setOrigin( gAgent.getPosAgentFromGlobal( camera_pos ) );
diff --git a/indra/newview/llagentcamera.h b/indra/newview/llagentcamera.h
index 7afb5c0ed9..00fa6ea189 100644
--- a/indra/newview/llagentcamera.h
+++ b/indra/newview/llagentcamera.h
@@ -2,31 +2,25 @@
* @file llagent.h
* @brief LLAgent class header file
*
- * $LicenseInfo:firstyear=2000&license=viewergpl$
- *
- * Copyright (c) 2000-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2000&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -82,6 +76,7 @@ public:
void init();
void cleanup();
void setAvatarObject(LLVOAvatarSelf* avatar);
+ bool isInitialized() { return mInitialized; }
private:
bool mInitialized;
@@ -93,7 +88,7 @@ public:
void changeCameraToDefault();
void changeCameraToMouselook(BOOL animate = TRUE);
void changeCameraToThirdPerson(BOOL animate = TRUE);
- void changeCameraToCustomizeAvatar(BOOL avatar_animate = TRUE, BOOL camera_animate = TRUE); // Trigger transition animation
+ void changeCameraToCustomizeAvatar(); // Trigger transition animation
void changeCameraToFollow(BOOL animate = TRUE); // Ventrella
BOOL cameraThirdPerson() const { return (mCameraMode == CAMERA_MODE_THIRD_PERSON && mLastCameraMode == CAMERA_MODE_THIRD_PERSON); }
BOOL cameraMouselook() const { return (mCameraMode == CAMERA_MODE_MOUSELOOK && mLastCameraMode == CAMERA_MODE_MOUSELOOK); }
@@ -137,7 +132,6 @@ public:
F32 getCameraMinOffGround(); // Minimum height off ground for this mode, meters
void setCameraCollidePlane(const LLVector4 &plane) { mCameraCollidePlane = plane; }
BOOL calcCameraMinDistance(F32 &obj_min_distance);
- F32 calcCustomizeAvatarUIOffset(const LLVector3d& camera_pos_global);
F32 getCurrentCameraBuildOffset() { return (F32)mCameraFocusOffset.length(); }
void clearCameraLag() { mCameraLag.clearVec(); }
private:
@@ -184,7 +178,7 @@ private:
public:
void setCameraAnimating(BOOL b) { mCameraAnimating = b; }
BOOL getCameraAnimating() { return mCameraAnimating; }
- void setAnimationDuration(F32 seconds) { mAnimationDuration = seconds; }
+ void setAnimationDuration(F32 seconds);
void startCameraAnimation();
void stopCameraAnimation();
private:
@@ -225,7 +219,6 @@ private:
LLVector3 mFocusObjectOffset;
F32 mFocusDotRadius; // Meters
BOOL mTrackFocusObject;
- F32 mUIOffset;
//--------------------------------------------------------------------
// Lookat / Pointat
diff --git a/indra/newview/llagentdata.cpp b/indra/newview/llagentdata.cpp
index 978286f365..5f6a082d75 100644
--- a/indra/newview/llagentdata.cpp
+++ b/indra/newview/llagentdata.cpp
@@ -3,31 +3,25 @@
* @brief Contains commonly used agent data.
* @author James Cook
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llagentdata.h b/indra/newview/llagentdata.h
index 7d681cf1a3..83d6a53d5e 100644
--- a/indra/newview/llagentdata.h
+++ b/indra/newview/llagentdata.h
@@ -3,31 +3,25 @@
* @brief Contains commonly used agent data
* @author James Cook
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llagentlanguage.cpp b/indra/newview/llagentlanguage.cpp
index e97f136489..fe6236a32a 100644
--- a/indra/newview/llagentlanguage.cpp
+++ b/indra/newview/llagentlanguage.cpp
@@ -2,31 +2,25 @@
* @file llagentlanguage.cpp
* @brief Transmit language information to server
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -39,21 +33,35 @@
// library includes
#include "llui.h" // getLanguage()
-LLAgentLanguage::LLAgentLanguage()
+// static
+void LLAgentLanguage::init()
{
- gSavedSettings.getControl("Language")->getSignal()->connect(boost::bind(&update));
- gSavedSettings.getControl("InstallLanguage")->getSignal()->connect(boost::bind(&update));
- gSavedSettings.getControl("SystemLanguage")->getSignal()->connect(boost::bind(&update));
- gSavedSettings.getControl("LanguageIsPublic")->getSignal()->connect(boost::bind(&update));
+ gSavedSettings.getControl("Language")->getSignal()->connect(boost::bind(&onChange));
+ gSavedSettings.getControl("InstallLanguage")->getSignal()->connect(boost::bind(&onChange));
+ gSavedSettings.getControl("SystemLanguage")->getSignal()->connect(boost::bind(&onChange));
+ gSavedSettings.getControl("LanguageIsPublic")->getSignal()->connect(boost::bind(&onChange));
}
+// static
+void LLAgentLanguage::onChange()
+{
+ // Clear inventory cache so that default names of inventory items
+ // appear retranslated (EXT-8308).
+ gSavedSettings.setBOOL("PurgeCacheOnNextStartup", TRUE);
+}
// send language settings to the sim
// static
bool LLAgentLanguage::update()
{
LLSD body;
- std::string url = gAgent.getRegion()->getCapability("UpdateAgentLanguage");
+ std::string url;
+
+ if (gAgent.getRegion())
+ {
+ url = gAgent.getRegion()->getCapability("UpdateAgentLanguage");
+ }
+
if (!url.empty())
{
std::string language = LLUI::getLanguage();
diff --git a/indra/newview/llagentlanguage.h b/indra/newview/llagentlanguage.h
index 45348a1e50..2bb2eb7809 100644
--- a/indra/newview/llagentlanguage.h
+++ b/indra/newview/llagentlanguage.h
@@ -2,45 +2,39 @@
* @file llagentlanguage.h
* @brief Transmit language information to server
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
#ifndef LL_LLAGENTLANGUAGE_H
#define LL_LLAGENTLANGUAGE_H
-#include "llsingleton.h" // LLSingleton<>
-#include "llevent.h"
-
-class LLAgentLanguage: public LLSingleton<LLAgentLanguage>, public LLOldEvents::LLSimpleListener
+class LLAgentLanguage
{
public:
- LLAgentLanguage();
+ static void init();
static bool update();
+
+ private:
+ static void onChange();
};
#endif // LL_LLAGENTLANGUAGE_H
diff --git a/indra/newview/llagentlistener.cpp b/indra/newview/llagentlistener.cpp
index 7a8205acb5..d520debc31 100644
--- a/indra/newview/llagentlistener.cpp
+++ b/indra/newview/llagentlistener.cpp
@@ -4,8 +4,25 @@
* @date 2009-07-10
* @brief Implementation for llagentlistener.
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- * Copyright (c) 2009, Linden Research, Inc.
+ * $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$
*/
diff --git a/indra/newview/llagentlistener.h b/indra/newview/llagentlistener.h
index eed6922b3e..9b585152f4 100644
--- a/indra/newview/llagentlistener.h
+++ b/indra/newview/llagentlistener.h
@@ -4,8 +4,25 @@
* @date 2009-07-09
* @brief Event API for subset of LLViewerControl methods
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- * Copyright (c) 2009, Linden Research, Inc.
+ * $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$
*/
diff --git a/indra/newview/llagentpicksinfo.cpp b/indra/newview/llagentpicksinfo.cpp
index 3c8d0dac42..192ed141c7 100644
--- a/indra/newview/llagentpicksinfo.cpp
+++ b/indra/newview/llagentpicksinfo.cpp
@@ -2,31 +2,25 @@
* @file llagentpicksinfo.cpp
* @brief LLAgentPicksInfo class implementation
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llagentpicksinfo.h b/indra/newview/llagentpicksinfo.h
index 0e30f2c5a0..abf7027ed2 100644
--- a/indra/newview/llagentpicksinfo.h
+++ b/indra/newview/llagentpicksinfo.h
@@ -2,31 +2,25 @@
* @file llagentpicksinfo.h
* @brief LLAgentPicksInfo class header file
*
- * $LicenseInfo:firstyear=2000&license=viewergpl$
- *
- * Copyright (c) 2000-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2000&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llagentpilot.cpp b/indra/newview/llagentpilot.cpp
index 8ffb97d8fc..13e1023185 100644
--- a/indra/newview/llagentpilot.cpp
+++ b/indra/newview/llagentpilot.cpp
@@ -2,31 +2,25 @@
* @file llagentpilot.cpp
* @brief LLAgentPilot class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llagentpilot.h b/indra/newview/llagentpilot.h
index dc034398a7..f3d34246ae 100644
--- a/indra/newview/llagentpilot.h
+++ b/indra/newview/llagentpilot.h
@@ -2,31 +2,25 @@
* @file llagentpilot.h
* @brief LLAgentPilot class definition
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llagentui.cpp b/indra/newview/llagentui.cpp
index 15d9f36b74..f52f136118 100644
--- a/indra/newview/llagentui.cpp
+++ b/indra/newview/llagentui.cpp
@@ -2,31 +2,25 @@
* @file llagentui.cpp
* @brief Utility methods to process agent's data as slurl's etc. before displaying
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llagentui.h b/indra/newview/llagentui.h
index 577b752fbe..afc0ba5d9a 100644
--- a/indra/newview/llagentui.h
+++ b/indra/newview/llagentui.h
@@ -2,31 +2,25 @@
* @file llagentui.h
* @brief Utility methods to process agent's data as slurl's etc. before displaying
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llagentwearables.cpp b/indra/newview/llagentwearables.cpp
index 5728256dba..055be4cae2 100644
--- a/indra/newview/llagentwearables.cpp
+++ b/indra/newview/llagentwearables.cpp
@@ -2,31 +2,25 @@
* @file llagentwearables.cpp
* @brief LLAgentWearables class implementation
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -48,7 +42,6 @@
#include "llmd5.h"
#include "llnotificationsutil.h"
#include "lloutfitobserver.h"
-#include "llpaneloutfitsinventory.h"
#include "llsidepanelappearance.h"
#include "llsidetray.h"
#include "lltexlayer.h"
@@ -385,10 +378,13 @@ void LLAgentWearables::sendAgentWearablesUpdate()
gAgent.sendReliableMessage();
}
-void LLAgentWearables::saveWearable(const LLWearableType::EType type, const U32 index, BOOL send_update)
+void LLAgentWearables::saveWearable(const LLWearableType::EType type, const U32 index, BOOL send_update,
+ const std::string new_name)
{
LLWearable* old_wearable = getWearable(type, index);
- if (old_wearable && (old_wearable->isDirty() || old_wearable->isOldVersion()))
+ 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);
@@ -403,6 +399,12 @@ void LLAgentWearables::saveWearable(const LLWearableType::EType type, const U32
LLInventoryItem* item = gInventory.getItem(old_item_id);
if (item)
{
+ std::string item_name = item->getName();
+ if (name_changed)
+ {
+ llinfos << "saveWearable changing name from " << item->getName() << " to " << new_name << llendl;
+ item_name = new_name;
+ }
// Update existing inventory item
LLPointer<LLViewerInventoryItem> template_item =
new LLViewerInventoryItem(item->getUUID(),
@@ -411,7 +413,7 @@ void LLAgentWearables::saveWearable(const LLWearableType::EType type, const U32
new_wearable->getAssetID(),
new_wearable->getAssetType(),
item->getInventoryType(),
- item->getName(),
+ item_name,
item->getDescription(),
item->getSaleInfo(),
item->getFlags(),
@@ -419,6 +421,10 @@ void LLAgentWearables::saveWearable(const LLWearableType::EType type, const U32
template_item->setTransactionID(new_wearable->getTransactionID());
template_item->updateServer(FALSE);
gInventory.updateItem(template_item);
+ if (name_changed)
+ {
+ gInventory.notifyObservers();
+ }
}
else
{
@@ -512,7 +518,11 @@ void LLAgentWearables::saveWearableAs(const LLWearableType::EType type,
void LLAgentWearables::revertWearable(const LLWearableType::EType type, const U32 index)
{
LLWearable* wearable = getWearable(type, index);
- wearable->revertValues();
+ llassert(wearable);
+ if (wearable)
+ {
+ wearable->revertValues();
+ }
gAgent.sendAgentSetAppearance();
}
@@ -544,6 +554,7 @@ void LLAgentWearables::setWearableName(const LLUUID& item_id, const std::string&
{
LLWearable* old_wearable = getWearable((LLWearableType::EType)i,j);
llassert(old_wearable);
+ if (!old_wearable) continue;
std::string old_name = old_wearable->getName();
old_wearable->setName(new_name);
@@ -805,7 +816,7 @@ void LLAgentWearables::popWearable(const LLWearableType::EType type, U32 index)
if (wearable)
{
mWearableDatas[type].erase(mWearableDatas[type].begin() + index);
- gAgentAvatarp->wearableUpdated(wearable->getType(), FALSE);
+ gAgentAvatarp->wearableUpdated(wearable->getType(), TRUE);
wearable->setLabelUpdated();
}
}
@@ -1232,45 +1243,6 @@ void LLAgentWearables::createStandardWearablesAllDone()
gAgentAvatarp->onFirstTEMessageReceived();
}
-
-class LLShowCreatedOutfit: public LLInventoryCallback
-{
-public:
- LLShowCreatedOutfit(LLUUID& folder_id):
- mFolderID(folder_id)
- {
- }
-
- virtual ~LLShowCreatedOutfit()
- {
- LLSD key;
- LLSideTray::getInstance()->showPanel("panel_outfits_inventory", key);
- LLPanelOutfitsInventory *outfit_panel =
- dynamic_cast<LLPanelOutfitsInventory*>(LLSideTray::getInstance()->getPanel("panel_outfits_inventory"));
- // TODO: add handling "My Outfits" tab.
- if (outfit_panel && outfit_panel->isCOFPanelActive())
- {
- outfit_panel->getRootFolder()->clearSelection();
- outfit_panel->getRootFolder()->setSelectionByID(mFolderID, TRUE);
- }
- LLAccordionCtrlTab* tab_outfits = outfit_panel ? outfit_panel->findChild<LLAccordionCtrlTab>("tab_outfits") : 0;
- if (tab_outfits && !tab_outfits->getDisplayChildren())
- {
- tab_outfits->changeOpenClose(tab_outfits->getDisplayChildren());
- }
-
- LLAppearanceMgr::instance().updateIsDirty();
- LLAppearanceMgr::instance().updatePanelOutfitName("");
- }
-
- virtual void fire(const LLUUID&)
- {
- }
-
-private:
- LLUUID mFolderID;
-};
-
void LLAgentWearables::makeNewOutfitDone(S32 type, U32 index)
{
LLUUID first_item_id = getWearableItemID((LLWearableType::EType)type, index);
@@ -1647,11 +1619,14 @@ void LLAgentWearables::queryWearableCache()
gAgentQueryManager.mActiveCacheQueries[baked_index] = gAgentQueryManager.mWearablesCacheQueryID;
}
-
- llinfos << "Requesting texture cache entry for " << num_queries << " baked textures" << llendl;
- gMessageSystem->sendReliable(gAgent.getRegion()->getHost());
- gAgentQueryManager.mNumPendingQueries++;
- gAgentQueryManager.mWearablesCacheQueryID++;
+ //VWR-22113: gAgent.getRegion() can return null if invalid, seen here on logout
+ if(gAgent.getRegion())
+ {
+ llinfos << "Requesting texture cache entry for " << num_queries << " baked textures" << llendl;
+ gMessageSystem->sendReliable(gAgent.getRegion()->getHost());
+ gAgentQueryManager.mNumPendingQueries++;
+ gAgentQueryManager.mWearablesCacheQueryID++;
+ }
}
LLUUID LLAgentWearables::computeBakedTextureHash(LLVOAvatarDefines::EBakedTextureIndex baked_index,
@@ -1778,7 +1753,7 @@ void LLAgentWearables::userUpdateAttachments(LLInventoryModel::item_array_t& obj
LLViewerObject *objectp = (*attachment_iter);
if (objectp)
{
- LLUUID object_item_id = objectp->getItemID();
+ LLUUID object_item_id = objectp->getAttachmentItemID();
if (requested_item_ids.find(object_item_id) != requested_item_ids.end())
{
// Object currently worn, was requested.
@@ -1907,11 +1882,7 @@ void LLAgentWearables::userAttachMultipleAttachments(LLInventoryModel::item_arra
msg->nextBlockFast(_PREHASH_ObjectData );
msg->addUUIDFast(_PREHASH_ItemID, item->getLinkedUUID());
msg->addUUIDFast(_PREHASH_OwnerID, item->getPermissions().getOwner());
-#if ENABLE_MULTIATTACHMENTS
- msg->addU8Fast(_PREHASH_AttachmentPt, 0 | ATTACHMENT_ADD );
-#else
- msg->addU8Fast(_PREHASH_AttachmentPt, 0 ); // Wear at the previous or default attachment point
-#endif
+ msg->addU8Fast(_PREHASH_AttachmentPt, 0 | ATTACHMENT_ADD); // Wear at the previous or default attachment point
pack_permissions_slam(msg, item->getFlags(), item->getPermissions());
msg->addStringFast(_PREHASH_Name, item->getName());
msg->addStringFast(_PREHASH_Description, item->getDescription());
@@ -1981,7 +1952,11 @@ 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);
- wearable->animateParams(delta, upload_bake);
+ llassert(wearable);
+ if (wearable)
+ {
+ wearable->animateParams(delta, upload_bake);
+ }
}
}
}
diff --git a/indra/newview/llagentwearables.h b/indra/newview/llagentwearables.h
index 8122971db6..d7e77a5a5b 100644
--- a/indra/newview/llagentwearables.h
+++ b/indra/newview/llagentwearables.h
@@ -2,31 +2,25 @@
* @file llagentwearables.h
* @brief LLAgentWearables class header file
*
- * $LicenseInfo:firstyear=2000&license=viewergpl$
- *
- * Copyright (c) 2000-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2000&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -206,7 +200,8 @@ private:
//--------------------------------------------------------------------
public:
void saveWearableAs(const LLWearableType::EType type, const U32 index, const std::string& new_name, BOOL save_in_lost_and_found);
- void saveWearable(const LLWearableType::EType type, const U32 index, BOOL send_update = TRUE);
+ void saveWearable(const LLWearableType::EType type, const U32 index, BOOL send_update = TRUE,
+ const std::string new_name = "");
void saveAllWearables();
void revertWearable(const LLWearableType::EType type, const U32 index);
diff --git a/indra/newview/llagentwearablesfetch.cpp b/indra/newview/llagentwearablesfetch.cpp
index 931aba1d41..1edc96e165 100644
--- a/indra/newview/llagentwearablesfetch.cpp
+++ b/indra/newview/llagentwearablesfetch.cpp
@@ -2,31 +2,25 @@
* @file llagentwearablesfetch.cpp
* @brief LLAgentWearblesFetch class implementation
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -48,6 +42,12 @@ public:
virtual ~LLOrderMyOutfitsOnDestroy()
{
+ if (!LLApp::isRunning())
+ {
+ llwarns << "called during shutdown, skipping" << llendl;
+ return;
+ }
+
const LLUUID& my_outfits_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_MY_OUTFITS);
if (my_outfits_id.isNull()) return;
@@ -115,6 +115,7 @@ void LLInitialWearablesFetch::processContents()
LLInventoryModel::cat_array_t cat_array;
LLInventoryModel::item_array_t wearable_array;
LLFindWearables is_wearable;
+ llassert_always(mComplete.size() != 0);
gInventory.collectDescendentsIf(mComplete.front(), cat_array, wearable_array,
LLInventoryModel::EXCLUDE_TRASH, is_wearable);
@@ -209,7 +210,7 @@ void LLInitialWearablesFetch::processWearablesMessage()
{
LLViewerObject* attached_object = (*attachment_iter);
if (!attached_object) continue;
- const LLUUID& item_id = attached_object->getItemID();
+ const LLUUID& item_id = attached_object->getAttachmentItemID();
if (item_id.isNull()) continue;
ids.push_back(item_id);
}
@@ -241,6 +242,8 @@ LLLibraryOutfitsFetch::LLLibraryOutfitsFetch(const LLUUID& my_outfits_id) :
mCurrFetchStep(LOFS_FOLDER),
mOutfitsPopulated(false)
{
+ llinfos << "created" << llendl;
+
mMyOutfitsID = LLUUID::null;
mClothingID = LLUUID::null;
mLibraryClothingID = LLUUID::null;
@@ -250,10 +253,13 @@ LLLibraryOutfitsFetch::LLLibraryOutfitsFetch(const LLUUID& my_outfits_id) :
LLLibraryOutfitsFetch::~LLLibraryOutfitsFetch()
{
+ llinfos << "destroyed" << llendl;
}
void LLLibraryOutfitsFetch::done()
{
+ llinfos << "start" << llendl;
+
// Delay this until idle() routine, since it's a heavy operation and
// we also can't have it run within notifyObservers.
doOnIdleOneTime(boost::bind(&LLLibraryOutfitsFetch::doneIdle,this));
@@ -262,6 +268,8 @@ void LLLibraryOutfitsFetch::done()
void LLLibraryOutfitsFetch::doneIdle()
{
+ llinfos << "start" << llendl;
+
gInventory.addObserver(this); // Add this back in since it was taken out during ::done()
switch (mCurrFetchStep)
@@ -302,6 +310,8 @@ void LLLibraryOutfitsFetch::doneIdle()
void LLLibraryOutfitsFetch::folderDone()
{
+ llinfos << "start" << llendl;
+
LLInventoryModel::cat_array_t cat_array;
LLInventoryModel::item_array_t wearable_array;
gInventory.collectDescendents(mMyOutfitsID, cat_array, wearable_array,
@@ -309,8 +319,7 @@ void LLLibraryOutfitsFetch::folderDone()
// Early out if we already have items in My Outfits
// except the case when My Outfits contains just initial outfit
- if (cat_array.count() > 1 ||
- cat_array.count() == 1 && cat_array[0]->getUUID() != LLAppearanceMgr::getInstance()->getBaseOutfitUUID())
+ if (cat_array.count() > 1)
{
mOutfitsPopulated = true;
return;
@@ -348,6 +357,8 @@ void LLLibraryOutfitsFetch::folderDone()
void LLLibraryOutfitsFetch::outfitsDone()
{
+ llinfos << "start" << llendl;
+
LLInventoryModel::cat_array_t cat_array;
LLInventoryModel::item_array_t wearable_array;
uuid_vec_t folders;
@@ -425,6 +436,8 @@ private:
// Copy the clothing folders from the library into the imported clothing folder
void LLLibraryOutfitsFetch::libraryDone()
{
+ llinfos << "start" << llendl;
+
if (mImportedClothingID != LLUUID::null)
{
// Skip straight to fetching the contents of the imported folder
@@ -480,6 +493,8 @@ void LLLibraryOutfitsFetch::libraryDone()
void LLLibraryOutfitsFetch::importedFolderFetch()
{
+ llinfos << "start" << llendl;
+
// Fetch the contents of the Imported Clothing Folder
uuid_vec_t folders;
folders.push_back(mImportedClothingID);
@@ -495,6 +510,8 @@ void LLLibraryOutfitsFetch::importedFolderFetch()
void LLLibraryOutfitsFetch::importedFolderDone()
{
+ llinfos << "start" << llendl;
+
LLInventoryModel::cat_array_t cat_array;
LLInventoryModel::item_array_t wearable_array;
uuid_vec_t folders;
@@ -525,6 +542,8 @@ void LLLibraryOutfitsFetch::importedFolderDone()
void LLLibraryOutfitsFetch::contentsDone()
{
+ llinfos << "start" << llendl;
+
LLInventoryModel::cat_array_t cat_array;
LLInventoryModel::item_array_t wearable_array;
diff --git a/indra/newview/llagentwearablesfetch.h b/indra/newview/llagentwearablesfetch.h
index faa5fbaa43..7dafab4a33 100644
--- a/indra/newview/llagentwearablesfetch.h
+++ b/indra/newview/llagentwearablesfetch.h
@@ -2,31 +2,25 @@
* @file llagentwearablesinitialfetch.h
* @brief LLAgentWearablesInitialFetch class header file
*
- * $LicenseInfo:firstyear=2000&license=viewergpl$
- *
- * Copyright (c) 2000-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2000&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llanimstatelabels.cpp b/indra/newview/llanimstatelabels.cpp
index c81357b180..a0858612c2 100644
--- a/indra/newview/llanimstatelabels.cpp
+++ b/indra/newview/llanimstatelabels.cpp
@@ -2,31 +2,25 @@
* @file llanimationstatenames.cpp
* @brief Names for built-in animation states
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llanimstatelabels.h b/indra/newview/llanimstatelabels.h
index 989580a27b..97aabf5378 100644
--- a/indra/newview/llanimstatelabels.h
+++ b/indra/newview/llanimstatelabels.h
@@ -3,31 +3,25 @@
* @brief Declaration of LLVOAvatar class which is a derivation fo
* LLViewerObject
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llappearance.h b/indra/newview/llappearance.h
index 9018150146..a28b77b1fc 100644
--- a/indra/newview/llappearance.h
+++ b/indra/newview/llappearance.h
@@ -2,31 +2,25 @@
* @file llappearance.h
* @brief LLAppearance class definition
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llappearancemgr.cpp b/indra/newview/llappearancemgr.cpp
index 3947be49bb..ed5e8ceee3 100644
--- a/indra/newview/llappearancemgr.cpp
+++ b/indra/newview/llappearancemgr.cpp
@@ -2,31 +2,25 @@
* @file llappearancemgr.cpp
* @brief Manager for initiating appearance changes on the viewer
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -37,6 +31,7 @@
#include "llagentcamera.h"
#include "llagentwearables.h"
#include "llappearancemgr.h"
+#include "llattachmentsmgr.h"
#include "llcommandhandler.h"
#include "lleventtimer.h"
#include "llgesturemgr.h"
@@ -45,7 +40,7 @@
#include "llinventoryobserver.h"
#include "llnotificationsutil.h"
#include "lloutfitobserver.h"
-#include "llpaneloutfitsinventory.h"
+#include "lloutfitslist.h"
#include "llselectmgr.h"
#include "llsidepanelappearance.h"
#include "llsidetray.h"
@@ -55,6 +50,25 @@
#include "llviewerregion.h"
#include "llwearablelist.h"
+// RAII thingy to guarantee that a variable gets reset when the Setter
+// goes out of scope. More general utility would be handy - TODO:
+// check boost.
+class BoolSetter
+{
+public:
+ BoolSetter(bool& var):
+ mVar(var)
+ {
+ mVar = true;
+ }
+ ~BoolSetter()
+ {
+ mVar = false;
+ }
+private:
+ bool& mVar;
+};
+
char ORDER_NUMBER_SEPARATOR('@');
class LLOutfitUnLockTimer: public LLEventTimer
@@ -188,8 +202,9 @@ public:
};
-LLUpdateAppearanceOnDestroy::LLUpdateAppearanceOnDestroy():
- mFireCount(0)
+LLUpdateAppearanceOnDestroy::LLUpdateAppearanceOnDestroy(bool update_base_outfit_ordering):
+ mFireCount(0),
+ mUpdateBaseOrder(update_base_outfit_ordering)
{
}
@@ -199,7 +214,7 @@ LLUpdateAppearanceOnDestroy::~LLUpdateAppearanceOnDestroy()
if (!LLApp::isExiting())
{
- LLAppearanceMgr::instance().updateAppearanceFromCOF();
+ LLAppearanceMgr::instance().updateAppearanceFromCOF(mUpdateBaseOrder);
}
}
@@ -383,7 +398,10 @@ void LLWearableHoldingPattern::checkMissingWearables()
for (S32 type = 0; type < LLWearableType::WT_COUNT; ++type)
{
- llinfos << "type " << type << " requested " << requested_by_type[type] << " found " << found_by_type[type] << llendl;
+ if (requested_by_type[type] > found_by_type[type])
+ {
+ llwarns << "got fewer wearables than requested, type " << type << ": requested " << requested_by_type[type] << ", found " << found_by_type[type] << llendl;
+ }
if (found_by_type[type] > 0)
continue;
if (
@@ -650,12 +668,15 @@ bool LLWearableHoldingPattern::pollMissingWearables()
bool timed_out = isTimedOut();
bool missing_completed = isMissingCompleted();
bool done = timed_out || missing_completed;
-
- llinfos << "polling missing wearables, waiting for items " << mTypesToRecover.size()
- << " links " << mTypesToLink.size()
- << " wearables, timed out " << timed_out
- << " elapsed " << mWaitTime.getElapsedTimeF32()
- << " done " << done << llendl;
+
+ if (!done)
+ {
+ llinfos << "polling missing wearables, waiting for items " << mTypesToRecover.size()
+ << " links " << mTypesToLink.size()
+ << " wearables, timed out " << timed_out
+ << " elapsed " << mWaitTime.getElapsedTimeF32()
+ << " done " << done << llendl;
+ }
if (done)
{
@@ -775,12 +796,8 @@ void LLWearableHoldingPattern::onWearableAssetFetch(LLWearable *wearable)
}
mResolved += 1; // just counting callbacks, not successes.
- llinfos << "onWearableAssetFetch, resolved count " << mResolved << " of requested " << getFoundList().size() << llendl;
- if (wearable)
- {
- llinfos << "wearable found, type " << wearable->getType() << " asset " << wearable->getAssetID() << llendl;
- }
- else
+ llinfos << "resolved " << mResolved << "/" << getFoundList().size() << llendl;
+ if (!wearable)
{
llwarns << "no wearable found" << llendl;
}
@@ -810,10 +827,14 @@ void LLWearableHoldingPattern::onWearableAssetFetch(LLWearable *wearable)
LLFoundData& data = *iter;
if(wearable->getAssetID() == data.mAssetID)
{
- data.mWearable = wearable;
// Failing this means inventory or asset server are corrupted in a way we don't handle.
- llassert((data.mWearableType < LLWearableType::WT_COUNT) && (wearable->getType() == data.mWearableType));
- break;
+ if ((data.mWearableType >= LLWearableType::WT_COUNT) || (wearable->getType() != data.mWearableType))
+ {
+ llwarns << "recovered wearable but type invalid. inventory wearable type: " << data.mWearableType << " asset wearable type: " << wearable->getType() << llendl;
+ break;
+ }
+
+ data.mWearable = wearable;
}
}
}
@@ -925,7 +946,7 @@ const LLUUID LLAppearanceMgr::getBaseOutfitUUID()
return outfit_cat->getUUID();
}
-bool LLAppearanceMgr::wearItemOnAvatar(const LLUUID& item_id_to_wear, bool do_update, bool 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;
@@ -935,7 +956,9 @@ bool LLAppearanceMgr::wearItemOnAvatar(const LLUUID& item_id_to_wear, bool do_up
// That means subscribers will be notified that loading is done after first item in a batch is worn.
// (loading indicator disappears for example before all selected items are worn)
// Have not fix this issue for 2.1 because of stability reason. EXT-7777.
- gAgentWearables.notifyLoadingStarted();
+
+ // Disabled for now because it is *not* acceptable to call updateAppearanceFromCOF() multiple times
+// gAgentWearables.notifyLoadingStarted();
LLViewerInventoryItem* item_to_wear = gInventory.getItem(item_id_to_wear);
if (!item_to_wear) return false;
@@ -955,6 +978,10 @@ bool LLAppearanceMgr::wearItemOnAvatar(const LLUUID& item_id_to_wear, bool do_up
LLNotificationsUtil::add("CannotWearTrash");
return false;
}
+ else if (gInventory.isObjectDescendentOf(item_to_wear->getUUID(), LLAppearanceMgr::instance().getCOF())) // EXT-84911
+ {
+ return false;
+ }
switch (item_to_wear->getType())
{
@@ -967,27 +994,20 @@ bool LLAppearanceMgr::wearItemOnAvatar(const LLUUID& item_id_to_wear, bool do_up
{
removeCOFItemLinks(gAgentWearables.getWearableItemID(item_to_wear->getWearableType(), wearable_count-1), false);
}
+ addCOFItemLink(item_to_wear, do_update, cb);
}
+ break;
case LLAssetType::AT_BODYPART:
- // Don't wear anything until initial wearables are loaded, can
- // destroy clothing items.
- if (!gAgentWearables.areWearablesLoaded())
- {
- LLNotificationsUtil::add("CanNotChangeAppearanceUntilLoaded");
- return false;
- }
-
+ // TODO: investigate wearables may not be loaded at this point EXT-8231
+
// 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.
- if (item_to_wear->getType() == LLAssetType::AT_BODYPART)
- {
- removeCOFLinksOfType(item_to_wear->getWearableType(), false);
- }
+ removeCOFLinksOfType(item_to_wear->getWearableType(), false);
- addCOFItemLink(item_to_wear, do_update);
+ addCOFItemLink(item_to_wear, do_update, cb);
break;
case LLAssetType::AT_OBJECT:
- rez_attachment(item_to_wear, NULL);
+ rez_attachment(item_to_wear, NULL, replace);
break;
default: return false;;
}
@@ -1250,6 +1270,11 @@ bool LLAppearanceMgr::getCanRemoveFromCOF(const LLUUID& outfit_cat_id)
// static
bool LLAppearanceMgr::getCanAddToCOF(const LLUUID& outfit_cat_id)
{
+ if (gAgentWearables.isCOFChangeInProgress())
+ {
+ return false;
+ }
+
LLInventoryModel::cat_array_t cats;
LLInventoryModel::item_array_t items;
LLFindWearablesEx not_worn(/*is_worn=*/ false, /*include_body_parts=*/ false);
@@ -1261,6 +1286,24 @@ bool LLAppearanceMgr::getCanAddToCOF(const LLUUID& outfit_cat_id)
return items.size() > 0;
}
+bool LLAppearanceMgr::getCanReplaceCOF(const LLUUID& outfit_cat_id)
+{
+ // Don't allow wearing anything while we're changing appearance.
+ if (gAgentWearables.isCOFChangeInProgress())
+ {
+ return false;
+ }
+
+ // Check whether it's the base outfit.
+ if (outfit_cat_id.isNull() || outfit_cat_id == getBaseOutfitUUID())
+ {
+ return false;
+ }
+
+ // Check whether the outfit contains the full set of body parts (shape+skin+hair+eyes).
+ return getCanMakeFolderIntoOutfit(outfit_cat_id);
+}
+
void LLAppearanceMgr::purgeBaseOutfitLink(const LLUUID& category)
{
LLInventoryModel::cat_array_t cats;
@@ -1415,7 +1458,7 @@ void LLAppearanceMgr::updateCOF(const LLUUID& category, bool append)
// Create links to new COF contents.
llinfos << "creating LLUpdateAppearanceOnDestroy" << llendl;
- LLPointer<LLInventoryCallback> link_waiter = new LLUpdateAppearanceOnDestroy;
+ LLPointer<LLInventoryCallback> link_waiter = new LLUpdateAppearanceOnDestroy(!append);
#ifndef LL_RELEASE_FOR_DOWNLOAD
llinfos << "Linking body items" << llendl;
@@ -1535,19 +1578,102 @@ bool sort_by_description(const LLInventoryItem* item1, const LLInventoryItem* it
return item1->LLInventoryItem::getDescription() < item2->LLInventoryItem::getDescription();
}
-void LLAppearanceMgr::updateAppearanceFromCOF()
+void item_array_diff(LLInventoryModel::item_array_t& full_list,
+ LLInventoryModel::item_array_t& keep_list,
+ LLInventoryModel::item_array_t& kill_list)
+
{
+ for (LLInventoryModel::item_array_t::iterator it = full_list.begin();
+ it != full_list.end();
+ ++it)
+ {
+ LLViewerInventoryItem *item = *it;
+ if (keep_list.find(item) < 0) // Why on earth does LLDynamicArray need to redefine find()?
+ {
+ kill_list.push_back(item);
+ }
+ }
+}
+
+S32 LLAppearanceMgr::findExcessOrDuplicateItems(const LLUUID& cat_id,
+ LLAssetType::EType type,
+ S32 max_items,
+ LLInventoryModel::item_array_t& items_to_kill)
+{
+ S32 to_kill_count = 0;
+
+ LLInventoryModel::item_array_t items;
+ getDescendentsOfAssetType(cat_id, items, type, false);
+ LLInventoryModel::item_array_t curr_items = items;
+ removeDuplicateItems(items);
+ if (max_items > 0)
+ {
+ filterWearableItems(items, max_items);
+ }
+ LLInventoryModel::item_array_t kill_items;
+ item_array_diff(curr_items,items,kill_items);
+ for (LLInventoryModel::item_array_t::iterator it = kill_items.begin();
+ it != kill_items.end();
+ ++it)
+ {
+ items_to_kill.push_back(*it);
+ to_kill_count++;
+ }
+ return to_kill_count;
+}
+
+
+void LLAppearanceMgr::enforceItemRestrictions()
+{
+ S32 purge_count = 0;
+ LLInventoryModel::item_array_t items_to_kill;
+
+ purge_count += findExcessOrDuplicateItems(getCOF(),LLAssetType::AT_BODYPART,
+ 1, items_to_kill);
+ purge_count += findExcessOrDuplicateItems(getCOF(),LLAssetType::AT_CLOTHING,
+ LLAgentWearables::MAX_CLOTHING_PER_TYPE, items_to_kill);
+ purge_count += findExcessOrDuplicateItems(getCOF(),LLAssetType::AT_OBJECT,
+ -1, items_to_kill);
+
+ if (items_to_kill.size()>0)
+ {
+ for (LLInventoryModel::item_array_t::iterator it = items_to_kill.begin();
+ it != items_to_kill.end();
+ ++it)
+ {
+ LLViewerInventoryItem *item = *it;
+ llinfos << "purging duplicate or excess item " << item->getName() << llendl;
+ gInventory.purgeObject(item->getUUID());
+ }
+ gInventory.notifyObservers();
+ }
+}
+
+void LLAppearanceMgr::updateAppearanceFromCOF(bool update_base_outfit_ordering)
+{
+ if (mIsInUpdateAppearanceFromCOF)
+ {
+ llwarns << "Called updateAppearanceFromCOF inside updateAppearanceFromCOF, skipping" << llendl;
+ return;
+ }
+
+ BoolSetter setIsInUpdateAppearanceFromCOF(mIsInUpdateAppearanceFromCOF);
+
+ llinfos << "starting" << llendl;
+
//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)
- updateClothingOrderingInfo();
+ updateClothingOrderingInfo(LLUUID::null, update_base_outfit_ordering);
+ // Remove duplicate or excess wearables. Should normally be enforced at the UI level, but
+ // this should catch anything that gets through.
+ enforceItemRestrictions();
+
// update dirty flag to see if the state of the COF matches
// the saved outfit stored as a folder link
- llinfos << "starting" << llendl;
-
updateIsDirty();
- dumpCat(getCOF(),"COF, start");
+ //dumpCat(getCOF(),"COF, start");
bool follow_folder_links = true;
LLUUID current_outfit_id = getCOF();
@@ -1563,6 +1689,9 @@ void LLAppearanceMgr::updateAppearanceFromCOF()
remove_non_link_items(obj_items);
remove_non_link_items(gest_items);
+ dumpItemArray(wear_items,"asset_dump: wear_item");
+ dumpItemArray(obj_items,"asset_dump: obj_item");
+
if(!wear_items.count())
{
LLNotificationsUtil::add("CouldNotPutOnOutfit");
@@ -1627,7 +1756,7 @@ void LLAppearanceMgr::updateAppearanceFromCOF()
{
LLFoundData& found = *it;
- llinfos << "waiting for onWearableAssetFetch callback, asset " << found.mAssetID.asString() << llendl;
+ lldebugs << "waiting for onWearableAssetFetch callback, asset " << found.mAssetID.asString() << llendl;
// Fetch the wearables about to be worn.
LLWearableList::instance().getAsset(found.mAssetID,
@@ -1697,9 +1826,10 @@ void LLAppearanceMgr::getUserDescendents(const LLUUID& category,
void LLAppearanceMgr::wearInventoryCategory(LLInventoryCategory* category, bool copy, bool append)
{
- gAgentWearables.notifyLoadingStarted();
if(!category) return;
+ gAgentWearables.notifyLoadingStarted();
+
llinfos << "wearInventoryCategory( " << category->getName()
<< " )" << llendl;
@@ -1861,9 +1991,10 @@ bool areMatchingWearables(const LLViewerInventoryItem *a, const LLViewerInventor
class LLDeferredCOFLinkObserver: public LLInventoryObserver
{
public:
- LLDeferredCOFLinkObserver(const LLUUID& item_id, bool do_update):
+ LLDeferredCOFLinkObserver(const LLUUID& item_id, bool do_update, LLPointer<LLInventoryCallback> cb = NULL):
mItemID(item_id),
- mDoUpdate(do_update)
+ mDoUpdate(do_update),
+ mCallback(cb)
{
}
@@ -1877,7 +2008,7 @@ public:
if (item)
{
gInventory.removeObserver(this);
- LLAppearanceMgr::instance().addCOFItemLink(item,mDoUpdate);
+ LLAppearanceMgr::instance().addCOFItemLink(item,mDoUpdate,mCallback);
delete this;
}
}
@@ -1885,26 +2016,27 @@ public:
private:
const LLUUID mItemID;
bool mDoUpdate;
+ 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 )
+void LLAppearanceMgr::addCOFItemLink(const LLUUID &item_id, bool do_update, LLPointer<LLInventoryCallback> cb)
{
const LLInventoryItem *item = gInventory.getItem(item_id);
if (!item)
{
- LLDeferredCOFLinkObserver *observer = new LLDeferredCOFLinkObserver(item_id, do_update);
+ LLDeferredCOFLinkObserver *observer = new LLDeferredCOFLinkObserver(item_id, do_update, cb);
gInventory.addObserver(observer);
}
else
{
- addCOFItemLink(item, do_update);
+ addCOFItemLink(item, do_update, cb);
}
}
-void LLAppearanceMgr::addCOFItemLink(const LLInventoryItem *item, bool do_update )
+void LLAppearanceMgr::addCOFItemLink(const LLInventoryItem *item, bool do_update, LLPointer<LLInventoryCallback> cb)
{
const LLViewerInventoryItem *vitem = dynamic_cast<const LLViewerInventoryItem*>(item);
if (!vitem)
@@ -1965,7 +2097,10 @@ void LLAppearanceMgr::addCOFItemLink(const LLInventoryItem *item, bool do_update
}
else
{
- LLPointer<LLInventoryCallback> cb = do_update ? new ModifiedCOFCallback : 0;
+ if(do_update && cb.isNull())
+ {
+ cb = new ModifiedCOFCallback;
+ }
const std::string description = vitem->getIsLinkType() ? vitem->getDescription() : "";
link_inventory_item( gAgent.getID(),
vitem->getLinkedUUID(),
@@ -2076,17 +2211,19 @@ void LLAppearanceMgr::updateIsDirty()
}
else
{
+ LLIsOfAssetType collector = LLIsOfAssetType(LLAssetType::AT_LINK);
+
LLInventoryModel::cat_array_t cof_cats;
LLInventoryModel::item_array_t cof_items;
- gInventory.collectDescendents(cof, cof_cats, cof_items,
- LLInventoryModel::EXCLUDE_TRASH);
+ gInventory.collectDescendentsIf(cof, cof_cats, cof_items,
+ LLInventoryModel::EXCLUDE_TRASH, collector);
LLInventoryModel::cat_array_t outfit_cats;
LLInventoryModel::item_array_t outfit_items;
- gInventory.collectDescendents(base_outfit, outfit_cats, outfit_items,
- LLInventoryModel::EXCLUDE_TRASH);
+ gInventory.collectDescendentsIf(base_outfit, outfit_cats, outfit_items,
+ LLInventoryModel::EXCLUDE_TRASH, collector);
- if(outfit_items.count() != cof_items.count() -1)
+ if(outfit_items.count() != cof_items.count())
{
// Current outfit folder should have one more item than the outfit folder.
// this one item is the link back to the outfit folder itself.
@@ -2094,16 +2231,6 @@ void LLAppearanceMgr::updateIsDirty()
return;
}
- //getting rid of base outfit folder link to simplify comparison
- for (LLInventoryModel::item_array_t::iterator it = cof_items.begin(); it != cof_items.end(); ++it)
- {
- if (*it == base_outfit_item)
- {
- cof_items.erase(it);
- break;
- }
- }
-
//"dirty" - also means a difference in linked UUIDs and/or a difference in wearables order (links' descriptions)
std::sort(cof_items.begin(), cof_items.end(), sort_by_linked_uuid);
std::sort(outfit_items.begin(), outfit_items.end(), sort_by_linked_uuid);
@@ -2114,6 +2241,7 @@ void LLAppearanceMgr::updateIsDirty()
LLViewerInventoryItem *item2 = outfit_items.get(i);
if (item1->getLinkedUUID() != item2->getLinkedUUID() ||
+ item1->getName() != item2->getName() ||
item1->LLInventoryItem::getDescription() != item2->LLInventoryItem::getDescription())
{
mOutfitIsDirty = true;
@@ -2180,12 +2308,17 @@ bool LLAppearanceMgr::updateBaseOutfit()
void LLAppearanceMgr::divvyWearablesByType(const LLInventoryModel::item_array_t& items, wearables_by_type_t& items_by_type)
{
- items_by_type.reserve(LLWearableType::WT_COUNT);
+ items_by_type.resize(LLWearableType::WT_COUNT);
if (items.empty()) return;
for (S32 i=0; i<items.count(); i++)
{
LLViewerInventoryItem *item = items.get(i);
+ if (!item)
+ {
+ LL_WARNS("Appearance") << "NULL item found" << llendl;
+ continue;
+ }
// Ignore non-wearables.
if (!item->isWearableType())
continue;
@@ -2208,6 +2341,7 @@ std::string build_order_string(LLWearableType::EType type, U32 i)
struct WearablesOrderComparator
{
+ LOG_CLASS(WearablesOrderComparator);
WearablesOrderComparator(const LLWearableType::EType type)
{
mControlSize = build_order_string(type, 0).size();
@@ -2241,11 +2375,19 @@ struct WearablesOrderComparator
U32 mControlSize;
};
-void LLAppearanceMgr::updateClothingOrderingInfo(LLUUID cat_id)
+void LLAppearanceMgr::updateClothingOrderingInfo(LLUUID cat_id, bool update_base_outfit_ordering)
{
if (cat_id.isNull())
{
cat_id = getCOF();
+ if (update_base_outfit_ordering)
+ {
+ const LLUUID base_outfit_id = getBaseOutfitUUID();
+ if (base_outfit_id.notNull())
+ {
+ updateClothingOrderingInfo(base_outfit_id,false);
+ }
+ }
}
// COF is processed if cat_id is not specified
@@ -2278,6 +2420,7 @@ void LLAppearanceMgr::updateClothingOrderingInfo(LLUUID cat_id)
item->setComplete(TRUE);
item->updateServer(FALSE);
gInventory.updateItem(item);
+
inventory_changed = true;
}
}
@@ -2305,18 +2448,11 @@ public:
{
LLSideTray::getInstance()->showPanel("panel_outfits_inventory", key);
}
- LLPanelOutfitsInventory *outfit_panel =
- dynamic_cast<LLPanelOutfitsInventory*>(LLSideTray::getInstance()->getPanel("panel_outfits_inventory"));
- if (outfit_panel)
- {
- outfit_panel->getRootFolder()->clearSelection();
- outfit_panel->getRootFolder()->setSelectionByID(mFolderID, TRUE);
- }
-
- LLAccordionCtrlTab* tab_outfits = outfit_panel ? outfit_panel->findChild<LLAccordionCtrlTab>("tab_outfits") : 0;
- if (tab_outfits && !tab_outfits->getDisplayChildren())
+ LLOutfitsList *outfits_list =
+ dynamic_cast<LLOutfitsList*>(LLSideTray::getInstance()->getPanel("outfitslist_tab"));
+ if (outfits_list)
{
- tab_outfits->changeOpenClose(tab_outfits->getDisplayChildren());
+ outfits_list->setSelectedOutfitByUUID(mFolderID);
}
LLAppearanceMgr::getInstance()->updateIsDirty();
@@ -2371,30 +2507,26 @@ void LLAppearanceMgr::removeItemFromAvatar(const LLUUID& id_to_remove)
switch (item_to_remove->getType())
{
- 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:
- gMessageSystem->newMessageFast(_PREHASH_DetachAttachmentIntoInv);
- gMessageSystem->nextBlockFast(_PREHASH_ObjectData);
- gMessageSystem->addUUIDFast(_PREHASH_AgentID, gAgent.getID());
- gMessageSystem->addUUIDFast(_PREHASH_ItemID, item_to_remove->getLinkedUUID());
- gMessageSystem->sendReliable( gAgent.getRegion()->getHost());
-
- {
- // this object might have been selected, so let the selection manager know it's gone now
- LLViewerObject *found_obj = gObjectList.findObject(item_to_remove->getLinkedUUID());
- if (found_obj)
+ case LLAssetType::AT_CLOTHING:
+ if (get_is_item_worn(id_to_remove))
{
- LLSelectMgr::getInstance()->remove(found_obj);
- };
- }
- default: break;
+ //*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;
}
+
+ // *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);
}
bool LLAppearanceMgr::moveWearable(LLViewerInventoryItem* item, bool closer_to_body)
@@ -2486,18 +2618,24 @@ void LLAppearanceMgr::dumpCat(const LLUUID& cat_id, const std::string& msg)
void LLAppearanceMgr::dumpItemArray(const LLInventoryModel::item_array_t& items,
const std::string& msg)
{
- llinfos << msg << llendl;
for (S32 i=0; i<items.count(); i++)
{
LLViewerInventoryItem *item = items.get(i);
- llinfos << i <<" " << item->getName() << llendl;
+ LLViewerInventoryItem *linked_item = item ? item->getLinkedItem() : NULL;
+ LLUUID asset_id;
+ if (linked_item)
+ {
+ asset_id = linked_item->getAssetUUID();
+ }
+ llinfos << msg << " " << i <<" " << (item ? item->getName() : "(nullitem)") << " " << asset_id.asString() << llendl;
}
llinfos << llendl;
}
LLAppearanceMgr::LLAppearanceMgr():
mAttachmentInvLinkEnabled(false),
- mOutfitIsDirty(false)
+ mOutfitIsDirty(false),
+ mIsInUpdateAppearanceFromCOF(false)
{
LLOutfitObserver& outfit_observer = LLOutfitObserver::instance();
@@ -2507,6 +2645,8 @@ LLAppearanceMgr::LLAppearanceMgr():
mUnlockOutfitTimer.reset(new LLOutfitUnLockTimer(gSavedSettings.getS32(
"OutfitOperationsTimeout")));
+
+ gIdleCallbacks.addFunction(&LLAttachmentsMgr::onIdle,NULL);
}
LLAppearanceMgr::~LLAppearanceMgr()
@@ -2519,7 +2659,6 @@ void LLAppearanceMgr::setAttachmentInvLinkEnable(bool val)
mAttachmentInvLinkEnabled = val;
}
-// BAP TODO - mRegisteredAttachments is currently maintained but not used for anything. Consider yanking.
void dumpAttachmentSet(const std::set<LLUUID>& atts, const std::string& msg)
{
llinfos << msg << llendl;
@@ -2539,14 +2678,14 @@ void dumpAttachmentSet(const std::set<LLUUID>& atts, const std::string& msg)
void LLAppearanceMgr::registerAttachment(const LLUUID& item_id)
{
- mRegisteredAttachments.insert(item_id);
gInventory.addChangedMask(LLInventoryObserver::LABEL, item_id);
if (mAttachmentInvLinkEnabled)
{
// we have to pass do_update = true to call LLAppearanceMgr::updateAppearanceFromCOF.
// it will trigger gAgentWariables.notifyLoadingFinished()
- LLAppearanceMgr::addCOFItemLink(item_id, true); // Add COF link for item.
+ // But it is not acceptable solution. See EXT-7777
+ LLAppearanceMgr::addCOFItemLink(item_id, false); // Add COF link for item.
}
else
{
@@ -2556,7 +2695,6 @@ void LLAppearanceMgr::registerAttachment(const LLUUID& item_id)
void LLAppearanceMgr::unregisterAttachment(const LLUUID& item_id)
{
- mRegisteredAttachments.erase(item_id);
gInventory.addChangedMask(LLInventoryObserver::LABEL, item_id);
if (mAttachmentInvLinkEnabled)
@@ -2569,21 +2707,24 @@ void LLAppearanceMgr::unregisterAttachment(const LLUUID& item_id)
}
}
-void LLAppearanceMgr::linkRegisteredAttachments()
+BOOL LLAppearanceMgr::getIsInCOF(const LLUUID& obj_id) const
{
- for (std::set<LLUUID>::iterator it = mRegisteredAttachments.begin();
- it != mRegisteredAttachments.end();
- ++it)
- {
- LLUUID item_id = *it;
- addCOFItemLink(item_id, true);
- }
- mRegisteredAttachments.clear();
+ return gInventory.isObjectDescendentOf(obj_id, getCOF());
}
-BOOL LLAppearanceMgr::getIsInCOF(const LLUUID& obj_id) const
+// static
+bool LLAppearanceMgr::isLinkInCOF(const LLUUID& obj_id)
{
- return gInventory.isObjectDescendentOf(obj_id, getCOF());
+ LLInventoryModel::cat_array_t cats;
+ LLInventoryModel::item_array_t items;
+ LLLinkedItemIDMatches find_links(gInventory.getLinkedItemID(obj_id));
+ gInventory.collectDescendentsIf(LLAppearanceMgr::instance().getCOF(),
+ cats,
+ items,
+ LLInventoryModel::EXCLUDE_TRASH,
+ find_links);
+
+ return !items.empty();
}
BOOL LLAppearanceMgr::getIsProtectedCOFItem(const LLUUID& obj_id) const
@@ -2613,3 +2754,192 @@ BOOL LLAppearanceMgr::getIsProtectedCOFItem(const LLUUID& obj_id) const
return FALSE;
*/
}
+
+// Shim class to allow arbitrary boost::bind
+// expressions to be run as one-time idle callbacks.
+//
+// TODO: rework idle function spec to take a boost::function in the first place.
+class OnIdleCallbackOneTime
+{
+public:
+ OnIdleCallbackOneTime(nullary_func_t callable):
+ mCallable(callable)
+ {
+ }
+ static void onIdle(void *data)
+ {
+ gIdleCallbacks.deleteFunction(onIdle, data);
+ OnIdleCallbackOneTime* self = reinterpret_cast<OnIdleCallbackOneTime*>(data);
+ self->call();
+ delete self;
+ }
+ void call()
+ {
+ mCallable();
+ }
+private:
+ nullary_func_t mCallable;
+};
+
+void doOnIdleOneTime(nullary_func_t callable)
+{
+ OnIdleCallbackOneTime* cb_functor = new OnIdleCallbackOneTime(callable);
+ gIdleCallbacks.addFunction(&OnIdleCallbackOneTime::onIdle,cb_functor);
+}
+
+// Shim class to allow generic boost functions to be run as
+// recurring idle callbacks. Callable should return true when done,
+// false to continue getting called.
+//
+// TODO: rework idle function spec to take a boost::function in the first place.
+class OnIdleCallbackRepeating
+{
+public:
+ OnIdleCallbackRepeating(bool_func_t callable):
+ mCallable(callable)
+ {
+ }
+ // Will keep getting called until the callable returns true.
+ static void onIdle(void *data)
+ {
+ OnIdleCallbackRepeating* self = reinterpret_cast<OnIdleCallbackRepeating*>(data);
+ bool done = self->call();
+ if (done)
+ {
+ gIdleCallbacks.deleteFunction(onIdle, data);
+ delete self;
+ }
+ }
+ bool call()
+ {
+ return mCallable();
+ }
+private:
+ bool_func_t mCallable;
+};
+
+void doOnIdleRepeating(bool_func_t callable)
+{
+ OnIdleCallbackRepeating* cb_functor = new OnIdleCallbackRepeating(callable);
+ gIdleCallbacks.addFunction(&OnIdleCallbackRepeating::onIdle,cb_functor);
+}
+
+class CallAfterCategoryFetchStage2: public LLInventoryFetchItemsObserver
+{
+public:
+ CallAfterCategoryFetchStage2(const uuid_vec_t& ids,
+ nullary_func_t callable) :
+ LLInventoryFetchItemsObserver(ids),
+ mCallable(callable)
+ {
+ }
+ ~CallAfterCategoryFetchStage2()
+ {
+ }
+ virtual void done()
+ {
+ llinfos << this << " done with incomplete " << mIncomplete.size()
+ << " complete " << mComplete.size() << " calling callable" << llendl;
+
+ gInventory.removeObserver(this);
+ doOnIdleOneTime(mCallable);
+ delete this;
+ }
+protected:
+ nullary_func_t mCallable;
+};
+
+class CallAfterCategoryFetchStage1: public LLInventoryFetchDescendentsObserver
+{
+public:
+ CallAfterCategoryFetchStage1(const LLUUID& cat_id, nullary_func_t callable) :
+ LLInventoryFetchDescendentsObserver(cat_id),
+ mCallable(callable)
+ {
+ }
+ ~CallAfterCategoryFetchStage1()
+ {
+ }
+ 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.
+ LLInventoryModel::cat_array_t cat_array;
+ LLInventoryModel::item_array_t item_array;
+ gInventory.collectDescendents(mComplete.front(),
+ cat_array,
+ item_array,
+ LLInventoryModel::EXCLUDE_TRASH);
+ S32 count = item_array.count();
+ if(!count)
+ {
+ llwarns << "Nothing fetched in category " << mComplete.front()
+ << llendl;
+ //dec_busy_count();
+ gInventory.removeObserver(this);
+
+ // lets notify observers that loading is finished.
+ gAgentWearables.notifyLoadingFinished();
+ delete this;
+ return;
+ }
+
+ llinfos << "stage1 got " << item_array.count() << " items, passing to stage2 " << llendl;
+ uuid_vec_t ids;
+ for(S32 i = 0; i < count; ++i)
+ {
+ ids.push_back(item_array.get(i)->getUUID());
+ }
+
+ gInventory.removeObserver(this);
+
+ // do the fetch
+ CallAfterCategoryFetchStage2 *stage2 = new CallAfterCategoryFetchStage2(ids, mCallable);
+ stage2->startFetch();
+ if(stage2->isFinished())
+ {
+ // everything is already here - call done.
+ stage2->done();
+ }
+ else
+ {
+ // it's all on it's way - add an observer, and the inventory
+ // will call done for us when everything is here.
+ gInventory.addObserver(stage2);
+ }
+ delete this;
+ }
+protected:
+ nullary_func_t mCallable;
+};
+
+void callAfterCategoryFetch(const LLUUID& cat_id, nullary_func_t cb)
+{
+ CallAfterCategoryFetchStage1 *stage1 = new CallAfterCategoryFetchStage1(cat_id, cb);
+ stage1->startFetch();
+ if (stage1->isFinished())
+ {
+ stage1->done();
+ }
+ else
+ {
+ gInventory.addObserver(stage1);
+ }
+}
+
+void wear_multiple(const uuid_vec_t& ids, bool replace)
+{
+ LLPointer<LLInventoryCallback> cb = new LLUpdateAppearanceOnDestroy;
+
+ bool first = true;
+ uuid_vec_t::const_iterator it;
+ for (it = ids.begin(); it != ids.end(); ++it)
+ {
+ // if replace is requested, the first item worn will replace the current top
+ // item, and others will be added.
+ LLAppearanceMgr::instance().wearItemOnAvatar(*it,false,first && replace,cb);
+ first = false;
+ }
+}
+
diff --git a/indra/newview/llappearancemgr.h b/indra/newview/llappearancemgr.h
index ab4ff1bcfc..c65d9dc9ee 100644
--- a/indra/newview/llappearancemgr.h
+++ b/indra/newview/llappearancemgr.h
@@ -2,31 +2,25 @@
* @file llappearancemgr.h
* @brief Manager for initiating appearance changes on the viewer
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -34,10 +28,12 @@
#define LL_LLAPPEARANCEMGR_H
#include "llsingleton.h"
+
+#include "llagentwearables.h"
+#include "llcallbacklist.h"
#include "llinventorymodel.h"
#include "llinventoryobserver.h"
#include "llviewerinventory.h"
-#include "llcallbacklist.h"
class LLWearable;
class LLWearableHoldingPattern;
@@ -46,13 +42,15 @@ class LLOutfitUnLockTimer;
class LLAppearanceMgr: public LLSingleton<LLAppearanceMgr>
{
+ LOG_CLASS(LLAppearanceMgr);
+
friend class LLSingleton<LLAppearanceMgr>;
friend class LLOutfitUnLockTimer;
public:
typedef std::vector<LLInventoryModel::item_array_t> wearables_by_type_t;
- void updateAppearanceFromCOF();
+ void updateAppearanceFromCOF(bool update_base_outfit_ordering = false);
bool needToSaveCOF();
void updateCOF(const LLUUID& category, bool append = false);
void wearInventoryCategory(LLInventoryCategory* category, bool copy, bool append);
@@ -64,6 +62,11 @@ public:
void renameOutfit(const LLUUID& outfit_id);
void takeOffOutfit(const LLUUID& cat_id);
void addCategoryToCurrentOutfit(const LLUUID& cat_id);
+ S32 findExcessOrDuplicateItems(const LLUUID& cat_id,
+ LLAssetType::EType type,
+ S32 max_items,
+ LLInventoryModel::item_array_t& items_to_kill);
+ void enforceItemRestrictions();
// Copy all items and the src category itself.
void shallowCopyCategory(const LLUUID& src_id, const LLUUID& dst_id,
@@ -81,6 +84,9 @@ public:
// Determine whether we can add anything (but body parts) from the outfit contents to COF.
static bool getCanAddToCOF(const LLUUID& outfit_cat_id);
+ // Determine whether we can replace current outfit with the given one.
+ bool getCanReplaceCOF(const LLUUID& outfit_cat_id);
+
// Copy all items in a category.
void shallowCopyCategoryContents(const LLUUID& src_id, const LLUUID& dst_id,
LLPointer<LLInventoryCallback> cb);
@@ -96,7 +102,7 @@ public:
const LLUUID getBaseOutfitUUID();
// Wear/attach an item (from a user's inventory) on the agent
- bool wearItemOnAvatar(const LLUUID& item_to_wear, bool do_update = true, bool replace = false);
+ bool wearItemOnAvatar(const LLUUID& item_to_wear, bool do_update = true, bool replace = false, LLPointer<LLInventoryCallback> cb = NULL);
// Update the displayed outfit name in UI.
void updatePanelOutfitName(const std::string& name);
@@ -113,7 +119,6 @@ public:
void unregisterAttachment(const LLUUID& item_id);
void registerAttachment(const LLUUID& item_id);
void setAttachmentInvLinkEnable(bool val);
- void linkRegisteredAttachments();
// utility function for bulk linking.
void linkAll(const LLUUID& category,
@@ -121,8 +126,8 @@ public:
LLPointer<LLInventoryCallback> cb);
// Add COF link to individual item.
- void addCOFItemLink(const LLUUID& item_id, bool do_update = true);
- void addCOFItemLink(const LLInventoryItem *item, bool do_update = true);
+ 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);
// Remove COF entries
void removeCOFItemLinks(const LLUUID& item_id, bool do_update = true);
@@ -168,10 +173,12 @@ public:
//Check ordering information on wearables stored in links' descriptions and update if it is invalid
// COF is processed if cat_id is not specified
- void updateClothingOrderingInfo(LLUUID cat_id = LLUUID::null);
+ void updateClothingOrderingInfo(LLUUID cat_id = LLUUID::null, bool update_base_outfit_ordering = false);
bool isOutfitLocked() { return mOutfitLocked; }
+ bool isInUpdateAppearanceFromCOF() { return mIsInUpdateAppearanceFromCOF; }
+
protected:
LLAppearanceMgr();
~LLAppearanceMgr();
@@ -198,9 +205,9 @@ private:
void setOutfitLocked(bool locked);
- std::set<LLUUID> mRegisteredAttachments;
bool mAttachmentInvLinkEnabled;
bool mOutfitIsDirty;
+ bool mIsInUpdateAppearanceFromCOF; // to detect recursive calls.
/**
* Lock for blocking operations on outfit until server reply or timeout exceed
@@ -217,17 +224,23 @@ public:
BOOL getIsInCOF(const LLUUID& obj_id) const;
// Is this in the COF and can the user delete it from the COF?
BOOL getIsProtectedCOFItem(const LLUUID& obj_id) const;
+
+ /**
+ * Checks if COF contains link to specified object.
+ */
+ static bool isLinkInCOF(const LLUUID& obj_id);
};
class LLUpdateAppearanceOnDestroy: public LLInventoryCallback
{
public:
- LLUpdateAppearanceOnDestroy();
+ LLUpdateAppearanceOnDestroy(bool update_base_outfit_ordering = false);
virtual ~LLUpdateAppearanceOnDestroy();
/* virtual */ void fire(const LLUUID& inv_item);
private:
U32 mFireCount;
+ bool mUpdateBaseOrder;
};
@@ -235,177 +248,19 @@ private:
LLUUID findDescendentCategoryIDByName(const LLUUID& parent_id,const std::string& name);
-// Shim class and template function to allow arbitrary boost::bind
-// expressions to be run as one-time idle callbacks.
-template <typename T>
-class OnIdleCallbackOneTime
-{
-public:
- OnIdleCallbackOneTime(T callable):
- mCallable(callable)
- {
- }
- static void onIdle(void *data)
- {
- gIdleCallbacks.deleteFunction(onIdle, data);
- OnIdleCallbackOneTime<T>* self = reinterpret_cast<OnIdleCallbackOneTime<T>*>(data);
- self->call();
- delete self;
- }
- void call()
- {
- mCallable();
- }
-private:
- T mCallable;
-};
-
-template <typename T>
-void doOnIdleOneTime(T callable)
-{
- OnIdleCallbackOneTime<T>* cb_functor = new OnIdleCallbackOneTime<T>(callable);
- gIdleCallbacks.addFunction(&OnIdleCallbackOneTime<T>::onIdle,cb_functor);
-}
-
-// Shim class and template function to allow arbitrary boost::bind
-// expressions to be run as recurring idle callbacks.
-// Callable should return true when done, false to continue getting called.
-template <typename T>
-class OnIdleCallbackRepeating
-{
-public:
- OnIdleCallbackRepeating(T callable):
- mCallable(callable)
- {
- }
- // Will keep getting called until the callable returns true.
- static void onIdle(void *data)
- {
- OnIdleCallbackRepeating<T>* self = reinterpret_cast<OnIdleCallbackRepeating<T>*>(data);
- bool done = self->call();
- if (done)
- {
- gIdleCallbacks.deleteFunction(onIdle, data);
- delete self;
- }
- }
- bool call()
- {
- return mCallable();
- }
-private:
- T mCallable;
-};
+typedef boost::function<void ()> nullary_func_t;
+typedef boost::function<bool ()> bool_func_t;
-template <typename T>
-void doOnIdleRepeating(T callable)
-{
- OnIdleCallbackRepeating<T>* cb_functor = new OnIdleCallbackRepeating<T>(callable);
- gIdleCallbacks.addFunction(&OnIdleCallbackRepeating<T>::onIdle,cb_functor);
-}
+// Call a given callable once in idle loop.
+void doOnIdleOneTime(nullary_func_t callable);
-template <class T>
-class CallAfterCategoryFetchStage2: public LLInventoryFetchItemsObserver
-{
-public:
- CallAfterCategoryFetchStage2(const uuid_vec_t& ids,
- T callable) :
- LLInventoryFetchItemsObserver(ids),
- mCallable(callable)
- {
- }
- ~CallAfterCategoryFetchStage2()
- {
- }
- virtual void done()
- {
- llinfos << this << " done with incomplete " << mIncomplete.size()
- << " complete " << mComplete.size() << " calling callable" << llendl;
-
- gInventory.removeObserver(this);
- doOnIdleOneTime(mCallable);
- delete this;
- }
-protected:
- T mCallable;
-};
+// Repeatedly call a callable in idle loop until it returns true.
+void doOnIdleRepeating(bool_func_t callable);
-template <class T>
-class CallAfterCategoryFetchStage1: public LLInventoryFetchDescendentsObserver
-{
-public:
- CallAfterCategoryFetchStage1(const LLUUID& cat_id, T callable) :
- LLInventoryFetchDescendentsObserver(cat_id),
- mCallable(callable)
- {
- }
- ~CallAfterCategoryFetchStage1()
- {
- }
- 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.
- LLInventoryModel::cat_array_t cat_array;
- LLInventoryModel::item_array_t item_array;
- gInventory.collectDescendents(mComplete.front(),
- cat_array,
- item_array,
- LLInventoryModel::EXCLUDE_TRASH);
- S32 count = item_array.count();
- if(!count)
- {
- llwarns << "Nothing fetched in category " << mComplete.front()
- << llendl;
- //dec_busy_count();
- gInventory.removeObserver(this);
- delete this;
- return;
- }
-
- llinfos << "stage1 got " << item_array.count() << " items, passing to stage2 " << llendl;
- uuid_vec_t ids;
- for(S32 i = 0; i < count; ++i)
- {
- ids.push_back(item_array.get(i)->getUUID());
- }
-
- gInventory.removeObserver(this);
-
- // do the fetch
- CallAfterCategoryFetchStage2<T> *stage2 = new CallAfterCategoryFetchStage2<T>(ids, mCallable);
- stage2->startFetch();
- if(stage2->isFinished())
- {
- // everything is already here - call done.
- stage2->done();
- }
- else
- {
- // it's all on it's way - add an observer, and the inventory
- // will call done for us when everything is here.
- gInventory.addObserver(stage2);
- }
- delete this;
- }
-protected:
- T mCallable;
-};
+// Invoke a given callable after category contents are fully fetched.
+void callAfterCategoryFetch(const LLUUID& cat_id, nullary_func_t cb);
-template <class T>
-void callAfterCategoryFetch(const LLUUID& cat_id, T callable)
-{
- CallAfterCategoryFetchStage1<T> *stage1 = new CallAfterCategoryFetchStage1<T>(cat_id, callable);
- stage1->startFetch();
- if (stage1->isFinished())
- {
- stage1->done();
- }
- else
- {
- gInventory.addObserver(stage1);
- }
-}
+// Wear all items in a uuid vector.
+void wear_multiple(const uuid_vec_t& ids, bool replace);
#endif
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 1ed63555b0..333c92e50d 100644
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -2,31 +2,25 @@
* @file llappviewer.cpp
* @brief The LLAppViewer class definitions
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -45,6 +39,7 @@
#include "llgroupmgr.h"
#include "llagent.h"
#include "llagentcamera.h"
+#include "llagentlanguage.h"
#include "llagentwearables.h"
#include "llwindow.h"
#include "llviewerstats.h"
@@ -81,7 +76,9 @@
#include "llvoicechannel.h"
#include "llvoavatarself.h"
#include "llsidetray.h"
-
+#include "llfeaturemanager.h"
+#include "llurlmatch.h"
+#include "lltextutil.h"
#include "llweb.h"
#include "llsecondlifeurls.h"
@@ -192,6 +189,7 @@
#include "llviewerthrottle.h"
#include "llparcel.h"
#include "llavatariconctrl.h"
+#include "llgroupiconctrl.h"
// Include for security api initialization
#include "llsecapi.h"
@@ -264,6 +262,7 @@ const F64 FRAME_STALL_THRESHOLD = 1.0;
LLTimer gRenderStartTime;
LLFrameTimer gForegroundTime;
+LLFrameTimer gLoggedInTime;
LLTimer gLogoutTimer;
static const F32 LOGOUT_REQUEST_TIME = 6.f; // this will be cut short by the LogoutReply msg.
F32 gLogoutMaxTime = LOGOUT_REQUEST_TIME;
@@ -351,6 +350,45 @@ static void ui_audio_callback(const LLUUID& uuid)
}
}
+bool create_text_segment_icon_from_url_match(LLUrlMatch* match,LLTextBase* base)
+{
+ if(!match || !base || base->getPlainText())
+ return false;
+
+ LLUUID match_id = match->getID();
+
+ LLIconCtrl* icon;
+
+ if(gAgent.isInGroup(match_id, TRUE))
+ {
+ LLGroupIconCtrl::Params icon_params;
+ icon_params.group_id = match_id;
+ icon_params.rect = LLRect(0, 16, 16, 0);
+ icon_params.visible = true;
+ icon = LLUICtrlFactory::instance().create<LLGroupIconCtrl>(icon_params);
+ }
+ else
+ {
+ LLAvatarIconCtrl::Params icon_params;
+ icon_params.avatar_id = match_id;
+ icon_params.rect = LLRect(0, 16, 16, 0);
+ icon_params.visible = true;
+ icon = LLUICtrlFactory::instance().create<LLAvatarIconCtrl>(icon_params);
+ }
+
+ LLInlineViewSegment::Params params;
+ params.force_newline = false;
+ params.view = icon;
+ params.left_pad = 4;
+ params.right_pad = 4;
+ params.top_pad = -2;
+ params.bottom_pad = 2;
+
+ base->appendWidget(params," ",false);
+
+ return true;
+}
+
void request_initial_instant_messages()
{
static BOOL requested = FALSE;
@@ -379,14 +417,8 @@ bool handleCrashSubmitBehaviorChanged(const LLSD& newvalue)
const S32 NEVER_SUBMIT_REPORT = 2;
if(cb == NEVER_SUBMIT_REPORT)
{
-// LLWatchdog::getInstance()->cleanup(); // SJB: cleaning up a running watchdog thread is unsafe
LLAppViewer::instance()->destroyMainloopTimeout();
}
- else if(gSavedSettings.getBOOL("WatchdogEnabled") == TRUE)
- {
- // Don't re-enable the watchdog when we change the setting; this may get called before it's started
-// LLWatchdog::getInstance()->init();
- }
return true;
}
@@ -560,6 +592,7 @@ LLAppViewer::LLAppViewer() :
setupErrorHandling();
sInstance = this;
+ gLoggedInTime.stop();
}
LLAppViewer::~LLAppViewer()
@@ -893,11 +926,13 @@ bool LLAppViewer::init()
}
LLViewerMedia::initClass();
+ LLTextUtil::TextHelpers::iconCallbackCreationFunction = create_text_segment_icon_from_url_match;
//EXT-7013 - On windows for some locale (Japanese) standard
//datetime formatting functions didn't support some parameters such as "weekday".
+ //Names for days and months localized in xml are also useful for Polish locale(STORM-107).
std::string language = LLControlGroup::getInstance(sGlobalSettingsName)->getString("Language");
- if(language == "ja")
+ if(language == "ja" || language == "pl")
{
LLStringOps::setupWeekDaysNames(LLTrans::getString("dateTimeWeekdaysNames"));
LLStringOps::setupWeekDaysShortNames(LLTrans::getString("dateTimeWeekdaysShortNames"));
@@ -909,6 +944,8 @@ bool LLAppViewer::init()
LLStringOps::sPM = LLTrans::getString("dateTimePM");
}
+ LLAgentLanguage::init();
+
return true;
}
@@ -921,6 +958,11 @@ static LLFastTimer::DeclareTimer FTM_LFS("LFS Thread");
static LLFastTimer::DeclareTimer FTM_PAUSE_THREADS("Pause Threads");
static LLFastTimer::DeclareTimer FTM_IDLE("Idle");
static LLFastTimer::DeclareTimer FTM_PUMP("Pump");
+static LLFastTimer::DeclareTimer FTM_PUMP_ARES("Ares");
+static LLFastTimer::DeclareTimer FTM_PUMP_SERVICE("Service");
+static LLFastTimer::DeclareTimer FTM_SERVICE_CALLBACK("Callback");
+static LLFastTimer::DeclareTimer FTM_AGENT_AUTOPILOT("Autopilot");
+static LLFastTimer::DeclareTimer FTM_AGENT_UPDATE("Update");
bool LLAppViewer::mainLoop()
{
@@ -1030,10 +1072,20 @@ bool LLAppViewer::mainLoop()
LLMemType mt_ip(LLMemType::MTYPE_IDLE_PUMP);
pingMainloopTimeout("Main:ServicePump");
LLFastTimer t4(FTM_PUMP);
- gAres->process();
- // this pump is necessary to make the login screen show up
- gServicePump->pump();
- gServicePump->callback();
+ {
+ LLFastTimer t(FTM_PUMP_ARES);
+ gAres->process();
+ }
+ {
+ LLFastTimer t(FTM_PUMP_SERVICE);
+ // this pump is necessary to make the login screen show up
+ gServicePump->pump();
+
+ {
+ LLFastTimer t(FTM_SERVICE_CALLBACK);
+ gServicePump->callback();
+ }
+ }
}
resumeMainloopTimeout();
@@ -1068,8 +1120,7 @@ bool LLAppViewer::mainLoop()
{
LLMemType mt_sleep(LLMemType::MTYPE_SLEEP);
LLFastTimer t2(FTM_SLEEP);
- bool run_multiple_threads = gSavedSettings.getBOOL("RunMultipleThreads");
-
+
// yield some time to the os based on command line option
if(mYieldTime >= 0)
{
@@ -1107,9 +1158,7 @@ bool LLAppViewer::mainLoop()
}
static const F64 FRAME_SLOW_THRESHOLD = 0.5; //2 frames per seconds
- const F64 min_frame_time = 0.0; //(.0333 - .0010); // max video frame rate = 30 fps
- const F64 min_idle_time = 0.0; //(.0010); // min idle time = 1 ms
- const F64 max_idle_time = run_multiple_threads ? min_idle_time : llmin(.005*10.0*gFrameTimeSeconds, 0.005); // 5 ms a second
+ const F64 max_idle_time = llmin(.005*10.0*gFrameTimeSeconds, 0.005); // 5 ms a second
idleTimer.reset();
bool is_slow = (frameTimer.getElapsedTimeF64() > FRAME_SLOW_THRESHOLD) ;
S32 total_work_pending = 0;
@@ -1147,34 +1196,24 @@ bool LLAppViewer::mainLoop()
total_work_pending += work_pending ;
total_io_pending += io_pending ;
- F64 frame_time = frameTimer.getElapsedTimeF64();
- F64 idle_time = idleTimer.getElapsedTimeF64();
- if (frame_time >= min_frame_time &&
- idle_time >= min_idle_time &&
- (!work_pending || idle_time >= max_idle_time))
+
+ if (!work_pending || idleTimer.getElapsedTimeF64() >= max_idle_time)
{
break;
}
}
- // Prevent the worker threads from running while rendering.
- // if (LLThread::processorCount()==1) //pause() should only be required when on a single processor client...
- if (run_multiple_threads == FALSE)
+ if(!total_work_pending) //pause texture fetching threads if nothing to process.
{
- //LLFastTimer ftm(FTM_PAUSE_THREADS); //not necessary.
-
- if(!total_work_pending) //pause texture fetching threads if nothing to process.
- {
- LLAppViewer::getTextureCache()->pause();
- LLAppViewer::getImageDecodeThread()->pause();
- LLAppViewer::getTextureFetch()->pause();
- }
- if(!total_io_pending) //pause file threads if nothing to process.
- {
- LLVFSThread::sLocal->pause();
- LLLFSThread::sLocal->pause();
- }
- }
+ LLAppViewer::getTextureCache()->pause();
+ LLAppViewer::getImageDecodeThread()->pause();
+ LLAppViewer::getTextureFetch()->pause();
+ }
+ if(!total_io_pending) //pause file threads if nothing to process.
+ {
+ LLVFSThread::sLocal->pause();
+ LLLFSThread::sLocal->pause();
+ }
if ((LLStartUp::getStartupState() >= STATE_CLEANUP) &&
(frameTimer.getElapsedTimeF64() > FRAME_STALL_THRESHOLD))
@@ -1689,14 +1728,6 @@ bool LLAppViewer::initThreads()
static const bool enable_threads = true;
#endif
- const S32 NEVER_SUBMIT_REPORT = 2;
- bool use_watchdog = gSavedSettings.getBOOL("WatchdogEnabled");
- bool send_reports = gCrashSettings.getS32(CRASH_BEHAVIOR_SETTING) != NEVER_SUBMIT_REPORT;
- if(use_watchdog && send_reports)
- {
- LLWatchdog::getInstance()->init(watchdog_killer_callback);
- }
-
LLVFSThread::initClass(enable_threads && false);
LLLFSThread::initClass(enable_threads && false);
@@ -1925,18 +1956,11 @@ bool LLAppViewer::initConfiguration()
}
#endif
- //*FIX:Mani - Set default to disabling watchdog mainloop
- // timeout for mac and linux. There is no call stack info
- // on these platform to help debug.
#ifndef LL_RELEASE_FOR_DOWNLOAD
- gSavedSettings.setBOOL("WatchdogEnabled", FALSE);
gSavedSettings.setBOOL("QAMode", TRUE );
+ gSavedSettings.setS32("WatchdogEnabled", 0);
#endif
-
-#ifndef LL_WINDOWS
- gSavedSettings.setBOOL("WatchdogEnabled", FALSE);
-#endif
-
+
gCrashSettings.getControl(CRASH_BEHAVIOR_SETTING)->getSignal()->connect(boost::bind(&handleCrashSubmitBehaviorChanged, _2));
// These are warnings that appear on the first experience of that condition.
@@ -2364,6 +2388,25 @@ bool LLAppViewer::initWindow()
gSavedSettings.getS32("WindowWidth"), gSavedSettings.getS32("WindowHeight"),
FALSE, ignorePixelDepth);
+ // Need to load feature table before cheking to start watchdog.
+ const S32 NEVER_SUBMIT_REPORT = 2;
+ bool use_watchdog = false;
+ int watchdog_enabled_setting = gSavedSettings.getS32("WatchdogEnabled");
+ if(watchdog_enabled_setting == -1){
+ use_watchdog = !LLFeatureManager::getInstance()->isFeatureAvailable("WatchdogDisabled");
+ }
+ else
+ {
+ // The user has explicitly set this setting; always use that value.
+ use_watchdog = bool(watchdog_enabled_setting);
+ }
+
+ bool send_reports = gCrashSettings.getS32(CRASH_BEHAVIOR_SETTING) != NEVER_SUBMIT_REPORT;
+ if(use_watchdog && send_reports)
+ {
+ LLWatchdog::getInstance()->init(watchdog_killer_callback);
+ }
+
LLNotificationsUI::LLNotificationManager::getInstance();
if (gSavedSettings.getBOOL("WindowMaximized"))
@@ -2985,14 +3028,6 @@ void LLAppViewer::migrateCacheDirectory()
#endif // LL_WINDOWS || LL_DARWIN
}
-//static
-S32 LLAppViewer::getCacheVersion()
-{
- static const S32 cache_version = 7;
-
- return cache_version ;
-}
-
void dumpVFSCaches()
{
llinfos << "======= Static VFS ========" << llendl;
@@ -3031,23 +3066,40 @@ void dumpVFSCaches()
SetCurrentDirectory(w_str);
#endif
}
+
+//static
+U32 LLAppViewer::getTextureCacheVersion()
+{
+ //viewer texture cache version, change if the texture cache format changes.
+ const U32 TEXTURE_CACHE_VERSION = 7;
+
+ return TEXTURE_CACHE_VERSION ;
+}
+
+//static
+U32 LLAppViewer::getObjectCacheVersion()
+{
+ // Viewer object cache version, change if object update
+ // format changes. JC
+ const U32 INDRA_OBJECT_CACHE_VERSION = 14;
+
+ return INDRA_OBJECT_CACHE_VERSION;
+}
+
bool LLAppViewer::initCache()
{
mPurgeCache = false;
- BOOL disable_texture_cache = FALSE ;
BOOL read_only = mSecondInstance ? TRUE : FALSE;
LLAppViewer::getTextureCache()->setReadOnly(read_only) ;
+ LLVOCache::getInstance()->setReadOnly(read_only);
- if (gSavedSettings.getS32("LocalCacheVersion") != LLAppViewer::getCacheVersion())
+ BOOL texture_cache_mismatch = FALSE ;
+ if (gSavedSettings.getS32("LocalCacheVersion") != LLAppViewer::getTextureCacheVersion())
{
- if(read_only)
- {
- disable_texture_cache = TRUE ; //if the cache version of this viewer is different from the running one, this viewer can not use the texture cache.
- }
- else
+ texture_cache_mismatch = TRUE ;
+ if(!read_only)
{
- mPurgeCache = true; // Purge cache if the version number is different.
- gSavedSettings.setS32("LocalCacheVersion", LLAppViewer::getCacheVersion());
+ gSavedSettings.setS32("LocalCacheVersion", LLAppViewer::getTextureCacheVersion());
}
}
@@ -3098,9 +3150,11 @@ bool LLAppViewer::initCache()
const S64 MAX_CACHE_SIZE = 1024*MB;
cache_size = llmin(cache_size, MAX_CACHE_SIZE);
S64 texture_cache_size = ((cache_size * 8)/10);
- S64 extra = LLAppViewer::getTextureCache()->initCache(LL_PATH_CACHE, texture_cache_size, disable_texture_cache);
+ S64 extra = LLAppViewer::getTextureCache()->initCache(LL_PATH_CACHE, texture_cache_size, texture_cache_mismatch);
texture_cache_size -= extra;
+ LLVOCache::getInstance()->initCache(LL_PATH_CACHE, gSavedSettings.getU32("CacheNumberOfRegionsForObjects"), getObjectCacheVersion()) ;
+
LLSplashScreen::update(LLTrans::getString("StartupInitializingVFS"));
// Init the VFS
@@ -3263,6 +3317,7 @@ void LLAppViewer::purgeCache()
{
LL_INFOS("AppCache") << "Purging Cache and Texture Cache..." << llendl;
LLAppViewer::getTextureCache()->purgeCache(LL_PATH_CACHE);
+ LLVOCache::getInstance()->removeCache(LL_PATH_CACHE);
std::string mask = gDirUtilp->getDirDelimiter() + "*.*";
gDirUtilp->deleteFilesInDir(gDirUtilp->getExpandedFilename(LL_PATH_CACHE,""),mask);
}
@@ -3522,9 +3577,12 @@ void LLAppViewer::idle()
gAgent.moveYaw(-1.f);
}
- // Handle automatic walking towards points
- gAgentPilot.updateTarget();
- gAgent.autoPilot(&yaw);
+ {
+ LLFastTimer t(FTM_AGENT_AUTOPILOT);
+ // Handle automatic walking towards points
+ gAgentPilot.updateTarget();
+ gAgent.autoPilot(&yaw);
+ }
static LLFrameTimer agent_update_timer;
static U32 last_control_flags;
@@ -3535,6 +3593,7 @@ void LLAppViewer::idle()
if (flags_changed || (agent_update_time > (1.0f / (F32) AGENT_UPDATES_PER_SECOND)))
{
+ LLFastTimer t(FTM_AGENT_UPDATE);
// Send avatar and camera info
last_control_flags = gAgent.getControlFlags();
send_agent_update(TRUE);
@@ -4133,7 +4192,7 @@ void LLAppViewer::forceErrorBreakpoint()
void LLAppViewer::forceErrorBadMemoryAccess()
{
S32* crash = NULL;
- *crash = 0xDEADBEEF;
+ *crash = 0xDEADBEEF;
return;
}
@@ -4218,6 +4277,7 @@ void LLAppViewer::pingMainloopTimeout(const std::string& state, F32 secs)
void LLAppViewer::handleLoginComplete()
{
+ gLoggedInTime.start();
initMainloopTimeout("Mainloop Init");
// Store some data to DebugInfo in case of a freeze.
diff --git a/indra/newview/llappviewer.h b/indra/newview/llappviewer.h
index 0b862a92a1..56d88f07c8 100644
--- a/indra/newview/llappviewer.h
+++ b/indra/newview/llappviewer.h
@@ -2,31 +2,25 @@
* @file llappviewer.h
* @brief The LLAppViewer class declaration
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -100,7 +94,8 @@ public:
static LLImageDecodeThread* getImageDecodeThread() { return sImageDecodeThread; }
static LLTextureFetch* getTextureFetch() { return sTextureFetch; }
- static S32 getCacheVersion() ;
+ static U32 getTextureCacheVersion() ;
+ static U32 getObjectCacheVersion() ;
const std::string& getSerialNumber() { return mSerialNumber; }
@@ -313,6 +308,7 @@ extern U32 gFrameStalls;
extern LLTimer gRenderStartTime;
extern LLFrameTimer gForegroundTime;
+extern LLFrameTimer gLoggedInTime;
extern F32 gLogoutMaxTime;
extern LLTimer gLogoutTimer;
diff --git a/indra/newview/llappviewerlinux.cpp b/indra/newview/llappviewerlinux.cpp
index 78afdc8995..7629265730 100644
--- a/indra/newview/llappviewerlinux.cpp
+++ b/indra/newview/llappviewerlinux.cpp
@@ -2,31 +2,25 @@
* @file llappviewerlinux.cpp
* @brief The LLAppViewerLinux class definitions
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llappviewerlinux.h b/indra/newview/llappviewerlinux.h
index b17380d4d8..58e5160180 100644
--- a/indra/newview/llappviewerlinux.h
+++ b/indra/newview/llappviewerlinux.h
@@ -2,31 +2,25 @@
* @file llappviewerlinux.h
* @brief The LLAppViewerLinux class declaration
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llappviewerlinux_api.h b/indra/newview/llappviewerlinux_api.h
index 56b88fbd93..5d5fcaa3d6 100644
--- a/indra/newview/llappviewerlinux_api.h
+++ b/indra/newview/llappviewerlinux_api.h
@@ -1,30 +1,24 @@
/* Generated by dbus-binding-tool; do not edit! */
/**
- * $LicenseInfo:firstyear=2008&license=viewergpl$
- *
- * Copyright (c) 2008-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2008&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llappviewerlinux_api_dbus.cpp b/indra/newview/llappviewerlinux_api_dbus.cpp
index da67493e67..32e7e0a83d 100644
--- a/indra/newview/llappviewerlinux_api_dbus.cpp
+++ b/indra/newview/llappviewerlinux_api_dbus.cpp
@@ -2,31 +2,25 @@
* @file llappviewerlinux_api_dbus.cpp
* @brief dynamic DBus symbol-grabbing code
*
- * $LicenseInfo:firstyear=2008&license=viewergpl$
- *
- * Copyright (c) 2008-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2008&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llappviewerlinux_api_dbus.h b/indra/newview/llappviewerlinux_api_dbus.h
index 1f5468b3bf..3eee25b53d 100644
--- a/indra/newview/llappviewerlinux_api_dbus.h
+++ b/indra/newview/llappviewerlinux_api_dbus.h
@@ -2,31 +2,25 @@
* @file llappviewerlinux_api_dbus.h
* @brief DBus-glib symbol handling
*
- * $LicenseInfo:firstyear=2008&license=viewergpl$
- *
- * Copyright (c) 2008-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2008&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llappviewerlistener.cpp b/indra/newview/llappviewerlistener.cpp
index adb5f43c1a..94250f1fc2 100644
--- a/indra/newview/llappviewerlistener.cpp
+++ b/indra/newview/llappviewerlistener.cpp
@@ -4,8 +4,25 @@
* @date 2009-06-23
* @brief Implementation for llappviewerlistener.
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- * Copyright (c) 2009, Linden Research, Inc.
+ * $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$
*/
diff --git a/indra/newview/llappviewerlistener.h b/indra/newview/llappviewerlistener.h
index deedcbc179..78c8b1909e 100644
--- a/indra/newview/llappviewerlistener.h
+++ b/indra/newview/llappviewerlistener.h
@@ -4,8 +4,25 @@
* @date 2009-06-18
* @brief Wrap subset of LLAppViewer API in event API
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- * Copyright (c) 2009, Linden Research, Inc.
+ * $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$
*/
diff --git a/indra/newview/llappviewermacosx.cpp b/indra/newview/llappviewermacosx.cpp
index 1e66e55f3d..1cd80986d8 100644
--- a/indra/newview/llappviewermacosx.cpp
+++ b/indra/newview/llappviewermacosx.cpp
@@ -2,31 +2,25 @@
* @file llappviewermacosx.cpp
* @brief The LLAppViewerMacOSX class definitions
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llappviewermacosx.h b/indra/newview/llappviewermacosx.h
index 3d7bb55556..25053da5e8 100644
--- a/indra/newview/llappviewermacosx.h
+++ b/indra/newview/llappviewermacosx.h
@@ -2,31 +2,25 @@
* @file llappviewermacosx.h
* @brief The LLAppViewerMacOSX class declaration
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llappviewerwin32.cpp b/indra/newview/llappviewerwin32.cpp
index e3ef04d03d..d328567a0e 100644
--- a/indra/newview/llappviewerwin32.cpp
+++ b/indra/newview/llappviewerwin32.cpp
@@ -2,31 +2,25 @@
* @file llappviewerwin32.cpp
* @brief The LLAppViewerWin32 class definitions
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -64,6 +58,10 @@
#include "llcommandlineparser.h"
#include "lltrans.h"
+#ifndef LL_RELEASE_FOR_DOWNLOAD
+#include "llwindebug.h"
+#endif
+
// *FIX:Mani - This hack is to fix a linker issue with libndofdev.lib
// The lib was compiled under VS2005 - in VS2003 we need to remap assert
#ifdef LL_DEBUG
@@ -342,6 +340,10 @@ bool LLAppViewerWin32::init()
llinfos << "Turning off Windows error reporting." << llendl;
disableWinErrorReporting();
+#ifndef LL_RELEASE_FOR_DOWNLOAD
+ LLWinDebug::instance().init();
+#endif
+
return LLAppViewer::init();
}
diff --git a/indra/newview/llappviewerwin32.h b/indra/newview/llappviewerwin32.h
index 52dcc583a4..67594aea48 100644
--- a/indra/newview/llappviewerwin32.h
+++ b/indra/newview/llappviewerwin32.h
@@ -2,31 +2,25 @@
* @file llappviewerwin32.h
* @brief The LLAppViewerWin32 class declaration
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llassetuploadqueue.cpp b/indra/newview/llassetuploadqueue.cpp
index 083166553c..7e50098a17 100644
--- a/indra/newview/llassetuploadqueue.cpp
+++ b/indra/newview/llassetuploadqueue.cpp
@@ -2,31 +2,25 @@
* @file llassetupload.cpp
* @brief Serializes asset upload request
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llassetuploadqueue.h b/indra/newview/llassetuploadqueue.h
index 930dc72a73..434f3e5c03 100644
--- a/indra/newview/llassetuploadqueue.h
+++ b/indra/newview/llassetuploadqueue.h
@@ -2,31 +2,25 @@
* @file llassetuploadqueue.h
* @brief Serializes asset upload request
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llassetuploadresponders.cpp b/indra/newview/llassetuploadresponders.cpp
index 116c4cafc2..f12bc16d4b 100644
--- a/indra/newview/llassetuploadresponders.cpp
+++ b/indra/newview/llassetuploadresponders.cpp
@@ -2,31 +2,25 @@
* @file llassetuploadresponders.cpp
* @brief Processes responses received for asset upload requests.
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llassetuploadresponders.h b/indra/newview/llassetuploadresponders.h
index 91fb39916d..752c0dfe45 100644
--- a/indra/newview/llassetuploadresponders.h
+++ b/indra/newview/llassetuploadresponders.h
@@ -2,31 +2,25 @@
* @file llassetuploadresponders.h
* @brief Processes responses received for asset upload requests.
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llattachmentsmgr.cpp b/indra/newview/llattachmentsmgr.cpp
new file mode 100644
index 0000000000..c9543988a6
--- /dev/null
+++ b/indra/newview/llattachmentsmgr.cpp
@@ -0,0 +1,131 @@
+/**
+ * @file llattachmentsmgr.cpp
+ * @brief Manager for initiating attachments changes on the viewer
+ *
+ * $LicenseInfo:firstyear=2004&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 "llattachmentsmgr.h"
+
+#include "llagent.h"
+#include "llinventorymodel.h"
+#include "lltooldraganddrop.h" // pack_permissions_slam
+#include "llviewerinventory.h"
+#include "llviewerregion.h"
+#include "message.h"
+
+
+LLAttachmentsMgr::LLAttachmentsMgr()
+{
+}
+
+LLAttachmentsMgr::~LLAttachmentsMgr()
+{
+}
+
+void LLAttachmentsMgr::addAttachment(const LLUUID& item_id,
+ const U8 attachment_pt,
+ const BOOL add)
+{
+ AttachmentsInfo attachment;
+ attachment.mItemID = item_id;
+ attachment.mAttachmentPt = attachment_pt;
+ attachment.mAdd = add;
+ mPendingAttachments.push_back(attachment);
+}
+
+// static
+void LLAttachmentsMgr::onIdle(void *)
+{
+ LLAttachmentsMgr::instance().onIdle();
+}
+
+void LLAttachmentsMgr::onIdle()
+{
+ S32 obj_count = mPendingAttachments.size();
+ if (obj_count == 0)
+ {
+ return;
+ }
+
+ // Limit number of packets to send
+ const S32 MAX_PACKETS_TO_SEND = 10;
+ const S32 OBJECTS_PER_PACKET = 4;
+ const S32 MAX_OBJECTS_TO_SEND = MAX_PACKETS_TO_SEND * OBJECTS_PER_PACKET;
+ if( obj_count > MAX_OBJECTS_TO_SEND )
+ {
+ obj_count = MAX_OBJECTS_TO_SEND;
+ }
+
+ LLUUID compound_msg_id;
+ compound_msg_id.generate();
+ LLMessageSystem* msg = gMessageSystem;
+
+
+ S32 i = 0;
+ for (attachments_vec_t::const_iterator iter = mPendingAttachments.begin();
+ iter != mPendingAttachments.end();
+ ++iter)
+ {
+ if( 0 == (i % OBJECTS_PER_PACKET) )
+ {
+ // Start a new message chunk
+ msg->newMessageFast(_PREHASH_RezMultipleAttachmentsFromInv);
+ msg->nextBlockFast(_PREHASH_AgentData);
+ msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID());
+ msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID());
+ msg->nextBlockFast(_PREHASH_HeaderData);
+ msg->addUUIDFast(_PREHASH_CompoundMsgID, compound_msg_id );
+ msg->addU8Fast(_PREHASH_TotalObjects, obj_count );
+ msg->addBOOLFast(_PREHASH_FirstDetachAll, false );
+ }
+
+ const AttachmentsInfo &attachment = (*iter);
+ LLViewerInventoryItem* item = gInventory.getItem(attachment.mItemID);
+ if (!item)
+ {
+ llinfos << "Attempted to add non-existant item ID:" << attachment.mItemID << llendl;
+ continue;
+ }
+ S32 attachment_pt = attachment.mAttachmentPt;
+ if (attachment.mAdd)
+ attachment_pt |= ATTACHMENT_ADD;
+
+ msg->nextBlockFast(_PREHASH_ObjectData );
+ msg->addUUIDFast(_PREHASH_ItemID, item->getLinkedUUID());
+ msg->addUUIDFast(_PREHASH_OwnerID, item->getPermissions().getOwner());
+ msg->addU8Fast(_PREHASH_AttachmentPt, attachment_pt);
+ pack_permissions_slam(msg, item->getFlags(), item->getPermissions());
+ msg->addStringFast(_PREHASH_Name, item->getName());
+ msg->addStringFast(_PREHASH_Description, item->getDescription());
+
+ if( (i+1 == obj_count) || ((OBJECTS_PER_PACKET-1) == (i % OBJECTS_PER_PACKET)) )
+ {
+ // End of message chunk
+ msg->sendReliable( gAgent.getRegion()->getHost() );
+ }
+ i++;
+ }
+
+ mPendingAttachments.clear();
+}
diff --git a/indra/newview/llattachmentsmgr.h b/indra/newview/llattachmentsmgr.h
new file mode 100644
index 0000000000..1d8ab74dfd
--- /dev/null
+++ b/indra/newview/llattachmentsmgr.h
@@ -0,0 +1,73 @@
+/**
+ * @file llattachmentsmgr.h
+ * @brief Batches up attachment requests and sends them all
+ * in one message.
+ *
+ * $LicenseInfo:firstyear=2004&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_LLATTACHMENTSMGR_H
+#define LL_LLATTACHMENTSMGR_H
+
+#include "llsingleton.h"
+
+class LLViewerInventoryItem;
+
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+// LLAttachmentsMgr
+//
+// The sole purpose of this class is to take attachment
+// requests, queue them up, and send them all at once.
+// This handles situations where the viewer may request
+// a bunch of attachments at once in a short period of
+// time, where each of the requests would normally be
+// sent as a separate message versus being batched into
+// one single message.
+//
+// The intent of this batching is to reduce viewer->server
+// traffic.
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+class LLAttachmentsMgr: public LLSingleton<LLAttachmentsMgr>
+{
+public:
+ LLAttachmentsMgr();
+ virtual ~LLAttachmentsMgr();
+
+ void addAttachment(const LLUUID& item_id,
+ const U8 attachment_pt,
+ const BOOL add);
+ static void onIdle(void *);
+protected:
+ void onIdle();
+private:
+ struct AttachmentsInfo
+ {
+ LLUUID mItemID;
+ U8 mAttachmentPt;
+ BOOL mAdd;
+ };
+
+ typedef std::vector<AttachmentsInfo> attachments_vec_t;
+ attachments_vec_t mPendingAttachments;
+};
+
+#endif
diff --git a/indra/newview/llaudiosourcevo.cpp b/indra/newview/llaudiosourcevo.cpp
index 50363ea2e7..b37aba6c15 100644
--- a/indra/newview/llaudiosourcevo.cpp
+++ b/indra/newview/llaudiosourcevo.cpp
@@ -3,31 +3,25 @@
* @author Douglas Soo, James Cook
* @brief Audio sources attached to viewer objects
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -41,11 +35,8 @@
LLAudioSourceVO::LLAudioSourceVO(const LLUUID &sound_id, const LLUUID& owner_id, const F32 gain, LLViewerObject *objectp)
: LLAudioSource(sound_id, owner_id, gain, LLAudioEngine::AUDIO_TYPE_SFX),
- mObjectp(objectp),
- mActualGain(gain)
+ mObjectp(objectp)
{
- setAmbient(FALSE);
- updateGain();
update();
}
@@ -60,18 +51,18 @@ LLAudioSourceVO::~LLAudioSourceVO()
void LLAudioSourceVO::setGain(const F32 gain)
{
- mActualGain = llclamp(gain, 0.f, 1.f);
- updateGain();
+ mGain = llclamp(gain, 0.f, 1.f);
}
-void LLAudioSourceVO::updateGain()
+void LLAudioSourceVO::updateMute()
{
- if (!mObjectp)
+ if (!mObjectp || mObjectp->isDead())
{
+ mSourceMuted = true;
return;
}
- BOOL mute = FALSE;
+ bool mute = false;
LLVector3d pos_global;
if (mObjectp->isAttachment())
@@ -90,21 +81,21 @@ void LLAudioSourceVO::updateGain()
{
pos_global = mObjectp->getPositionGlobal();
}
-
+
if (!LLViewerParcelMgr::getInstance()->canHearSound(pos_global))
{
- mute = TRUE;
+ mute = true;
}
if (!mute)
{
if (LLMuteList::getInstance()->isMuted(mObjectp->getID()))
{
- mute = TRUE;
+ mute = true;
}
else if (LLMuteList::getInstance()->isMuted(mOwnerID, LLMute::flagObjectSounds))
{
- mute = TRUE;
+ mute = true;
}
else if (mObjectp->isAttachment())
{
@@ -116,24 +107,38 @@ void LLAudioSourceVO::updateGain()
if (parent
&& LLMuteList::getInstance()->isMuted(parent->getID()))
{
- mute = TRUE;
+ mute = true;
}
}
}
- if (!mute)
+ if (mute != mSourceMuted)
{
- mGain = mActualGain;
- }
- else
- {
- mGain = 0.f;
+ mSourceMuted = mute;
+ if (mSourceMuted)
+ {
+ // Stop the sound.
+ this->play(LLUUID::null);
+ }
+ else
+ {
+ // Muted sounds keep there data at all times, because
+ // it's the place where the audio UUID is stored.
+ // However, it's possible that mCurrentDatap is
+ // NULL when this source did only preload sounds.
+ if (mCurrentDatap)
+ {
+ // Restart the sound.
+ this->play(mCurrentDatap->getID());
+ }
+ }
}
}
-
void LLAudioSourceVO::update()
{
+ updateMute();
+
if (!mObjectp)
{
return;
@@ -145,7 +150,11 @@ void LLAudioSourceVO::update()
return;
}
- updateGain();
+ if (mSourceMuted)
+ {
+ return;
+ }
+
if (mObjectp->isHUDAttachment())
{
mPositionGlobal = gAgentCamera.getCameraPositionGlobal();
diff --git a/indra/newview/llaudiosourcevo.h b/indra/newview/llaudiosourcevo.h
index 4b70f8bc20..f1d8ef4528 100644
--- a/indra/newview/llaudiosourcevo.h
+++ b/indra/newview/llaudiosourcevo.h
@@ -3,31 +3,25 @@
* @author Douglas Soo, James Cook
* @brief Audio sources attached to viewer objects
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -48,11 +42,10 @@ public:
/*virtual*/ void setGain(const F32 gain);
private:
- void updateGain();
+ void updateMute();
private:
LLPointer<LLViewerObject> mObjectp;
- F32 mActualGain; // The "real" gain, when not off due to parcel effects
};
#endif // LL_LLAUDIOSOURCEVO_H
diff --git a/indra/newview/llavataractions.cpp b/indra/newview/llavataractions.cpp
index 5bc3b3ac8d..b9ae976e58 100644
--- a/indra/newview/llavataractions.cpp
+++ b/indra/newview/llavataractions.cpp
@@ -2,31 +2,25 @@
* @file llavataractions.cpp
* @brief Friend-related actions (add, remove, offer teleport, etc)
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -60,6 +54,7 @@
#include "llimview.h" // for gIMMgr
#include "llmutelist.h"
#include "llnotificationsutil.h" // for LLNotificationsUtil
+#include "llpaneloutfitedit.h"
#include "llrecentpeople.h"
#include "llsidetray.h"
#include "lltrans.h"
@@ -436,12 +431,28 @@ namespace action_give_inventory
typedef std::set<LLUUID> uuid_set_t;
/**
+ * Returns a pointer to 'Add More' inventory panel of Edit Outfit SP.
+ */
+ static LLInventoryPanel* get_outfit_editor_inventory_panel()
+ {
+ LLPanelOutfitEdit* panel_outfit_edit = dynamic_cast<LLPanelOutfitEdit*>(LLSideTray::getInstance()->getPanel("panel_outfit_edit"));
+ if (NULL == panel_outfit_edit) return NULL;
+
+ LLInventoryPanel* inventory_panel = panel_outfit_edit->findChild<LLInventoryPanel>("folder_view");
+ return inventory_panel;
+ }
+
+ /**
* Checks My Inventory visibility.
*/
static bool is_give_inventory_acceptable()
{
LLInventoryPanel* active_panel = LLInventoryPanel::getActiveInventoryPanel(FALSE);
- if (NULL == active_panel) return false;
+ if (!active_panel)
+ {
+ active_panel = get_outfit_editor_inventory_panel();
+ if (!active_panel) return false;
+ }
// check selection in the panel
const uuid_set_t inventory_selected_uuids = active_panel->getRootFolder()->getSelectionList();
@@ -533,9 +544,10 @@ namespace action_give_inventory
}
LLInventoryPanel* active_panel = LLInventoryPanel::getActiveInventoryPanel(FALSE);
- if (NULL == active_panel)
+ if (!active_panel)
{
- return;
+ active_panel = get_outfit_editor_inventory_panel();
+ if (!active_panel) return;
}
const uuid_set_t inventory_selected_uuids = active_panel->getRootFolder()->getSelectionList();
@@ -621,9 +633,10 @@ namespace action_give_inventory
LLInventoryPanel* active_panel = LLInventoryPanel::getActiveInventoryPanel(FALSE);
- if (NULL == active_panel)
+ if (!active_panel)
{
- return;
+ active_panel = get_outfit_editor_inventory_panel();
+ if (!active_panel) return;
}
const uuid_set_t inventory_selected_uuids = active_panel->getRootFolder()->getSelectionList();
@@ -676,6 +689,7 @@ void LLAvatarActions::toggleBlock(const LLUUID& id)
LLMuteList::getInstance()->add(mute);
}
}
+
// static
bool LLAvatarActions::canOfferTeleport(const LLUUID& id)
{
@@ -691,6 +705,21 @@ bool LLAvatarActions::canOfferTeleport(const LLUUID& id)
return true;
}
+// static
+bool LLAvatarActions::canOfferTeleport(const uuid_vec_t& ids)
+{
+ bool result = true;
+ for (uuid_vec_t::const_iterator it = ids.begin(); it != ids.end(); ++it)
+ {
+ if(!canOfferTeleport(*it))
+ {
+ result = false;
+ break;
+ }
+ }
+ return result;
+}
+
void LLAvatarActions::inviteToGroup(const LLUUID& id)
{
LLFloaterGroupPicker* widget = LLFloaterReg::showTypedInstance<LLFloaterGroupPicker>("group_picker", LLSD(id));
diff --git a/indra/newview/llavataractions.h b/indra/newview/llavataractions.h
index d106a83eea..6313ae0759 100644
--- a/indra/newview/llavataractions.h
+++ b/indra/newview/llavataractions.h
@@ -2,31 +2,25 @@
* @file llavataractions.h
* @brief Friend-related actions (add, remove, offer teleport, etc)
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -177,12 +171,18 @@ public:
static void csr(const LLUUID& id, std::string name);
/**
- * Checks whether can offer teleport to the avatar
- * Can't offer only for offline friends
+ * Checks whether we can offer a teleport to the avatar, only offline friends
+ * cannot be offered a teleport.
+ *
+ * @return false if avatar is a friend and not visibly online
*/
static bool canOfferTeleport(const LLUUID& id);
-
+ /**
+ * @return false if any one of the specified avatars a friend and not visibly online
+ */
+ static bool canOfferTeleport(const uuid_vec_t& ids);
+
private:
static bool callbackAddFriend(const LLSD& notification, const LLSD& response);
static bool callbackAddFriendWithMessage(const LLSD& notification, const LLSD& response);
diff --git a/indra/newview/llavatariconctrl.cpp b/indra/newview/llavatariconctrl.cpp
index abb79b53a7..09fbed9e06 100644
--- a/indra/newview/llavatariconctrl.cpp
+++ b/indra/newview/llavatariconctrl.cpp
@@ -2,31 +2,25 @@
* @file llavatariconctrl.cpp
* @brief LLAvatarIconCtrl class implementation
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llavatariconctrl.h b/indra/newview/llavatariconctrl.h
index 38616b7852..b24d7356a8 100644
--- a/indra/newview/llavatariconctrl.h
+++ b/indra/newview/llavatariconctrl.h
@@ -2,31 +2,25 @@
* @file llavatariconctrl.h
* @brief LLAvatarIconCtrl base class
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llavatarlist.cpp b/indra/newview/llavatarlist.cpp
index 3275d784a3..09083dcb98 100644
--- a/indra/newview/llavatarlist.cpp
+++ b/indra/newview/llavatarlist.cpp
@@ -2,31 +2,25 @@
* @file llavatarlist.h
* @brief Generic avatar list
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -96,6 +90,20 @@ void LLAvatarList::setSpeakingIndicatorsVisible(bool visible)
}
}
+void LLAvatarList::showPermissions(bool visible)
+{
+ // Save the value for new items to use.
+ mShowPermissions = visible;
+
+ // Enable or disable showing permissions icons for all existing items.
+ std::vector<LLPanel*> items;
+ getItems(items);
+ for(std::vector<LLPanel*>::const_iterator it = items.begin(), end_it = items.end(); it != end_it; ++it)
+ {
+ static_cast<LLAvatarListItem*>(*it)->setShowPermissions(mShowPermissions);
+ }
+}
+
static bool findInsensitive(std::string haystack, const std::string& needle_upper)
{
LLStringUtil::toUpper(haystack);
@@ -113,6 +121,7 @@ LLAvatarList::Params::Params()
, show_info_btn("show_info_btn", true)
, show_profile_btn("show_profile_btn", true)
, show_speaking_indicator("show_speaking_indicator", true)
+, show_permissions_granted("show_permissions_granted", false)
{
}
@@ -127,6 +136,7 @@ LLAvatarList::LLAvatarList(const Params& p)
, mShowInfoBtn(p.show_info_btn)
, mShowProfileBtn(p.show_profile_btn)
, mShowSpeakingIndicator(p.show_speaking_indicator)
+, mShowPermissions(p.show_permissions_granted)
{
setCommitOnSelectionChange(true);
@@ -211,7 +221,7 @@ void LLAvatarList::setDirty(bool val /*= true*/, bool force_refresh /*= false*/)
void LLAvatarList::addAvalineItem(const LLUUID& item_id, const LLUUID& session_id, const std::string& item_name)
{
LL_DEBUGS("Avaline") << "Adding avaline item into the list: " << item_name << "|" << item_id << ", session: " << session_id << LL_ENDL;
- LLAvalineListItem* item = new LLAvalineListItem;
+ LLAvalineListItem* item = new LLAvalineListItem(/*hide_number=*/false);
item->setAvatarId(item_id, session_id, true, false);
item->setName(item_name);
@@ -383,8 +393,9 @@ void LLAvatarList::addNewItem(const LLUUID& id, const std::string& name, BOOL is
item->setShowInfoBtn(mShowInfoBtn);
item->setShowProfileBtn(mShowProfileBtn);
item->showSpeakingIndicator(mShowSpeakingIndicator);
+ item->setShowPermissions(mShowPermissions);
- item->setDoubleClickCallback(boost::bind(&LLAvatarList::onItemDoucleClicked, this, _1, _2, _3, _4));
+ item->setDoubleClickCallback(boost::bind(&LLAvatarList::onItemDoubleClicked, this, _1, _2, _3, _4));
addItem(item, id, pos);
}
@@ -447,7 +458,7 @@ void LLAvatarList::updateLastInteractionTimes()
}
}
-void LLAvatarList::onItemDoucleClicked(LLUICtrl* ctrl, S32 x, S32 y, MASK mask)
+void LLAvatarList::onItemDoubleClicked(LLUICtrl* ctrl, S32 x, S32 y, MASK mask)
{
mItemDoubleClickSignal(ctrl, x, y, mask);
}
@@ -498,7 +509,7 @@ LLAvalineListItem::LLAvalineListItem(bool hide_number/* = true*/) : LLAvatarList
, mIsHideNumber(hide_number)
{
// should not use buildPanel from the base class to ensure LLAvalineListItem::postBuild is called.
- LLUICtrlFactory::getInstance()->buildPanel(this, "panel_avatar_list_item.xml");
+ buildFromFile( "panel_avatar_list_item.xml");
}
BOOL LLAvalineListItem::postBuild()
diff --git a/indra/newview/llavatarlist.h b/indra/newview/llavatarlist.h
index fffc6e6e73..9d3dcb75f3 100644
--- a/indra/newview/llavatarlist.h
+++ b/indra/newview/llavatarlist.h
@@ -2,31 +2,25 @@
* @file llavatarlist.h
* @brief Generic avatar list
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -60,7 +54,8 @@ public:
show_last_interaction_time, // show most recent interaction time. *HACK: move this to a derived class
show_info_btn,
show_profile_btn,
- show_speaking_indicator;
+ show_speaking_indicator,
+ show_permissions_granted;
Params();
};
@@ -84,6 +79,7 @@ public:
void toggleIcons();
void setSpeakingIndicatorsVisible(bool visible);
+ void showPermissions(bool visible);
void sortByName();
void setShowIcons(std::string param_name);
bool getIconsVisible() const { return mShowIcons; }
@@ -110,7 +106,7 @@ protected:
uuid_vec_t& vadded,
uuid_vec_t& vremoved);
void updateLastInteractionTimes();
- void onItemDoucleClicked(LLUICtrl* ctrl, S32 x, S32 y, MASK mask);
+ void onItemDoubleClicked(LLUICtrl* ctrl, S32 x, S32 y, MASK mask);
private:
@@ -121,6 +117,7 @@ private:
bool mShowInfoBtn;
bool mShowProfileBtn;
bool mShowSpeakingIndicator;
+ bool mShowPermissions;
LLTimer* mLITUpdateTimer; // last interaction time update timer
std::string mIconParamName;
diff --git a/indra/newview/llavatarlistitem.cpp b/indra/newview/llavatarlistitem.cpp
index c74075d67f..c54913a3e1 100644
--- a/indra/newview/llavatarlistitem.cpp
+++ b/indra/newview/llavatarlistitem.cpp
@@ -2,31 +2,25 @@
* @file llavatarlistitem.cpp
* @brief avatar list item source file
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -66,16 +60,22 @@ LLAvatarListItem::LLAvatarListItem(bool not_from_ui_factory/* = true*/)
mAvatarIcon(NULL),
mAvatarName(NULL),
mLastInteractionTime(NULL),
+ mIconPermissionOnline(NULL),
+ mIconPermissionMap(NULL),
+ mIconPermissionEditMine(NULL),
+ mIconPermissionEditTheirs(NULL),
mSpeakingIndicator(NULL),
mInfoBtn(NULL),
mProfileBtn(NULL),
mOnlineStatus(E_UNKNOWN),
mShowInfoBtn(true),
- mShowProfileBtn(true)
+ mShowProfileBtn(true),
+ mShowPermissions(false),
+ mHovered(false)
{
if (not_from_ui_factory)
{
- LLUICtrlFactory::getInstance()->buildPanel(this, "panel_avatar_list_item.xml");
+ buildFromFile("panel_avatar_list_item.xml");
}
// *NOTE: mantipov: do not use any member here. They can be uninitialized here in case instance
// is created from the UICtrlFactory
@@ -92,7 +92,16 @@ BOOL LLAvatarListItem::postBuild()
mAvatarIcon = getChild<LLAvatarIconCtrl>("avatar_icon");
mAvatarName = getChild<LLTextBox>("avatar_name");
mLastInteractionTime = getChild<LLTextBox>("last_interaction");
-
+
+ mIconPermissionOnline = getChild<LLIconCtrl>("permission_online_icon");
+ mIconPermissionMap = getChild<LLIconCtrl>("permission_map_icon");
+ mIconPermissionEditMine = getChild<LLIconCtrl>("permission_edit_mine_icon");
+ mIconPermissionEditTheirs = getChild<LLIconCtrl>("permission_edit_theirs_icon");
+ mIconPermissionOnline->setVisible(false);
+ mIconPermissionMap->setVisible(false);
+ mIconPermissionEditMine->setVisible(false);
+ mIconPermissionEditTheirs->setVisible(false);
+
mSpeakingIndicator = getChild<LLOutputMonitorCtrl>("speaking_indicator");
mInfoBtn = getChild<LLButton>("info_btn");
mProfileBtn = getChild<LLButton>("profile_btn");
@@ -127,23 +136,27 @@ S32 LLAvatarListItem::notifyParent(const LLSD& info)
void LLAvatarListItem::onMouseEnter(S32 x, S32 y, MASK mask)
{
- childSetVisible("hovered_icon", true);
+ getChildView("hovered_icon")->setVisible( true);
mInfoBtn->setVisible(mShowInfoBtn);
mProfileBtn->setVisible(mShowProfileBtn);
+ mHovered = true;
LLPanel::onMouseEnter(x, y, mask);
+ showPermissions(mShowPermissions);
updateChildren();
}
void LLAvatarListItem::onMouseLeave(S32 x, S32 y, MASK mask)
{
- childSetVisible("hovered_icon", false);
+ getChildView("hovered_icon")->setVisible( false);
mInfoBtn->setVisible(false);
mProfileBtn->setVisible(false);
+ mHovered = false;
LLPanel::onMouseLeave(x, y, mask);
+ showPermissions(false);
updateChildren();
}
@@ -152,6 +165,12 @@ void LLAvatarListItem::changed(U32 mask)
{
// no need to check mAvatarId for null in this case
setOnline(LLAvatarTracker::instance().isBuddyOnline(mAvatarId));
+
+ if (mask & LLFriendObserver::POWERS)
+ {
+ showPermissions(mShowPermissions && mHovered);
+ updateChildren();
+ }
}
void LLAvatarListItem::setOnline(bool online)
@@ -236,10 +255,7 @@ void LLAvatarListItem::setAvatarId(const LLUUID& id, const LLUUID& session_id, b
void LLAvatarListItem::showLastInteractionTime(bool show)
{
- if (show)
- return;
-
- mLastInteractionTime->setVisible(false);
+ mLastInteractionTime->setVisible(show);
updateChildren();
}
@@ -250,17 +266,11 @@ void LLAvatarListItem::setLastInteractionTime(U32 secs_since)
void LLAvatarListItem::setShowInfoBtn(bool show)
{
- // Already done? Then do nothing.
- if(mShowInfoBtn == show)
- return;
mShowInfoBtn = show;
}
void LLAvatarListItem::setShowProfileBtn(bool show)
{
- // Already done? Then do nothing.
- if(mShowProfileBtn == show)
- return;
mShowProfileBtn = show;
}
@@ -279,7 +289,9 @@ void LLAvatarListItem::setAvatarIconVisible(bool visible)
{
// Already done? Then do nothing.
if (mAvatarIcon->getVisible() == (BOOL)visible)
+ {
return;
+ }
// Show/hide avatar icon.
mAvatarIcon->setVisible(visible);
@@ -315,7 +327,7 @@ void LLAvatarListItem::setValue( const LLSD& value )
{
if (!value.isMap()) return;;
if (!value.has("selected")) return;
- childSetVisible("selected_icon", value["selected"]);
+ getChildView("selected_icon")->setVisible( value["selected"]);
}
const LLUUID& LLAvatarListItem::getAvatarId() const
@@ -328,7 +340,7 @@ const std::string LLAvatarListItem::getAvatarName() const
return mAvatarName->getValue();
}
-//== PRIVATE SECITON ==========================================================
+//== PRIVATE SECTION ==========================================================
void LLAvatarListItem::setNameInternal(const std::string& name, const std::string& highlight)
{
@@ -438,10 +450,22 @@ void LLAvatarListItem::initChildrenWidths(LLAvatarListItem* avatar_item)
//info btn width + padding
S32 info_btn_width = avatar_item->mProfileBtn->getRect().mLeft - avatar_item->mInfoBtn->getRect().mLeft;
+ // online permission icon width + padding
+ S32 permission_online_width = avatar_item->mInfoBtn->getRect().mLeft - avatar_item->mIconPermissionOnline->getRect().mLeft;
+
+ // map permission icon width + padding
+ S32 permission_map_width = avatar_item->mIconPermissionOnline->getRect().mLeft - avatar_item->mIconPermissionMap->getRect().mLeft;
+
+ // edit my objects permission icon width + padding
+ S32 permission_edit_mine_width = avatar_item->mIconPermissionMap->getRect().mLeft - avatar_item->mIconPermissionEditMine->getRect().mLeft;
+
+ // edit their objects permission icon width + padding
+ S32 permission_edit_theirs_width = avatar_item->mIconPermissionEditMine->getRect().mLeft - avatar_item->mIconPermissionEditTheirs->getRect().mLeft;
+
// last interaction time textbox width + padding
- S32 last_interaction_time_width = avatar_item->mInfoBtn->getRect().mLeft - avatar_item->mLastInteractionTime->getRect().mLeft;
+ S32 last_interaction_time_width = avatar_item->mIconPermissionEditTheirs->getRect().mLeft - avatar_item->mLastInteractionTime->getRect().mLeft;
- // icon width + padding
+ // avatar icon width + padding
S32 icon_width = avatar_item->mAvatarName->getRect().mLeft - avatar_item->mAvatarIcon->getRect().mLeft;
sLeftPadding = avatar_item->mAvatarIcon->getRect().mLeft;
@@ -451,9 +475,14 @@ void LLAvatarListItem::initChildrenWidths(LLAvatarListItem* avatar_item)
sChildrenWidths[--index] = icon_width;
sChildrenWidths[--index] = 0; // for avatar name we don't need its width, it will be calculated as "left available space"
sChildrenWidths[--index] = last_interaction_time_width;
+ sChildrenWidths[--index] = permission_edit_theirs_width;
+ sChildrenWidths[--index] = permission_edit_mine_width;
+ sChildrenWidths[--index] = permission_map_width;
+ sChildrenWidths[--index] = permission_online_width;
sChildrenWidths[--index] = info_btn_width;
sChildrenWidths[--index] = profile_btn_width;
sChildrenWidths[--index] = speaking_indicator_width;
+ llassert(index == 0);
}
void LLAvatarListItem::updateChildren()
@@ -532,6 +561,27 @@ void LLAvatarListItem::updateChildren()
LL_DEBUGS("AvatarItemReshape") << "name rect after: " << name_view_rect << LL_ENDL;
}
+bool LLAvatarListItem::showPermissions(bool visible)
+{
+ const LLRelationship* relation = LLAvatarTracker::instance().getBuddyInfo(getAvatarId());
+ if(relation && visible)
+ {
+ mIconPermissionOnline->setVisible(relation->isRightGrantedTo(LLRelationship::GRANT_ONLINE_STATUS));
+ mIconPermissionMap->setVisible(relation->isRightGrantedTo(LLRelationship::GRANT_MAP_LOCATION));
+ mIconPermissionEditMine->setVisible(relation->isRightGrantedTo(LLRelationship::GRANT_MODIFY_OBJECTS));
+ mIconPermissionEditTheirs->setVisible(relation->isRightGrantedFrom(LLRelationship::GRANT_MODIFY_OBJECTS));
+ }
+ else
+ {
+ mIconPermissionOnline->setVisible(false);
+ mIconPermissionMap->setVisible(false);
+ mIconPermissionEditMine->setVisible(false);
+ mIconPermissionEditTheirs->setVisible(false);
+ }
+
+ return NULL != relation;
+}
+
LLView* LLAvatarListItem::getItemChildView(EAvatarListItemChildIndex child_view_index)
{
LLView* child_view = mAvatarName;
@@ -548,7 +598,19 @@ LLView* LLAvatarListItem::getItemChildView(EAvatarListItemChildIndex child_view_
child_view = mLastInteractionTime;
break;
case ALIC_SPEAKER_INDICATOR:
- child_view = mSpeakingIndicator;
+ child_view = mSpeakingIndicator;
+ break;
+ case ALIC_PERMISSION_ONLINE:
+ child_view = mIconPermissionOnline;
+ break;
+ case ALIC_PERMISSION_MAP:
+ child_view = mIconPermissionMap;
+ break;
+ case ALIC_PERMISSION_EDIT_MINE:
+ child_view = mIconPermissionEditMine;
+ break;
+ case ALIC_PERMISSION_EDIT_THEIRS:
+ child_view = mIconPermissionEditTheirs;
break;
case ALIC_INFO_BUTTON:
child_view = mInfoBtn;
diff --git a/indra/newview/llavatarlistitem.h b/indra/newview/llavatarlistitem.h
index ba9c3574d5..52187284eb 100644
--- a/indra/newview/llavatarlistitem.h
+++ b/indra/newview/llavatarlistitem.h
@@ -2,31 +2,25 @@
* @file llavatarlistitem.h
* @brief avatar list item header file
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -42,6 +36,7 @@
#include "llcallingcard.h" // for LLFriendObserver
class LLAvatarIconCtrl;
+class LLIconCtrl;
class LLAvatarListItem : public LLPanel, public LLFriendObserver
{
@@ -100,6 +95,7 @@ public:
void setShowProfileBtn(bool show);
void setShowInfoBtn(bool show);
void showSpeakingIndicator(bool show);
+ void setShowPermissions(bool show) { mShowPermissions = show; };
void showLastInteractionTime(bool show);
void setAvatarIconVisible(bool visible);
@@ -119,6 +115,15 @@ protected:
LLAvatarIconCtrl* mAvatarIcon;
+ /// Indicator for permission to see me online.
+ LLIconCtrl* mIconPermissionOnline;
+ /// Indicator for permission to see my position on the map.
+ LLIconCtrl* mIconPermissionMap;
+ /// Indicator for permission to edit my objects.
+ LLIconCtrl* mIconPermissionEditMine;
+ /// Indicator for permission to edit their objects.
+ LLIconCtrl* mIconPermissionEditTheirs;
+
private:
typedef enum e_online_status {
@@ -138,6 +143,10 @@ private:
ALIC_SPEAKER_INDICATOR,
ALIC_PROFILE_BUTTON,
ALIC_INFO_BUTTON,
+ ALIC_PERMISSION_ONLINE,
+ ALIC_PERMISSION_MAP,
+ ALIC_PERMISSION_EDIT_MINE,
+ ALIC_PERMISSION_EDIT_THEIRS,
ALIC_INTERACTION_TIME,
ALIC_NAME,
ALIC_ICON,
@@ -165,6 +174,13 @@ private:
void updateChildren();
/**
+ * Update visibility of active permissions icons.
+ *
+ * Need to call updateChildren() afterwards to sort out their layout.
+ */
+ bool showPermissions(bool visible);
+
+ /**
* Gets child view specified by index.
*
* This method implemented via switch by all EAvatarListItemChildIndex values.
@@ -187,6 +203,12 @@ private:
bool mShowInfoBtn;
bool mShowProfileBtn;
+ /// indicates whether to show icons representing permissions granted
+ bool mShowPermissions;
+
+ /// true when the mouse pointer is hovering over this item
+ bool mHovered;
+
static bool sStaticInitialized; // this variable is introduced to improve code readability
static S32 sLeftPadding; // padding to first left visible child (icon or name)
static S32 sRightNamePadding; // right padding from name to next visible child
diff --git a/indra/newview/llavatarpropertiesprocessor.cpp b/indra/newview/llavatarpropertiesprocessor.cpp
index c7e788f345..99aeb4cbad 100644
--- a/indra/newview/llavatarpropertiesprocessor.cpp
+++ b/indra/newview/llavatarpropertiesprocessor.cpp
@@ -2,31 +2,25 @@
* @file llavatarpropertiesprocessor.cpp
* @brief LLAvatarPropertiesProcessor class implementation
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llavatarpropertiesprocessor.h b/indra/newview/llavatarpropertiesprocessor.h
index b9e8bfd0ab..fdb88a41a1 100644
--- a/indra/newview/llavatarpropertiesprocessor.h
+++ b/indra/newview/llavatarpropertiesprocessor.h
@@ -2,31 +2,25 @@
* @file llavatarpropertiesprocessor.h
* @brief LLAvatatIconCtrl base class
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llbottomtray.cpp b/indra/newview/llbottomtray.cpp
index 41f5fe64a1..33d006578d 100644
--- a/indra/newview/llbottomtray.cpp
+++ b/indra/newview/llbottomtray.cpp
@@ -2,31 +2,25 @@
* @file llbottomtray.cpp
* @brief LLBottomTray class implementation
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -47,6 +41,7 @@
#include "llagentcamera.h"
#include "llchiclet.h"
#include "llfloatercamera.h"
+#include "llhints.h"
#include "llimfloater.h" // for LLIMFloater
#include "llnearbychatbar.h"
#include "llspeakbutton.h"
@@ -55,11 +50,53 @@
#include "lltoolmgr.h"
#include "llviewerparcelmgr.h"
+#include "llviewerwindow.h"
+#include "llsdserialize.h"
+
+// Distance from mouse down on which drag'n'drop should be started.
+#define DRAG_START_DISTANCE 3
+
+static const std::string SORTING_DATA_FILE_NAME = "bottomtray_buttons_order.xml";
+
+LLDefaultChildRegistry::Register<LLBottomtrayButton> bottomtray_button("bottomtray_button");
+
+// LLBottomtrayButton methods
+
+// virtual
+BOOL LLBottomtrayButton::handleHover(S32 x, S32 y, MASK mask)
+{
+ S32 screenX, screenY;
+ localPointToScreen(x, y, &screenX, &screenY);
+ // pass hover to bottomtray
+ LLBottomTray::getInstance()->onDraggableButtonHover(screenX, screenY);
+ return FALSE;
+}
+//virtual
+BOOL LLBottomtrayButton::handleMouseUp(S32 x, S32 y, MASK mask)
+{
+ S32 screenX, screenY;
+ localPointToScreen(x, y, &screenX, &screenY);
+ // pass mouse up to bottomtray
+ LLBottomTray::getInstance()->onDraggableButtonMouseUp(this, screenX, screenY);
+ LLButton::handleMouseUp(x, y, mask);
+ return FALSE;
+}
+//virtual
+BOOL LLBottomtrayButton::handleMouseDown(S32 x, S32 y, MASK mask)
+{
+ S32 screenX, screenY;
+ localPointToScreen(x, y, &screenX, &screenY);
+ // pass mouse up to bottomtray
+ LLBottomTray::getInstance()->onDraggableButtonMouseDown(this, screenX, screenY);
+ LLButton::handleMouseDown(x, y, mask);
+ return FALSE;
+}
+
static void update_build_button_enable_state()
{
bool can_edit = LLToolMgr::getInstance()->canEdit();
- LLBottomTray::getInstance()->childSetEnabled("build_btn", can_edit);
+ LLBottomTray::getInstance()->getChildView("build_btn")->setEnabled(can_edit);
}
// Build time optimization, generate extern template once in .cpp file
@@ -68,10 +105,6 @@ template class LLBottomTray* LLSingleton<class LLBottomTray>::getInstance();
namespace
{
const std::string& PANEL_CHICLET_NAME = "chiclet_list_panel";
- const std::string& PANEL_CHATBAR_NAME = "chat_bar";
- const std::string& PANEL_MOVEMENT_NAME = "movement_panel";
- const std::string& PANEL_CAMERA_NAME = "cam_panel";
- const std::string& PANEL_GESTURE_NAME = "gesture_panel";
S32 get_panel_min_width(LLLayoutStack* stack, LLView* panel)
{
@@ -79,7 +112,7 @@ namespace
llassert(stack);
if ( stack && panel && panel->getVisible() )
{
- stack->getPanelMinSize(panel->getName(), &minimal_width, NULL);
+ stack->getPanelMinSize(panel->getName(), &minimal_width);
}
return minimal_width;
}
@@ -90,7 +123,7 @@ namespace
llassert(stack);
if ( stack && panel && panel->getVisible() )
{
- stack->getPanelMaxSize(panel->getName(), &max_width, NULL);
+ stack->getPanelMaxSize(panel->getName(), &max_width);
}
return max_width;
}
@@ -112,26 +145,30 @@ class LLBottomTrayLite
public:
LLBottomTrayLite()
: mNearbyChatBar(NULL),
+ mChatBarContainer(NULL),
mGesturePanel(NULL)
{
mFactoryMap["chat_bar"] = LLCallbackMap(LLBottomTray::createNearbyChatBar, NULL);
- LLUICtrlFactory::getInstance()->buildPanel(this, "panel_bottomtray_lite.xml");
+ buildFromFile("panel_bottomtray_lite.xml");
// Necessary for focus movement among child controls
setFocusRoot(TRUE);
}
BOOL postBuild()
{
- mNearbyChatBar = getChild<LLNearbyChatBar>("chat_bar");
+ mNearbyChatBar = findChild<LLNearbyChatBar>("chat_bar");
+ mChatBarContainer = getChild<LLLayoutPanel>("chat_bar_layout_panel");
mGesturePanel = getChild<LLPanel>("gesture_panel");
// Hide "show_nearby_chat" button
- LLLineEditor* chat_box = mNearbyChatBar->getChatBox();
- LLUICtrl* show_btn = mNearbyChatBar->getChild<LLUICtrl>("show_nearby_chat");
- S32 delta_width = show_btn->getRect().getWidth();
- show_btn->setVisible(FALSE);
- chat_box->reshape(chat_box->getRect().getWidth() + delta_width, chat_box->getRect().getHeight());
-
+ if (mNearbyChatBar)
+ {
+ LLLineEditor* chat_box = mNearbyChatBar->getChatBox();
+ LLUICtrl* show_btn = mNearbyChatBar->getChild<LLUICtrl>("show_nearby_chat");
+ S32 delta_width = show_btn->getRect().getWidth();
+ show_btn->setVisible(FALSE);
+ chat_box->reshape(chat_box->getRect().getWidth() + delta_width, chat_box->getRect().getHeight());
+ }
return TRUE;
}
@@ -144,6 +181,7 @@ public:
}
LLNearbyChatBar* mNearbyChatBar;
+ LLLayoutPanel* mChatBarContainer;
LLPanel* mGesturePanel;
};
@@ -152,13 +190,18 @@ LLBottomTray::LLBottomTray(const LLSD&)
mSpeakPanel(NULL),
mSpeakBtn(NULL),
mNearbyChatBar(NULL),
- mToolbarStack(NULL)
-, mMovementButton(NULL)
-, mResizeState(RS_NORESIZE)
-, mBottomTrayContextMenu(NULL)
-, mCamButton(NULL)
-, mBottomTrayLite(NULL)
-, mIsInLiteMode(false)
+ mChatBarContainer(NULL),
+ mToolbarStack(NULL),
+ mMovementButton(NULL),
+ mResizeState(RS_NORESIZE),
+ mBottomTrayContextMenu(NULL),
+ mCamButton(NULL),
+ mBottomTrayLite(NULL),
+ mIsInLiteMode(false),
+ mDragStarted(false),
+ mDraggedItem(NULL),
+ mLandingTab(NULL),
+ mCheckForDrag(false)
{
// Firstly add ourself to IMSession observers, so we catch session events
// before chiclets do that.
@@ -166,7 +209,7 @@ LLBottomTray::LLBottomTray(const LLSD&)
mFactoryMap["chat_bar"] = LLCallbackMap(LLBottomTray::createNearbyChatBar, NULL);
- LLUICtrlFactory::getInstance()->buildPanel(this,"panel_bottomtray.xml");
+ buildFromFile("panel_bottomtray.xml");
LLUICtrl::CommitCallbackRegistry::defaultRegistrar().add("CameraPresets.ChangeView", boost::bind(&LLFloaterCamera::onClickCameraItem, _2));
@@ -183,6 +226,9 @@ LLBottomTray::LLBottomTray(const LLSD&)
mBottomTrayLite->setFollowsAll();
mBottomTrayLite->setVisible(FALSE);
}
+
+ mImageDragIndication = LLUI::getUIImage(getString("DragIndicationImageName"));
+ mDesiredNearbyChatWidth = mNearbyChatBar ? mNearbyChatBar->getRect().getWidth() : 0;
}
LLBottomTray::~LLBottomTray()
@@ -195,7 +241,7 @@ LLBottomTray::~LLBottomTray()
if (mNearbyChatBar)
{
// store custom width of chatbar panel.
- S32 custom_width = mNearbyChatBar->getRect().getWidth();
+ S32 custom_width = mChatBarContainer->getRect().getWidth();
gSavedSettings.setS32("ChatBarCustomWidth", custom_width);
}
@@ -390,7 +436,7 @@ S32 LLBottomTray::notifyParent(const LLSD& info)
const std::string& name = info["view_name"];
// expected only resize of nearby chatbar
- if (mNearbyChatBar->getName() != name) return LLPanel::notifyParent(info);
+ if (mChatBarContainer->getName() != name) return LLPanel::notifyParent(info);
const S32 new_width = info["new_width"];
@@ -420,8 +466,8 @@ void LLBottomTray::updateContextMenu(S32 x, S32 y, MASK mask)
{
LLUICtrl* edit_box = mNearbyChatBar->getChild<LLUICtrl>("chat_box");
- S32 local_x = x - mNearbyChatBar->getRect().mLeft - edit_box->getRect().mLeft;
- S32 local_y = y - mNearbyChatBar->getRect().mBottom - edit_box->getRect().mBottom;
+ S32 local_x = x - mChatBarContainer->getRect().mLeft - edit_box->getRect().mLeft;
+ S32 local_y = y - mChatBarContainer->getRect().mBottom - edit_box->getRect().mBottom;
bool in_edit_box = edit_box->pointInView(local_x, local_y);
@@ -474,10 +520,14 @@ BOOL LLBottomTray::postBuild()
mBottomTrayContextMenu = LLUICtrlFactory::getInstance()->createFromFile<LLMenuGL>("menu_bottomtray.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance());
gMenuHolder->addChild(mBottomTrayContextMenu);
+ mNearbyChatBar = findChild<LLNearbyChatBar>("chat_bar");
+ LLHints::registerHintTarget("chat_bar", mNearbyChatBar->LLView::getHandle());
+
+ mChatBarContainer = getChild<LLLayoutPanel>("chat_bar_layout_panel");
- mNearbyChatBar = getChild<LLNearbyChatBar>("chat_bar");
mToolbarStack = getChild<LLLayoutStack>("toolbar_stack");
mMovementButton = getChild<LLButton>("movement_btn");
+ LLHints::registerHintTarget("move_btn", mMovementButton->getHandle());
mCamButton = getChild<LLButton>("camera_btn");
setRightMouseDownCallback(boost::bind(&LLBottomTray::showBottomTrayContextMenu,this, _2, _3,_4));
@@ -510,11 +560,251 @@ BOOL LLBottomTray::postBuild()
showWellButton(RS_IM_WELL, !LLIMWellWindow::getInstance()->isWindowEmpty());
showWellButton(RS_NOTIFICATION_WELL, !LLNotificationWellWindow::getInstance()->isWindowEmpty());
+ loadButtonsOrder();
+
LLViewerParcelMgr::getInstance()->addAgentParcelChangedCallback(boost::bind(&update_build_button_enable_state));
return TRUE;
}
+//Drag-n-drop
+
+void LLBottomTray::onDraggableButtonMouseDown(LLUICtrl* ctrl, S32 x, S32 y)
+{
+ if (ctrl == NULL) return;
+ LLView* parent_view = ctrl->getParent();
+ if(parent_view != NULL)
+ {
+ // we actually drag'n'drop panel (not button) in code, so have to find a parent
+ // of button which called this method on mouse down.
+ LLPanel* parent = dynamic_cast<LLPanel*>(parent_view);
+ // It may happen that we clicked not usual button, but button inside widget(speak, gesture)
+ // so we'll need to get a level higher to reach layout panel as a parent.
+ if(parent == NULL) parent = dynamic_cast<LLPanel*>(parent_view->getParent());
+ if (parent && parent->getVisible())
+ {
+ mDraggedItem = parent;
+ mCheckForDrag = true;
+ mStartX = x;
+ mStartY = y;
+ }
+ }
+}
+
+LLPanel* LLBottomTray::findChildPanelByLocalCoords(S32 x, S32 y)
+{
+ LLPanel* ctrl = 0;
+ S32 screenX, screenY;
+ const child_list_t* list = mToolbarStack->getChildList();
+
+ localPointToScreen(x, y, &screenX, &screenY);
+
+ // look for a child panel which contains the point (screenX, screenY) in it's rectangle
+ for (child_list_const_iter_t i = list->begin(); i != list->end(); ++i)
+ {
+ LLRect rect;
+ localRectToScreen((*i)->getRect(), &rect);
+
+ if (rect.pointInRect(screenX, screenY))
+ {
+ ctrl = dynamic_cast<LLPanel*>(*i);
+ break;
+ }
+ }
+
+ return ctrl;
+}
+
+void LLBottomTray::onDraggableButtonHover(S32 x, S32 y)
+{
+ // if mouse down on draggable item was done, check whether we should start DnD
+ if (mCheckForDrag)
+ {
+ // Start drag'n'drop if mouse cursor was dragged away frome mouse down location enough
+ if(sqrt((float)((mStartX-x)*(mStartX-x)+(mStartY-y)*(mStartY-y))) > DRAG_START_DISTANCE)
+ {
+ mDragStarted = true;
+ mCheckForDrag = false;
+ }
+ }
+ if (mDragStarted)
+ {
+ // Check whether the cursor is over draggable area, find which panel it is and set is as
+ // landing tab for drag'n'drop
+ if(isCursorOverDraggableArea(x, y))
+ {
+ LLPanel* panel = findChildPanelByLocalCoords(x,y);
+ if (panel && panel != mDraggedItem) mLandingTab = panel;
+ gViewerWindow->getWindow()->setCursor(UI_CURSOR_ARROWDRAG);
+ }
+ else
+ {
+ gViewerWindow->getWindow()->setCursor(UI_CURSOR_NO);
+ }
+ }
+}
+
+bool LLBottomTray::isCursorOverDraggableArea(S32 x, S32 y)
+{
+ bool result = getRect().pointInRect(x, y);
+ result = result && mNearbyChatBar->calcScreenRect().mRight < x;
+ result = result && mChicletPanel->calcScreenRect().mRight > x;
+ return result;
+}
+
+void LLBottomTray::updateButtonsOrdersAfterDnD()
+{
+ // *TODO: change implementation of this method to support simplify it
+ // (and according to future possible changes in the way button order is saved between sessions).
+ state_object_map_t::const_iterator it = mStateProcessedObjectMap.begin();
+ state_object_map_t::const_iterator it_end = mStateProcessedObjectMap.end();
+ // Speak button is currently the only draggable button not in mStateProcessedObjectMap,
+ // so if dragged_state is not found in that map, it should be RS_BUTTON_SPEAK. Change this code if any other
+ // exclusions from mStateProcessedObjectMap will become draggable.
+ EResizeState dragged_state = RS_BUTTON_SPEAK;
+ EResizeState landing_state = RS_NORESIZE;
+ bool landing_state_found = false;
+ // Find states for dragged item and landing tab
+ for (; it != it_end; ++it)
+ {
+ if (it->second == mDraggedItem)
+ {
+ dragged_state = it->first;
+ }
+ else if (it->second == mLandingTab)
+ {
+ landing_state = it->first;
+ landing_state_found = true;
+ }
+ }
+
+ // Update order of buttons according to drag'n'drop
+ mButtonsOrder.erase(std::find(mButtonsOrder.begin(), mButtonsOrder.end(), dragged_state));
+ if (!landing_state_found && mLandingTab == getChild<LLPanel>(PANEL_CHICLET_NAME))
+ {
+ mButtonsOrder.push_back(dragged_state);
+ }
+ else
+ {
+ if (!landing_state_found) landing_state = RS_BUTTON_SPEAK;
+ mButtonsOrder.insert(std::find(mButtonsOrder.begin(), mButtonsOrder.end(), landing_state), dragged_state);
+ }
+ // Synchronize button process order with their order
+ resize_state_vec_t::const_iterator it1 = mButtonsOrder.begin();
+ const resize_state_vec_t::const_iterator it_end1 = mButtonsOrder.end();
+ resize_state_vec_t::iterator it2 = mButtonsProcessOrder.begin();
+ for (; it1 != it_end1; ++it1)
+ {
+ // Skip Speak because it is not in mButtonsProcessOrder(it's the reason why mButtonsOrder was introduced).
+ // If any other draggable items will be added to bottomtray later, they should also be skipped here.
+ if (*it1 != RS_BUTTON_SPEAK)
+ {
+ *it2 = *it1;
+ ++it2;
+ }
+ }
+
+ saveButtonsOrder();
+}
+
+void LLBottomTray::saveButtonsOrder()
+{
+ std::string user_dir = gDirUtilp->getLindenUserDir();
+ if (user_dir.empty()) return;
+
+ std::string filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, SORTING_DATA_FILE_NAME);
+ LLSD settings_llsd;
+ int i = 0;
+ const resize_state_vec_t::const_iterator it_end = mButtonsOrder.end();
+ // we use numbers as keys for map which is saved in file and contains resize states as its values
+ for (resize_state_vec_t::const_iterator it = mButtonsOrder.begin(); it != it_end; ++it, i++)
+ {
+ std::string str = llformat("%d", i);
+ settings_llsd[str] = *it;
+ }
+ llofstream file;
+ file.open(filename);
+ LLSDSerialize::toPrettyXML(settings_llsd, file);
+}
+
+void LLBottomTray::loadButtonsOrder()
+{
+ // load per-resident sorting information
+ std::string filename = gDirUtilp->getExpandedFilename(LL_PATH_PER_SL_ACCOUNT, SORTING_DATA_FILE_NAME);
+
+ LLSD settings_llsd;
+ llifstream file;
+ file.open(filename);
+ if (!file.is_open()) return;
+
+ LLSDSerialize::fromXML(settings_llsd, file);
+
+
+ mButtonsOrder.clear();
+ mButtonsProcessOrder.clear();
+ int i = 0;
+ // getting button order from file
+ for (LLSD::map_const_iterator iter = settings_llsd.beginMap();
+ iter != settings_llsd.endMap(); ++iter, ++i)
+ {
+ std::string str = llformat("%d", i);
+ EResizeState state = (EResizeState)settings_llsd[str].asInteger();
+ mButtonsOrder.push_back(state);
+ // RS_BUTTON_SPEAK is skipped, because it shouldn't be in mButtonsProcessOrder (it does not hide or shrink).
+ if (state != RS_BUTTON_SPEAK)
+ {
+ mButtonsProcessOrder.push_back(state);
+ }
+ }
+
+ // There are other panels in layout stack order of which is not saved. Also, panels order of which is saved,
+ // are already in layout stack but in wrong order. The most convenient way to place them is moving them
+ // to front one by one (because in this case we don't have to pass the panel before which we want to insert our
+ // panel to movePanel()). So panels are moved in order from the end of mButtonsOrder vector(reverse iterator is used).
+ const resize_state_vec_t::const_reverse_iterator it_end = mButtonsOrder.rend();
+ // placing panels in layout stack according to button order which we loaded in previous for
+ for (resize_state_vec_t::const_reverse_iterator it = mButtonsOrder.rbegin(); it != it_end; ++it, ++i)
+ {
+ LLPanel* panel_to_move = *it == RS_BUTTON_SPEAK ? mSpeakPanel : mStateProcessedObjectMap[*it];
+ mToolbarStack->movePanel(panel_to_move, NULL, true); // prepend
+ }
+ // Nearbychat is not stored in order settings file, but it must be the first of the panels, so moving it
+ // manually here
+ mToolbarStack->movePanel(mNearbyChatBar, NULL, true);
+}
+
+void LLBottomTray::onDraggableButtonMouseUp(LLUICtrl* ctrl, S32 x, S32 y)
+{
+ //if mouse up happened over area where drop is possible, change order of buttons
+ if (mLandingTab != NULL && mDraggedItem != NULL && mDragStarted)
+ {
+ if(isCursorOverDraggableArea(x, y))
+ {
+ // change order of panels in layout stack
+ mToolbarStack->movePanel(mDraggedItem, (LLPanel*)mLandingTab);
+ // change order of buttons in order vectors
+ updateButtonsOrdersAfterDnD();
+ }
+ }
+ gViewerWindow->getWindow()->setCursor(UI_CURSOR_ARROW);
+ mDragStarted = false;
+ mDraggedItem = NULL;
+ mLandingTab = NULL;
+ mCheckForDrag = false;
+}
+
+void LLBottomTray::draw()
+{
+ LLPanel::draw();
+ if (mLandingTab)
+ {
+ static S32 w = mImageDragIndication->getWidth();
+ static S32 h = mImageDragIndication->getHeight();
+ LLRect rect = mLandingTab->calcScreenRect();
+ mImageDragIndication->draw(rect.mLeft - w/2, rect.getHeight(), w, h);
+ }
+}
+
bool LLBottomTray::onContextMenuItemEnabled(const LLSD& userdata)
{
std::string item = userdata.asString();
@@ -679,14 +969,15 @@ void LLBottomTray::reshape(S32 width, S32 height, BOOL called_from_parent)
// we can not to do this from postBuild because reshape is called from parent view on startup
// creation after it and reset width according to resize logic.
static bool needs_restore_custom_state = true;
- if (mNearbyChatBar && needs_restore_custom_state)
+ if (mChatBarContainer && needs_restore_custom_state)
{
// restore custom width of chatbar panel.
S32 new_width = gSavedSettings.getS32("ChatBarCustomWidth");
if (new_width > 0)
{
+ mDesiredNearbyChatWidth = new_width;
processChatbarCustomization(new_width);
- mNearbyChatBar->reshape(new_width, mNearbyChatBar->getRect().getHeight());
+ mChatBarContainer->reshape(new_width, mChatBarContainer->getRect().getHeight());
}
needs_restore_custom_state = false;
}
@@ -700,6 +991,9 @@ S32 LLBottomTray::processWidthDecreased(S32 delta_width)
const S32 chiclet_panel_width = mChicletPanel->getParent()->getRect().getWidth();
const S32 chiclet_panel_min_width = mChicletPanel->getMinWidth();
+ // There are four steps of processing width decrease. If in one of them required width was reached,
+ // further are not needed.
+ // 1. Decreasing width of chiclet panel.
if (chiclet_panel_width > chiclet_panel_min_width)
{
// we have some space to decrease chiclet panel
@@ -725,8 +1019,15 @@ S32 LLBottomTray::processWidthDecreased(S32 delta_width)
<< llendl;
}
- const S32 chatbar_panel_width = mNearbyChatBar->getRect().getWidth();
+ S32 buttons_freed_width = 0;
+ // 2. Decreasing width of buttons.
+ if (still_should_be_processed)
+ {
+ processShrinkButtons(delta_width, buttons_freed_width);
+ }
+ // 3. Decreasing width of nearby chat.
const S32 chatbar_panel_min_width = get_panel_min_width(mToolbarStack, mNearbyChatBar);
+ const S32 chatbar_panel_width = mChatBarContainer->getRect().getWidth();
if (still_should_be_processed && chatbar_panel_width > chatbar_panel_min_width)
{
// we have some space to decrease chatbar panel
@@ -739,7 +1040,11 @@ S32 LLBottomTray::processWidthDecreased(S32 delta_width)
still_should_be_processed = delta_width < 0;
- mNearbyChatBar->reshape(mNearbyChatBar->getRect().getWidth() - delta_panel, mNearbyChatBar->getRect().getHeight());
+ // chatbar should only be shrunk here, not stretched
+ if(delta_panel > 0)
+ {
+ mChatBarContainer->reshape(mNearbyChatBar->getRect().getWidth() - delta_panel, mChatBarContainer->getRect().getHeight());
+ }
log(mNearbyChatBar, "after processing panel decreasing via nearby chatbar panel");
@@ -750,11 +1055,9 @@ S32 LLBottomTray::processWidthDecreased(S32 delta_width)
}
S32 extra_shrink_width = 0;
- S32 buttons_freed_width = 0;
+ // 4. Hiding buttons if needed.
if (still_should_be_processed)
{
- processShrinkButtons(delta_width, buttons_freed_width);
-
processHideButtons(delta_width, buttons_freed_width);
if (delta_width < 0)
@@ -766,10 +1069,15 @@ S32 LLBottomTray::processWidthDecreased(S32 delta_width)
if (buttons_freed_width > 0)
{
- log(mNearbyChatBar, "before applying compensative width");
- mNearbyChatBar->reshape(mNearbyChatBar->getRect().getWidth() + buttons_freed_width, mNearbyChatBar->getRect().getHeight() );
- log(mNearbyChatBar, "after applying compensative width");
- lldebugs << buttons_freed_width << llendl;
+ S32 nearby_needed_width = mDesiredNearbyChatWidth - mNearbyChatBar->getRect().getWidth();
+ if (nearby_needed_width > 0)
+ {
+ S32 compensative_width = nearby_needed_width > buttons_freed_width ? buttons_freed_width : nearby_needed_width;
+ log(mNearbyChatBar, "before applying compensative width");
+ mChatBarContainer->reshape(mChatBarContainer->getRect().getWidth() + compensative_width, mChatBarContainer->getRect().getHeight() );
+ log(mNearbyChatBar, "after applying compensative width");
+ lldebugs << buttons_freed_width << llendl;
+ }
}
}
@@ -783,18 +1091,12 @@ void LLBottomTray::processWidthIncreased(S32 delta_width)
const S32 chiclet_panel_width = mChicletPanel->getParent()->getRect().getWidth();
static const S32 chiclet_panel_min_width = mChicletPanel->getMinWidth();
- const S32 chatbar_panel_width = mNearbyChatBar->getRect().getWidth();
- static const S32 chatbar_panel_min_width = get_panel_min_width(mToolbarStack, mNearbyChatBar);
- static const S32 chatbar_panel_max_width = get_panel_max_width(mToolbarStack, mNearbyChatBar);
-
- const S32 chatbar_available_shrink_width = chatbar_panel_width - chatbar_panel_min_width;
const S32 available_width_chiclet = chiclet_panel_width - chiclet_panel_min_width;
// how many room we have to show hidden buttons
- S32 total_available_width = delta_width + chatbar_available_shrink_width + available_width_chiclet;
+ S32 total_available_width = delta_width + available_width_chiclet;
lldebugs << "Processing extending, available width:"
- << ", chatbar - " << chatbar_available_shrink_width
<< ", chiclets - " << available_width_chiclet
<< ", total - " << total_available_width
<< llendl;
@@ -803,8 +1105,6 @@ void LLBottomTray::processWidthIncreased(S32 delta_width)
processShowButtons(available_width);
- processExtendButtons(available_width);
-
// if we have to show/extend some buttons but resized delta width is not enough...
S32 processed_width = total_available_width - available_width;
if (processed_width > delta_width)
@@ -815,21 +1115,7 @@ void LLBottomTray::processWidthIncreased(S32 delta_width)
// 1. use delta width of resizing
required_to_process_width -= delta_width;
- // 2. use width available via decreasing of nearby chat panel
- S32 chatbar_shrink_width = required_to_process_width;
- if (chatbar_available_shrink_width < chatbar_shrink_width)
- {
- chatbar_shrink_width = chatbar_available_shrink_width;
- }
-
- log(mNearbyChatBar, "increase width: before applying compensative width");
- mNearbyChatBar->reshape(mNearbyChatBar->getRect().getWidth() - chatbar_shrink_width, mNearbyChatBar->getRect().getHeight() );
- if (mNearbyChatBar) log(mNearbyChatBar, "after applying compensative width");
- lldebugs << chatbar_shrink_width << llendl;
-
- // 3. use width available via decreasing of chiclet panel
- required_to_process_width -= chatbar_shrink_width;
-
+ // 2. use width available via decreasing of chiclet panel
if (required_to_process_width > 0)
{
mChicletPanel->getParent()->reshape(mChicletPanel->getParent()->getRect().getWidth() - required_to_process_width, mChicletPanel->getParent()->getRect().getHeight());
@@ -844,10 +1130,10 @@ void LLBottomTray::processWidthIncreased(S32 delta_width)
// how many space can nearby chatbar take?
- S32 chatbar_panel_width_ = mNearbyChatBar->getRect().getWidth();
- if (delta_width > 0 && chatbar_panel_width_ < chatbar_panel_max_width)
+ S32 chatbar_panel_width_ = mChatBarContainer->getRect().getWidth();
+ if (delta_width > 0 && chatbar_panel_width_ < mDesiredNearbyChatWidth)
{
- S32 delta_panel_max = chatbar_panel_max_width - chatbar_panel_width_;
+ S32 delta_panel_max = mDesiredNearbyChatWidth - chatbar_panel_width_;
S32 delta_panel = llmin(delta_width, delta_panel_max);
lldebugs << "Unprocesed delta width: " << delta_width
<< ", can be applied to chatbar: " << delta_panel_max
@@ -855,9 +1141,13 @@ void LLBottomTray::processWidthIncreased(S32 delta_width)
<< llendl;
delta_width -= delta_panel_max;
- mNearbyChatBar->reshape(chatbar_panel_width_ + delta_panel, mNearbyChatBar->getRect().getHeight());
+ mChatBarContainer->reshape(chatbar_panel_width_ + delta_panel, mChatBarContainer->getRect().getHeight());
log(mNearbyChatBar, "applied unprocessed delta width");
}
+ if (delta_width > 0)
+ {
+ processExtendButtons(delta_width);
+ }
}
void LLBottomTray::processShowButtons(S32& available_width)
@@ -977,7 +1267,7 @@ void LLBottomTray::processShrinkButtons(S32& required_width, S32& buttons_freed_
S32 panel_min_width = 0;
std::string panel_name = mSpeakPanel->getName();
- bool success = mToolbarStack->getPanelMinSize(panel_name, &panel_min_width, NULL);
+ bool success = mToolbarStack->getPanelMinSize(panel_name, &panel_min_width);
if (!success)
{
lldebugs << "Panel was not found to get its min width: " << panel_name << llendl;
@@ -1023,7 +1313,7 @@ void LLBottomTray::processShrinkButton(EResizeState processed_object_type, S32&
S32 panel_width = panel->getRect().getWidth();
S32 panel_min_width = 0;
std::string panel_name = panel->getName();
- bool success = mToolbarStack->getPanelMinSize(panel_name, &panel_min_width, NULL);
+ bool success = mToolbarStack->getPanelMinSize(panel_name, &panel_min_width);
S32 possible_shrink_width = panel_width - panel_min_width;
if (!success)
@@ -1187,6 +1477,9 @@ void LLBottomTray::initResizeStateContainers()
mButtonsProcessOrder.push_back(RS_BUTTON_WORLD_MAP);
mButtonsProcessOrder.push_back(RS_BUTTON_MINI_MAP);
+ mButtonsOrder.push_back(RS_BUTTON_SPEAK);
+ mButtonsOrder.insert(mButtonsOrder.end(), mButtonsProcessOrder.begin(), mButtonsProcessOrder.end());
+
// init default widths
// process buttons that can be hidden on resize...
@@ -1239,7 +1532,7 @@ void LLBottomTray::setButtonsControlsAndListeners()
// set control name for Build button. It is not enough to link it with Button.SetFloaterToggle in xml
std::string vis_control_name = LLFloaterReg::declareVisibilityControl("build");
// Set the button control value (toggle state) to the floater visibility control (Sets the value as well)
- build_btn->setControlVariable(LLUI::sSettingGroups["floater"]->getControl(vis_control_name));
+ build_btn->setControlVariable(LLFloater::getControlGroup()->getControl(vis_control_name));
}
bool LLBottomTray::toggleShowButton(LLBottomTray::EResizeState button_type, const LLSD& new_visibility)
@@ -1312,7 +1605,7 @@ bool LLBottomTray::setVisibleAndFitWidths(EResizeState object_type, bool visible
{
// Calculate the possible shrunk width as difference between current and minimal widths
const S32 chatbar_shrunk_width =
- mNearbyChatBar->getRect().getWidth() - get_panel_min_width(mToolbarStack, mNearbyChatBar);
+ mChatBarContainer->getRect().getWidth() - get_panel_min_width(mToolbarStack, mChatBarContainer);
S32 sum_of_min_widths = get_panel_min_width(mToolbarStack, mSpeakPanel);
S32 sum_of_curr_widths = get_curr_width(mSpeakPanel);
@@ -1332,7 +1625,7 @@ bool LLBottomTray::setVisibleAndFitWidths(EResizeState object_type, bool visible
// Minimal width of current panel
S32 minimal_width = 0;
- mToolbarStack->getPanelMinSize(cur_panel->getName(), &minimal_width, NULL);
+ mToolbarStack->getPanelMinSize(cur_panel->getName(), &minimal_width);
if ( (available_width + possible_shrunk_width) >= minimal_width)
{
@@ -1409,10 +1702,12 @@ void LLBottomTray::processChatbarCustomization(S32 new_width)
{
if (NULL == mNearbyChatBar) return;
- const S32 delta_width = mNearbyChatBar->getRect().getWidth() - new_width;
+ const S32 delta_width = mChatBarContainer->getRect().getWidth() - new_width;
if (delta_width == 0) return;
+ mDesiredNearbyChatWidth = new_width;
+
LLView * chiclet_layout_panel = mChicletPanel->getParent();
const S32 chiclet_min_width = get_panel_min_width(mToolbarStack, chiclet_layout_panel);
const S32 chiclet_panel_width = chiclet_layout_panel->getRect().getWidth();
diff --git a/indra/newview/llbottomtray.h b/indra/newview/llbottomtray.h
index 05fed53936..8d8a42c553 100644
--- a/indra/newview/llbottomtray.h
+++ b/indra/newview/llbottomtray.h
@@ -2,57 +2,73 @@
* @file llbottomtray.h
* @brief LLBottomTray class header file
*
-* $LicenseInfo:firstyear=2009&license=viewergpl$
-*
-* Copyright (c) 2009, Linden Research, Inc.
-*
+* $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
-* The source code in this file ("Source Code") is provided by Linden Lab
-* to you under the terms of the GNU General Public License, version 2.0
-* ("GPL"), unless you have obtained a separate licensing agreement
-* ("Other License"), formally executed by you and Linden Lab. Terms of
-* the GPL can be found in doc/GPL-license.txt in this distribution, or
-* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+* 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.
*
-* There are special exceptions to the terms and conditions of the GPL as
-* it is applied to this Source Code. View the full text of the exception
-* in the file doc/FLOSS-exception.txt in this software distribution, or
-* online at
-* http://secondlifegrid.net/programs/open_source/licensing/flossexception
+* 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.
*
-* By copying, modifying or distributing this software, you acknowledge
-* that you have read and understood your obligations described above,
-* and agree to abide by those obligations.
+* 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
*
-* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
-* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
-* COMPLETENESS OR PERFORMANCE.
+* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
#ifndef LL_LLBOTTOMPANEL_H
#define LL_LLBOTTOMPANEL_H
-#include "llmenugl.h"
-
#include "llpanel.h"
#include "llimview.h"
-#include "llcombobox.h"
+#include "llbutton.h"
class LLChicletPanel;
-class LLLineEditor;
class LLLayoutStack;
-class LLNotificationChiclet;
class LLSpeakButton;
class LLNearbyChatBar;
class LLIMChiclet;
class LLBottomTrayLite;
+class LLLayoutPanel;
+class LLMenuGL;
// Build time optimization, generate once in .cpp file
#ifndef LLBOTTOMTRAY_CPP
extern template class LLBottomTray* LLSingleton<class LLBottomTray>::getInstance();
#endif
+/**
+ * Class for buttons that should have drag'n'drop ability in bottomtray.
+ * These buttons pass mouse events handling to bottomtray.
+ */
+class LLBottomtrayButton : public LLButton
+{
+public:
+ struct Params : public LLInitParam::Block<Params, LLButton::Params>
+ {
+ Params(){}
+ };
+ /*virtual*/ BOOL handleHover(S32 x, S32 y, MASK mask);
+ /*virtual*/ BOOL handleMouseUp(S32 x, S32 y, MASK mask);
+ /*virtual*/ BOOL handleMouseDown(S32 x, S32 y, MASK mask);
+
+protected:
+ LLBottomtrayButton(const Params& p)
+ : LLButton(p)
+ {
+
+ }
+ friend class LLUICtrlFactory;
+};
+
class LLBottomTray
: public LLSingleton<LLBottomTray>
, public LLPanel
@@ -107,6 +123,20 @@ public:
*/
LLIMChiclet* createIMChiclet(const LLUUID& session_id);
+ // Below are methods that were introduced or overriden in bottomtray to handle drag'n'drop
+
+ virtual void draw();
+
+ /**
+ * These three methods handle drag'n'drop, they may be called directly from child buttons.
+ * handleHover and other virtual handle* couldn't be used here, because we should call LLPanel::handle*,
+ * but x and y here are often outside of bottomtray.
+ */
+ void onDraggableButtonHover(S32 x, S32 y);
+ void onDraggableButtonMouseDown(LLUICtrl* button, S32 x, S32 y);
+ void onDraggableButtonMouseUp(LLUICtrl* button, S32 x, S32 y);
+
+
private:
typedef enum e_resize_status_type
{
@@ -140,6 +170,29 @@ private:
| RS_BUTTON_BUILD | RS_BUTTON_SEARCH | RS_BUTTON_WORLD_MAP | RS_BUTTON_MINI_MAP
}EResizeState;
+ // Below are three methods that were introduced to handle drag'n'drop
+
+ /**
+ * finds a panel under the specified LOCAL point
+ */
+ LLPanel* findChildPanelByLocalCoords(S32 x, S32 y);
+
+ /**
+ * checks whether the cursor is over an area where the dragged button may be dropped
+ */
+ bool isCursorOverDraggableArea(S32 x, S32 y);
+
+ /**
+ * Updates process(shrink/show/hide) order of buttons and order in which they'll be stored for further save/load.
+ * It is called when dragged button is dropped
+ */
+ void updateButtonsOrdersAfterDnD();
+
+ // saves order of buttons to file on disk
+ void saveButtonsOrder();
+ // reads order of buttons from file on disk
+ void loadButtonsOrder();
+
/**
* Updates child controls size and visibility when it is necessary to reduce total width.
*
@@ -366,6 +419,13 @@ private:
* Contains order in which child buttons should be processed in show/hide, extend/shrink methods.
*/
resize_state_vec_t mButtonsProcessOrder;
+ /**
+ * Contains order in which child buttons are shown.
+ * It traces order of all bottomtray buttons that may change place via drag'n'drop and should
+ * save and load it between sessions. mButtonsProcessOrder is not enough for it because it contains only
+ * buttons that may be hidden.
+ */
+ resize_state_vec_t mButtonsOrder;
protected:
@@ -377,16 +437,53 @@ protected:
void onContextMenuItemClicked(const LLSD& userdata);
bool onContextMenuItemEnabled(const LLSD& userdata);
+ // Either default or saved after user's manual resize width of nearby chat.
+ // Nearby chat will not always have it, because sometimes it can be shrunk on resize,
+ // but when possible it will be restored back to this value.
+ S32 mDesiredNearbyChatWidth;
LLChicletPanel* mChicletPanel;
LLPanel* mSpeakPanel;
LLSpeakButton* mSpeakBtn;
LLNearbyChatBar* mNearbyChatBar;
+ LLLayoutPanel* mChatBarContainer;
LLLayoutStack* mToolbarStack;
LLMenuGL* mBottomTrayContextMenu;
LLButton* mCamButton;
LLButton* mMovementButton;
LLBottomTrayLite* mBottomTrayLite;
bool mIsInLiteMode;
+
+ // Drag'n'Drop
+
+ /**
+ * Is true if mouse down happened on draggable button.
+ * Set false whether on drag start or on mouse up.
+ */
+ bool mCheckForDrag;
+ /**
+ * These two variables hold corrdinates of mouse down on draggable button.
+ * They are used to compare with current coordinates of cursor and determine whether drag'n'drop should start.
+ */
+ S32 mStartX;
+ S32 mStartY;
+ /**
+ * True if drag'n'drop is happening.
+ */
+ bool mDragStarted;
+
+ /**
+ * Pointer to panel which is currently dragged (though it seems to user that button is dragged,
+ * we are changing place of layout panel).
+ */
+ LLPanel* mDraggedItem;
+ /**
+ * Panel before which the dragged button will be inserted.
+ */
+ LLPanel* mLandingTab;
+ /**
+ * Image used to show position where dragged button will be dropped.
+ */
+ LLUIImage* mImageDragIndication;
};
#endif // LL_LLBOTTOMPANEL_H
diff --git a/indra/newview/llbox.cpp b/indra/newview/llbox.cpp
index f8c0afdfda..faf82695fe 100644
--- a/indra/newview/llbox.cpp
+++ b/indra/newview/llbox.cpp
@@ -2,31 +2,25 @@
* @file llbox.cpp
* @brief Draws a box using display lists for speed.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llbox.h b/indra/newview/llbox.h
index 22c2eb57a9..ff641ad7cf 100644
--- a/indra/newview/llbox.h
+++ b/indra/newview/llbox.h
@@ -2,31 +2,25 @@
* @file llbox.h
* @brief Draws a box using display lists for speed.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llbreadcrumbview.cpp b/indra/newview/llbreadcrumbview.cpp
index 342994ee30..92310452dd 100644
--- a/indra/newview/llbreadcrumbview.cpp
+++ b/indra/newview/llbreadcrumbview.cpp
@@ -3,31 +3,25 @@
* @brief UI widget for displaying position in a folder hierarchy and allowing
* the user to click on a location in the hierarchy.
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
#include "llviewerprecompiledheaders.h"
diff --git a/indra/newview/llbreadcrumbview.h b/indra/newview/llbreadcrumbview.h
index ca6fbe7fb2..f1b53ab526 100644
--- a/indra/newview/llbreadcrumbview.h
+++ b/indra/newview/llbreadcrumbview.h
@@ -3,31 +3,25 @@
* @brief UI widget for displaying position in a folder hierarchy and allowing
* the user to click on a location in the hierarchy.
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
#ifndef LLBREADCRUMBVIEW_H
diff --git a/indra/newview/llbrowsernotification.cpp b/indra/newview/llbrowsernotification.cpp
new file mode 100644
index 0000000000..d6a813d608
--- /dev/null
+++ b/indra/newview/llbrowsernotification.cpp
@@ -0,0 +1,48 @@
+/**
+ * @file llbrowsernotification.cpp
+ * @brief Notification Handler Class for browser popups
+ *
+ * $LicenseInfo:firstyear=2000&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" // must be first include
+
+#include "llnotificationhandler.h"
+#include "llnotifications.h"
+#include "llfloaterreg.h"
+#include "llmediactrl.h"
+
+using namespace LLNotificationsUI;
+
+bool LLBrowserNotification::processNotification(const LLSD& notify)
+{
+ LLNotificationPtr notification = LLNotifications::instance().find(notify["id"].asUUID());
+ if (!notification) return false;
+
+ LLMediaCtrl* media_instance = LLMediaCtrl::getInstance(notification->getPayload()["media_id"].asUUID());
+ if (media_instance)
+ {
+ media_instance->showNotification(notification);
+ }
+ return false;
+}
diff --git a/indra/newview/llbuycurrencyhtml.cpp b/indra/newview/llbuycurrencyhtml.cpp
index 163829a1ea..d35c9ed853 100644
--- a/indra/newview/llbuycurrencyhtml.cpp
+++ b/indra/newview/llbuycurrencyhtml.cpp
@@ -2,31 +2,25 @@
* @file llbuycurrencyhtml.cpp
* @brief Manages Buy Currency HTML floater
*
- * $LicenseInfo:firstyear=2010&license=viewergpl$
- *
- * Copyright (c) 2006-2010, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2010&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llbuycurrencyhtml.h b/indra/newview/llbuycurrencyhtml.h
index 3435bb0451..8d8857ffe3 100644
--- a/indra/newview/llbuycurrencyhtml.h
+++ b/indra/newview/llbuycurrencyhtml.h
@@ -2,31 +2,25 @@
* @file llbuycurrencyhtml.h
* @brief Manages Buy Currency HTML floater
*
- * $LicenseInfo:firstyear=2010&license=viewergpl$
- *
- * Copyright (c) 2006-2010, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2010&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llcallbacklist.cpp b/indra/newview/llcallbacklist.cpp
index bba4d021cd..a54c77b4a0 100644
--- a/indra/newview/llcallbacklist.cpp
+++ b/indra/newview/llcallbacklist.cpp
@@ -2,31 +2,25 @@
* @file llcallbacklist.cpp
* @brief A simple list of callback functions to call.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llcallbacklist.h b/indra/newview/llcallbacklist.h
index be0fe9f5cc..07ac21f5e9 100644
--- a/indra/newview/llcallbacklist.h
+++ b/indra/newview/llcallbacklist.h
@@ -2,31 +2,25 @@
* @file llcallbacklist.h
* @brief A simple list of callback functions to call.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llcallfloater.cpp b/indra/newview/llcallfloater.cpp
index 60a2392d87..b11bba58e4 100644
--- a/indra/newview/llcallfloater.cpp
+++ b/indra/newview/llcallfloater.cpp
@@ -3,31 +3,25 @@
* @author Mike Antipov
* @brief Voice Control Panel in a Voice Chats (P2P, Group, Nearby...).
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -147,7 +141,7 @@ BOOL LLCallFloater::postBuild()
childSetAction("leave_call_btn", boost::bind(&LLCallFloater::leaveCall, this));
- mNonAvatarCaller = getChild<LLNonAvatarCaller>("non_avatar_caller");
+ mNonAvatarCaller = findChild<LLNonAvatarCaller>("non_avatar_caller");
mNonAvatarCaller->setVisible(FALSE);
LLView *anchor_panel = LLBottomTray::getInstance()->getChild<LLView>("speak_flyout_btn");
@@ -296,7 +290,7 @@ void LLCallFloater::updateSession()
// Hide "Leave Call" button for nearby chat
bool is_local_chat = mVoiceType == VC_LOCAL_CHAT;
- childSetVisible("leave_call_btn_panel", !is_local_chat);
+ getChildView("leave_call_btn_panel")->setVisible( !is_local_chat);
refreshParticipantList();
updateAgentModeratorState();
@@ -419,11 +413,11 @@ void LLCallFloater::initAgentData()
if ( mAgentPanel )
{
- mAgentPanel->childSetValue("user_icon", gAgentID);
+ mAgentPanel->getChild<LLUICtrl>("user_icon")->setValue(gAgentID);
std::string name;
gCacheName->getFullName(gAgentID, name);
- mAgentPanel->childSetValue("user_text", name);
+ mAgentPanel->getChild<LLUICtrl>("user_text")->setValue(name);
mSpeakingIndicator = mAgentPanel->getChild<LLOutputMonitorCtrl>("speaking_indicator");
mSpeakingIndicator->setSpeakerId(gAgentID);
@@ -449,7 +443,7 @@ void LLCallFloater::updateAgentModeratorState()
if(gAgent.isInGroup(mSpeakerManager->getSessionID()))
{
// This method can be called when LLVoiceChannel.mState == STATE_NO_CHANNEL_INFO
- // in this case there are no any speakers yet.
+ // in this case there are not any speakers yet.
if (mSpeakerManager->findSpeaker(gAgentID))
{
// Agent is Moderator
@@ -461,7 +455,7 @@ void LLCallFloater::updateAgentModeratorState()
}
}
}
- mAgentPanel->childSetValue("user_text", name);
+ mAgentPanel->getChild<LLUICtrl>("user_text")->setValue(name);
}
static void get_voice_participants_uuids(uuid_vec_t& speakers_uuids)
@@ -766,7 +760,7 @@ void LLCallFloater::reset(const LLVoiceChannel::EState& new_state)
{
// hides "Leave Call" when call is ended in parcel with disabled voice- hiding usually happens in
// updateSession() which won't be called here because connect to nearby voice never happens
- childSetVisible("leave_call_btn_panel", false);
+ getChildView("leave_call_btn_panel")->setVisible( false);
// setting title to nearby chat an "no one near..." text- because in region with disabled
// voice we won't have chance to really connect to nearby, so VCP is changed here manually
setTitle(getString("title_nearby"));
diff --git a/indra/newview/llcallfloater.h b/indra/newview/llcallfloater.h
index e4341175e2..881f777b48 100644
--- a/indra/newview/llcallfloater.h
+++ b/indra/newview/llcallfloater.h
@@ -3,31 +3,25 @@
* @author Mike Antipov
* @brief Voice Control Panel in a Voice Chats (P2P, Group, Nearby...).
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llcallingcard.cpp b/indra/newview/llcallingcard.cpp
index 1a6c11fa73..a664dbe53a 100644
--- a/indra/newview/llcallingcard.cpp
+++ b/indra/newview/llcallingcard.cpp
@@ -2,31 +2,25 @@
* @file llcallingcard.cpp
* @brief Implementation of the LLPreviewCallingCard class
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llcallingcard.h b/indra/newview/llcallingcard.h
index 47b0dcb903..15ca51743a 100644
--- a/indra/newview/llcallingcard.h
+++ b/indra/newview/llcallingcard.h
@@ -2,31 +2,25 @@
* @file llcallingcard.h
* @brief Definition of the LLPreviewCallingCard class
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -51,7 +45,7 @@ class LLFriendObserver
public:
// This enumeration is a way to refer to what changed in a more
// human readable format. You can mask the value provided by
- // chaged() to see if the observer is interested in the change.
+ // changed() to see if the observer is interested in the change.
enum
{
NONE = 0,
diff --git a/indra/newview/llcapabilitylistener.cpp b/indra/newview/llcapabilitylistener.cpp
index ed9613c1bc..ef9b910ae5 100644
--- a/indra/newview/llcapabilitylistener.cpp
+++ b/indra/newview/llcapabilitylistener.cpp
@@ -4,31 +4,25 @@
* @date 2009-01-07
* @brief Implementation for llcapabilitylistener.
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llcapabilitylistener.h b/indra/newview/llcapabilitylistener.h
index be51cf1b8c..e7535013e7 100644
--- a/indra/newview/llcapabilitylistener.h
+++ b/indra/newview/llcapabilitylistener.h
@@ -4,31 +4,25 @@
* @date 2009-01-07
* @brief Provide an event-based API for capability requests
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llcapabilityprovider.h b/indra/newview/llcapabilityprovider.h
index 3d07904775..a6e743f625 100644
--- a/indra/newview/llcapabilityprovider.h
+++ b/indra/newview/llcapabilityprovider.h
@@ -5,31 +5,25 @@
* @brief Interface by which to reference (e.g.) LLViewerRegion to obtain a
* capability.
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llcaphttpsender.cpp b/indra/newview/llcaphttpsender.cpp
index b44e1f11fa..16bb48da93 100644
--- a/indra/newview/llcaphttpsender.cpp
+++ b/indra/newview/llcaphttpsender.cpp
@@ -2,31 +2,25 @@
* @file llcaphttpsender.cpp
* @brief Abstracts details of sending messages via UntrustedMessage cap.
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llcaphttpsender.h b/indra/newview/llcaphttpsender.h
index dd4b9d0c8b..e1f4c813f6 100644
--- a/indra/newview/llcaphttpsender.h
+++ b/indra/newview/llcaphttpsender.h
@@ -3,31 +3,25 @@
* @brief Abstracts details of sending messages via the
* UntrustedMessage capability.
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llchannelmanager.cpp b/indra/newview/llchannelmanager.cpp
index fafa315a59..4ab3d8dc98 100644
--- a/indra/newview/llchannelmanager.cpp
+++ b/indra/newview/llchannelmanager.cpp
@@ -2,31 +2,25 @@
* @file llchannelmanager.cpp
* @brief This class rules screen notification channels.
*
- * $LicenseInfo:firstyear=2000&license=viewergpl$
- *
- * Copyright (c) 2000-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2000&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llchannelmanager.h b/indra/newview/llchannelmanager.h
index 8c725f2660..db936b28d9 100644
--- a/indra/newview/llchannelmanager.h
+++ b/indra/newview/llchannelmanager.h
@@ -2,31 +2,25 @@
* @file llchannelmanager.h
* @brief This class rules screen notification channels.
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -119,6 +113,7 @@ public:
*/
static LLNotificationsUI::LLScreenChannel* getNotificationScreenChannel();
+ std::vector<ChannelElem>& getChannelList() { return mChannelList;}
private:
LLScreenChannel* createChannel(LLChannelManager::Params& p);
diff --git a/indra/newview/llchatbar.cpp b/indra/newview/llchatbar.cpp
index cd279fa10a..6e58be8174 100644
--- a/indra/newview/llchatbar.cpp
+++ b/indra/newview/llchatbar.cpp
@@ -2,31 +2,25 @@
* @file llchatbar.cpp
* @brief LLChatBar class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -132,7 +126,7 @@ BOOL LLChatBar::postBuild()
mInputEditor->setPassDelete(TRUE);
mInputEditor->setReplaceNewlinesWithSpaces(FALSE);
- mInputEditor->setMaxTextLength(1023);
+ mInputEditor->setMaxTextLength(DB_CHAT_MSG_STR_LEN);
mInputEditor->setEnableLineHistory(TRUE);
mIsBuilt = TRUE;
@@ -191,7 +185,7 @@ void LLChatBar::refresh()
gAgent.stopTyping();
}
- childSetEnabled("Say", mInputEditor->getText().size() > 0);
+ getChildView("Say")->setEnabled(mInputEditor->getText().size() > 0);
}
@@ -393,7 +387,7 @@ void LLChatBar::sendChat( EChatType type )
}
}
- childSetValue("Chat Editor", LLStringUtil::null);
+ getChild<LLUICtrl>("Chat Editor")->setValue(LLStringUtil::null);
gAgent.stopTyping();
@@ -571,12 +565,20 @@ void LLChatBar::sendChatFromViewer(const std::string &utf8text, EChatType type,
void LLChatBar::sendChatFromViewer(const LLWString &wtext, EChatType type, BOOL animate)
{
+ // as soon as we say something, we no longer care about teaching the user
+ // how to chat
+ gWarningSettings.setBOOL("FirstOtherChatBeforeUser", FALSE);
+
// Look for "/20 foo" channel chats.
S32 channel = 0;
LLWString out_text = stripChannelNumber(wtext, &channel);
std::string utf8_out_text = wstring_to_utf8str(out_text);
- std::string utf8_text = wstring_to_utf8str(wtext);
+ if (!utf8_out_text.empty())
+ {
+ utf8_out_text = utf8str_truncate(utf8_out_text, MAX_MSG_STR_LEN);
+ }
+ std::string utf8_text = wstring_to_utf8str(wtext);
utf8_text = utf8str_trim(utf8_text);
if (!utf8_text.empty())
{
@@ -679,11 +681,30 @@ public:
bool handle(const LLSD& tokens, const LLSD& query_map,
LLMediaCtrl* web)
{
- if (tokens.size() < 2) return false;
+ bool retval = false;
+ // Need at least 2 tokens to have a valid message.
+ if (tokens.size() < 2)
+ {
+ retval = false;
+ }
+ else
+ {
S32 channel = tokens[0].asInteger();
+ // VWR-19499 Restrict function to chat channels greater than 0.
+ if ((channel > 0) && (channel < 2147483647))
+ {
+ retval = true;
+ // Say mesg on channel
std::string mesg = tokens[1].asString();
send_chat_from_viewer(mesg, CHAT_TYPE_NORMAL, channel);
- return true;
+ }
+ else
+ {
+ retval = false;
+ // Tell us this is an unsupported SLurl.
+ }
+ }
+ return retval;
}
};
diff --git a/indra/newview/llchatbar.h b/indra/newview/llchatbar.h
index 86aa3ebd2a..26ef5f1535 100644
--- a/indra/newview/llchatbar.h
+++ b/indra/newview/llchatbar.h
@@ -2,31 +2,25 @@
* @file llchatbar.h
* @brief LLChatBar class definition
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llchathistory.cpp b/indra/newview/llchathistory.cpp
index ab97dbb695..eb10add254 100644
--- a/indra/newview/llchathistory.cpp
+++ b/indra/newview/llchathistory.cpp
@@ -2,31 +2,25 @@
* @file llchathistory.cpp
* @brief LLTextEditor base class
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -107,10 +101,16 @@ public:
static LLChatHistoryHeader* createInstance(const std::string& file_name)
{
LLChatHistoryHeader* pInstance = new LLChatHistoryHeader;
- LLUICtrlFactory::getInstance()->buildPanel(pInstance, file_name);
+ pInstance->buildFromFile(file_name);
return pInstance;
}
+ ~LLChatHistoryHeader()
+ {
+ // Detach the info button so that it doesn't get destroyed (EXT-8463).
+ hideInfoCtrl();
+ }
+
BOOL handleMouseUp(S32 x, S32 y, MASK mask)
{
return LLPanel::handleMouseUp(x,y,mask);
@@ -382,11 +382,21 @@ protected:
if (!sInfoCtrl)
{
+ // *TODO: Delete the button at exit.
sInfoCtrl = LLUICtrlFactory::createFromFile<LLUICtrl>("inspector_info_ctrl.xml", NULL, LLPanel::child_registry_t::instance());
- sInfoCtrl->setCommitCallback(boost::bind(&LLChatHistoryHeader::onClickInfoCtrl, sInfoCtrl));
+ if (sInfoCtrl)
+ {
+ sInfoCtrl->setCommitCallback(boost::bind(&LLChatHistoryHeader::onClickInfoCtrl, sInfoCtrl));
+ }
}
- LLTextBase* name = getChild<LLTextBase>("user_name");
+ if (!sInfoCtrl)
+ {
+ llassert(sInfoCtrl != NULL);
+ return;
+ }
+
+ LLTextBox* name = getChild<LLTextBox>("user_name");
LLRect sticky_rect = name->getRect();
S32 icon_x = llmin(sticky_rect.mLeft + name->getTextBoundingRect().getWidth() + 7, sticky_rect.mRight - 3);
sInfoCtrl->setOrigin(icon_x, sticky_rect.getCenterY() - sInfoCtrl->getRect().getHeight() / 2 ) ;
@@ -486,12 +496,17 @@ void LLChatHistory::initFromParams(const LLChatHistory::Params& p)
const S32 NEW_TEXT_NOTICE_HEIGHT = 20;
- LLPanel::Params panel_p;
+ LLLayoutPanel::Params panel_p;
panel_p.name = "spacer";
panel_p.background_visible = false;
panel_p.has_border = false;
panel_p.mouse_opaque = false;
- stackp->addPanel(LLUICtrlFactory::create<LLPanel>(panel_p), 0, 30, S32_MAX, S32_MAX, true, false, LLLayoutStack::ANIMATE);
+ panel_p.min_dim = 30;
+ panel_p.max_dim = S32_MAX;
+ panel_p.auto_resize = true;
+ panel_p.user_resize = false;
+
+ stackp->addPanel(LLUICtrlFactory::create<LLLayoutPanel>(panel_p), LLLayoutStack::ANIMATE);
panel_p.name = "new_text_notice_holder";
LLRect new_text_notice_rect = getLocalRect();
@@ -500,7 +515,10 @@ void LLChatHistory::initFromParams(const LLChatHistory::Params& p)
panel_p.background_opaque = true;
panel_p.background_visible = true;
panel_p.visible = false;
- mMoreChatPanel = LLUICtrlFactory::create<LLPanel>(panel_p);
+ panel_p.min_dim = 0;
+ panel_p.auto_resize = false;
+ panel_p.user_resize = false;
+ mMoreChatPanel = LLUICtrlFactory::create<LLLayoutPanel>(panel_p);
LLTextBox::Params text_p(p.more_chat_text);
text_p.rect = mMoreChatPanel->getLocalRect();
@@ -509,7 +527,7 @@ void LLChatHistory::initFromParams(const LLChatHistory::Params& p)
mMoreChatText = LLUICtrlFactory::create<LLTextBox>(text_p, mMoreChatPanel);
mMoreChatText->setClickedCallback(boost::bind(&LLChatHistory::onClickMoreText, this));
- stackp->addPanel(mMoreChatPanel, 0, 0, S32_MAX, S32_MAX, false, false, LLLayoutStack::ANIMATE);
+ stackp->addPanel(mMoreChatPanel, LLLayoutStack::ANIMATE);
}
@@ -557,11 +575,14 @@ void LLChatHistory::appendMessage(const LLChat& chat, const LLSD &args, const LL
{
bool use_plain_text_chat_history = args["use_plain_text_chat_history"].asBoolean();
- if(mEditor)
+ llassert(mEditor);
+ if (!mEditor)
{
- mEditor->setPlainText(use_plain_text_chat_history);
+ return;
}
+ mEditor->setPlainText(use_plain_text_chat_history);
+
if (!mEditor->scrolledToEnd() && chat.mFromID != gAgent.getID() && !chat.mFromName.empty())
{
mUnreadChatSources.insert(chat.mFromName);
@@ -666,13 +687,13 @@ void LLChatHistory::appendMessage(const LLChat& chat, const LLSD &args, const LL
slurl = region_slurl.getLocationString();
}
}
- url += "&slurl=" + slurl;
+ url += "&slurl=" + LLURI::escape(slurl);
// set the link for the object name to be the objectim SLapp
// (don't let object names with hyperlinks override our objectim Url)
LLStyle::Params link_params(style_params);
link_params.color.control = "HTMLLinkColor";
- link_params.link_href = LLURI::escape(url);
+ link_params.link_href = url;
mEditor->appendText("<nolink>" + chat.mFromName + "</nolink>" + delimiter,
false, link_params);
}
@@ -680,8 +701,9 @@ void LLChatHistory::appendMessage(const LLChat& chat, const LLSD &args, const LL
{
LLStyle::Params link_params(style_params);
link_params.overwriteFrom(LLStyleMap::instance().lookupAgent(chat.mFromID));
- // Convert the name to a hotlink and add to message.
- mEditor->appendText(chat.mFromName + delimiter, false, link_params);
+ // Add link to avatar's inspector and delimiter to message.
+ mEditor->appendText(link_params.link_href, false, style_params);
+ mEditor->appendText(delimiter, false, style_params);
}
else
{
@@ -740,13 +762,13 @@ void LLChatHistory::appendMessage(const LLChat& chat, const LLSD &args, const LL
mIsLastMessageFromLog = message_from_log;
}
- if (chat.mNotifId.notNull())
+ if (chat.mNotifId.notNull())
{
LLNotificationPtr notification = LLNotificationsUtil::find(chat.mNotifId);
if (notification != NULL)
{
LLIMToastNotifyPanel* notify_box = new LLIMToastNotifyPanel(
- notification, chat.mSessionID);
+ notification, chat.mSessionID, LLRect::null, !use_plain_text_chat_history);
//we can't set follows in xml since it broke toasts behavior
notify_box->setFollowsLeft();
notify_box->setFollowsRight();
@@ -832,6 +854,7 @@ void LLChatHistory::appendMessage(const LLChat& chat, const LLSD &args, const LL
mEditor->appendText(message, FALSE, style_params);
}
+
mEditor->blockUndo();
// automatically scroll to end when receiving chat from myself
diff --git a/indra/newview/llchathistory.h b/indra/newview/llchathistory.h
index fa1f2e04a4..ac48d7bf29 100644
--- a/indra/newview/llchathistory.h
+++ b/indra/newview/llchathistory.h
@@ -2,31 +2,25 @@
* @file llchathistory.h
* @brief LLTextEditor base class
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -144,7 +138,7 @@ class LLChatHistory : public LLUICtrl
S32 mTopHeaderPad;
S32 mBottomHeaderPad;
- LLPanel* mMoreChatPanel;
+ class LLLayoutPanel* mMoreChatPanel;
LLTextBox* mMoreChatText;
LLTextEditor* mEditor;
typedef std::set<std::string> unread_chat_source_t;
diff --git a/indra/newview/llchatitemscontainerctrl.cpp b/indra/newview/llchatitemscontainerctrl.cpp
index 35a244c461..e78bdbe25c 100644
--- a/indra/newview/llchatitemscontainerctrl.cpp
+++ b/indra/newview/llchatitemscontainerctrl.cpp
@@ -2,31 +2,25 @@
* @file llchatitemscontainer.cpp
* @brief chat history scrolling panel implementation
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -57,7 +51,7 @@ static const S32 msg_height_pad = 5;
LLNearbyChatToastPanel* LLNearbyChatToastPanel::createInstance()
{
LLNearbyChatToastPanel* item = new LLNearbyChatToastPanel();
- LLUICtrlFactory::getInstance()->buildPanel(item, "panel_chat_item.xml");
+ item->buildFromFile("panel_chat_item.xml");
item->setFollows(FOLLOWS_NONE);
return item;
}
diff --git a/indra/newview/llchatitemscontainerctrl.h b/indra/newview/llchatitemscontainerctrl.h
index b28c9dbc4b..1d700dcede 100644
--- a/indra/newview/llchatitemscontainerctrl.h
+++ b/indra/newview/llchatitemscontainerctrl.h
@@ -2,31 +2,25 @@
* @file llchatitemscontainerctrl.h
* @brief chat history scrolling panel implementation
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llchatmsgbox.cpp b/indra/newview/llchatmsgbox.cpp
index bb0ec2db27..024ccbcd0b 100644
--- a/indra/newview/llchatmsgbox.cpp
+++ b/indra/newview/llchatmsgbox.cpp
@@ -3,31 +3,25 @@
* @author Martin Reddy
* @brief chat history text box, able to show array of strings with separator
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llchatmsgbox.h b/indra/newview/llchatmsgbox.h
index 9e16616729..7e008dba46 100644
--- a/indra/newview/llchatmsgbox.h
+++ b/indra/newview/llchatmsgbox.h
@@ -3,31 +3,25 @@
* @author Martin Reddy
* @brief chat history text box, able to show array of strings with separator
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llchiclet.cpp b/indra/newview/llchiclet.cpp
index 6897f4ee8e..8f385160e9 100644
--- a/indra/newview/llchiclet.cpp
+++ b/indra/newview/llchiclet.cpp
@@ -2,31 +2,25 @@
* @file llchiclet.cpp
* @brief LLChiclet class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -1886,7 +1880,7 @@ void LLScriptChiclet::onMenuItemClicked(const LLSD& user_data)
if("end" == action)
{
- LLScriptFloaterManager::instance().onRemoveNotification(getSessionId());
+ LLScriptFloaterManager::instance().removeNotification(getSessionId());
}
}
@@ -1969,7 +1963,7 @@ void LLInvOfferChiclet::onMenuItemClicked(const LLSD& user_data)
if("end" == action)
{
- LLScriptFloaterManager::instance().onRemoveNotification(getSessionId());
+ LLScriptFloaterManager::instance().removeNotification(getSessionId());
}
}
diff --git a/indra/newview/llchiclet.h b/indra/newview/llchiclet.h
index 9d421b4f0b..a6e12006a1 100644
--- a/indra/newview/llchiclet.h
+++ b/indra/newview/llchiclet.h
@@ -2,31 +2,25 @@
* @file llchiclet.h
* @brief LLChiclet class header file
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llclassifiedinfo.cpp b/indra/newview/llclassifiedinfo.cpp
index 5fcafbeca6..800aff149a 100644
--- a/indra/newview/llclassifiedinfo.cpp
+++ b/indra/newview/llclassifiedinfo.cpp
@@ -2,31 +2,25 @@
* @file llclassifiedinfo.cpp
* @brief LLClassifiedInfo class definition
*
- * $LicenseInfo:firstyear=2005&license=viewergpl$
- *
- * Copyright (c) 2005-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llclassifiedinfo.h b/indra/newview/llclassifiedinfo.h
index 37134c7e5b..3ff793b168 100644
--- a/indra/newview/llclassifiedinfo.h
+++ b/indra/newview/llclassifiedinfo.h
@@ -2,31 +2,25 @@
* @file llclassifiedinfo.h
* @brief LLClassifiedInfo class definition
*
- * $LicenseInfo:firstyear=2005&license=viewergpl$
- *
- * Copyright (c) 2005-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llclassifiedstatsresponder.cpp b/indra/newview/llclassifiedstatsresponder.cpp
index 95f17aa7ba..b4da31895f 100644
--- a/indra/newview/llclassifiedstatsresponder.cpp
+++ b/indra/newview/llclassifiedstatsresponder.cpp
@@ -3,31 +3,25 @@
* @brief Receives information about classified ad click-through
* counts for display in the classified information UI.
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llclassifiedstatsresponder.h b/indra/newview/llclassifiedstatsresponder.h
index 4a74f7b129..3db1868cb2 100644
--- a/indra/newview/llclassifiedstatsresponder.h
+++ b/indra/newview/llclassifiedstatsresponder.h
@@ -3,31 +3,25 @@
* @brief Receives information about classified ad click-through
* counts for display in the classified information UI.
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
#ifndef LL_LLCLASSIFIEDSTATSRESPONDER_H
diff --git a/indra/newview/llcloud.cpp b/indra/newview/llcloud.cpp
index a4104923e4..cda0f6e4a2 100644
--- a/indra/newview/llcloud.cpp
+++ b/indra/newview/llcloud.cpp
@@ -2,31 +2,25 @@
* @file llcloud.cpp
* @brief Implementation of viewer LLCloudLayer class
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llcloud.h b/indra/newview/llcloud.h
index 155bf4eae9..0435ba1ece 100644
--- a/indra/newview/llcloud.h
+++ b/indra/newview/llcloud.h
@@ -2,31 +2,25 @@
* @file llcloud.h
* @brief Description of viewer LLCloudLayer class
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llcofwearables.cpp b/indra/newview/llcofwearables.cpp
index aa8cc01f7d..84c560639e 100644
--- a/indra/newview/llcofwearables.cpp
+++ b/indra/newview/llcofwearables.cpp
@@ -2,31 +2,25 @@
* @file llcofwearables.cpp
* @brief LLCOFWearables displayes wearables from the current outfit split into three lists (attachments, clothing and body parts)
*
- * $LicenseInfo:firstyear=2010&license=viewergpl$
- *
- * Copyright (c) 2010, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2010&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -79,9 +73,7 @@ protected:
}
// Set proper label for the "Create new <WEARABLE_TYPE>" menu item.
- LLStringUtil::format_map_t args;
- args["[WEARABLE_TYPE]"] = LLWearableType::getTypeDefaultNewName(w_type);
- std::string new_label = LLTrans::getString("CreateNewWearable", args);
+ std::string new_label = LLTrans::getString("create_new_" + LLWearableType::getTypeName(w_type));
menu_item->setLabel(new_label);
}
@@ -165,6 +157,22 @@ public:
}
protected:
+ static void replaceWearable(const LLUUID& item_id)
+ {
+ // *TODO: Most probable that accessing to LLPanelOutfitEdit instance should be:
+ // LLSideTray::getInstance()->getSidepanelAppearance()->getPanelOutfitEdit()
+ // without casting. Getter methods provides possibility to check and construct
+ // absent instance. Explicit relations between components avoids situations
+ // when we tries to construct instance with unsatisfied implicit input conditions.
+ LLPanelOutfitEdit * panel_outfit_edit =
+ dynamic_cast<LLPanelOutfitEdit*> (LLSideTray::getInstance()->getPanel(
+ "panel_outfit_edit"));
+ if (panel_outfit_edit != NULL)
+ {
+ panel_outfit_edit->onReplaceMenuItemClicked(item_id);
+ }
+ }
+
/*virtual*/ LLContextMenu* createMenu()
{
LLUICtrl::CommitCallbackRegistry::ScopedRegistrar registrar;
@@ -173,8 +181,7 @@ protected:
functor_t take_off = boost::bind(&LLAppearanceMgr::removeItemFromAvatar, LLAppearanceMgr::getInstance(), _1);
registrar.add("Clothing.TakeOff", boost::bind(handleMultiple, take_off, mUUIDs));
- registrar.add("Clothing.MoveUp", boost::bind(moveWearable, selected_id, false));
- registrar.add("Clothing.MoveDown", boost::bind(moveWearable, selected_id, true));
+ 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));
@@ -194,15 +201,7 @@ protected:
std::string param = data.asString();
LLUUID selected_id = mUUIDs.back();
- if ("move_up" == param)
- {
- return gAgentWearables.canMoveWearable(selected_id, false);
- }
- else if ("move_down" == param)
- {
- return gAgentWearables.canMoveWearable(selected_id, true);
- }
- else if ("take_off" == param)
+ if ("take_off" == param)
{
return get_is_item_worn(selected_id);
}
@@ -210,15 +209,12 @@ protected:
{
return mUUIDs.size() == 1 && gAgentWearables.isWearableModifiable(selected_id);
}
- return true;
- }
+ else if ("replace" == param)
+ {
+ return get_is_item_worn(selected_id) && mUUIDs.size() == 1;
+ }
- // We don't use LLAppearanceMgr::moveWearable() directly because
- // the item may be invalidated between setting the callback and calling it.
- static bool moveWearable(const LLUUID& item_id, bool closer_to_body)
- {
- LLViewerInventoryItem* item = gInventory.getItem(item_id);
- return LLAppearanceMgr::instance().moveWearable(item, closer_to_body);
+ return true;
}
};
@@ -242,7 +238,7 @@ protected:
// *HACK* need to pass pointer to LLPanelOutfitEdit instead of LLSideTray::getInstance()->getPanel().
// LLSideTray::getInstance()->getPanel() is rather slow variant
LLPanelOutfitEdit* panel_oe = dynamic_cast<LLPanelOutfitEdit*>(LLSideTray::getInstance()->getPanel("panel_outfit_edit"));
- registrar.add("BodyPart.Replace", boost::bind(&LLPanelOutfitEdit::onReplaceBodyPartMenuItemClicked, panel_oe, selected_id));
+ registrar.add("BodyPart.Replace", boost::bind(&LLPanelOutfitEdit::onReplaceMenuItemClicked, panel_oe, selected_id));
registrar.add("BodyPart.Edit", boost::bind(LLAgentWearables::editWearable, selected_id));
registrar.add("BodyPart.Create", boost::bind(&CofBodyPartContextMenu::createNew, this, selected_id));
@@ -277,7 +273,13 @@ LLCOFWearables::LLCOFWearables() : LLPanel(),
mAttachments(NULL),
mClothing(NULL),
mBodyParts(NULL),
- mLastSelectedList(NULL)
+ mLastSelectedList(NULL),
+ mClothingTab(NULL),
+ mAttachmentsTab(NULL),
+ mBodyPartsTab(NULL),
+ mLastSelectedTab(NULL),
+ mAccordionCtrl(NULL),
+ mCOFVersion(-1)
{
mClothingMenu = new CofClothingContextMenu(this);
mAttachmentMenu = new CofAttachmentContextMenu(this);
@@ -315,6 +317,22 @@ BOOL LLCOFWearables::postBuild()
mAttachments->setComparator(&WEARABLE_NAME_COMPARATOR);
mBodyParts->setComparator(&WEARABLE_NAME_COMPARATOR);
+
+ mClothingTab = getChild<LLAccordionCtrlTab>("tab_clothing");
+ mClothingTab->setDropDownStateChangedCallback(boost::bind(&LLCOFWearables::onAccordionTabStateChanged, this, _1, _2));
+
+ mAttachmentsTab = getChild<LLAccordionCtrlTab>("tab_attachments");
+ mAttachmentsTab->setDropDownStateChangedCallback(boost::bind(&LLCOFWearables::onAccordionTabStateChanged, this, _1, _2));
+
+ mBodyPartsTab = getChild<LLAccordionCtrlTab>("tab_body_parts");
+ mBodyPartsTab->setDropDownStateChangedCallback(boost::bind(&LLCOFWearables::onAccordionTabStateChanged, this, _1, _2));
+
+ mTab2AssetType[mClothingTab] = LLAssetType::AT_CLOTHING;
+ mTab2AssetType[mAttachmentsTab] = LLAssetType::AT_OBJECT;
+ mTab2AssetType[mBodyPartsTab] = LLAssetType::AT_BODYPART;
+
+ mAccordionCtrl = getChild<LLAccordionCtrl>("cof_wearables_accordion");
+
return LLPanel::postBuild();
}
@@ -334,14 +352,65 @@ void LLCOFWearables::onSelectionChange(LLFlatListView* selected_list)
onCommit();
}
+void LLCOFWearables::onAccordionTabStateChanged(LLUICtrl* ctrl, const LLSD& expanded)
+{
+ bool had_selected_items = mClothing->numSelected() || mAttachments->numSelected() || mBodyParts->numSelected();
+ mClothing->resetSelection(true);
+ mAttachments->resetSelection(true);
+ mBodyParts->resetSelection(true);
+
+ bool tab_selection_changed = false;
+ LLAccordionCtrlTab* tab = dynamic_cast<LLAccordionCtrlTab*>(ctrl);
+ if (tab && tab != mLastSelectedTab)
+ {
+ mLastSelectedTab = tab;
+ tab_selection_changed = true;
+ }
+
+ if (had_selected_items || tab_selection_changed)
+ {
+ //sending commit signal to indicate selection changes
+ onCommit();
+ }
+}
+
void LLCOFWearables::refresh()
{
+ const LLUUID cof_id = LLAppearanceMgr::instance().getCOF();
+ if (cof_id.isNull())
+ {
+ llwarns << "COF ID cannot be NULL" << llendl;
+ return;
+ }
+
+ LLViewerInventoryCategory* catp = gInventory.getCategory(cof_id);
+ if (!catp)
+ {
+ llwarns << "COF category cannot be NULL" << llendl;
+ return;
+ }
+
+ // BAP - this check has to be removed because an item name change does not
+ // change cat version - ie, checking version is not a complete way
+ // of finding out whether anything has changed in this category.
+ //if (mCOFVersion == catp->getVersion()) return;
+
+ mCOFVersion = catp->getVersion();
+
+ // Save current scrollbar position.
+ typedef std::map<LLFlatListView*, LLRect> scroll_pos_map_t;
+ scroll_pos_map_t saved_scroll_pos;
+
+ saved_scroll_pos[mAttachments] = mAttachments->getVisibleContentRect();
+ saved_scroll_pos[mClothing] = mClothing->getVisibleContentRect();
+ saved_scroll_pos[mBodyParts] = mBodyParts->getVisibleContentRect();
+
+ // Save current selection.
typedef std::vector<LLSD> values_vector_t;
typedef std::map<LLFlatListView*, values_vector_t> selection_map_t;
selection_map_t preserve_selection;
- // Save current selection
mAttachments->getSelectedValues(preserve_selection[mAttachments]);
mClothing->getSelectedValues(preserve_selection[mClothing]);
mBodyParts->getSelectedValues(preserve_selection[mBodyParts]);
@@ -351,7 +420,7 @@ void LLCOFWearables::refresh()
LLInventoryModel::cat_array_t cats;
LLInventoryModel::item_array_t cof_items;
- gInventory.collectDescendents(LLAppearanceMgr::getInstance()->getCOF(), cats, cof_items, LLInventoryModel::EXCLUDE_TRASH);
+ gInventory.collectDescendents(cof_id, cats, cof_items, LLInventoryModel::EXCLUDE_TRASH);
populateAttachmentsAndBodypartsLists(cof_items);
@@ -368,14 +437,35 @@ void LLCOFWearables::refresh()
iter != iter_end; ++iter)
{
LLFlatListView* list = iter->first;
+ if (!list) continue;
+
+ //restoring selection should not fire commit callbacks
+ list->setCommitOnSelectionChange(false);
+
const values_vector_t& values = iter->second;
for (values_vector_t::const_iterator
value_it = values.begin(),
value_it_end = values.end();
value_it != value_it_end; ++value_it)
{
- list->selectItemByValue(*value_it);
+ // value_it may be null because of dummy items
+ // Dummy items have no ID
+ if(value_it->asUUID().notNull())
+ {
+ list->selectItemByValue(*value_it);
+ }
}
+
+ list->setCommitOnSelectionChange(true);
+ }
+
+ // Restore previous scrollbar position.
+ for (scroll_pos_map_t::const_iterator it = saved_scroll_pos.begin(); it != saved_scroll_pos.end(); ++it)
+ {
+ LLFlatListView* list = it->first;
+ LLRect scroll_pos = it->second;
+
+ list->scrollToShowRect(scroll_pos);
}
}
@@ -441,13 +531,13 @@ LLPanelClothingListItem* LLCOFWearables::buildClothingListItem(LLViewerInventory
//setting callbacks
//*TODO move that item panel's inner structure disclosing stuff into the panels
- item_panel->childSetAction("btn_delete", mCOFCallbacks.mDeleteWearable);
- item_panel->childSetAction("btn_move_up", mCOFCallbacks.mMoveWearableFurther);
- item_panel->childSetAction("btn_move_down", mCOFCallbacks.mMoveWearableCloser);
- item_panel->childSetAction("btn_edit", mCOFCallbacks.mEditWearable);
+ item_panel->childSetAction("btn_delete", boost::bind(mCOFCallbacks.mDeleteWearable));
+ item_panel->childSetAction("btn_move_up", boost::bind(mCOFCallbacks.mMoveWearableFurther));
+ item_panel->childSetAction("btn_move_down", boost::bind(mCOFCallbacks.mMoveWearableCloser));
+ item_panel->childSetAction("btn_edit", boost::bind(mCOFCallbacks.mEditWearable));
//turning on gray separator line for the last item in the items group of the same wearable type
- item_panel->childSetVisible("wearable_type_separator_icon", last);
+ item_panel->setSeparatorVisible(last);
return item_panel;
}
@@ -470,8 +560,8 @@ LLPanelBodyPartsListItem* LLCOFWearables::buildBodypartListItem(LLViewerInventor
//setting callbacks
//*TODO move that item panel's inner structure disclosing stuff into the panels
- item_panel->childSetAction("btn_delete", mCOFCallbacks.mDeleteWearable);
- item_panel->childSetAction("btn_edit", mCOFCallbacks.mEditWearable);
+ item_panel->childSetAction("btn_delete", boost::bind(mCOFCallbacks.mDeleteWearable));
+ item_panel->childSetAction("btn_edit", boost::bind(mCOFCallbacks.mEditWearable));
return item_panel;
}
@@ -486,7 +576,7 @@ LLPanelDeletableWearableListItem* LLCOFWearables::buildAttachemntListItem(LLView
//setting callbacks
//*TODO move that item panel's inner structure disclosing stuff into the panels
- item_panel->childSetAction("btn_delete", mCOFCallbacks.mDeleteWearable);
+ item_panel->childSetAction("btn_delete", boost::bind(mCOFCallbacks.mDeleteWearable));
return item_panel;
}
@@ -532,7 +622,7 @@ void LLCOFWearables::addClothingTypesDummies(const LLAppearanceMgr::wearables_by
LLWearableType::EType w_type = static_cast<LLWearableType::EType>(type);
LLPanelInventoryListItemBase* item_panel = LLPanelDummyClothingListItem::create(w_type);
if(!item_panel) continue;
- item_panel->childSetAction("btn_add", mCOFCallbacks.mAddWearable);
+ item_panel->childSetAction("btn_add", boost::bind(mCOFCallbacks.mAddWearable));
mClothing->addItem(item_panel, LLUUID::null, ADD_BOTTOM, false);
}
}
@@ -579,26 +669,35 @@ LLAssetType::EType LLCOFWearables::getExpandedAccordionAssetType()
typedef std::map<std::string, LLAssetType::EType> type_map_t;
static type_map_t type_map;
- static LLAccordionCtrl* accordion_ctrl = getChild<LLAccordionCtrl>("cof_wearables_accordion");
- if (type_map.empty())
+ if (mAccordionCtrl != NULL)
{
- type_map["tab_clothing"] = LLAssetType::AT_CLOTHING;
- type_map["tab_attachments"] = LLAssetType::AT_OBJECT;
- type_map["tab_body_parts"] = LLAssetType::AT_BODYPART;
+ const LLAccordionCtrlTab* expanded_tab = mAccordionCtrl->getExpandedTab();
+
+ return get_if_there(mTab2AssetType, expanded_tab, LLAssetType::AT_NONE);
}
- const LLAccordionCtrlTab* tab = accordion_ctrl->getExpandedTab();
- LLAssetType::EType result = LLAssetType::AT_NONE;
+ return LLAssetType::AT_NONE;
+}
- if (tab)
+LLAssetType::EType LLCOFWearables::getSelectedAccordionAssetType()
{
- type_map_t::iterator i = type_map.find(tab->getName());
- llassert(i != type_map.end());
- result = i->second;
- }
+ if (mAccordionCtrl != NULL)
+ {
+ const LLAccordionCtrlTab* selected_tab = mAccordionCtrl->getSelectedTab();
+
+ return get_if_there(mTab2AssetType, selected_tab, LLAssetType::AT_NONE);
+}
- return result;
+ return LLAssetType::AT_NONE;
+}
+
+void LLCOFWearables::expandDefaultAccordionTab()
+{
+ if (mAccordionCtrl != NULL)
+ {
+ mAccordionCtrl->expandDefaultTab();
+ }
}
void LLCOFWearables::onListRightClick(LLUICtrl* ctrl, S32 x, S32 y, LLListContextMenu* menu)
@@ -608,7 +707,41 @@ void LLCOFWearables::onListRightClick(LLUICtrl* ctrl, S32 x, S32 y, LLListContex
uuid_vec_t selected_uuids;
if(getSelectedUUIDs(selected_uuids))
{
- menu->show(ctrl, selected_uuids, x, y);
+ bool show_menu = false;
+ for(uuid_vec_t::iterator it = selected_uuids.begin();it!=selected_uuids.end();++it)
+ {
+ if ((*it).notNull())
+ {
+ show_menu = true;
+ break;
+ }
+ }
+
+ if(show_menu)
+ {
+ menu->show(ctrl, selected_uuids, x, y);
+ }
+ }
+ }
+}
+
+void LLCOFWearables::selectClothing(LLWearableType::EType clothing_type)
+{
+ std::vector<LLPanel*> clothing_items;
+
+ mClothing->getItems(clothing_items);
+
+ std::vector<LLPanel*>::iterator it;
+
+ for (it = clothing_items.begin(); it != clothing_items.end(); ++it )
+ {
+ LLPanelClothingListItem* clothing_item = dynamic_cast<LLPanelClothingListItem*>(*it);
+
+ if (clothing_item && clothing_item->getWearableType() == clothing_type)
+ { // clothing item has specified LLWearableType::EType. Select it and exit.
+
+ mClothing->selectItem(clothing_item);
+ break;
}
}
}
diff --git a/indra/newview/llcofwearables.h b/indra/newview/llcofwearables.h
index 62f4cfc692..1f8d6d0c94 100644
--- a/indra/newview/llcofwearables.h
+++ b/indra/newview/llcofwearables.h
@@ -2,31 +2,25 @@
* @file llcofwearables.h
* @brief LLCOFWearables displayes wearables from the current outfit split into three lists (attachments, clothing and body parts)
*
- * $LicenseInfo:firstyear=2010&license=viewergpl$
- *
- * Copyright (c) 2010, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2010&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -40,6 +34,8 @@
#include "llappearancemgr.h"
#include "llinventorymodel.h"
+class LLAccordionCtrl;
+class LLAccordionCtrlTab;
class LLListContextMenu;
class LLPanelClothingListItem;
class LLPanelBodyPartsListItem;
@@ -58,7 +54,7 @@ public:
LLCOFCallbacks() {};
virtual ~LLCOFCallbacks() {};
- typedef boost::function<void (void*)> cof_callback_t;
+ typedef boost::function<void ()> cof_callback_t;
cof_callback_t mAddWearable;
cof_callback_t mMoveWearableCloser;
@@ -80,13 +76,21 @@ public:
LLPanel* getSelectedItem();
void getSelectedItems(std::vector<LLPanel*>& selected_items) const;
+ /* Repopulate the COF wearables list if the COF category has been changed since the last refresh */
void refresh();
void clear();
LLAssetType::EType getExpandedAccordionAssetType();
+ LLAssetType::EType getSelectedAccordionAssetType();
+ void expandDefaultAccordionTab();
LLCOFCallbacks& getCOFCallbacks() { return mCOFCallbacks; }
+ /**
+ * Selects first clothing item with specified LLWearableType::EType from clothing list
+ */
+ void selectClothing(LLWearableType::EType clothing_type);
+
protected:
void populateAttachmentsAndBodypartsLists(const LLInventoryModel::item_array_t& cof_items);
@@ -94,6 +98,7 @@ protected:
void addClothingTypesDummies(const LLAppearanceMgr::wearables_by_type_t& clothing_by_type);
void onSelectionChange(LLFlatListView* selected_list);
+ void onAccordionTabStateChanged(LLUICtrl* ctrl, const LLSD& expanded);
LLPanelClothingListItem* buildClothingListItem(LLViewerInventoryItem* item, bool first, bool last);
LLPanelBodyPartsListItem* buildBodypartListItem(LLViewerInventoryItem* item);
@@ -107,11 +112,24 @@ protected:
LLFlatListView* mLastSelectedList;
+ LLAccordionCtrlTab* mClothingTab;
+ LLAccordionCtrlTab* mAttachmentsTab;
+ LLAccordionCtrlTab* mBodyPartsTab;
+
+ LLAccordionCtrlTab* mLastSelectedTab;
+
+ std::map<const LLAccordionCtrlTab*, LLAssetType::EType> mTab2AssetType;
+
LLCOFCallbacks mCOFCallbacks;
LLListContextMenu* mClothingMenu;
LLListContextMenu* mAttachmentMenu;
LLListContextMenu* mBodyPartMenu;
+
+ LLAccordionCtrl* mAccordionCtrl;
+
+ /* COF category version since last refresh */
+ S32 mCOFVersion;
};
diff --git a/indra/newview/llcolorswatch.cpp b/indra/newview/llcolorswatch.cpp
index b83e4fe830..c9a526a3be 100644
--- a/indra/newview/llcolorswatch.cpp
+++ b/indra/newview/llcolorswatch.cpp
@@ -2,31 +2,25 @@
* @file llcolorswatch.cpp
* @brief LLColorSwatch class implementation
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llcolorswatch.h b/indra/newview/llcolorswatch.h
index 09bb49cfbe..a4ce1ca099 100644
--- a/indra/newview/llcolorswatch.h
+++ b/indra/newview/llcolorswatch.h
@@ -2,31 +2,25 @@
* @file llcolorswatch.h
* @brief LLColorSwatch class definition
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llcommanddispatcherlistener.cpp b/indra/newview/llcommanddispatcherlistener.cpp
index 91baeaf989..5744d055a9 100644
--- a/indra/newview/llcommanddispatcherlistener.cpp
+++ b/indra/newview/llcommanddispatcherlistener.cpp
@@ -4,8 +4,25 @@
* @date 2009-12-10
* @brief Implementation for llcommanddispatcherlistener.
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- * Copyright (c) 2009, Linden Research, Inc.
+ * $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$
*/
diff --git a/indra/newview/llcommanddispatcherlistener.h b/indra/newview/llcommanddispatcherlistener.h
index 9bcddebcc1..024cc1a18d 100644
--- a/indra/newview/llcommanddispatcherlistener.h
+++ b/indra/newview/llcommanddispatcherlistener.h
@@ -4,8 +4,25 @@
* @date 2009-12-10
* @brief LLEventAPI for LLCommandDispatcher
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- * Copyright (c) 2009, Linden Research, Inc.
+ * $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$
*/
diff --git a/indra/newview/llcommandhandler.cpp b/indra/newview/llcommandhandler.cpp
index dc506a1692..360ba080ac 100644
--- a/indra/newview/llcommandhandler.cpp
+++ b/indra/newview/llcommandhandler.cpp
@@ -4,31 +4,25 @@
* which manipulate user interface. For example, the command
* "agent (uuid) about" will open the UI for an avatar's profile.
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
#include "llviewerprecompiledheaders.h"
diff --git a/indra/newview/llcommandhandler.h b/indra/newview/llcommandhandler.h
index a1d4c880f5..1e65b6de23 100644
--- a/indra/newview/llcommandhandler.h
+++ b/indra/newview/llcommandhandler.h
@@ -4,31 +4,25 @@
* which manipulate user interface. For example, the command
* "agent (uuid) about" will open the UI for an avatar's profile.
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
#ifndef LLCOMMANDHANDLER_H
diff --git a/indra/newview/llcommandlineparser.cpp b/indra/newview/llcommandlineparser.cpp
index c74406bf36..ee8646aad0 100644
--- a/indra/newview/llcommandlineparser.cpp
+++ b/indra/newview/llcommandlineparser.cpp
@@ -2,31 +2,25 @@
* @file llcommandlineparser.cpp
* @brief The LLCommandLineParser class definitions
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -59,7 +53,7 @@
namespace po = boost::program_options;
-// *NTOE:MEP - Currently the boost object reside in file scope.
+// *NOTE:MEP - Currently the boost object reside in file scope.
// This has a couple of negatives, they are always around and
// there can be only one instance of each.
// The plus is that the boost-ly-ness of this implementation is
@@ -162,6 +156,12 @@ public:
return mIsComposing;
}
+ // Needed for boost 1.42
+ virtual bool is_required() const
+ {
+ return false; // All our command line options are optional.
+ }
+
virtual bool apply_default(boost::any& value_store) const
{
return false; // No defaults.
@@ -175,7 +175,6 @@ public:
{
mNotifyCallback(*value);
}
-
}
protected:
diff --git a/indra/newview/llcommandlineparser.h b/indra/newview/llcommandlineparser.h
index f74cefc393..44f2a26843 100644
--- a/indra/newview/llcommandlineparser.h
+++ b/indra/newview/llcommandlineparser.h
@@ -2,31 +2,25 @@
* @file llcommandlineparser.h
* @brief LLCommandLineParser class declaration
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llcompilequeue.cpp b/indra/newview/llcompilequeue.cpp
index feb8c540ef..a42677845e 100644
--- a/indra/newview/llcompilequeue.cpp
+++ b/indra/newview/llcompilequeue.cpp
@@ -2,31 +2,25 @@
* @file llcompilequeue.cpp
* @brief LLCompileQueueData class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -95,7 +89,6 @@ LLFloaterScriptQueue::LLFloaterScriptQueue(const LLSD& key) :
mDone(false),
mMono(false)
{
- //Called from floater reg: LLUICtrlFactory::getInstance()->buildFloater(this,"floater_script_queue.xml", FALSE);
}
// Destroys the object
@@ -106,7 +99,7 @@ LLFloaterScriptQueue::~LLFloaterScriptQueue()
BOOL LLFloaterScriptQueue::postBuild()
{
childSetAction("close",onCloseBtn,this);
- childSetEnabled("close",FALSE);
+ getChildView("close")->setEnabled(FALSE);
return TRUE;
}
@@ -219,7 +212,7 @@ BOOL LLFloaterScriptQueue::nextObject()
{
mDone = true;
getChild<LLScrollListCtrl>("queue output")->setCommentText(getString("Done"));
- childSetEnabled("close",TRUE);
+ getChildView("close")->setEnabled(TRUE);
}
return successful_start;
}
diff --git a/indra/newview/llcompilequeue.h b/indra/newview/llcompilequeue.h
index 4fde2572af..4ddab29d00 100644
--- a/indra/newview/llcompilequeue.h
+++ b/indra/newview/llcompilequeue.h
@@ -2,31 +2,25 @@
* @file llcompilequeue.h
* @brief LLCompileQueue class header file
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llconfirmationmanager.cpp b/indra/newview/llconfirmationmanager.cpp
index 4b73339957..8ea59fdd83 100644
--- a/indra/newview/llconfirmationmanager.cpp
+++ b/indra/newview/llconfirmationmanager.cpp
@@ -2,31 +2,25 @@
* @file llconfirmationmanager.cpp
* @brief LLConfirmationManager class implementation
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llconfirmationmanager.h b/indra/newview/llconfirmationmanager.h
index 157c6be1df..d791a8b41a 100644
--- a/indra/newview/llconfirmationmanager.h
+++ b/indra/newview/llconfirmationmanager.h
@@ -2,31 +2,25 @@
* @file llconfirmationmanager.h
* @brief LLConfirmationManager class definition
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llcurrencyuimanager.cpp b/indra/newview/llcurrencyuimanager.cpp
index fd3df359bd..2b92b228b3 100644
--- a/indra/newview/llcurrencyuimanager.cpp
+++ b/indra/newview/llcurrencyuimanager.cpp
@@ -2,31 +2,25 @@
* @file llcurrencyuimanager.cpp
* @brief LLCurrencyUIManager class implementation
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -35,6 +29,8 @@
#include "lluictrlfactory.h"
#include "lltextbox.h"
#include "lllineeditor.h"
+#include "llresmgr.h" // for LLLocale
+#include "lltrans.h"
#include "llviewercontrol.h"
#include "llversioninfo.h"
@@ -168,6 +164,7 @@ void LLCurrencyUIManager::Impl::updateCurrencyInfo()
keywordArgs.appendString(
"secureSessionId",
gAgent.getSecureSessionID().asString());
+ keywordArgs.appendString("language", LLUI::getLanguage());
keywordArgs.appendInt("currencyBuy", mUserCurrencyBuy);
keywordArgs.appendString("viewerChannel", gSavedSettings.getString("VersionChannelName"));
keywordArgs.appendInt("viewerMajorVersion", LLVersionInfo::getMajor());
@@ -229,6 +226,7 @@ void LLCurrencyUIManager::Impl::startCurrencyBuy(const std::string& password)
keywordArgs.appendString(
"secureSessionId",
gAgent.getSecureSessionID().asString());
+ keywordArgs.appendString("language", LLUI::getLanguage());
keywordArgs.appendInt("currencyBuy", mUserCurrencyBuy);
if (mUSDCurrencyEstimated)
{
@@ -323,7 +321,12 @@ std::string LLCurrencyUIManager::Impl::getLocalEstimate() const
if (mUSDCurrencyEstimated)
{
// we have the old-style USD-specific value
- return "US$ " + llformat("%#.2f", mUSDCurrencyEstimatedCost / 100.0);
+ LLStringUtil::format_map_t args;
+ {
+ LLLocale locale_override(LLStringUtil::getLocale());
+ args["[AMOUNT]"] = llformat("%#.2f", mUSDCurrencyEstimatedCost / 100.0);
+ }
+ return LLTrans::getString("LocalEstimateUSD", args);
}
return "";
}
@@ -405,8 +408,8 @@ void LLCurrencyUIManager::Impl::currencyKey(S32 value)
//cannot just simply refresh the whole UI, as the edit field will
// get reset and the cursor will change...
- mPanel.childHide("currency_est");
- mPanel.childSetVisible("getting_data",TRUE);
+ mPanel.getChildView("currency_est")->setVisible(FALSE);
+ mPanel.getChildView("getting_data")->setVisible(TRUE);
}
mCurrencyChanged = true;
@@ -435,13 +438,13 @@ void LLCurrencyUIManager::Impl::updateUI()
{
if (mHidden)
{
- mPanel.childHide("currency_action");
- mPanel.childHide("currency_amt");
- mPanel.childHide("currency_est");
+ mPanel.getChildView("currency_action")->setVisible(FALSE);
+ mPanel.getChildView("currency_amt")->setVisible(FALSE);
+ mPanel.getChildView("currency_est")->setVisible(FALSE);
return;
}
- mPanel.childShow("currency_action");
+ mPanel.getChildView("currency_action")->setVisible(TRUE);
LLLineEditor* lindenAmount = mPanel.getChild<LLLineEditor>("currency_amt");
if (lindenAmount)
@@ -464,17 +467,17 @@ void LLCurrencyUIManager::Impl::updateUI()
}
}
- mPanel.childSetTextArg("currency_est", "[LOCALAMOUNT]", getLocalEstimate());
- mPanel.childSetVisible("currency_est", hasEstimate() && mUserCurrencyBuy > 0);
+ mPanel.getChild<LLUICtrl>("currency_est")->setTextArg("[LOCALAMOUNT]", getLocalEstimate());
+ mPanel.getChildView("currency_est")->setVisible( hasEstimate() && mUserCurrencyBuy > 0);
- mPanel.childSetVisible("currency_links", mSupportsInternationalBilling);
- mPanel.childSetVisible("exchange_rate_note", mSupportsInternationalBilling);
+ mPanel.getChildView("currency_links")->setVisible( mSupportsInternationalBilling);
+ mPanel.getChildView("exchange_rate_note")->setVisible( mSupportsInternationalBilling);
- if (mPanel.childIsEnabled("buy_btn")
- ||mPanel.childIsVisible("currency_est")
- || mPanel.childIsVisible("error_web"))
+ if (mPanel.getChildView("buy_btn")->getEnabled()
+ ||mPanel.getChildView("currency_est")->getVisible()
+ || mPanel.getChildView("error_web")->getVisible())
{
- mPanel.childSetVisible("getting_data",FALSE);
+ mPanel.getChildView("getting_data")->setVisible(FALSE);
}
}
diff --git a/indra/newview/llcurrencyuimanager.h b/indra/newview/llcurrencyuimanager.h
index dfe027098d..3f37db8db1 100644
--- a/indra/newview/llcurrencyuimanager.h
+++ b/indra/newview/llcurrencyuimanager.h
@@ -2,31 +2,25 @@
* @file llcurrencyuimanager.h
* @brief LLCurrencyUIManager class definition
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llcylinder.cpp b/indra/newview/llcylinder.cpp
index 183795e352..4901e29691 100644
--- a/indra/newview/llcylinder.cpp
+++ b/indra/newview/llcylinder.cpp
@@ -2,31 +2,25 @@
* @file llcylinder.cpp
* @brief Draws a cylinder using display lists for speed.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llcylinder.h b/indra/newview/llcylinder.h
index 8be080cd9b..40a669ceb6 100644
--- a/indra/newview/llcylinder.h
+++ b/indra/newview/llcylinder.h
@@ -2,31 +2,25 @@
* @file llcylinder.h
* @brief Draws a cylinder, and a cone, which is a special case cylinder
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lldateutil.cpp b/indra/newview/lldateutil.cpp
index 3e71ecdfba..e575e06c5a 100644
--- a/indra/newview/lldateutil.cpp
+++ b/indra/newview/lldateutil.cpp
@@ -1,31 +1,25 @@
/**
* @file lldateutil.cpp
*
-* $LicenseInfo:firstyear=2009&license=viewergpl$
-*
-* Copyright (c) 2009, Linden Research, Inc.
-*
+* $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
-* The source code in this file ("Source Code") is provided by Linden Lab
-* to you under the terms of the GNU General Public License, version 2.0
-* ("GPL"), unless you have obtained a separate licensing agreement
-* ("Other License"), formally executed by you and Linden Lab. Terms of
-* the GPL can be found in doc/GPL-license.txt in this distribution, or
-* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+* 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.
*
-* There are special exceptions to the terms and conditions of the GPL as
-* it is applied to this Source Code. View the full text of the exception
-* in the file doc/FLOSS-exception.txt in this software distribution, or
-* online at
-* http://secondlifegrid.net/programs/open_source/licensing/flossexception
+* 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.
*
-* By copying, modifying or distributing this software, you acknowledge
-* that you have read and understood your obligations described above,
-* and agree to abide by those obligations.
+* 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
*
-* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
-* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
-* COMPLETENESS OR PERFORMANCE.
+* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lldateutil.h b/indra/newview/lldateutil.h
index a0df21022e..5b465367dc 100644
--- a/indra/newview/lldateutil.h
+++ b/indra/newview/lldateutil.h
@@ -1,31 +1,25 @@
/**
* @file lldateutil.h
*
-* $LicenseInfo:firstyear=2009&license=viewergpl$
-*
-* Copyright (c) 2009, Linden Research, Inc.
-*
+* $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
-* The source code in this file ("Source Code") is provided by Linden Lab
-* to you under the terms of the GNU General Public License, version 2.0
-* ("GPL"), unless you have obtained a separate licensing agreement
-* ("Other License"), formally executed by you and Linden Lab. Terms of
-* the GPL can be found in doc/GPL-license.txt in this distribution, or
-* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+* 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.
*
-* There are special exceptions to the terms and conditions of the GPL as
-* it is applied to this Source Code. View the full text of the exception
-* in the file doc/FLOSS-exception.txt in this software distribution, or
-* online at
-* http://secondlifegrid.net/programs/open_source/licensing/flossexception
+* 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.
*
-* By copying, modifying or distributing this software, you acknowledge
-* that you have read and understood your obligations described above,
-* and agree to abide by those obligations.
+* 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
*
-* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
-* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
-* COMPLETENESS OR PERFORMANCE.
+* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lldebugmessagebox.cpp b/indra/newview/lldebugmessagebox.cpp
index 7814e94dfd..9ad812ab1e 100644
--- a/indra/newview/lldebugmessagebox.cpp
+++ b/indra/newview/lldebugmessagebox.cpp
@@ -2,31 +2,25 @@
* @file lldebugmessagebox.cpp
* @brief Implementation of a simple, non-modal message box.
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lldebugmessagebox.h b/indra/newview/lldebugmessagebox.h
index 0def0ee7af..211af9e074 100644
--- a/indra/newview/lldebugmessagebox.h
+++ b/indra/newview/lldebugmessagebox.h
@@ -2,31 +2,25 @@
* @file lldebugmessagebox.h
* @brief Debug message box.
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lldebugview.cpp b/indra/newview/lldebugview.cpp
index f113cc49d4..0876c3fd99 100644
--- a/indra/newview/lldebugview.cpp
+++ b/indra/newview/lldebugview.cpp
@@ -2,31 +2,25 @@
* @file lldebugview.cpp
* @brief A view containing UI elements only visible in build mode.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lldebugview.h b/indra/newview/lldebugview.h
index b17cdb43cd..5245f163c0 100644
--- a/indra/newview/lldebugview.h
+++ b/indra/newview/lldebugview.h
@@ -2,31 +2,25 @@
* @file lldebugview.h
* @brief A view containing debug UI elements
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lldelayedgestureerror.cpp b/indra/newview/lldelayedgestureerror.cpp
index ead377deb0..80e7c9f1b2 100644
--- a/indra/newview/lldelayedgestureerror.cpp
+++ b/indra/newview/lldelayedgestureerror.cpp
@@ -3,31 +3,25 @@
* @brief Delayed gesture error message -- try to wait until name has been retrieved
* @author Dale Glass
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lldelayedgestureerror.h b/indra/newview/lldelayedgestureerror.h
index 0bd14811d1..7ecadb4e7d 100644
--- a/indra/newview/lldelayedgestureerror.h
+++ b/indra/newview/lldelayedgestureerror.h
@@ -3,31 +3,25 @@
* @brief Delayed gesture error message -- try to wait until name has been retrieved
* @author Dale Glass
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lldirpicker.cpp b/indra/newview/lldirpicker.cpp
index d1abbb0f51..53101f0ce2 100644
--- a/indra/newview/lldirpicker.cpp
+++ b/indra/newview/lldirpicker.cpp
@@ -2,31 +2,25 @@
* @file lldirpicker.cpp
* @brief OS-specific file picker
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lldirpicker.h b/indra/newview/lldirpicker.h
index b48d2c66c4..a360293fff 100644
--- a/indra/newview/lldirpicker.h
+++ b/indra/newview/lldirpicker.h
@@ -2,31 +2,25 @@
* @dir lldirpicker.h
* @brief OS-specific dir picker
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lldndbutton.cpp b/indra/newview/lldndbutton.cpp
index 22f2bb1d16..8a38c8a643 100644
--- a/indra/newview/lldndbutton.cpp
+++ b/indra/newview/lldndbutton.cpp
@@ -2,31 +2,25 @@
* @file lldndbutton.cpp
* @brief Implementation of the drag-n-drop button.
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -42,7 +36,7 @@ LLDragAndDropButton::Params::Params()
}
-LLDragAndDropButton::LLDragAndDropButton(Params& params)
+LLDragAndDropButton::LLDragAndDropButton(const Params& params)
: LLButton(params)
{
diff --git a/indra/newview/lldndbutton.h b/indra/newview/lldndbutton.h
index c888268187..0642cbb7b9 100644
--- a/indra/newview/lldndbutton.h
+++ b/indra/newview/lldndbutton.h
@@ -2,31 +2,25 @@
* @file lldndbutton.h
* @brief Declaration of the drag-n-drop button.
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -54,7 +48,7 @@ public:
Params();
};
- LLDragAndDropButton(Params& params);
+ LLDragAndDropButton(const Params& params);
typedef boost::function<bool (
S32 /*x*/, S32 /*y*/, MASK /*mask*/, BOOL /*drop*/,
diff --git a/indra/newview/lldrawable.cpp b/indra/newview/lldrawable.cpp
index 3f9d3fdbef..583bb54160 100644
--- a/indra/newview/lldrawable.cpp
+++ b/indra/newview/lldrawable.cpp
@@ -2,31 +2,25 @@
* @file lldrawable.cpp
* @brief LLDrawable class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -523,7 +517,7 @@ F32 LLDrawable::updateXform(BOOL undamped)
{
// snap to final position
dist_squared = 0.0f;
- if (!isRoot())
+ if (getVOVolume() && !isRoot())
{ //child prim snapping to some position, needs a rebuild
gPipeline.markRebuild(this, LLDrawable::REBUILD_POSITION, TRUE);
}
diff --git a/indra/newview/lldrawable.h b/indra/newview/lldrawable.h
index 651dabff9e..9cf9b69d3e 100644
--- a/indra/newview/lldrawable.h
+++ b/indra/newview/lldrawable.h
@@ -2,31 +2,25 @@
* @file lldrawable.h
* @brief LLDrawable class definition
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -313,8 +307,20 @@ private:
inline LLFace* LLDrawable::getFace(const S32 i) const
{
- llassert((U32)i < mFaces.size());
- llassert(mFaces[i]);
+ //switch these asserts to llerrs -- davep
+ //llassert((U32)i < mFaces.size());
+ //llassert(mFaces[i]);
+
+ if ((U32) i >= mFaces.size())
+ {
+ llerrs << "Invalid face index." << llendl;
+ }
+
+ if (!mFaces[i])
+ {
+ llerrs << "Null face found." << llendl;
+ }
+
return mFaces[i];
}
diff --git a/indra/newview/lldrawpool.cpp b/indra/newview/lldrawpool.cpp
index e3e66fa00d..cb651f9d3a 100644
--- a/indra/newview/lldrawpool.cpp
+++ b/indra/newview/lldrawpool.cpp
@@ -2,31 +2,25 @@
* @file lldrawpool.cpp
* @brief LLDrawPool class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -474,6 +468,7 @@ void LLRenderPass::pushBatch(LLDrawInfo& params, U32 mask, BOOL texture)
{
if (params.mTexture.notNull())
{
+ params.mTexture->addTextureStats(params.mVSize);
gGL.getTexUnit(0)->bind(params.mTexture, TRUE) ;
if (params.mTextureMatrix)
{
diff --git a/indra/newview/lldrawpool.h b/indra/newview/lldrawpool.h
index 67870c10e9..221f81ec25 100644
--- a/indra/newview/lldrawpool.h
+++ b/indra/newview/lldrawpool.h
@@ -2,31 +2,25 @@
* @file lldrawpool.h
* @brief LLDrawPool class definition
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -133,6 +127,7 @@ public:
PASS_FULLBRIGHT_SHINY,
PASS_SHINY,
PASS_BUMP,
+ PASS_POST_BUMP,
PASS_GLOW,
PASS_ALPHA,
PASS_ALPHA_MASK,
diff --git a/indra/newview/lldrawpoolalpha.cpp b/indra/newview/lldrawpoolalpha.cpp
index 875c9ac6a9..a2428d2de0 100644
--- a/indra/newview/lldrawpoolalpha.cpp
+++ b/indra/newview/lldrawpoolalpha.cpp
@@ -2,31 +2,25 @@
* @file lldrawpoolalpha.cpp
* @brief LLDrawPoolAlpha class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -60,7 +54,9 @@ static BOOL deferred_render = FALSE;
LLDrawPoolAlpha::LLDrawPoolAlpha(U32 type) :
LLRenderPass(type), current_shader(NULL), target_shader(NULL),
- simple_shader(NULL), fullbright_shader(NULL)
+ simple_shader(NULL), fullbright_shader(NULL),
+ mColorSFactor(LLRender::BF_UNDEF), mColorDFactor(LLRender::BF_UNDEF),
+ mAlphaSFactor(LLRender::BF_UNDEF), mAlphaDFactor(LLRender::BF_UNDEF)
{
}
@@ -178,9 +174,16 @@ void LLDrawPoolAlpha::render(S32 pass)
LLGLSPipelineAlpha gls_pipeline_alpha;
- if (LLPipeline::sFastAlpha && !deferred_render)
+ gGL.setColorMask(true, true);
+
+ if (LLPipeline::sAutoMaskAlphaNonDeferred && !deferred_render)
{
- LLGLDisable blend_disable(GL_BLEND);
+ mColorSFactor = LLRender::BF_ONE; // }
+ mColorDFactor = LLRender::BF_ZERO; // } these are like disabling blend on the color channels, but we're still blending on the alpha channel so that we can suppress glow
+ mAlphaSFactor = LLRender::BF_ZERO;
+ mAlphaDFactor = LLRender::BF_ZERO; // block (zero-out) glow where the alpha test succeeds
+ gGL.blendFunc(mColorSFactor, mColorDFactor, mAlphaSFactor, mAlphaDFactor);
+
gGL.setAlphaRejectSettings(LLRender::CF_GREATER, 0.33f);
if (mVertexShaderLevel > 0)
{
@@ -204,8 +207,17 @@ void LLDrawPoolAlpha::render(S32 pass)
}
LLGLDepthTest depth(GL_TRUE, LLDrawPoolWater::sSkipScreenCopy ? GL_TRUE : GL_FALSE);
+
+ mColorSFactor = LLRender::BF_SOURCE_ALPHA; // } regular alpha blend
+ mColorDFactor = LLRender::BF_ONE_MINUS_SOURCE_ALPHA; // }
+ mAlphaSFactor = LLRender::BF_ZERO; // } glow suppression
+ mAlphaDFactor = LLRender::BF_ONE_MINUS_SOURCE_ALPHA; // }
+ gGL.blendFunc(mColorSFactor, mColorDFactor, mAlphaSFactor, mAlphaDFactor);
+
renderAlpha(getVertexDataMask());
+ gGL.setColorMask(true, false);
+
if (deferred_render && current_shader != NULL)
{
gPipeline.unbindDeferredShader(*current_shader);
@@ -283,9 +295,18 @@ void LLDrawPoolAlpha::renderAlpha(U32 mask)
for (LLCullResult::sg_list_t::iterator i = gPipeline.beginAlphaGroups(); i != gPipeline.endAlphaGroups(); ++i)
{
LLSpatialGroup* group = *i;
+ llassert(group);
+ llassert(group->mSpatialPartition);
+
if (group->mSpatialPartition->mRenderByGroup &&
- !group->isDead())
+ !group->isDead())
{
+ bool draw_glow_for_this_partition = mVertexShaderLevel > 0 && // no shaders = no glow.
+ // All particle systems seem to come off the wire with texture entries which claim that they glow. This is probably a bug in the data. Suppress.
+ group->mSpatialPartition->mPartitionType != LLViewerRegion::PARTITION_PARTICLE &&
+ group->mSpatialPartition->mPartitionType != LLViewerRegion::PARTITION_CLOUD &&
+ group->mSpatialPartition->mPartitionType != LLViewerRegion::PARTITION_HUD_PARTICLE;
+
LLSpatialGroup::drawmap_elem_t& draw_info = group->mDrawMap[LLRenderPass::PASS_ALPHA];
for (LLSpatialGroup::drawmap_elem_t::iterator k = draw_info.begin(); k != draw_info.end(); ++k)
@@ -294,96 +315,118 @@ void LLDrawPoolAlpha::renderAlpha(U32 mask)
LLRenderPass::applyModelMatrix(params);
- if (params.mFullbright)
{
- // Turn off lighting if it hasn't already been so.
- if (light_enabled || !initialized_lighting)
+ if (params.mFullbright)
+ {
+ // Turn off lighting if it hasn't already been so.
+ if (light_enabled || !initialized_lighting)
+ {
+ initialized_lighting = TRUE;
+ if (use_shaders)
+ {
+ target_shader = fullbright_shader;
+ }
+ else
+ {
+ gPipeline.enableLightsFullbright(LLColor4(1,1,1,1));
+ }
+ light_enabled = FALSE;
+ }
+ }
+ // Turn on lighting if it isn't already.
+ else if (!light_enabled || !initialized_lighting)
{
initialized_lighting = TRUE;
if (use_shaders)
{
- target_shader = fullbright_shader;
+ target_shader = simple_shader;
}
else
{
- gPipeline.enableLightsFullbright(LLColor4(1,1,1,1));
+ gPipeline.enableLightsDynamic();
}
- light_enabled = FALSE;
- }
- }
- // Turn on lighting if it isn't already.
- else if (!light_enabled || !initialized_lighting)
- {
- initialized_lighting = TRUE;
- if (use_shaders)
- {
- target_shader = simple_shader;
- }
- else
- {
- gPipeline.enableLightsDynamic();
+ light_enabled = TRUE;
}
- light_enabled = TRUE;
- }
- // If we need shaders, and we're not ALREADY using the proper shader, then bind it
- // (this way we won't rebind shaders unnecessarily).
- if(use_shaders && (current_shader != target_shader))
- {
- llassert(target_shader != NULL);
- if (deferred_render && current_shader != NULL)
- {
- gPipeline.unbindDeferredShader(*current_shader);
- diffuse_channel = 0;
- }
- current_shader = target_shader;
- if (deferred_render)
+ // If we need shaders, and we're not ALREADY using the proper shader, then bind it
+ // (this way we won't rebind shaders unnecessarily).
+ if(use_shaders && (current_shader != target_shader))
{
- gPipeline.bindDeferredShader(*current_shader);
- diffuse_channel = current_shader->enableTexture(LLViewerShaderMgr::DIFFUSE_MAP);
- }
- else
- {
- current_shader->bind();
+ llassert(target_shader != NULL);
+ if (deferred_render && current_shader != NULL)
+ {
+ gPipeline.unbindDeferredShader(*current_shader);
+ diffuse_channel = 0;
+ }
+ current_shader = target_shader;
+ if (deferred_render)
+ {
+ gPipeline.bindDeferredShader(*current_shader);
+ diffuse_channel = current_shader->enableTexture(LLViewerShaderMgr::DIFFUSE_MAP);
+ }
+ else
+ {
+ current_shader->bind();
+ }
}
- }
- else if (!use_shaders && current_shader != NULL)
- {
- if (deferred_render)
+ else if (!use_shaders && current_shader != NULL)
{
- gPipeline.unbindDeferredShader(*current_shader);
- diffuse_channel = 0;
+ if (deferred_render)
+ {
+ gPipeline.unbindDeferredShader(*current_shader);
+ diffuse_channel = 0;
+ }
+ LLGLSLShader::bindNoShader();
+ current_shader = NULL;
}
- LLGLSLShader::bindNoShader();
- current_shader = NULL;
- }
-
- if (params.mGroup)
- {
- params.mGroup->rebuildMesh();
- }
-
- if (params.mTexture.notNull())
- {
- gGL.getTexUnit(diffuse_channel)->bind(params.mTexture.get());
- if(params.mTexture.notNull())
+ if (params.mGroup)
{
- params.mTexture->addTextureStats(params.mVSize);
+ params.mGroup->rebuildMesh();
}
- if (params.mTextureMatrix)
+
+
+ if (params.mTexture.notNull())
{
- gGL.getTexUnit(0)->activate();
- glMatrixMode(GL_TEXTURE);
- glLoadMatrixf((GLfloat*) params.mTextureMatrix->mMatrix);
- gPipeline.mTextureMatrixOps++;
+ gGL.getTexUnit(diffuse_channel)->bind(params.mTexture.get());
+ if(params.mTexture.notNull())
+ {
+ params.mTexture->addTextureStats(params.mVSize);
+ }
+ if (params.mTextureMatrix)
+ {
+ gGL.getTexUnit(0)->activate();
+ glMatrixMode(GL_TEXTURE);
+ glLoadMatrixf((GLfloat*) params.mTextureMatrix->mMatrix);
+ gPipeline.mTextureMatrixOps++;
+ }
}
}
params.mVertexBuffer->setBuffer(mask);
params.mVertexBuffer->drawRange(params.mDrawMode, params.mStart, params.mEnd, params.mCount, params.mOffset);
gPipeline.addTrianglesDrawn(params.mCount, params.mDrawMode);
+
+ // If this alpha mesh has glow, then draw it a second time to add the destination-alpha (=glow). Interleaving these state-changing calls could be expensive, but glow must be drawn Z-sorted with alpha.
+ if (draw_glow_for_this_partition &&
+ params.mGlowColor.mV[3] > 0)
+ {
+ // install glow-accumulating blend mode
+ gGL.blendFunc(LLRender::BF_ZERO, LLRender::BF_ONE, // don't touch color
+ LLRender::BF_ONE, LLRender::BF_ONE); // add to alpha (glow)
+ // glow doesn't use vertex colors from the mesh data
+ params.mVertexBuffer->setBuffer(mask & ~LLVertexBuffer::MAP_COLOR);
+ glColor4ubv(params.mGlowColor.mV);
+
+ // do the actual drawing, again
+ params.mVertexBuffer->drawRange(params.mDrawMode, params.mStart, params.mEnd, params.mCount, params.mOffset);
+ gPipeline.addTrianglesDrawn(params.mCount, params.mDrawMode);
+
+ // restore our alpha blend mode
+ gGL.blendFunc(mColorSFactor, mColorDFactor, mAlphaSFactor, mAlphaDFactor);
+ }
+
if (params.mTextureMatrix && params.mTexture.notNull())
{
gGL.getTexUnit(0)->activate();
diff --git a/indra/newview/lldrawpoolalpha.h b/indra/newview/lldrawpoolalpha.h
index 3aa752f72c..12a7ae92b1 100644
--- a/indra/newview/lldrawpoolalpha.h
+++ b/indra/newview/lldrawpoolalpha.h
@@ -2,31 +2,25 @@
* @file lldrawpoolalpha.h
* @brief LLDrawPoolAlpha class definition
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -34,6 +28,7 @@
#define LL_LLDRAWPOOLALPHA_H
#include "lldrawpool.h"
+#include "llrender.h"
#include "llframetimer.h"
class LLFace;
@@ -83,6 +78,12 @@ private:
LLGLSLShader* target_shader;
LLGLSLShader* simple_shader;
LLGLSLShader* fullbright_shader;
+
+ // our 'normal' alpha blend function for this pass
+ LLRender::eBlendFactor mColorSFactor;
+ LLRender::eBlendFactor mColorDFactor;
+ LLRender::eBlendFactor mAlphaSFactor;
+ LLRender::eBlendFactor mAlphaDFactor;
};
class LLDrawPoolAlphaPostWater : public LLDrawPoolAlpha
diff --git a/indra/newview/lldrawpoolavatar.cpp b/indra/newview/lldrawpoolavatar.cpp
index 2d0859650a..8cf4dc1b95 100644
--- a/indra/newview/lldrawpoolavatar.cpp
+++ b/indra/newview/lldrawpoolavatar.cpp
@@ -2,31 +2,25 @@
* @file lldrawpoolavatar.cpp
* @brief LLDrawPoolAvatar class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -123,7 +117,7 @@ void LLDrawPoolAvatar::prerender()
if (sShaderLevel > 0)
{
- sBufferUsage = GL_STATIC_DRAW_ARB;
+ sBufferUsage = GL_DYNAMIC_DRAW_ARB;
}
else
{
@@ -157,6 +151,8 @@ void LLDrawPoolAvatar::beginDeferredPass(S32 pass)
{
LLFastTimer t(FTM_RENDER_CHARACTERS);
+ sSkipTransparent = TRUE;
+
if (LLPipeline::sImpostorRender)
{
beginDeferredSkinned();
@@ -181,6 +177,8 @@ void LLDrawPoolAvatar::endDeferredPass(S32 pass)
{
LLFastTimer t(FTM_RENDER_CHARACTERS);
+ sSkipTransparent = FALSE;
+
if (LLPipeline::sImpostorRender)
{
endDeferredSkinned();
@@ -250,7 +248,6 @@ S32 LLDrawPoolAvatar::getNumShadowPasses()
void LLDrawPoolAvatar::beginShadowPass(S32 pass)
{
LLFastTimer t(FTM_SHADOW_AVATAR);
-
sVertexProgram = &gDeferredAvatarShadowProgram;
if (sShaderLevel > 0)
{
@@ -272,7 +269,6 @@ void LLDrawPoolAvatar::beginShadowPass(S32 pass)
void LLDrawPoolAvatar::endShadowPass(S32 pass)
{
LLFastTimer t(FTM_SHADOW_AVATAR);
-
if (sShaderLevel > 0)
{
sRenderingSkinned = FALSE;
@@ -310,6 +306,11 @@ void LLDrawPoolAvatar::renderShadow(S32 pass)
return;
}
+ if (sShaderLevel > 0)
+ {
+ gAvatarMatrixParam = sVertexProgram->mUniform[LLViewerShaderMgr::AVATAR_MATRIX];
+ }
+
avatarp->renderSkinned(AVATAR_RENDER_PASS_SINGLE);
}
@@ -346,7 +347,7 @@ void LLDrawPoolAvatar::beginRenderPass(S32 pass)
switch (pass)
{
case 0:
- beginFootShadow();
+ beginImpostor();
break;
case 1:
beginRigid();
@@ -370,7 +371,7 @@ void LLDrawPoolAvatar::endRenderPass(S32 pass)
switch (pass)
{
case 0:
- endFootShadow();
+ endImpostor();
break;
case 1:
endRigid();
@@ -380,7 +381,7 @@ void LLDrawPoolAvatar::endRenderPass(S32 pass)
}
}
-void LLDrawPoolAvatar::beginFootShadow()
+void LLDrawPoolAvatar::beginImpostor()
{
if (!LLPipeline::sReflectionRender)
{
@@ -392,7 +393,7 @@ void LLDrawPoolAvatar::beginFootShadow()
diffuse_channel = 0;
}
-void LLDrawPoolAvatar::endFootShadow()
+void LLDrawPoolAvatar::endImpostor()
{
gPipeline.enableLightsDynamic();
}
@@ -564,7 +565,6 @@ void LLDrawPoolAvatar::endSkinned()
void LLDrawPoolAvatar::beginDeferredSkinned()
{
- sSkipTransparent = TRUE;
sShaderLevel = mVertexShaderLevel;
sVertexProgram = &gDeferredAvatarProgram;
@@ -579,7 +579,6 @@ void LLDrawPoolAvatar::beginDeferredSkinned()
void LLDrawPoolAvatar::endDeferredSkinned()
{
- sSkipTransparent = FALSE;
// if we're in software-blending, remember to set the fence _after_ we draw so we wait till this rendering is done
sRenderingSkinned = FALSE;
disable_vertex_weighting(sVertexProgram->mAttribute[LLViewerShaderMgr::AVATAR_WEIGHT]);
@@ -693,10 +692,6 @@ void LLDrawPoolAvatar::renderAvatars(LLVOAvatar* single_avatar, S32 pass)
}
avatarp->renderImpostor(LLColor4U(255,255,255,255), diffuse_channel);
}
- else if (gPipeline.hasRenderDebugFeatureMask(LLPipeline::RENDER_DEBUG_FEATURE_FOOT_SHADOWS) && !LLPipeline::sRenderDeferred)
- {
- avatarp->renderFootShadows();
- }
return;
}
@@ -850,9 +845,7 @@ LLColor3 LLDrawPoolAvatar::getDebugColor() const
LLVertexBufferAvatar::LLVertexBufferAvatar()
: LLVertexBuffer(sDataMask,
- LLViewerShaderMgr::instance()->getVertexShaderLevel(LLViewerShaderMgr::SHADER_AVATAR) > 0 ?
- GL_DYNAMIC_DRAW_ARB :
- GL_STREAM_DRAW_ARB)
+ GL_STREAM_DRAW_ARB) //avatars are always stream draw due to morph targets
{
}
diff --git a/indra/newview/lldrawpoolavatar.h b/indra/newview/lldrawpoolavatar.h
index b947943619..c46fed824e 100644
--- a/indra/newview/lldrawpoolavatar.h
+++ b/indra/newview/lldrawpoolavatar.h
@@ -2,31 +2,25 @@
* @file lldrawpoolavatar.h
* @brief LLDrawPoolAvatar class definition
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -88,11 +82,11 @@ public:
/*virtual*/ void renderShadow(S32 pass);
void beginRigid();
- void beginFootShadow();
+ void beginImpostor();
void beginSkinned();
void endRigid();
- void endFootShadow();
+ void endImpostor();
void endSkinned();
void beginDeferredImpostor();
diff --git a/indra/newview/lldrawpoolbump.cpp b/indra/newview/lldrawpoolbump.cpp
index 19cdccb630..223e4a438c 100644
--- a/indra/newview/lldrawpoolbump.cpp
+++ b/indra/newview/lldrawpoolbump.cpp
@@ -2,31 +2,25 @@
* @file lldrawpoolbump.cpp
* @brief LLDrawPoolBump class implementation
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -94,7 +88,16 @@ void LLStandardBumpmap::shutdown()
// static
void LLStandardBumpmap::restoreGL()
{
- llassert( LLStandardBumpmap::sStandardBumpmapCount == 0 );
+ addstandard();
+}
+
+// static
+void LLStandardBumpmap::addstandard()
+{
+ // can't assert; we destroyGL and restoreGL a lot during *first* startup, which populates this list already, THEN we explicitly init the list as part of *normal* startup. Sigh. So clear the list every time before we (re-)add the standard bumpmaps.
+ //llassert( LLStandardBumpmap::sStandardBumpmapCount == 0 );
+ clear();
+ llinfos << "Adding standard bumpmaps." << llendl;
gStandardBumpmapList[LLStandardBumpmap::sStandardBumpmapCount++] = LLStandardBumpmap("None"); // BE_NO_BUMP
gStandardBumpmapList[LLStandardBumpmap::sStandardBumpmapCount++] = LLStandardBumpmap("Brightness"); // BE_BRIGHTNESS
gStandardBumpmapList[LLStandardBumpmap::sStandardBumpmapCount++] = LLStandardBumpmap("Darkness"); // BE_DARKNESS
@@ -147,8 +150,9 @@ void LLStandardBumpmap::restoreGL()
LLViewerTexture::BOOST_NONE,
LLViewerTexture::LOD_TEXTURE,
0,
- 0);
- gStandardBumpmapList[LLStandardBumpmap::sStandardBumpmapCount].mImage->setLoadedCallback(LLBumpImageList::onSourceStandardLoaded, 0, TRUE, FALSE, NULL );
+ 0);
+ gStandardBumpmapList[LLStandardBumpmap::sStandardBumpmapCount].mImage->setBoostLevel(LLViewerTexture::BOOST_BUMP) ;
+ gStandardBumpmapList[LLStandardBumpmap::sStandardBumpmapCount].mImage->setLoadedCallback(LLBumpImageList::onSourceStandardLoaded, 0, TRUE, FALSE, NULL, NULL );
LLStandardBumpmap::sStandardBumpmapCount++;
}
@@ -156,8 +160,9 @@ void LLStandardBumpmap::restoreGL()
}
// static
-void LLStandardBumpmap::destroyGL()
+void LLStandardBumpmap::clear()
{
+ llinfos << "Clearing standard bumpmaps." << llendl;
for( U32 i = 0; i < LLStandardBumpmap::sStandardBumpmapCount; i++ )
{
gStandardBumpmapList[i].mLabel.assign("");
@@ -166,6 +171,12 @@ void LLStandardBumpmap::destroyGL()
sStandardBumpmapCount = 0;
}
+// static
+void LLStandardBumpmap::destroyGL()
+{
+ clear();
+}
+
////////////////////////////////////////////////////////////////
@@ -618,9 +629,9 @@ BOOL LLDrawPoolBump::bindBumpMap(LLDrawInfo& params, S32 channel)
}
//static
-void LLDrawPoolBump::beginBump()
+void LLDrawPoolBump::beginBump(U32 pass)
{
- if (!gPipeline.hasRenderBatches(LLRenderPass::PASS_BUMP))
+ if (!gPipeline.hasRenderBatches(pass))
{
return;
}
@@ -663,9 +674,9 @@ void LLDrawPoolBump::beginBump()
}
//static
-void LLDrawPoolBump::renderBump()
+void LLDrawPoolBump::renderBump(U32 pass)
{
- if (!gPipeline.hasRenderBatches(LLRenderPass::PASS_BUMP))
+ if (!gPipeline.hasRenderBatches(pass))
{
return;
}
@@ -678,13 +689,13 @@ void LLDrawPoolBump::renderBump()
/// Get rid of z-fighting with non-bump pass.
LLGLEnable polyOffset(GL_POLYGON_OFFSET_FILL);
glPolygonOffset(-1.0f, -1.0f);
- renderBump(LLRenderPass::PASS_BUMP, sVertexMask);
+ renderBump(pass, sVertexMask);
}
//static
-void LLDrawPoolBump::endBump()
+void LLDrawPoolBump::endBump(U32 pass)
{
- if (!gPipeline.hasRenderBatches(LLRenderPass::PASS_BUMP))
+ if (!gPipeline.hasRenderBatches(pass))
{
return;
}
@@ -701,6 +712,18 @@ void LLDrawPoolBump::endBump()
gGL.setSceneBlendType(LLRender::BT_ALPHA);
}
+S32 LLDrawPoolBump::getNumDeferredPasses()
+{
+ if (gSavedSettings.getBOOL("RenderObjectBump"))
+ {
+ return 1;
+ }
+ else
+ {
+ return 0;
+ }
+}
+
void LLDrawPoolBump::beginDeferredPass(S32 pass)
{
if (!gPipeline.hasRenderBatches(LLRenderPass::PASS_BUMP))
@@ -755,21 +778,45 @@ void LLDrawPoolBump::renderDeferred(S32 pass)
void LLDrawPoolBump::beginPostDeferredPass(S32 pass)
{
- beginFullbrightShiny();
+ switch (pass)
+ {
+ case 0:
+ beginFullbrightShiny();
+ break;
+ case 1:
+ beginBump(LLRenderPass::PASS_POST_BUMP);
+ break;
+ }
}
void LLDrawPoolBump::endPostDeferredPass(S32 pass)
{
- endFullbrightShiny();
+ switch (pass)
+ {
+ case 0:
+ endFullbrightShiny();
+ break;
+ case 1:
+ endBump(LLRenderPass::PASS_POST_BUMP);
+ break;
+ }
}
void LLDrawPoolBump::renderPostDeferred(S32 pass)
{
- renderFullbrightShiny();
+ switch (pass)
+ {
+ case 0:
+ renderFullbrightShiny();
+ break;
+ case 1:
+ renderBump(LLRenderPass::PASS_POST_BUMP);
+ break;
+ }
}
////////////////////////////////////////////////////////////////
-// List of one-component bump-maps created from other texures.
+// List of bump-maps created from other textures.
//const LLUUID TEST_BUMP_ID("3d33eaf2-459c-6f97-fd76-5fce3fc29447");
@@ -782,24 +829,32 @@ void LLBumpImageList::init()
LLStandardBumpmap::init();
}
-void LLBumpImageList::shutdown()
+void LLBumpImageList::clear()
{
+ llinfos << "Clearing dynamic bumpmaps." << llendl;
+ // these will be re-populated on-demand
mBrightnessEntries.clear();
mDarknessEntries.clear();
+
+ LLStandardBumpmap::clear();
+}
+
+void LLBumpImageList::shutdown()
+{
+ clear();
LLStandardBumpmap::shutdown();
}
void LLBumpImageList::destroyGL()
{
- mBrightnessEntries.clear();
- mDarknessEntries.clear();
+ clear();
LLStandardBumpmap::destroyGL();
}
void LLBumpImageList::restoreGL()
{
- // Images will be recreated as they are needed.
LLStandardBumpmap::restoreGL();
+ // Images will be recreated as they are needed.
}
@@ -817,7 +872,7 @@ void LLBumpImageList::addTextureStats(U8 bump, const LLUUID& base_image_id, F32
bump &= TEM_BUMP_MASK;
LLViewerFetchedTexture* bump_image = gStandardBumpmapList[bump].mImage;
if( bump_image )
- {
+ {
bump_image->addTextureStats(virtual_size);
}
}
@@ -851,6 +906,7 @@ void LLBumpImageList::updateImages()
}
}
}
+
for (bump_image_map_t::iterator iter = mDarknessEntries.begin(); iter != mDarknessEntries.end(); )
{
bump_image_map_t::iterator curiter = iter++;
@@ -921,7 +977,8 @@ LLViewerTexture* LLBumpImageList::getBrightnessDarknessImage(LLViewerFetchedText
(*entries_list)[src_image->getID()]->setExplicitFormat(GL_ALPHA8, GL_ALPHA);
// Note: this may create an LLImageGL immediately
- src_image->setLoadedCallback( callback_func, 0, TRUE, FALSE, new LLUUID(src_image->getID()) );
+ src_image->setBoostLevel(LLViewerTexture::BOOST_BUMP) ;
+ src_image->setLoadedCallback( callback_func, 0, TRUE, FALSE, new LLUUID(src_image->getID()), NULL );
bump = (*entries_list)[src_image->getID()]; // In case callback was called immediately and replaced the image
// bump_total++;
@@ -1002,8 +1059,8 @@ void LLBumpImageList::generateNormalMapFromAlpha(LLImageRaw* src, LLImageRaw* nr
LLVector3 right = LLVector3(norm_scale, 0, (F32) src_data[(j*resX+rX)*src_cmp+src_cmp-1]-cH);
LLVector3 left = LLVector3(-norm_scale, 0, (F32) src_data[(j*resX+lX)*src_cmp+src_cmp-1]-cH);
- LLVector3 up = LLVector3(0, -norm_scale, (F32) src_data[(rY*resX+i)*src_cmp+src_cmp-1]-cH);
- LLVector3 down = LLVector3(0, norm_scale, (F32) src_data[(lY*resX+i)*src_cmp+src_cmp-1]-cH);
+ LLVector3 up = LLVector3(0, -norm_scale, (F32) src_data[(lY*resX+i)*src_cmp+src_cmp-1]-cH);
+ LLVector3 down = LLVector3(0, norm_scale, (F32) src_data[(rY*resX+i)*src_cmp+src_cmp-1]-cH);
LLVector3 norm = right%down + down%left + left%up + up%right;
@@ -1028,7 +1085,7 @@ void LLBumpImageList::onSourceLoaded( BOOL success, LLViewerTexture *src_vi, LLI
{
bump_image_map_t& entries_list(bump_code == BE_BRIGHTNESS ? gBumpImageList.mBrightnessEntries : gBumpImageList.mDarknessEntries );
bump_image_map_t::iterator iter = entries_list.find(source_asset_id);
- if (iter != entries_list.end())
+ if (iter != entries_list.end()) // bump not cached yet
{
LLPointer<LLImageRaw> dst_image = new LLImageRaw(src->getWidth(), src->getHeight(), 1);
U8* dst_data = dst_image->getData();
@@ -1113,8 +1170,8 @@ void LLBumpImageList::onSourceLoaded( BOOL success, LLViewerTexture *src_vi, LLI
F32 twice_one_over_range = 2.f / (maximum - minimum);
S32 i;
- const F32 ARTIFICIAL_SCALE = 2.f; // Advantage: exagerates the effect in midrange. Disadvantage: clamps at the extremes.
- if( BE_DARKNESS == bump_code )
+ const F32 ARTIFICIAL_SCALE = 2.f; // Advantage: exaggerates the effect in midrange. Disadvantage: clamps at the extremes.
+ if (BE_DARKNESS == bump_code)
{
for( i = minimum; i <= maximum; i++ )
{
@@ -1124,7 +1181,6 @@ void LLBumpImageList::onSourceLoaded( BOOL success, LLViewerTexture *src_vi, LLI
}
else
{
- // BE_LIGHTNESS
for( i = minimum; i <= maximum; i++ )
{
F32 minus_one_to_one = F32(i - minimum) * twice_one_over_range - 1.f;
@@ -1139,9 +1195,9 @@ void LLBumpImageList::onSourceLoaded( BOOL success, LLViewerTexture *src_vi, LLI
}
//---------------------------------------------------
- //immediately assign bump to a global smart pointer in case some local smart pointer
- //accidently releases it.
- LLPointer<LLViewerTexture> bump = LLViewerTextureManager::getLocalTexture( TRUE);
+ // immediately assign bump to a global smart pointer in case some local smart pointer
+ // accidentally releases it.
+ LLPointer<LLViewerTexture> bump = LLViewerTextureManager::getLocalTexture( TRUE );
if (!LLPipeline::sRenderDeferred)
{
@@ -1150,8 +1206,8 @@ void LLBumpImageList::onSourceLoaded( BOOL success, LLViewerTexture *src_vi, LLI
}
else
{
- LLPointer<LLImageRaw> nrm_image = new LLImageRaw(src->getWidth(), src->getHeight(), 4);
- generateNormalMapFromAlpha(src, nrm_image);
+ LLPointer<LLImageRaw> nrm_image = new LLImageRaw(dst_image->getWidth(), dst_image->getHeight(), 4);
+ generateNormalMapFromAlpha(dst_image, nrm_image);
bump->setExplicitFormat(GL_RGBA, GL_RGBA);
bump->createGLTexture(0, nrm_image);
}
diff --git a/indra/newview/lldrawpoolbump.h b/indra/newview/lldrawpoolbump.h
index bf940cf1e4..65a813ab94 100644
--- a/indra/newview/lldrawpoolbump.h
+++ b/indra/newview/lldrawpoolbump.h
@@ -2,31 +2,25 @@
* @file lldrawpoolbump.h
* @brief LLDrawPoolBump class definition
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -75,16 +69,16 @@ public:
void renderFullbrightShiny();
void endFullbrightShiny();
- void beginBump();
- void renderBump();
- void endBump();
+ void beginBump(U32 pass = LLRenderPass::PASS_BUMP);
+ void renderBump(U32 pass = LLRenderPass::PASS_BUMP);
+ void endBump(U32 pass = LLRenderPass::PASS_BUMP);
- virtual S32 getNumDeferredPasses() { return 1; }
+ virtual S32 getNumDeferredPasses();
/*virtual*/ void beginDeferredPass(S32 pass);
/*virtual*/ void endDeferredPass(S32 pass);
/*virtual*/ void renderDeferred(S32 pass);
- virtual S32 getNumPostDeferredPasses() { return 1; }
+ virtual S32 getNumPostDeferredPasses() { return 2; }
/*virtual*/ void beginPostDeferredPass(S32 pass);
/*virtual*/ void endPostDeferredPass(S32 pass);
/*virtual*/ void renderPostDeferred(S32 pass);
@@ -115,9 +109,12 @@ public:
static U32 sStandardBumpmapCount; // Number of valid values in gStandardBumpmapList[]
+ static void clear();
+ static void addstandard();
+
static void init();
static void shutdown();
- static void restoreGL();
+ static void restoreGL();
static void destroyGL();
};
@@ -136,6 +133,7 @@ public:
void init();
void shutdown();
+ void clear();
void destroyGL();
void restoreGL();
void updateImages();
diff --git a/indra/newview/lldrawpoolclouds.cpp b/indra/newview/lldrawpoolclouds.cpp
index 1d159998aa..f7da144671 100644
--- a/indra/newview/lldrawpoolclouds.cpp
+++ b/indra/newview/lldrawpoolclouds.cpp
@@ -2,31 +2,25 @@
* @file lldrawpoolclouds.cpp
* @brief LLDrawPoolClouds class implementation
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lldrawpoolclouds.h b/indra/newview/lldrawpoolclouds.h
index c70dd41f78..548720ed9c 100644
--- a/indra/newview/lldrawpoolclouds.h
+++ b/indra/newview/lldrawpoolclouds.h
@@ -2,31 +2,25 @@
* @file lldrawpoolclouds.h
* @brief LLDrawPoolClouds class definition
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lldrawpoolground.cpp b/indra/newview/lldrawpoolground.cpp
index 889b494402..e950fbfa82 100644
--- a/indra/newview/lldrawpoolground.cpp
+++ b/indra/newview/lldrawpoolground.cpp
@@ -2,31 +2,25 @@
* @file lldrawpoolground.cpp
* @brief LLDrawPoolGround class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lldrawpoolground.h b/indra/newview/lldrawpoolground.h
index 6c7d20beca..c6c7cbf964 100644
--- a/indra/newview/lldrawpoolground.h
+++ b/indra/newview/lldrawpoolground.h
@@ -2,31 +2,25 @@
* @file lldrawpoolground.h
* @brief LLDrawPoolGround class definition
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lldrawpoolsimple.cpp b/indra/newview/lldrawpoolsimple.cpp
index ca7a1b47c2..2e83167851 100644
--- a/indra/newview/lldrawpoolsimple.cpp
+++ b/indra/newview/lldrawpoolsimple.cpp
@@ -2,31 +2,25 @@
* @file lldrawpoolsimple.cpp
* @brief LLDrawPoolSimple class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -55,6 +49,10 @@ void LLDrawPoolGlow::render(S32 pass)
LLFastTimer t(FTM_RENDER_GLOW);
LLGLEnable blend(GL_BLEND);
LLGLDisable test(GL_ALPHA_TEST);
+ gGL.flush();
+ /// Get rid of z-fighting with non-glow pass.
+ LLGLEnable polyOffset(GL_POLYGON_OFFSET_FILL);
+ glPolygonOffset(-1.0f, -1.0f);
gGL.setSceneBlendType(LLRender::BT_ADD);
U32 shader_level = LLViewerShaderMgr::instance()->getVertexShaderLevel(LLViewerShaderMgr::SHADER_OBJECT);
@@ -147,7 +145,8 @@ void LLDrawPoolSimple::render(S32 pass)
renderTexture(LLRenderPass::PASS_SIMPLE, getVertexDataMask());
if (LLPipeline::sRenderDeferred)
- {
+ { //if deferred rendering is enabled, bump faces aren't registered as simple
+ //render bump faces here as simple so bump faces will appear under water
renderTexture(LLRenderPass::PASS_BUMP, getVertexDataMask());
}
}
diff --git a/indra/newview/lldrawpoolsimple.h b/indra/newview/lldrawpoolsimple.h
index f561510375..5f3bbebbda 100644
--- a/indra/newview/lldrawpoolsimple.h
+++ b/indra/newview/lldrawpoolsimple.h
@@ -2,31 +2,25 @@
* @file lldrawpoolsimple.h
* @brief LLDrawPoolSimple class definition
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lldrawpoolsky.cpp b/indra/newview/lldrawpoolsky.cpp
index 0f76165053..d811ab8c54 100644
--- a/indra/newview/lldrawpoolsky.cpp
+++ b/indra/newview/lldrawpoolsky.cpp
@@ -2,31 +2,25 @@
* @file lldrawpoolsky.cpp
* @brief LLDrawPoolSky class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lldrawpoolsky.h b/indra/newview/lldrawpoolsky.h
index 8595d73aee..15d643c886 100644
--- a/indra/newview/lldrawpoolsky.h
+++ b/indra/newview/lldrawpoolsky.h
@@ -2,31 +2,25 @@
* @file lldrawpoolsky.h
* @brief LLDrawPoolSky class definition
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lldrawpoolterrain.cpp b/indra/newview/lldrawpoolterrain.cpp
index 9dc22cddcd..3dede9d8fc 100644
--- a/indra/newview/lldrawpoolterrain.cpp
+++ b/indra/newview/lldrawpoolterrain.cpp
@@ -2,31 +2,25 @@
* @file lldrawpoolterrain.cpp
* @brief LLDrawPoolTerrain class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lldrawpoolterrain.h b/indra/newview/lldrawpoolterrain.h
index 2e2a36d533..730298609d 100644
--- a/indra/newview/lldrawpoolterrain.h
+++ b/indra/newview/lldrawpoolterrain.h
@@ -2,31 +2,25 @@
* @file lldrawpoolterrain.h
* @brief LLDrawPoolTerrain class definition
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lldrawpooltree.cpp b/indra/newview/lldrawpooltree.cpp
index 1571415e63..09cca8b73c 100644
--- a/indra/newview/lldrawpooltree.cpp
+++ b/indra/newview/lldrawpooltree.cpp
@@ -2,31 +2,25 @@
* @file lldrawpooltree.cpp
* @brief LLDrawPoolTree class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lldrawpooltree.h b/indra/newview/lldrawpooltree.h
index bc7711d4e8..cebe41f75f 100644
--- a/indra/newview/lldrawpooltree.h
+++ b/indra/newview/lldrawpooltree.h
@@ -2,31 +2,25 @@
* @file lldrawpooltree.h
* @brief LLDrawPoolTree class definition
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lldrawpoolwater.cpp b/indra/newview/lldrawpoolwater.cpp
index 107de934df..ce1b899d55 100644
--- a/indra/newview/lldrawpoolwater.cpp
+++ b/indra/newview/lldrawpoolwater.cpp
@@ -2,31 +2,25 @@
* @file lldrawpoolwater.cpp
* @brief LLDrawPoolWater class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lldrawpoolwater.h b/indra/newview/lldrawpoolwater.h
index 614f645243..3ab4bc5e2c 100644
--- a/indra/newview/lldrawpoolwater.h
+++ b/indra/newview/lldrawpoolwater.h
@@ -2,31 +2,25 @@
* @file lldrawpoolwater.h
* @brief LLDrawPoolWater class definition
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lldrawpoolwlsky.cpp b/indra/newview/lldrawpoolwlsky.cpp
index c7cd77cb65..41a299151e 100644
--- a/indra/newview/lldrawpoolwlsky.cpp
+++ b/indra/newview/lldrawpoolwlsky.cpp
@@ -2,31 +2,25 @@
* @file lldrawpoolwlsky.cpp
* @brief LLDrawPoolWLSky class implementation
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lldrawpoolwlsky.h b/indra/newview/lldrawpoolwlsky.h
index 9059f6382f..8ca1ebb942 100644
--- a/indra/newview/lldrawpoolwlsky.h
+++ b/indra/newview/lldrawpoolwlsky.h
@@ -2,31 +2,25 @@
* @file lldrawpoolwlsky.h
* @brief LLDrawPoolWLSky class definition
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lldriverparam.cpp b/indra/newview/lldriverparam.cpp
index 40ce0ebcf4..8f47d3c5e5 100644
--- a/indra/newview/lldriverparam.cpp
+++ b/indra/newview/lldriverparam.cpp
@@ -2,31 +2,25 @@
* @file lldriverparam.cpp
* @brief A visual parameter that drives (controls) other visual parameters.
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lldriverparam.h b/indra/newview/lldriverparam.h
index 1069f7ad51..a0e45cf5e5 100644
--- a/indra/newview/lldriverparam.h
+++ b/indra/newview/lldriverparam.h
@@ -2,31 +2,25 @@
* @file lldriverparam.h
* @brief A visual parameter that drives (controls) other visual parameters.
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lldynamictexture.cpp b/indra/newview/lldynamictexture.cpp
index c423473740..a3d2941114 100644
--- a/indra/newview/lldynamictexture.cpp
+++ b/indra/newview/lldynamictexture.cpp
@@ -2,31 +2,25 @@
* @file lldynamictexture.cpp
* @brief Implementation of LLViewerDynamicTexture class
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -60,6 +54,13 @@ LLViewerDynamicTexture::LLViewerDynamicTexture(S32 width, S32 height, S32 compon
{
llassert((1 <= components) && (components <= 4));
+ if(gGLManager.mDebugGPU)
+ {
+ if(components == 3)
+ {
+ mComponents = 4 ; //convert to 32bits.
+ }
+ }
generateGLTexture();
llassert( 0 <= order && order < ORDER_COUNT );
@@ -167,8 +168,19 @@ void LLViewerDynamicTexture::postRender(BOOL success)
{
generateGLTexture() ;
}
- llcallstacks << "class type: " << (S32)getType() << llcallstacksendl ;
+ else if(!mGLTexturep->getHasGLTexture())
+ {
+ generateGLTexture() ;
+ }
+ else if(mGLTexturep->getDiscardLevel() != 0)//do not know how it happens, but regenerate one if it does.
+ {
+ generateGLTexture() ;
+ }
+ if(gGLManager.mDebugGPU)
+ {
+ LLGLState::dumpStates() ;
+ }
success = mGLTexturep->setSubImageFromFrameBuffer(0, 0, mOrigin.mX, mOrigin.mY, mFullWidth, mFullHeight);
}
}
@@ -207,11 +219,16 @@ BOOL LLViewerDynamicTexture::updateAllInstances()
{
LLViewerDynamicTexture *dynamicTexture = *iter;
if (dynamicTexture->needsRender())
- {
+ {
+ if(gGLManager.mDebugGPU)
+ {
+ llinfos << "class type: " << (S32)dynamicTexture->getType() << llendl;
+ LLGLState::dumpStates() ;
+ }
+
glClear(GL_DEPTH_BUFFER_BIT);
gDepthDirty = TRUE;
-
-
+
gGL.color4f(1,1,1,1);
dynamicTexture->preRender(); // Must be called outside of startRender()
result = FALSE;
diff --git a/indra/newview/lldynamictexture.h b/indra/newview/lldynamictexture.h
index caf2603519..e18090545d 100644
--- a/indra/newview/lldynamictexture.h
+++ b/indra/newview/lldynamictexture.h
@@ -2,31 +2,25 @@
* @file lldynamictexture.h
* @brief Implementation of LLViewerDynamicTexture class
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llemote.cpp b/indra/newview/llemote.cpp
index c83846215e..510ff69acf 100644
--- a/indra/newview/llemote.cpp
+++ b/indra/newview/llemote.cpp
@@ -2,31 +2,25 @@
* @file llemote.cpp
* @brief Implementation of LLEmote class
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llemote.h b/indra/newview/llemote.h
index 99d05b9a2a..4c516998dc 100644
--- a/indra/newview/llemote.h
+++ b/indra/newview/llemote.h
@@ -2,31 +2,25 @@
* @file llemote.h
* @brief Definition of LLEmote class
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lleventinfo.cpp b/indra/newview/lleventinfo.cpp
index aabd7ed997..b7b4e10b17 100644
--- a/indra/newview/lleventinfo.cpp
+++ b/indra/newview/lleventinfo.cpp
@@ -2,31 +2,25 @@
* @file lleventinfo.cpp
* @brief LLEventInfo class implementation
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lleventinfo.h b/indra/newview/lleventinfo.h
index 4f33a7925a..958a276fbf 100644
--- a/indra/newview/lleventinfo.h
+++ b/indra/newview/lleventinfo.h
@@ -2,31 +2,25 @@
* @file lleventinfo.h
* @brief LLEventInfo class definition
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lleventnotifier.cpp b/indra/newview/lleventnotifier.cpp
index f096ba604f..68559a4236 100644
--- a/indra/newview/lleventnotifier.cpp
+++ b/indra/newview/lleventnotifier.cpp
@@ -2,31 +2,25 @@
* @file lleventnotifier.cpp
* @brief Viewer code for managing event notifications
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lleventnotifier.h b/indra/newview/lleventnotifier.h
index 6fdde87646..0367fc47b0 100644
--- a/indra/newview/lleventnotifier.h
+++ b/indra/newview/lleventnotifier.h
@@ -2,31 +2,25 @@
* @file lleventnotifier.h
* @brief Viewer code for managing event notifications
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lleventpoll.cpp b/indra/newview/lleventpoll.cpp
index cc4e1a1868..4f4d9a40b4 100644
--- a/indra/newview/lleventpoll.cpp
+++ b/indra/newview/lleventpoll.cpp
@@ -2,31 +2,25 @@
* @file lleventpoll.cpp
* @brief Implementation of the LLEventPoll class.
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lleventpoll.h b/indra/newview/lleventpoll.h
index f2465a361e..e8d98062aa 100644
--- a/indra/newview/lleventpoll.h
+++ b/indra/newview/lleventpoll.h
@@ -2,31 +2,25 @@
* @file lleventpoll.h
* @brief LLEvDescription of the LLEventPoll class.
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llexpandabletextbox.cpp b/indra/newview/llexpandabletextbox.cpp
index 149ba2478d..5e10f60aba 100644
--- a/indra/newview/llexpandabletextbox.cpp
+++ b/indra/newview/llexpandabletextbox.cpp
@@ -2,31 +2,25 @@
* @file llexpandabletextbox.cpp
* @brief LLExpandableTextBox and related class implementations
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -34,6 +28,7 @@
#include "llexpandabletextbox.h"
#include "llscrollcontainer.h"
+#include "lltrans.h"
#include "llwindow.h"
#include "llviewerwindow.h"
@@ -117,7 +112,7 @@ LLExpandableTextBox::LLTextBoxEx::Params::Params()
LLExpandableTextBox::LLTextBoxEx::LLTextBoxEx(const Params& p)
: LLTextEditor(p),
- mExpanderLabel(p.label),
+ mExpanderLabel(p.label.isProvided() ? p.label : LLTrans::getString("More")),
mExpanderVisible(false)
{
setIsChrome(TRUE);
@@ -126,7 +121,6 @@ LLExpandableTextBox::LLTextBoxEx::LLTextBoxEx(const Params& p)
void LLExpandableTextBox::LLTextBoxEx::reshape(S32 width, S32 height, BOOL called_from_parent)
{
- hideExpandText();
LLTextEditor::reshape(width, height, called_from_parent);
if (getTextPixelHeight() > getRect().getHeight())
diff --git a/indra/newview/llexpandabletextbox.h b/indra/newview/llexpandabletextbox.h
index 5872592fae..bce77225c4 100644
--- a/indra/newview/llexpandabletextbox.h
+++ b/indra/newview/llexpandabletextbox.h
@@ -2,31 +2,25 @@
* @file llexpandabletextbox.h
* @brief LLExpandableTextBox and related class definitions
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llface.cpp b/indra/newview/llface.cpp
index dbbcb6e7c4..d22950cad3 100644
--- a/indra/newview/llface.cpp
+++ b/indra/newview/llface.cpp
@@ -2,31 +2,25 @@
* @file llface.cpp
* @brief LLFace class implementation
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -833,6 +827,73 @@ LLVector2 LLFace::surfaceToTexture(LLVector2 surface_coord, LLVector3 position,
return tc;
}
+// Returns scale compared to default texgen, and face orientation as calculated
+// by planarProjection(). This is needed to match planar texgen parameters.
+void LLFace::getPlanarProjectedParams(LLQuaternion* face_rot, LLVector3* face_pos, F32* scale) const
+{
+ const LLMatrix4& vol_mat = getWorldMatrix();
+ const LLVolumeFace& vf = getViewerObject()->getVolume()->getVolumeFace(mTEOffset);
+ LLVector3 normal = vf.mVertices[0].mNormal;
+ LLVector3 binormal = vf.mVertices[0].mBinormal;
+ LLVector2 projected_binormal;
+ planarProjection(projected_binormal, normal, vf.mCenter, binormal);
+ projected_binormal -= LLVector2(0.5f, 0.5f); // this normally happens in xform()
+ *scale = projected_binormal.length();
+ // rotate binormal to match what planarProjection() thinks it is,
+ // then find rotation from that:
+ projected_binormal.normalize();
+ F32 ang = acos(projected_binormal.mV[VY]);
+ ang = (projected_binormal.mV[VX] < 0.f) ? -ang : ang;
+ binormal.rotVec(ang, normal);
+ LLQuaternion local_rot( binormal % normal, binormal, normal );
+ *face_rot = local_rot * vol_mat.quaternion();
+ *face_pos = vol_mat.getTranslation();
+}
+
+// Returns the necessary texture transform to align this face's TE to align_to's TE
+bool LLFace::calcAlignedPlanarTE(const LLFace* align_to, LLVector2* res_st_offset,
+ LLVector2* res_st_scale, F32* res_st_rot) const
+{
+ if (!align_to)
+ {
+ return false;
+ }
+ const LLTextureEntry *orig_tep = align_to->getTextureEntry();
+ if ((orig_tep->getTexGen() != LLTextureEntry::TEX_GEN_PLANAR) ||
+ (getTextureEntry()->getTexGen() != LLTextureEntry::TEX_GEN_PLANAR))
+ {
+ return false;
+ }
+
+ LLVector3 orig_pos, this_pos;
+ LLQuaternion orig_face_rot, this_face_rot;
+ F32 orig_proj_scale, this_proj_scale;
+ align_to->getPlanarProjectedParams(&orig_face_rot, &orig_pos, &orig_proj_scale);
+ getPlanarProjectedParams(&this_face_rot, &this_pos, &this_proj_scale);
+
+ // The rotation of "this face's" texture:
+ LLQuaternion orig_st_rot = LLQuaternion(orig_tep->getRotation(), LLVector3::z_axis) * orig_face_rot;
+ LLQuaternion this_st_rot = orig_st_rot * ~this_face_rot;
+ F32 x_ang, y_ang, z_ang;
+ this_st_rot.getEulerAngles(&x_ang, &y_ang, &z_ang);
+ *res_st_rot = z_ang;
+
+ // Offset and scale of "this face's" texture:
+ LLVector3 centers_dist = (this_pos - orig_pos) * ~orig_st_rot;
+ LLVector3 st_scale(orig_tep->mScaleS, orig_tep->mScaleT, 1.f);
+ st_scale *= orig_proj_scale;
+ centers_dist.scaleVec(st_scale);
+ LLVector2 orig_st_offset(orig_tep->mOffsetS, orig_tep->mOffsetT);
+
+ *res_st_offset = orig_st_offset + (LLVector2)centers_dist;
+ res_st_offset->mV[VX] -= (S32)res_st_offset->mV[VX];
+ res_st_offset->mV[VY] -= (S32)res_st_offset->mV[VY];
+
+ st_scale /= this_proj_scale;
+ *res_st_scale = (LLVector2)st_scale;
+ return true;
+}
+
void LLFace::updateRebuildFlags()
{
if (!mDrawablep->isState(LLDrawable::REBUILD_VOLUME))
@@ -862,6 +923,26 @@ void LLFace::updateRebuildFlags()
}
}
+
+bool LLFace::canRenderAsMask()
+{
+ const LLTextureEntry* te = getTextureEntry();
+ return (
+ (
+ (LLPipeline::sRenderDeferred && LLPipeline::sAutoMaskAlphaDeferred) ||
+
+ (!LLPipeline::sRenderDeferred && LLPipeline::sAutoMaskAlphaNonDeferred)
+ ) // do we want masks at all?
+ &&
+ (te->getColor().mV[3] == 1.0f) && // can't treat as mask if we have face alpha
+ !(LLPipeline::sRenderDeferred && te->getFullbright()) && // hack: alpha masking renders fullbright faces invisible in deferred rendering mode, need to figure out why - for now, avoid
+ (te->getGlow() == 0.f) && // glowing masks are hard to implement - don't mask
+
+ getTexture()->getIsAlphaMask() // texture actually qualifies for masking (lazily recalculated but expensive)
+ );
+}
+
+
static LLFastTimer::DeclareTimer FTM_FACE_GET_GEOM("Face Geom");
BOOL LLFace::getGeometryVolume(const LLVolume& volume,
@@ -1364,7 +1445,7 @@ F32 LLFace::getTextureVirtualSize()
F32 cos_angle_to_view_dir;
BOOL in_frustum = calcPixelArea(cos_angle_to_view_dir, radius);
- if (mPixelArea < 0.0001f || !in_frustum)
+ if (mPixelArea < F_ALMOST_ZERO || !in_frustum)
{
setVirtualSize(0.f) ;
return 0.f;
@@ -1392,24 +1473,13 @@ F32 LLFace::getTextureVirtualSize()
face_area = mPixelArea / llclamp(texel_area, 0.015625f, 128.f);
}
- if(face_area > LLViewerTexture::sMaxSmallImageSize)
+ face_area = LLFace::adjustPixelArea(mImportanceToCamera, face_area) ;
+ if(face_area > LLViewerTexture::sMinLargeImageSize) //if is large image, shrink face_area by considering the partial overlapping.
{
- if(mImportanceToCamera < LEAST_IMPORTANCE) //if the face is not important, do not load hi-res.
- {
- static const F32 MAX_LEAST_IMPORTANCE_IMAGE_SIZE = 128.0f * 128.0f ;
- face_area = llmin(face_area * 0.5f, MAX_LEAST_IMPORTANCE_IMAGE_SIZE) ;
- }
- else if(face_area > LLViewerTexture::sMinLargeImageSize) //if is large image, shrink face_area by considering the partial overlapping.
- {
- if(mImportanceToCamera < LEAST_IMPORTANCE_FOR_LARGE_IMAGE)//if the face is not important, do not load hi-res.
- {
- face_area = LLViewerTexture::sMinLargeImageSize ;
- }
- else if(mTexture.notNull() && mTexture->isLargeImage())
- {
- face_area *= adjustPartialOverlapPixelArea(cos_angle_to_view_dir, radius );
- }
- }
+ if(mImportanceToCamera > LEAST_IMPORTANCE_FOR_LARGE_IMAGE && mTexture.notNull() && mTexture->isLargeImage())
+ {
+ face_area *= adjustPartialOverlapPixelArea(cos_angle_to_view_dir, radius );
+ }
}
setVirtualSize(face_area) ;
@@ -1536,6 +1606,28 @@ F32 LLFace::calcImportanceToCamera(F32 cos_angle_to_view_dir, F32 dist)
return importance ;
}
+//static
+F32 LLFace::adjustPixelArea(F32 importance, F32 pixel_area)
+{
+ if(pixel_area > LLViewerTexture::sMaxSmallImageSize)
+ {
+ if(importance < LEAST_IMPORTANCE) //if the face is not important, do not load hi-res.
+ {
+ static const F32 MAX_LEAST_IMPORTANCE_IMAGE_SIZE = 128.0f * 128.0f ;
+ pixel_area = llmin(pixel_area * 0.5f, MAX_LEAST_IMPORTANCE_IMAGE_SIZE) ;
+ }
+ else if(pixel_area > LLViewerTexture::sMinLargeImageSize) //if is large image, shrink face_area by considering the partial overlapping.
+ {
+ if(importance < LEAST_IMPORTANCE_FOR_LARGE_IMAGE)//if the face is not important, do not load hi-res.
+ {
+ pixel_area = LLViewerTexture::sMinLargeImageSize ;
+ }
+ }
+ }
+
+ return pixel_area ;
+}
+
BOOL LLFace::verify(const U32* indices_array) const
{
BOOL ok = TRUE;
diff --git a/indra/newview/llface.h b/indra/newview/llface.h
index 67dd97e6f7..0166e45bee 100644
--- a/indra/newview/llface.h
+++ b/indra/newview/llface.h
@@ -2,31 +2,25 @@
* @file llface.h
* @brief LLFace class definition
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -95,6 +89,9 @@ public:
BOOL hasGeometry() const { return mGeomCount > 0; }
LLVector3 getPositionAgent() const;
LLVector2 surfaceToTexture(LLVector2 surface_coord, LLVector3 position, LLVector3 normal);
+ void getPlanarProjectedParams(LLQuaternion* face_rot, LLVector3* face_pos, F32* scale) const;
+ bool calcAlignedPlanarTE(const LLFace* align_to, LLVector2* st_offset,
+ LLVector2* st_scale, F32* st_rot) const;
U32 getState() const { return mState; }
void setState(U32 state) { mState |= state; }
@@ -138,10 +135,10 @@ public:
void unsetFaceColor(); // switch back to material color
const LLColor4& getFaceColor() const { return mFaceColor; }
const LLColor4& getRenderColor() const;
-
//for volumes
void updateRebuildFlags();
+ bool canRenderAsMask(); // logic helper
BOOL getGeometryVolume(const LLVolume& volume,
const S32 &f,
const LLMatrix4& mat_vert, const LLMatrix3& mat_normal,
@@ -213,7 +210,8 @@ private:
F32 adjustPartialOverlapPixelArea(F32 cos_angle_to_view_dir, F32 radius );
BOOL calcPixelArea(F32& cos_angle_to_view_dir, F32& radius) ;
public:
- static F32 calcImportanceToCamera(F32 to_view_dir, F32 dist);
+ static F32 calcImportanceToCamera(F32 to_view_dir, F32 dist);
+ static F32 adjustPixelArea(F32 importance, F32 pixel_area) ;
public:
@@ -279,7 +277,7 @@ public:
{
bool operator()(const LLFace* const& lhs, const LLFace* const& rhs)
{
- return lhs->mDistance > rhs->mDistance; // farthest = first
+ return !lhs || (rhs && (lhs->mDistance > rhs->mDistance)); // farthest = first
}
};
diff --git a/indra/newview/llface.inl b/indra/newview/llface.inl
index 176c73e38e..85c35a88f3 100644
--- a/indra/newview/llface.inl
+++ b/indra/newview/llface.inl
@@ -2,31 +2,25 @@
* @file llface.inl
* @brief Inline functions for LLFace
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfasttimerview.cpp b/indra/newview/llfasttimerview.cpp
index 8bc3b5a75f..a09c0ea0f8 100644
--- a/indra/newview/llfasttimerview.cpp
+++ b/indra/newview/llfasttimerview.cpp
@@ -2,31 +2,25 @@
* @file llfasttimerview.cpp
* @brief LLFastTimerView class implementation
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -123,7 +117,7 @@ BOOL LLFastTimerView::handleRightMouseDown(S32 x, S32 y, MASK mask)
{
S32 bar_idx = MAX_VISIBLE_HISTORY - ((y - mBarRect.mBottom) * (MAX_VISIBLE_HISTORY + 2) / mBarRect.getHeight());
bar_idx = llclamp(bar_idx, 0, MAX_VISIBLE_HISTORY);
- mPrintStats = bar_idx;
+ mPrintStats = LLFastTimer::NamedTimer::HISTORY_NUM - mScrollIndex - bar_idx;
}
return FALSE;
}
@@ -140,6 +134,17 @@ LLFastTimer::NamedTimer* LLFastTimerView::getLegendID(S32 y)
return NULL;
}
+BOOL LLFastTimerView::handleDoubleClick(S32 x, S32 y, MASK mask)
+{
+ for(timer_tree_iterator_t it = begin_timer_tree(LLFastTimer::NamedTimer::getRootNamedTimer());
+ it != end_timer_tree();
+ ++it)
+ {
+ (*it)->setCollapsed(false);
+ }
+ return TRUE;
+}
+
BOOL LLFastTimerView::handleMouseDown(S32 x, S32 y, MASK mask)
{
@@ -953,7 +958,7 @@ void LLFastTimerView::draw()
{
legend_stat += ", ";
}
- first = true;
+ first = false;
legend_stat += idp->getName();
if (idp->getCollapsed())
@@ -980,8 +985,7 @@ void LLFastTimerView::draw()
U64 ticks;
if (mPrintStats > 0)
{
- S32 hidx = (mPrintStats - 1) - mScrollIndex;
- ticks = idp->getHistoricalCount(hidx);
+ ticks = idp->getHistoricalCount(mPrintStats);
}
else
{
diff --git a/indra/newview/llfasttimerview.h b/indra/newview/llfasttimerview.h
index ac06990913..3788897cec 100644
--- a/indra/newview/llfasttimerview.h
+++ b/indra/newview/llfasttimerview.h
@@ -2,31 +2,25 @@
* @file llfasttimerview.h
* @brief LLFastTimerView class definition
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -54,6 +48,7 @@ private:
public:
virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask);
+ virtual BOOL handleDoubleClick(S32 x, S32 y, MASK mask);
virtual BOOL handleRightMouseDown(S32 x, S32 y, MASK mask);
virtual BOOL handleMouseUp(S32 x, S32 y, MASK mask);
virtual BOOL handleHover(S32 x, S32 y, MASK mask);
diff --git a/indra/newview/llfavoritesbar.cpp b/indra/newview/llfavoritesbar.cpp
index 6b7a257a4b..dd1f92a25c 100644
--- a/indra/newview/llfavoritesbar.cpp
+++ b/indra/newview/llfavoritesbar.cpp
@@ -2,31 +2,25 @@
* @file llfavoritesbar.cpp
* @brief LLFavoritesBarCtrl class implementation
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -167,22 +161,13 @@ public:
if (!region_name.empty())
{
- LLToolTip::Params params;
std::string extra_message = llformat("%s (%d, %d, %d)", region_name.c_str(),
mLandmarkInfoGetter.getPosX(), mLandmarkInfoGetter.getPosY(), mLandmarkInfoGetter.getPosZ());
+ LLToolTip::Params params;
params.message = llformat("%s\n%s", getLabelSelected().c_str(), extra_message.c_str());
-
- LLRect rect = calcScreenRect();
- LLFontGL* standart_font = LLFontGL::getFontSansSerif();
- if(standart_font)
- {
- S32 w = llmax((S32)(standart_font->getWidthF32(getLabelSelected())+0.5),(S32)(standart_font->getWidthF32(extra_message)+0.5));
- rect.mRight = rect.mLeft + w;
- params.max_width = w;
- }
-
- params.sticky_rect = rect;
+ params.max_width = 1000;
+ params.sticky_rect = calcScreenRect();
LLToolTipMgr::instance().show(params);
}
@@ -667,16 +652,23 @@ void LLFavoritesBarCtrl::draw()
}
}
-LLXMLNodePtr LLFavoritesBarCtrl::getButtonXMLNode()
+const LLButton::Params& LLFavoritesBarCtrl::getButtonParams()
{
- LLXMLNodePtr buttonXMLNode = NULL;
- bool success = LLUICtrlFactory::getLayeredXMLNode("favorites_bar_button.xml", buttonXMLNode);
- if (!success)
+ static LLButton::Params button_params;
+ static bool params_initialized = false;
+
+ if (!params_initialized)
{
- llwarns << "Failed to create Favorites Bar button from favorites_bar_button.xml" << llendl;
- buttonXMLNode = NULL;
+ LLXMLNodePtr button_xml_node;
+ if(LLUICtrlFactory::getLayeredXMLNode("favorites_bar_button.xml", button_xml_node))
+ {
+ LLXUIParser parser;
+ parser.readXUI(button_xml_node, button_params, "favorites_bar_button.xml");
+ }
+ params_initialized = true;
}
- return buttonXMLNode;
+
+ return button_params;
}
void LLFavoritesBarCtrl::updateButtons()
@@ -688,11 +680,8 @@ void LLFavoritesBarCtrl::updateButtons()
return;
}
- static LLXMLNodePtr buttonXMLNode = getButtonXMLNode();
- if (buttonXMLNode.isNull())
- {
- return;
- }
+ const LLButton::Params& button_params = getButtonParams();
+
if(mItems.empty())
{
mBarLabel->setVisible(TRUE);
@@ -768,7 +757,7 @@ void LLFavoritesBarCtrl::updateButtons()
int j = first_changed_item_index;
for (; j < mItems.count(); j++)
{
- last_new_button = createButton(mItems[j], buttonXMLNode, last_right_edge);
+ last_new_button = createButton(mItems[j], button_params, last_right_edge);
if (!last_new_button)
{
break;
@@ -786,8 +775,7 @@ void LLFavoritesBarCtrl::updateButtons()
//or there are some new favorites, or width had been changed
// so if we need to display chevron button, we must update dropdown items too.
mUpdateDropDownItems = true;
- S32 buttonHGap = 2; // default value
- buttonXMLNode->getAttributeS32("left", buttonHGap);
+ S32 buttonHGap = button_params.rect.left; // default value
LLRect rect;
// Chevron button should stay right aligned
rect.setOriginAndSize(getRect().mRight - mChevronButton->getRect().getWidth() - buttonHGap, 0,
@@ -814,12 +802,10 @@ void LLFavoritesBarCtrl::updateButtons()
}
}
-LLButton* LLFavoritesBarCtrl::createButton(const LLPointer<LLViewerInventoryItem> item, LLXMLNodePtr &buttonXMLNode, S32 x_offset)
+LLButton* LLFavoritesBarCtrl::createButton(const LLPointer<LLViewerInventoryItem> item, const LLButton::Params& button_params, S32 x_offset)
{
- S32 def_button_width = 120;
- buttonXMLNode->getAttributeS32("width", def_button_width);
- S32 button_x_delta = 2; // default value
- buttonXMLNode->getAttributeS32("left", button_x_delta);
+ S32 def_button_width = button_params.rect.width;
+ S32 button_x_delta = button_params.rect.left; // default value
S32 curr_x = x_offset;
/**
@@ -837,13 +823,16 @@ LLButton* LLFavoritesBarCtrl::createButton(const LLPointer<LLViewerInventoryItem
{
return NULL;
}
- fav_btn = LLUICtrlFactory::defaultBuilder<LLFavoriteLandmarkButton>(buttonXMLNode, this, NULL);
+ LLButton::Params fav_btn_params(button_params);
+ fav_btn = LLUICtrlFactory::create<LLFavoriteLandmarkButton>(fav_btn_params);
if (NULL == fav_btn)
{
llwarns << "Unable to create LLFavoriteLandmarkButton widget: " << item->getName() << llendl;
return NULL;
}
+ addChild(fav_btn);
+
LLRect butt_rect (fav_btn->getRect());
fav_btn->setLandmarkID(item->getUUID());
butt_rect.setOriginAndSize(curr_x + button_x_delta, fav_btn->getRect().mBottom, width, fav_btn->getRect().getHeight());
diff --git a/indra/newview/llfavoritesbar.h b/indra/newview/llfavoritesbar.h
index 2c6d8d1580..37645523f6 100644
--- a/indra/newview/llfavoritesbar.h
+++ b/indra/newview/llfavoritesbar.h
@@ -2,31 +2,25 @@
* @file llfavoritesbar.h
* @brief LLFavoritesBarCtrl base class
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -77,8 +71,8 @@ public:
protected:
void updateButtons();
- LLButton* createButton(const LLPointer<LLViewerInventoryItem> item, LLXMLNodePtr &root, S32 x_offset );
- LLXMLNodePtr getButtonXMLNode();
+ LLButton* createButton(const LLPointer<LLViewerInventoryItem> item, const LLButton::Params& button_params, S32 x_offset );
+ const LLButton::Params& getButtonParams();
BOOL collectFavoriteItems(LLInventoryModel::item_array_t &items);
void onButtonClick(LLUUID id);
diff --git a/indra/newview/llfeaturemanager.cpp b/indra/newview/llfeaturemanager.cpp
index f32fcd6b7f..ca2ef5f5b8 100644
--- a/indra/newview/llfeaturemanager.cpp
+++ b/indra/newview/llfeaturemanager.cpp
@@ -2,31 +2,25 @@
* @file llfeaturemanager.cpp
* @brief LLFeatureManager class implementation
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -73,8 +67,8 @@ const char FEATURE_TABLE_VER_FILENAME[] = "featuretable_linux.%s.txt";
const char FEATURE_TABLE_FILENAME[] = "featuretable_solaris.txt";
const char FEATURE_TABLE_VER_FILENAME[] = "featuretable_solaris.%s.txt";
#else
-const char FEATURE_TABLE_FILENAME[] = "featuretable.txt";
-const char FEATURE_TABLE_VER_FILENAME[] = "featuretable.%s.txt";
+const char FEATURE_TABLE_FILENAME[] = "featuretable%s.txt";
+const char FEATURE_TABLE_VER_FILENAME[] = "featuretable%s.%s.txt";
#endif
const char GPU_TABLE_FILENAME[] = "gpu_table.txt";
@@ -226,10 +220,30 @@ BOOL LLFeatureManager::loadFeatureTables()
// first table is install with app
std::string app_path = gDirUtilp->getAppRODataDir();
app_path += gDirUtilp->getDirDelimiter();
- app_path += FEATURE_TABLE_FILENAME;
+ std::string filename;
+ std::string http_filename;
+#if LL_WINDOWS
+ std::string os_string = LLAppViewer::instance()->getOSInfo().getOSStringSimple();
+ if (os_string.find("Microsoft Windows XP") == 0)
+ {
+ filename = llformat(FEATURE_TABLE_FILENAME, "_xp");
+ http_filename = llformat(FEATURE_TABLE_VER_FILENAME, "_xp", LLVersionInfo::getVersion().c_str());
+ }
+ else
+ {
+ filename = llformat(FEATURE_TABLE_FILENAME, "");
+ http_filename = llformat(FEATURE_TABLE_VER_FILENAME, "", LLVersionInfo::getVersion().c_str());
+ }
+#else
+ filename = FEATURE_TABLE_FILENAME;
+ http_filename = llformat(FEATURE_TABLE_VER_FILENAME, LLVersionInfo::getVersion().c_str());
+#endif
+
+ app_path += filename;
+
+
// second table is downloaded with HTTP
- std::string http_filename = llformat(FEATURE_TABLE_VER_FILENAME, LLVersionInfo::getVersion().c_str());
std::string http_path = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, http_filename);
// use HTTP table if it exists
@@ -494,7 +508,35 @@ private:
std::string mFilename;
};
-void fetch_table(std::string table)
+void fetch_feature_table(std::string table)
+{
+ const std::string base = gSavedSettings.getString("FeatureManagerHTTPTable");
+
+#if LL_WINDOWS
+ std::string os_string = LLAppViewer::instance()->getOSInfo().getOSStringSimple();
+ std::string filename;
+ if (os_string.find("Microsoft Windows XP") == 0)
+ {
+ filename = llformat(table.c_str(), "_xp", LLVersionInfo::getVersion().c_str());
+ }
+ else
+ {
+ filename = llformat(table.c_str(), "", LLVersionInfo::getVersion().c_str());
+ }
+#else
+ const std::string filename = llformat(table.c_str(), LLVersionInfo::getVersion().c_str());
+#endif
+
+ const std::string url = base + "/" + filename;
+
+ const std::string path = gDirUtilp->getExpandedFilename(LL_PATH_USER_SETTINGS, filename);
+
+ llinfos << "LLFeatureManager fetching " << url << " into " << path << llendl;
+
+ LLHTTPClient::get(url, new LLHTTPFeatureTableResponder(path));
+}
+
+void fetch_gpu_table(std::string table)
{
const std::string base = gSavedSettings.getString("FeatureManagerHTTPTable");
@@ -512,8 +554,8 @@ void fetch_table(std::string table)
// fetch table(s) from a website (S3)
void LLFeatureManager::fetchHTTPTables()
{
- fetch_table(FEATURE_TABLE_VER_FILENAME);
- fetch_table(GPU_TABLE_VER_FILENAME);
+ fetch_feature_table(FEATURE_TABLE_VER_FILENAME);
+ fetch_gpu_table(GPU_TABLE_VER_FILENAME);
}
diff --git a/indra/newview/llfeaturemanager.h b/indra/newview/llfeaturemanager.h
index c2ecede2c5..c9cb397fcc 100644
--- a/indra/newview/llfeaturemanager.h
+++ b/indra/newview/llfeaturemanager.h
@@ -2,31 +2,25 @@
* @file llfeaturemanager.h
* @brief The feature manager is responsible for determining what features are turned on/off in the app.
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfilepicker.cpp b/indra/newview/llfilepicker.cpp
index 2873057c19..c14be89641 100644
--- a/indra/newview/llfilepicker.cpp
+++ b/indra/newview/llfilepicker.cpp
@@ -2,31 +2,25 @@
* @file llfilepicker.cpp
* @brief OS-specific file picker
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfilepicker.h b/indra/newview/llfilepicker.h
index 4f254ff67e..5819ac4fd8 100644
--- a/indra/newview/llfilepicker.h
+++ b/indra/newview/llfilepicker.h
@@ -2,31 +2,25 @@
* @file llfilepicker.h
* @brief OS-specific file picker
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfilteredwearablelist.cpp b/indra/newview/llfilteredwearablelist.cpp
index 306fa5ad6d..cd5e779c4d 100644
--- a/indra/newview/llfilteredwearablelist.cpp
+++ b/indra/newview/llfilteredwearablelist.cpp
@@ -2,30 +2,25 @@
* @file llfilteredwearablelist.cpp
* @brief Functionality for showing filtered wearable flat list
*
- * $LicenseInfo:firstyear=2010&license=viewergpl$
- *
- * Copyright (c) 2010, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2010&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
diff --git a/indra/newview/llfilteredwearablelist.h b/indra/newview/llfilteredwearablelist.h
index b7825c07af..c21458ca98 100644
--- a/indra/newview/llfilteredwearablelist.h
+++ b/indra/newview/llfilteredwearablelist.h
@@ -2,30 +2,25 @@
* @file llfilteredwearablelist.h
* @brief Functionality for showing filtered wearable flat list
*
- * $LicenseInfo:firstyear=2010&license=viewergpl$
- *
- * Copyright (c) 2010, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2010&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
diff --git a/indra/newview/llfirstuse.cpp b/indra/newview/llfirstuse.cpp
index b3fdf60b11..dd08706f4f 100644
--- a/indra/newview/llfirstuse.cpp
+++ b/indra/newview/llfirstuse.cpp
@@ -2,31 +2,25 @@
* @file llfirstuse.cpp
* @brief Methods that spawn "first-use" dialogs
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -36,7 +30,7 @@
// library includes
#include "indra_constants.h"
-#include "llnotificationsutil.h"
+#include "llnotifications.h"
// viewer includes
#include "llagent.h" // for gAgent.inPrelude()
@@ -45,7 +39,7 @@
#include "llappviewer.h"
#include "lltracker.h"
-/*
+
// static
std::set<std::string> LLFirstUse::sConfigVariables;
@@ -76,211 +70,109 @@ void LLFirstUse::resetFirstUse()
gWarningSettings.setBOOL(*iter, TRUE);
}
}
-*/
-/*
-
-// Called whenever the viewer detects that your balance went up
-void LLFirstUse::useBalanceIncrease(S32 delta)
-{
- if (gWarningSettings.getBOOL("FirstBalanceIncrease"))
- {
- gWarningSettings.setBOOL("FirstBalanceIncrease", FALSE);
-
- LLSD args;
- args["AMOUNT"] = llformat("%d",delta);
- LLNotificationsUtil::add("FirstBalanceIncrease", args);
- }
-}
-
-
-// Called whenever the viewer detects your balance went down
-void LLFirstUse::useBalanceDecrease(S32 delta)
-{
- if (gWarningSettings.getBOOL("FirstBalanceDecrease"))
- {
- gWarningSettings.setBOOL("FirstBalanceDecrease", FALSE);
-
- LLSD args;
- args["AMOUNT"] = llformat("%d",-delta);
- LLNotificationsUtil::add("FirstBalanceDecrease", args);
- }
-}
-
// static
-void LLFirstUse::useSit()
+void LLFirstUse::otherAvatarChatFirst(bool enable)
{
- // Our orientation island uses sitting to teach vehicle driving
- // so just never show this message. JC
- //if (gWarningSettings.getBOOL("FirstSit"))
- //{
- // gWarningSettings.setBOOL("FirstSit", FALSE);
- //
- // LLNotificationsUtil::add("FirstSit");
- //}
+ firstUseNotification("FirstOtherChatBeforeUser", enable, "HintChat", LLSD(), LLSD().with("target", "chat_bar").with("direction", "top_right").with("distance", 24));
}
// static
-void LLFirstUse::useMap()
+void LLFirstUse::sit(bool enable)
{
- if (gWarningSettings.getBOOL("FirstMap"))
- {
- gWarningSettings.setBOOL("FirstMap", FALSE);
-
- LLNotificationsUtil::add("FirstMap");
- }
+ firstUseNotification("FirstSit", enable, "HintSit", LLSD(), LLSD().with("target", "stand_btn").with("direction", "top"));
}
// static
-void LLFirstUse::useGoTo()
+void LLFirstUse::newInventory(bool enable)
{
- // nothing for now JC
+ // turning this off until bug EXP-62 can be fixed (inventory hint appears for new users when their initial inventory is acquired)
+ // firstUseNotification("FirstInventoryOffer", enable, "HintInventory", LLSD(), LLSD().with("target", "inventory_btn").with("direction", "left"));
}
// static
-void LLFirstUse::useBuild()
+void LLFirstUse::useSandbox()
{
- if (gWarningSettings.getBOOL("FirstBuild"))
- {
- gWarningSettings.setBOOL("FirstBuild", FALSE);
-
- LLNotificationsUtil::add("FirstBuild");
- }
+ firstUseNotification("FirstSandbox", true, "FirstSandbox", LLSD().with("HOURS", SANDBOX_CLEAN_FREQ).with("TIME", SANDBOX_FIRST_CLEAN_HOUR));
}
-
- */
-/*
-// static
-void LLFirstUse::useLeftClickNoHit()
-{
- if (gWarningSettings.getBOOL("FirstLeftClickNoHit"))
- {
- gWarningSettings.setBOOL("FirstLeftClickNoHit", FALSE);
- LLNotificationsUtil::add("FirstLeftClickNoHit");
- }
-}
-*/
-/*
// static
-void LLFirstUse::useTeleport()
+void LLFirstUse::notUsingDestinationGuide(bool enable)
{
- if (gWarningSettings.getBOOL("FirstTeleport"))
- {
- LLVector3d teleportDestination = LLTracker::getTrackedPositionGlobal();
- if(teleportDestination != LLVector3d::zero)
- {
- gWarningSettings.setBOOL("FirstTeleport", FALSE);
-
- LLNotificationsUtil::add("FirstTeleport");
- }
- }
+ // not doing this yet
+ //firstUseNotification("FirstNotUseDestinationGuide", enable, "HintDestinationGuide", LLSD(), LLSD().with("target", "dest_guide_btn").with("direction", "left"));
}
-*/
-// static
-void LLFirstUse::useOverrideKeys()
-{
- // Our orientation island uses key overrides to teach vehicle driving
- // so don't show this message until you get off OI. JC
- if (!gAgent.inPrelude())
- {
- if (gWarningSettings.getBOOL("FirstOverrideKeys"))
- {
- gWarningSettings.setBOOL("FirstOverrideKeys", FALSE);
- LLNotificationsUtil::add("FirstOverrideKeys");
- }
- }
-}
-/*
// static
-void LLFirstUse::useAttach()
+void LLFirstUse::notUsingSidePanel(bool enable)
{
- // nothing for now
+ // not doing this yet
+ //firstUseNotification("FirstNotUseSidePanel", enable, "HintSidePanel", LLSD(), LLSD().with("target", "side_panel_btn").with("direction", "left"));
}
// static
-void LLFirstUse::useAppearance()
+void LLFirstUse::notMoving(bool enable)
{
- if (gWarningSettings.getBOOL("FirstAppearance"))
- {
- gWarningSettings.setBOOL("FirstAppearance", FALSE);
-
- LLNotificationsUtil::add("FirstAppearance");
- }
+ firstUseNotification("FirstNotMoving", enable, "HintMove", LLSD(), LLSD().with("target", "move_btn").with("direction", "top"));
}
// static
-void LLFirstUse::useInventory()
+void LLFirstUse::receiveLindens(bool enable)
{
- if (gWarningSettings.getBOOL("FirstInventory"))
- {
- gWarningSettings.setBOOL("FirstInventory", FALSE);
-
- LLNotificationsUtil::add("FirstInventory");
- }
+ firstUseNotification("FirstReceiveLindens", enable, "HintLindenDollar", LLSD(), LLSD().with("target", "linden_balance").with("direction", "bottom"));
}
-*/
-// static
-void LLFirstUse::useSandbox()
+//static
+void LLFirstUse::firstUseNotification(const std::string& control_var, bool enable, const std::string& notification_name, LLSD args, LLSD payload)
{
- if (gWarningSettings.getBOOL("FirstSandbox"))
- {
- gWarningSettings.setBOOL("FirstSandbox", FALSE);
+ init();
- LLSD args;
- args["HOURS"] = llformat("%d",SANDBOX_CLEAN_FREQ);
- args["TIME"] = llformat("%d",SANDBOX_FIRST_CLEAN_HOUR);
- LLNotificationsUtil::add("FirstSandbox", args);
- }
-}
-/*
-// static
-void LLFirstUse::useFlexible()
-{
- if (gWarningSettings.getBOOL("FirstFlexible"))
+ if (enable)
{
- gWarningSettings.setBOOL("FirstFlexible", FALSE);
-
- LLNotificationsUtil::add("FirstFlexible");
- }
-}
+ if (gSavedSettings.getBOOL("EnableUIHints"))
+ {
+ LL_DEBUGS("LLFirstUse") << "Trigger first use notification " << notification_name << LL_ENDL;
-// static
-void LLFirstUse::useDebugMenus()
-{
- if (gWarningSettings.getBOOL("FirstDebugMenus"))
+ // if notification doesn't already exist and this notification hasn't been disabled...
+ if (gWarningSettings.getBOOL(control_var))
+ { // create new notification
+ LLNotifications::instance().add(LLNotification::Params().name(notification_name).substitutions(args).payload(payload.with("control_var", control_var)));
+ }
+ }
+ }
+ else
{
- gWarningSettings.setBOOL("FirstDebugMenus", FALSE);
-
- LLNotificationsUtil::add("FirstDebugMenus");
+ LL_DEBUGS("LLFirstUse") << "Disabling first use notification " << notification_name << LL_ENDL;
+ LLNotifications::instance().cancelByName(notification_name);
+ // redundantly clear settings var here, in case there are no notifications to cancel
+ gWarningSettings.setBOOL(control_var, FALSE);
}
+
}
// static
-void LLFirstUse::useSculptedPrim()
+void LLFirstUse::init()
{
- if (gWarningSettings.getBOOL("FirstSculptedPrim"))
+ static bool initialized = false;
+ if (!initialized)
{
- gWarningSettings.setBOOL("FirstSculptedPrim", FALSE);
-
- LLNotificationsUtil::add("FirstSculptedPrim");
-
+ LLNotifications::instance().getChannel("Hints")->connectChanged(&processNotification);
}
+ initialized = true;
}
-// static
-void LLFirstUse::useMedia()
+//static
+bool LLFirstUse::processNotification(const LLSD& notify)
{
- if (gWarningSettings.getBOOL("FirstMedia"))
+ if (notify["sigtype"].asString() == "delete")
{
- gWarningSettings.setBOOL("FirstMedia", FALSE);
-
- // Popup removed as a short-term fix for EXT-1643.
- // Ultimately, the plan is to kill all First Use dialogs
- //LLNotificationsUtil::add("FirstMedia");
+ LLNotificationPtr notification = LLNotifications::instance().find(notify["id"].asUUID());
+ if (notification)
+ {
+ // disable any future notifications
+ gWarningSettings.setBOOL(notification->getPayload()["control_var"], FALSE);
+ }
}
+ return false;
}
-*/
diff --git a/indra/newview/llfirstuse.h b/indra/newview/llfirstuse.h
index 3c7551f6cb..275f134400 100644
--- a/indra/newview/llfirstuse.h
+++ b/indra/newview/llfirstuse.h
@@ -2,31 +2,25 @@
* @file llfirstuse.h
* @brief Methods that spawn "first-use" dialogs.
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -76,10 +70,13 @@ object or from inventory.
14. First time you create/edit a sculpted prim.
*/
+class LLNotification;
+
+
class LLFirstUse
{
public:
-/*
+
// Add a config variable to be reset on resetFirstUse()
static void addConfigVariable(const std::string& var);
@@ -87,35 +84,21 @@ public:
static void disableFirstUse();
static void resetFirstUse();
- // These methods are called each time the appropriate action is
- // taken. The functions themselves handle only showing the dialog
- // the first time, or subsequent times if the user wishes.
- static void useBalanceIncrease(S32 delta);
- static void useBalanceDecrease(S32 delta);
- static void useSit();
- static void useMap();
- static void useGoTo();
- static void useBuild();
-// static void useLeftClickNoHit();
- static void useTeleport();
-*/
- static void useOverrideKeys();
-/*
- static void useAttach();
- static void useAppearance();
- static void useInventory();
- */
+ static void otherAvatarChatFirst(bool enable = true);
+ static void sit(bool enable = true);
+ static void notUsingDestinationGuide(bool enable = true);
+ static void notUsingSidePanel(bool enable = true);
+ static void notMoving(bool enable = true);
+ static void newInventory(bool enable = true);
+ static void receiveLindens(bool enable = true);
static void useSandbox();
-/*
- static void useFlexible();
- static void useDebugMenus();
- static void useSculptedPrim();
- static void useMedia();
-
protected:
+ static void firstUseNotification(const std::string& control_var, bool enable, const std::string& notification_name, LLSD args = LLSD(), LLSD payload = LLSD());
static std::set<std::string> sConfigVariables;
-*/
+
+ static void init();
+ static bool processNotification(const LLSD& notify);
};
#endif
diff --git a/indra/newview/llflexibleobject.cpp b/indra/newview/llflexibleobject.cpp
index 561965d021..8ab2229235 100644
--- a/indra/newview/llflexibleobject.cpp
+++ b/indra/newview/llflexibleobject.cpp
@@ -2,31 +2,25 @@
* @file llflexibleobject.cpp
* @brief Flexible object implementation
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llflexibleobject.h b/indra/newview/llflexibleobject.h
index 811ae24df2..9b952f1985 100644
--- a/indra/newview/llflexibleobject.h
+++ b/indra/newview/llflexibleobject.h
@@ -3,31 +3,25 @@
* @author JJ Ventrella, Andrew Meadows, Tom Yedwab
* @brief Flexible object definition
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloaterabout.cpp b/indra/newview/llfloaterabout.cpp
index 4bd3151f2e..135137069c 100644
--- a/indra/newview/llfloaterabout.cpp
+++ b/indra/newview/llfloaterabout.cpp
@@ -3,31 +3,25 @@
* @author James Cook
* @brief The about box from Help->About
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -100,7 +94,6 @@ public:
LLFloaterAbout::LLFloaterAbout(const LLSD& key)
: LLFloater(key)
{
- //LLUICtrlFactory::getInstance()->buildFloater(this, "floater_about.xml");
}
diff --git a/indra/newview/llfloaterabout.h b/indra/newview/llfloaterabout.h
index 1092282ae2..8fc1aa4f29 100644
--- a/indra/newview/llfloaterabout.h
+++ b/indra/newview/llfloaterabout.h
@@ -2,31 +2,25 @@
* @file llfloaterabout.h
* @brief The about box from Help -> About
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloateranimpreview.cpp b/indra/newview/llfloateranimpreview.cpp
index f14e64e3e4..deebd69ec1 100644
--- a/indra/newview/llfloateranimpreview.cpp
+++ b/indra/newview/llfloateranimpreview.cpp
@@ -2,31 +2,25 @@
* @file llfloateranimpreview.cpp
* @brief LLFloaterAnimPreview class implementation
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -161,27 +155,27 @@ LLFloaterAnimPreview::LLFloaterAnimPreview(const std::string& filename) :
//-----------------------------------------------------------------------------
void LLFloaterAnimPreview::setAnimCallbacks()
{
- childSetCommitCallback("playback_slider", onSliderMove, this);
+ getChild<LLUICtrl>("playback_slider")->setCommitCallback(boost::bind(&LLFloaterAnimPreview::onSliderMove, this));
- childSetCommitCallback("preview_base_anim", onCommitBaseAnim, this);
- childSetValue("preview_base_anim", "Standing");
+ getChild<LLUICtrl>("preview_base_anim")->setCommitCallback(boost::bind(&LLFloaterAnimPreview::onCommitBaseAnim, this));
+ getChild<LLUICtrl>("preview_base_anim")->setValue("Standing");
- childSetCommitCallback("priority", onCommitPriority, this);
- childSetCommitCallback("loop_check", onCommitLoop, this);
- childSetCommitCallback("loop_in_point", onCommitLoopIn, this);
- childSetValidate("loop_in_point", boost::bind(&LLFloaterAnimPreview::validateLoopIn, this, _1));
- childSetCommitCallback("loop_out_point", onCommitLoopOut, this);
- childSetValidate("loop_out_point", boost::bind(&LLFloaterAnimPreview::validateLoopOut, this, _1));
+ getChild<LLUICtrl>("priority")->setCommitCallback(boost::bind(&LLFloaterAnimPreview::onCommitPriority, this));
+ getChild<LLUICtrl>("loop_check")->setCommitCallback(boost::bind(&LLFloaterAnimPreview::onCommitLoop, this));
+ getChild<LLUICtrl>("loop_in_point")->setCommitCallback(boost::bind(&LLFloaterAnimPreview::onCommitLoopIn, this));
+ getChild<LLUICtrl>("loop_in_point")->setValidateBeforeCommit( boost::bind(&LLFloaterAnimPreview::validateLoopIn, this, _1));
+ getChild<LLUICtrl>("loop_out_point")->setCommitCallback(boost::bind(&LLFloaterAnimPreview::onCommitLoopOut, this));
+ getChild<LLUICtrl>("loop_out_point")->setValidateBeforeCommit( boost::bind(&LLFloaterAnimPreview::validateLoopOut, this, _1));
- childSetCommitCallback("hand_pose_combo", onCommitHandPose, this);
+ getChild<LLUICtrl>("hand_pose_combo")->setCommitCallback(boost::bind(&LLFloaterAnimPreview::onCommitHandPose, this));
- childSetCommitCallback("emote_combo", onCommitEmote, this);
- childSetValue("emote_combo", "[None]");
+ getChild<LLUICtrl>("emote_combo")->setCommitCallback(boost::bind(&LLFloaterAnimPreview::onCommitEmote, this));
+ getChild<LLUICtrl>("emote_combo")->setValue("[None]");
- childSetCommitCallback("ease_in_time", onCommitEaseIn, this);
- childSetValidate("ease_in_time", boost::bind(&LLFloaterAnimPreview::validateEaseIn, this, _1));
- childSetCommitCallback("ease_out_time", onCommitEaseOut, this);
- childSetValidate("ease_out_time", boost::bind(&LLFloaterAnimPreview::validateEaseOut, this, _1));
+ getChild<LLUICtrl>("ease_in_time")->setCommitCallback(boost::bind(&LLFloaterAnimPreview::onCommitEaseIn, this));
+ getChild<LLUICtrl>("ease_in_time")->setValidateBeforeCommit( boost::bind(&LLFloaterAnimPreview::validateEaseIn, this, _1));
+ getChild<LLUICtrl>("ease_out_time")->setCommitCallback(boost::bind(&LLFloaterAnimPreview::onCommitEaseOut, this));
+ getChild<LLUICtrl>("ease_out_time")->setValidateBeforeCommit( boost::bind(&LLFloaterAnimPreview::validateEaseOut, this, _1));
}
//-----------------------------------------------------------------------------
@@ -197,7 +191,7 @@ BOOL LLFloaterAnimPreview::postBuild()
return FALSE;
}
- childSetCommitCallback("name_form", onCommitName, this);
+ getChild<LLUICtrl>("name_form")->setCommitCallback(boost::bind(&LLFloaterAnimPreview::onCommitName, this));
childSetAction("ok_btn", onBtnOK, this);
setDefaultBtn();
@@ -209,17 +203,17 @@ BOOL LLFloaterAnimPreview::postBuild()
mPreviewImageRect.set(0.f, 1.f, 1.f, 0.f);
mPlayButton = getChild<LLButton>( "play_btn");
- mPlayButton->setClickedCallback(onBtnPlay, this);
+ mPlayButton->setClickedCallback(boost::bind(&LLFloaterAnimPreview::onBtnPlay, this));
mPlayButton->setVisible(true);
mPauseButton = getChild<LLButton>( "pause_btn");
- mPauseButton->setClickedCallback(onBtnPause, this);
+ mPauseButton->setClickedCallback(boost::bind(&LLFloaterAnimPreview::onBtnPause, this));
mPauseButton->setVisible(false);
mStopButton = getChild<LLButton>( "stop_btn");
- mStopButton->setClickedCallback(onBtnStop, this);
+ mStopButton->setClickedCallback(boost::bind(&LLFloaterAnimPreview::onBtnStop, this));
- childHide("bad_animation_text");
+ getChildView("bad_animation_text")->setVisible(FALSE);
std::string exten = gDirUtilp->getExtension(mFilename);
if (exten == "bvh")
@@ -311,19 +305,19 @@ BOOL LLFloaterAnimPreview::postBuild()
mAnimPreview->setZoom(camera_zoom);
- motionp->setName(childGetValue("name_form").asString());
+ motionp->setName(getChild<LLUICtrl>("name_form")->getValue().asString());
mAnimPreview->getDummyAvatar()->startMotion(mMotionID);
getChild<LLSlider>("playback_slider")->setMinValue(0.0);
getChild<LLSlider>("playback_slider")->setMaxValue(1.0);
- childSetValue("loop_check", LLSD(motionp->getLoop()));
- childSetValue("loop_in_point", LLSD(motionp->getLoopIn() / motionp->getDuration() * 100.f));
- childSetValue("loop_out_point", LLSD(motionp->getLoopOut() / motionp->getDuration() * 100.f));
- childSetValue("priority", LLSD((F32)motionp->getPriority()));
- childSetValue("hand_pose_combo", LLHandMotion::getHandPoseName(motionp->getHandPose()));
- childSetValue("ease_in_time", LLSD(motionp->getEaseInDuration()));
- childSetValue("ease_out_time", LLSD(motionp->getEaseOutDuration()));
+ getChild<LLUICtrl>("loop_check")->setValue(LLSD(motionp->getLoop()));
+ getChild<LLUICtrl>("loop_in_point")->setValue(LLSD(motionp->getLoopIn() / motionp->getDuration() * 100.f));
+ getChild<LLUICtrl>("loop_out_point")->setValue(LLSD(motionp->getLoopOut() / motionp->getDuration() * 100.f));
+ getChild<LLUICtrl>("priority")->setValue(LLSD((F32)motionp->getPriority()));
+ getChild<LLUICtrl>("hand_pose_combo")->setValue(LLHandMotion::getHandPoseName(motionp->getHandPose()));
+ getChild<LLUICtrl>("ease_in_time")->setValue(LLSD(motionp->getEaseInDuration()));
+ getChild<LLUICtrl>("ease_out_time")->setValue(LLSD(motionp->getEaseOutDuration()));
setEnabled(TRUE);
std::string seconds_string;
seconds_string = llformat(" - %.2f seconds", motionp->getDuration());
@@ -334,7 +328,7 @@ BOOL LLFloaterAnimPreview::postBuild()
{
mAnimPreview = NULL;
mMotionID.setNull();
- childSetValue("bad_animation_text", getString("failed_to_initialize"));
+ getChild<LLUICtrl>("bad_animation_text")->setValue(getString("failed_to_initialize"));
}
}
else
@@ -346,13 +340,13 @@ BOOL LLFloaterAnimPreview::postBuild()
LLUIString out_str = getString("anim_too_long");
out_str.setArg("[LENGTH]", llformat("%.1f", loaderp->getDuration()));
out_str.setArg("[MAX_LENGTH]", llformat("%.1f", MAX_ANIM_DURATION));
- childSetValue("bad_animation_text", out_str.getString());
+ getChild<LLUICtrl>("bad_animation_text")->setValue(out_str.getString());
}
else
{
LLUIString out_str = getString("failed_file_read");
out_str.setArg("[STATUS]", getString(STATUS[loaderp->getStatus()]));
- childSetValue("bad_animation_text", out_str.getString());
+ getChild<LLUICtrl>("bad_animation_text")->setValue(out_str.getString());
}
}
@@ -429,17 +423,17 @@ void LLFloaterAnimPreview::resetMotion()
LLKeyframeMotion* motionp = (LLKeyframeMotion*)avatarp->findMotion(mMotionID);
// Set emotion
- std::string emote = childGetValue("emote_combo").asString();
+ std::string emote = getChild<LLUICtrl>("emote_combo")->getValue().asString();
motionp->setEmote(mIDList[emote]);
- LLUUID base_id = mIDList[childGetValue("preview_base_anim").asString()];
+ LLUUID base_id = mIDList[getChild<LLUICtrl>("preview_base_anim")->getValue().asString()];
avatarp->deactivateAllMotions();
avatarp->startMotion(mMotionID, 0.0f);
avatarp->startMotion(base_id, BASE_ANIM_TIME_OFFSET);
- childSetValue("playback_slider", 0.0f);
+ getChild<LLUICtrl>("playback_slider")->setValue(0.0f);
// Set pose
- std::string handpose = childGetValue("hand_pose_combo").asString();
+ std::string handpose = getChild<LLUICtrl>("hand_pose_combo")->getValue().asString();
avatarp->startMotion( ANIM_AGENT_HAND_MOTION, 0.0f );
motionp->setHandPose(LLHandMotion::getHandPose(handpose));
@@ -558,24 +552,23 @@ void LLFloaterAnimPreview::onMouseCaptureLost()
//-----------------------------------------------------------------------------
// onBtnPlay()
//-----------------------------------------------------------------------------
-void LLFloaterAnimPreview::onBtnPlay(void* user_data)
+void LLFloaterAnimPreview::onBtnPlay()
{
- LLFloaterAnimPreview* previewp = (LLFloaterAnimPreview*)user_data;
- if (!previewp->getEnabled())
+ if (!getEnabled())
return;
- if (previewp->mMotionID.notNull() && previewp->mAnimPreview)
+ if (mMotionID.notNull() && mAnimPreview)
{
- LLVOAvatar* avatarp = previewp->mAnimPreview->getDummyAvatar();
+ LLVOAvatar* avatarp = mAnimPreview->getDummyAvatar();
- if (!avatarp->isMotionActive(previewp->mMotionID))
+ if (!avatarp->isMotionActive(mMotionID))
{
- previewp->resetMotion();
- previewp->mPauseRequest = NULL;
+ resetMotion();
+ mPauseRequest = NULL;
}
else if (avatarp->areAnimationsPaused())
{
- previewp->mPauseRequest = NULL;
+ mPauseRequest = NULL;
}
}
}
@@ -583,21 +576,20 @@ void LLFloaterAnimPreview::onBtnPlay(void* user_data)
//-----------------------------------------------------------------------------
// onBtnPause()
//-----------------------------------------------------------------------------
-void LLFloaterAnimPreview::onBtnPause(void* user_data)
+void LLFloaterAnimPreview::onBtnPause()
{
- LLFloaterAnimPreview* previewp = (LLFloaterAnimPreview*)user_data;
- if (!previewp->getEnabled())
+ if (!getEnabled())
return;
- if (previewp->mMotionID.notNull() && previewp->mAnimPreview)
+ if (mMotionID.notNull() && mAnimPreview)
{
- LLVOAvatar* avatarp = previewp->mAnimPreview->getDummyAvatar();
+ LLVOAvatar* avatarp = mAnimPreview->getDummyAvatar();
- if (avatarp->isMotionActive(previewp->mMotionID))
+ if (avatarp->isMotionActive(mMotionID))
{
if (!avatarp->areAnimationsPaused())
{
- previewp->mPauseRequest = avatarp->requestPause();
+ mPauseRequest = avatarp->requestPause();
}
}
}
@@ -606,42 +598,40 @@ void LLFloaterAnimPreview::onBtnPause(void* user_data)
//-----------------------------------------------------------------------------
// onBtnStop()
//-----------------------------------------------------------------------------
-void LLFloaterAnimPreview::onBtnStop(void* user_data)
+void LLFloaterAnimPreview::onBtnStop()
{
- LLFloaterAnimPreview* previewp = (LLFloaterAnimPreview*)user_data;
- if (!previewp->getEnabled())
+ if (!getEnabled())
return;
- if (previewp->mMotionID.notNull() && previewp->mAnimPreview)
+ if (mMotionID.notNull() && mAnimPreview)
{
- LLVOAvatar* avatarp = previewp->mAnimPreview->getDummyAvatar();
- previewp->resetMotion();
- previewp->mPauseRequest = avatarp->requestPause();
+ LLVOAvatar* avatarp = mAnimPreview->getDummyAvatar();
+ resetMotion();
+ mPauseRequest = avatarp->requestPause();
}
}
//-----------------------------------------------------------------------------
// onSliderMove()
//-----------------------------------------------------------------------------
-void LLFloaterAnimPreview::onSliderMove(LLUICtrl* ctrl, void*user_data)
+void LLFloaterAnimPreview::onSliderMove()
{
- LLFloaterAnimPreview* previewp = (LLFloaterAnimPreview*)user_data;
- if (!previewp->getEnabled())
+ if (!getEnabled())
return;
- if (previewp->mAnimPreview)
+ if (mAnimPreview)
{
- LLVOAvatar* avatarp = previewp->mAnimPreview->getDummyAvatar();
- F32 slider_value = (F32)previewp->childGetValue("playback_slider").asReal();
- LLUUID base_id = previewp->mIDList[previewp->childGetValue("preview_base_anim").asString()];
- LLMotion* motionp = avatarp->findMotion(previewp->mMotionID);
+ LLVOAvatar* avatarp = mAnimPreview->getDummyAvatar();
+ F32 slider_value = (F32)getChild<LLUICtrl>("playback_slider")->getValue().asReal();
+ LLUUID base_id = mIDList[getChild<LLUICtrl>("preview_base_anim")->getValue().asString()];
+ LLMotion* motionp = avatarp->findMotion(mMotionID);
F32 duration = motionp->getDuration();// + motionp->getEaseOutDuration();
F32 delta_time = duration * slider_value;
avatarp->deactivateAllMotions();
avatarp->startMotion(base_id, delta_time + BASE_ANIM_TIME_OFFSET);
- avatarp->startMotion(previewp->mMotionID, delta_time);
- previewp->mPauseRequest = avatarp->requestPause();
- previewp->refresh();
+ avatarp->startMotion(mMotionID, delta_time);
+ mPauseRequest = avatarp->requestPause();
+ refresh();
}
}
@@ -649,29 +639,28 @@ void LLFloaterAnimPreview::onSliderMove(LLUICtrl* ctrl, void*user_data)
//-----------------------------------------------------------------------------
// onCommitBaseAnim()
//-----------------------------------------------------------------------------
-void LLFloaterAnimPreview::onCommitBaseAnim(LLUICtrl* ctrl, void* data)
+void LLFloaterAnimPreview::onCommitBaseAnim()
{
- LLFloaterAnimPreview* previewp = (LLFloaterAnimPreview*)data;
- if (!previewp->getEnabled())
+ if (!getEnabled())
return;
- if (previewp->mAnimPreview)
+ if (mAnimPreview)
{
- LLVOAvatar* avatarp = previewp->mAnimPreview->getDummyAvatar();
+ LLVOAvatar* avatarp = mAnimPreview->getDummyAvatar();
BOOL paused = avatarp->areAnimationsPaused();
// stop all other possible base motions
- avatarp->stopMotion(previewp->mIDList["Standing"], TRUE);
- avatarp->stopMotion(previewp->mIDList["Walking"], TRUE);
- avatarp->stopMotion(previewp->mIDList["Sitting"], TRUE);
- avatarp->stopMotion(previewp->mIDList["Flying"], TRUE);
+ avatarp->stopMotion(mIDList["Standing"], TRUE);
+ avatarp->stopMotion(mIDList["Walking"], TRUE);
+ avatarp->stopMotion(mIDList["Sitting"], TRUE);
+ avatarp->stopMotion(mIDList["Flying"], TRUE);
- previewp->resetMotion();
+ resetMotion();
if (!paused)
{
- previewp->mPauseRequest = NULL;
+ mPauseRequest = NULL;
}
}
}
@@ -679,154 +668,145 @@ void LLFloaterAnimPreview::onCommitBaseAnim(LLUICtrl* ctrl, void* data)
//-----------------------------------------------------------------------------
// onCommitLoop()
//-----------------------------------------------------------------------------
-void LLFloaterAnimPreview::onCommitLoop(LLUICtrl* ctrl, void* data)
+void LLFloaterAnimPreview::onCommitLoop()
{
- LLFloaterAnimPreview* previewp = (LLFloaterAnimPreview*)data;
- if (!previewp->getEnabled())
+ if (!getEnabled())
return;
- LLVOAvatar* avatarp = previewp->mAnimPreview->getDummyAvatar();
- LLKeyframeMotion* motionp = (LLKeyframeMotion*)avatarp->findMotion(previewp->mMotionID);
+ LLVOAvatar* avatarp = mAnimPreview->getDummyAvatar();
+ LLKeyframeMotion* motionp = (LLKeyframeMotion*)avatarp->findMotion(mMotionID);
if (motionp)
{
- motionp->setLoop(previewp->childGetValue("loop_check").asBoolean());
- motionp->setLoopIn((F32)previewp->childGetValue("loop_in_point").asReal() * 0.01f * motionp->getDuration());
- motionp->setLoopOut((F32)previewp->childGetValue("loop_out_point").asReal() * 0.01f * motionp->getDuration());
+ motionp->setLoop(getChild<LLUICtrl>("loop_check")->getValue().asBoolean());
+ motionp->setLoopIn((F32)getChild<LLUICtrl>("loop_in_point")->getValue().asReal() * 0.01f * motionp->getDuration());
+ motionp->setLoopOut((F32)getChild<LLUICtrl>("loop_out_point")->getValue().asReal() * 0.01f * motionp->getDuration());
}
}
//-----------------------------------------------------------------------------
// onCommitLoopIn()
//-----------------------------------------------------------------------------
-void LLFloaterAnimPreview::onCommitLoopIn(LLUICtrl* ctrl, void* data)
+void LLFloaterAnimPreview::onCommitLoopIn()
{
- LLFloaterAnimPreview* previewp = (LLFloaterAnimPreview*)data;
- if (!previewp->getEnabled())
+ if (!getEnabled())
return;
- LLVOAvatar* avatarp = previewp->mAnimPreview->getDummyAvatar();
- LLKeyframeMotion* motionp = (LLKeyframeMotion*)avatarp->findMotion(previewp->mMotionID);
+ LLVOAvatar* avatarp = mAnimPreview->getDummyAvatar();
+ LLKeyframeMotion* motionp = (LLKeyframeMotion*)avatarp->findMotion(mMotionID);
if (motionp)
{
- motionp->setLoopIn((F32)previewp->childGetValue("loop_in_point").asReal() / 100.f);
- previewp->resetMotion();
- previewp->childSetValue("loop_check", LLSD(TRUE));
- onCommitLoop(ctrl, data);
+ motionp->setLoopIn((F32)getChild<LLUICtrl>("loop_in_point")->getValue().asReal() / 100.f);
+ resetMotion();
+ getChild<LLUICtrl>("loop_check")->setValue(LLSD(TRUE));
+ onCommitLoop();
}
}
//-----------------------------------------------------------------------------
// onCommitLoopOut()
//-----------------------------------------------------------------------------
-void LLFloaterAnimPreview::onCommitLoopOut(LLUICtrl* ctrl, void* data)
+void LLFloaterAnimPreview::onCommitLoopOut()
{
- LLFloaterAnimPreview* previewp = (LLFloaterAnimPreview*)data;
- if (!previewp->getEnabled())
+ if (!getEnabled())
return;
- LLVOAvatar* avatarp = previewp->mAnimPreview->getDummyAvatar();
- LLKeyframeMotion* motionp = (LLKeyframeMotion*)avatarp->findMotion(previewp->mMotionID);
+ LLVOAvatar* avatarp = mAnimPreview->getDummyAvatar();
+ LLKeyframeMotion* motionp = (LLKeyframeMotion*)avatarp->findMotion(mMotionID);
if (motionp)
{
- motionp->setLoopOut((F32)previewp->childGetValue("loop_out_point").asReal() * 0.01f * motionp->getDuration());
- previewp->resetMotion();
- previewp->childSetValue("loop_check", LLSD(TRUE));
- onCommitLoop(ctrl, data);
+ motionp->setLoopOut((F32)getChild<LLUICtrl>("loop_out_point")->getValue().asReal() * 0.01f * motionp->getDuration());
+ resetMotion();
+ getChild<LLUICtrl>("loop_check")->setValue(LLSD(TRUE));
+ onCommitLoop();
}
}
//-----------------------------------------------------------------------------
// onCommitName()
//-----------------------------------------------------------------------------
-void LLFloaterAnimPreview::onCommitName(LLUICtrl* ctrl, void* data)
+void LLFloaterAnimPreview::onCommitName()
{
- LLFloaterAnimPreview* previewp = (LLFloaterAnimPreview*)data;
- if (!previewp->getEnabled())
+ if (!getEnabled())
return;
- LLVOAvatar* avatarp = previewp->mAnimPreview->getDummyAvatar();
- LLKeyframeMotion* motionp = (LLKeyframeMotion*)avatarp->findMotion(previewp->mMotionID);
+ LLVOAvatar* avatarp = mAnimPreview->getDummyAvatar();
+ LLKeyframeMotion* motionp = (LLKeyframeMotion*)avatarp->findMotion(mMotionID);
if (motionp)
{
- motionp->setName(previewp->childGetValue("name_form").asString());
+ motionp->setName(getChild<LLUICtrl>("name_form")->getValue().asString());
}
- previewp->doCommit();
+ doCommit();
}
//-----------------------------------------------------------------------------
// onCommitHandPose()
//-----------------------------------------------------------------------------
-void LLFloaterAnimPreview::onCommitHandPose(LLUICtrl* ctrl, void* data)
+void LLFloaterAnimPreview::onCommitHandPose()
{
- LLFloaterAnimPreview* previewp = (LLFloaterAnimPreview*)data;
- if (!previewp->getEnabled())
+ if (!getEnabled())
return;
- previewp->resetMotion(); // sets hand pose
+ resetMotion(); // sets hand pose
}
//-----------------------------------------------------------------------------
// onCommitEmote()
//-----------------------------------------------------------------------------
-void LLFloaterAnimPreview::onCommitEmote(LLUICtrl* ctrl, void* data)
+void LLFloaterAnimPreview::onCommitEmote()
{
- LLFloaterAnimPreview* previewp = (LLFloaterAnimPreview*)data;
- if (!previewp->getEnabled())
+ if (!getEnabled())
return;
- previewp->resetMotion(); // ssts emote
+ resetMotion(); // ssts emote
}
//-----------------------------------------------------------------------------
// onCommitPriority()
//-----------------------------------------------------------------------------
-void LLFloaterAnimPreview::onCommitPriority(LLUICtrl* ctrl, void* data)
+void LLFloaterAnimPreview::onCommitPriority()
{
- LLFloaterAnimPreview* previewp = (LLFloaterAnimPreview*)data;
- if (!previewp->getEnabled())
+ if (!getEnabled())
return;
- LLVOAvatar* avatarp = previewp->mAnimPreview->getDummyAvatar();
- LLKeyframeMotion* motionp = (LLKeyframeMotion*)avatarp->findMotion(previewp->mMotionID);
+ LLVOAvatar* avatarp = mAnimPreview->getDummyAvatar();
+ LLKeyframeMotion* motionp = (LLKeyframeMotion*)avatarp->findMotion(mMotionID);
- motionp->setPriority(llfloor((F32)previewp->childGetValue("priority").asReal()));
+ motionp->setPriority(llfloor((F32)getChild<LLUICtrl>("priority")->getValue().asReal()));
}
//-----------------------------------------------------------------------------
// onCommitEaseIn()
//-----------------------------------------------------------------------------
-void LLFloaterAnimPreview::onCommitEaseIn(LLUICtrl* ctrl, void* data)
+void LLFloaterAnimPreview::onCommitEaseIn()
{
- LLFloaterAnimPreview* previewp = (LLFloaterAnimPreview*)data;
- if (!previewp->getEnabled())
+ if (!getEnabled())
return;
- LLVOAvatar* avatarp = previewp->mAnimPreview->getDummyAvatar();
- LLKeyframeMotion* motionp = (LLKeyframeMotion*)avatarp->findMotion(previewp->mMotionID);
+ LLVOAvatar* avatarp = mAnimPreview->getDummyAvatar();
+ LLKeyframeMotion* motionp = (LLKeyframeMotion*)avatarp->findMotion(mMotionID);
- motionp->setEaseIn((F32)previewp->childGetValue("ease_in_time").asReal());
- previewp->resetMotion();
+ motionp->setEaseIn((F32)getChild<LLUICtrl>("ease_in_time")->getValue().asReal());
+ resetMotion();
}
//-----------------------------------------------------------------------------
// onCommitEaseOut()
//-----------------------------------------------------------------------------
-void LLFloaterAnimPreview::onCommitEaseOut(LLUICtrl* ctrl, void* data)
+void LLFloaterAnimPreview::onCommitEaseOut()
{
- LLFloaterAnimPreview* previewp = (LLFloaterAnimPreview*)data;
- if (!previewp->getEnabled())
+ if (!getEnabled())
return;
- LLVOAvatar* avatarp = previewp->mAnimPreview->getDummyAvatar();
- LLKeyframeMotion* motionp = (LLKeyframeMotion*)avatarp->findMotion(previewp->mMotionID);
+ LLVOAvatar* avatarp = mAnimPreview->getDummyAvatar();
+ LLKeyframeMotion* motionp = (LLKeyframeMotion*)avatarp->findMotion(mMotionID);
- motionp->setEaseOut((F32)previewp->childGetValue("ease_out_time").asReal());
- previewp->resetMotion();
+ motionp->setEaseOut((F32)getChild<LLUICtrl>("ease_out_time")->getValue().asReal());
+ resetMotion();
}
//-----------------------------------------------------------------------------
@@ -842,8 +822,8 @@ bool LLFloaterAnimPreview::validateEaseIn(const LLSD& data)
if (!motionp->getLoop())
{
- F32 new_ease_in = llclamp((F32)childGetValue("ease_in_time").asReal(), 0.f, motionp->getDuration() - motionp->getEaseOutDuration());
- childSetValue("ease_in_time", LLSD(new_ease_in));
+ F32 new_ease_in = llclamp((F32)getChild<LLUICtrl>("ease_in_time")->getValue().asReal(), 0.f, motionp->getDuration() - motionp->getEaseOutDuration());
+ getChild<LLUICtrl>("ease_in_time")->setValue(LLSD(new_ease_in));
}
return true;
@@ -862,8 +842,8 @@ bool LLFloaterAnimPreview::validateEaseOut(const LLSD& data)
if (!motionp->getLoop())
{
- F32 new_ease_out = llclamp((F32)childGetValue("ease_out_time").asReal(), 0.f, motionp->getDuration() - motionp->getEaseInDuration());
- childSetValue("ease_out_time", LLSD(new_ease_out));
+ F32 new_ease_out = llclamp((F32)getChild<LLUICtrl>("ease_out_time")->getValue().asReal(), 0.f, motionp->getDuration() - motionp->getEaseInDuration());
+ getChild<LLUICtrl>("ease_out_time")->setValue(LLSD(new_ease_out));
}
return true;
@@ -877,8 +857,8 @@ bool LLFloaterAnimPreview::validateLoopIn(const LLSD& data)
if (!getEnabled())
return false;
- F32 loop_in_value = (F32)childGetValue("loop_in_point").asReal();
- F32 loop_out_value = (F32)childGetValue("loop_out_point").asReal();
+ F32 loop_in_value = (F32)getChild<LLUICtrl>("loop_in_point")->getValue().asReal();
+ F32 loop_out_value = (F32)getChild<LLUICtrl>("loop_out_point")->getValue().asReal();
if (loop_in_value < 0.f)
{
@@ -893,7 +873,7 @@ bool LLFloaterAnimPreview::validateLoopIn(const LLSD& data)
loop_in_value = loop_out_value;
}
- childSetValue("loop_in_point", LLSD(loop_in_value));
+ getChild<LLUICtrl>("loop_in_point")->setValue(LLSD(loop_in_value));
return true;
}
@@ -905,8 +885,8 @@ bool LLFloaterAnimPreview::validateLoopOut(const LLSD& data)
if (!getEnabled())
return false;
- F32 loop_out_value = (F32)childGetValue("loop_out_point").asReal();
- F32 loop_in_value = (F32)childGetValue("loop_in_point").asReal();
+ F32 loop_out_value = (F32)getChild<LLUICtrl>("loop_out_point")->getValue().asReal();
+ F32 loop_in_value = (F32)getChild<LLUICtrl>("loop_in_point")->getValue().asReal();
if (loop_out_value < 0.f)
{
@@ -921,7 +901,7 @@ bool LLFloaterAnimPreview::validateLoopOut(const LLSD& data)
loop_out_value = loop_in_value;
}
- childSetValue("loop_out_point", LLSD(loop_out_value));
+ getChild<LLUICtrl>("loop_out_point")->setValue(LLSD(loop_out_value));
return true;
}
@@ -935,15 +915,15 @@ void LLFloaterAnimPreview::refresh()
bool show_play = true;
if (!mAnimPreview)
{
- childShow("bad_animation_text");
+ getChildView("bad_animation_text")->setVisible(TRUE);
// play button visible but disabled
mPlayButton->setEnabled(FALSE);
mStopButton->setEnabled(FALSE);
- childDisable("ok_btn");
+ getChildView("ok_btn")->setEnabled(FALSE);
}
else
{
- childHide("bad_animation_text");
+ getChildView("bad_animation_text")->setVisible(FALSE);
// re-enabled in case previous animation was bad
mPlayButton->setEnabled(TRUE);
mStopButton->setEnabled(TRUE);
@@ -958,7 +938,7 @@ void LLFloaterAnimPreview::refresh()
if (motionp)
{
F32 fraction_complete = motionp->getLastUpdateTime() / motionp->getDuration();
- childSetValue("playback_slider", fraction_complete);
+ getChild<LLUICtrl>("playback_slider")->setValue(fraction_complete);
}
show_play = false;
}
@@ -968,7 +948,7 @@ void LLFloaterAnimPreview::refresh()
// Motion just finished playing
mPauseRequest = avatarp->requestPause();
}
- childEnable("ok_btn");
+ getChildView("ok_btn")->setEnabled(TRUE);
mAnimPreview->requestUpdate();
}
mPlayButton->setVisible(show_play);
@@ -999,8 +979,8 @@ void LLFloaterAnimPreview::onBtnOK(void* userdata)
file.setMaxSize(size);
if (file.write((U8*)buffer, size))
{
- std::string name = floaterp->childGetValue("name_form").asString();
- std::string desc = floaterp->childGetValue("description_form").asString();
+ std::string name = floaterp->getChild<LLUICtrl>("name_form")->getValue().asString();
+ std::string desc = floaterp->getChild<LLUICtrl>("description_form")->getValue().asString();
LLAssetStorage::LLStoreAssetCallback callback = NULL;
S32 expected_upload_cost = LLGlobalEconomy::Singleton::getInstance()->getPriceUpload();
void *userdata = NULL;
diff --git a/indra/newview/llfloateranimpreview.h b/indra/newview/llfloateranimpreview.h
index 84f131a322..f1ffb6547f 100644
--- a/indra/newview/llfloateranimpreview.h
+++ b/indra/newview/llfloateranimpreview.h
@@ -2,31 +2,25 @@
* @file llfloateranimpreview.h
* @brief LLFloaterAnimPreview class definition
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -89,22 +83,22 @@ public:
void refresh();
- static void onBtnPlay(void*);
- static void onBtnPause(void*);
- static void onBtnStop(void*);
- static void onSliderMove(LLUICtrl*, void*);
- static void onCommitBaseAnim(LLUICtrl*, void*);
- static void onCommitLoop(LLUICtrl*, void*);
- static void onCommitLoopIn(LLUICtrl*, void*);
- static void onCommitLoopOut(LLUICtrl*, void*);
+ void onBtnPlay();
+ void onBtnPause();
+ void onBtnStop();
+ void onSliderMove();
+ void onCommitBaseAnim();
+ void onCommitLoop();
+ void onCommitLoopIn();
+ void onCommitLoopOut();
bool validateLoopIn(const LLSD& data);
bool validateLoopOut(const LLSD& data);
- static void onCommitName(LLUICtrl*, void*);
- static void onCommitHandPose(LLUICtrl*, void*);
- static void onCommitEmote(LLUICtrl*, void*);
- static void onCommitPriority(LLUICtrl*, void*);
- static void onCommitEaseIn(LLUICtrl*, void*);
- static void onCommitEaseOut(LLUICtrl*, void*);
+ void onCommitName();
+ void onCommitHandPose();
+ void onCommitEmote();
+ void onCommitPriority();
+ void onCommitEaseIn();
+ void onCommitEaseOut();
bool validateEaseIn(const LLSD& data);
bool validateEaseOut(const LLSD& data);
static void onBtnOK(void*);
diff --git a/indra/newview/llfloaterauction.cpp b/indra/newview/llfloaterauction.cpp
index 679ab4c713..252c7b51ae 100644
--- a/indra/newview/llfloaterauction.cpp
+++ b/indra/newview/llfloaterauction.cpp
@@ -3,31 +3,25 @@
* @author James Cook, Ian Wilkes
* @brief Implementation of the auction floater.
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -80,7 +74,6 @@ LLFloaterAuction::LLFloaterAuction(const LLSD& key)
: LLFloater(key),
mParcelID(-1)
{
-// LLUICtrlFactory::getInstance()->buildFloater(this, "floater_auction.xml");
mCommitCallbackRegistrar.add("ClickSnapshot", boost::bind(&LLFloaterAuction::onClickSnapshot, this));
mCommitCallbackRegistrar.add("ClickSellToAnyone", boost::bind(&LLFloaterAuction::onClickSellToAnyone, this));
mCommitCallbackRegistrar.add("ClickStartAuction", boost::bind(&LLFloaterAuction::onClickStartAuction, this));
@@ -115,20 +108,20 @@ void LLFloaterAuction::initialize()
mParcelID = parcelp->getLocalID();
mParcelUpdateCapUrl = region->getCapability("ParcelPropertiesUpdate");
- childSetText("parcel_text", parcelp->getName());
- childEnable("snapshot_btn");
- childEnable("reset_parcel_btn");
- childEnable("start_auction_btn");
+ getChild<LLUICtrl>("parcel_text")->setValue(parcelp->getName());
+ getChildView("snapshot_btn")->setEnabled(TRUE);
+ getChildView("reset_parcel_btn")->setEnabled(TRUE);
+ getChildView("start_auction_btn")->setEnabled(TRUE);
LLPanelEstateInfo* panel = LLFloaterRegionInfo::getPanelEstate();
if (panel)
{ // Only enable "Sell to Anyone" on Teen grid or if we don't know the ID yet
U32 estate_id = panel->getEstateID();
- childSetEnabled("sell_to_anyone_btn", (estate_id == ESTATE_TEEN || estate_id == 0));
+ getChildView("sell_to_anyone_btn")->setEnabled((estate_id == ESTATE_TEEN || estate_id == 0));
}
else
{ // Don't have the panel up, so don't know if we're on the teen grid or not. Default to enabling it
- childEnable("sell_to_anyone_btn");
+ getChildView("sell_to_anyone_btn")->setEnabled(TRUE);
}
}
else
@@ -136,17 +129,17 @@ void LLFloaterAuction::initialize()
mParcelHost.invalidate();
if(parcelp && parcelp->getForSale())
{
- childSetText("parcel_text", getString("already for sale"));
+ getChild<LLUICtrl>("parcel_text")->setValue(getString("already for sale"));
}
else
{
- childSetText("parcel_text", LLStringUtil::null);
+ getChild<LLUICtrl>("parcel_text")->setValue(LLStringUtil::null);
}
mParcelID = -1;
- childSetEnabled("snapshot_btn", false);
- childSetEnabled("reset_parcel_btn", false);
- childSetEnabled("sell_to_anyone_btn", false);
- childSetEnabled("start_auction_btn", false);
+ getChildView("snapshot_btn")->setEnabled(false);
+ getChildView("reset_parcel_btn")->setEnabled(false);
+ getChildView("sell_to_anyone_btn")->setEnabled(false);
+ getChildView("start_auction_btn")->setEnabled(false);
}
mImageID.setNull();
@@ -159,9 +152,10 @@ void LLFloaterAuction::draw()
if(!isMinimized() && mImage.notNull())
{
- LLRect rect;
- if (childGetRect("snapshot_icon", rect))
+ LLView* snapshot_icon = findChildView("snapshot_icon");
+ if (snapshot_icon)
{
+ LLRect rect = snapshot_icon->getRect();
{
gGL.getTexUnit(0)->unbind(LLTexUnit::TT_TEXTURE);
gl_rect_2d(rect, LLColor4(0.f, 0.f, 0.f, 1.f));
@@ -188,7 +182,7 @@ void LLFloaterAuction::onClickSnapshot(void* data)
LLPointer<LLImageRaw> raw = new LLImageRaw;
- gForceRenderLandFence = self->childGetValue("fence_check").asBoolean();
+ gForceRenderLandFence = self->getChild<LLUICtrl>("fence_check")->getValue().asBoolean();
BOOL success = gViewerWindow->rawSnapshot(raw,
gViewerWindow->getWindowWidthScaled(),
gViewerWindow->getWindowHeightScaled(),
@@ -236,7 +230,7 @@ void LLFloaterAuction::onClickStartAuction(void* data)
if(self->mImageID.notNull())
{
- LLSD parcel_name = self->childGetValue("parcel_text");
+ LLSD parcel_name = self->getChild<LLUICtrl>("parcel_text")->getValue();
// create the asset
std::string* name = new std::string(parcel_name.asString());
@@ -345,7 +339,7 @@ void LLFloaterAuction::doResetParcel()
std::string new_name(parcel_name.str().c_str());
body["name"] = new_name;
- childSetText("parcel_text", new_name); // Set name in dialog as well, since it won't get updated otherwise
+ getChild<LLUICtrl>("parcel_text")->setValue(new_name); // Set name in dialog as well, since it won't get updated otherwise
body["sale_price"] = (S32) 0;
body["description"] = empty;
diff --git a/indra/newview/llfloaterauction.h b/indra/newview/llfloaterauction.h
index c599af782d..9c0c0f7775 100644
--- a/indra/newview/llfloaterauction.h
+++ b/indra/newview/llfloaterauction.h
@@ -3,31 +3,25 @@
* @author James Cook, Ian Wilkes
* @brief llfloaterauction class header file
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloateravatarpicker.cpp b/indra/newview/llfloateravatarpicker.cpp
index 8f6816b845..9f96a22f56 100644
--- a/indra/newview/llfloateravatarpicker.cpp
+++ b/indra/newview/llfloateravatarpicker.cpp
@@ -1,31 +1,25 @@
/**
* @file llfloateravatarpicker.cpp
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -85,7 +79,6 @@ LLFloaterAvatarPicker::LLFloaterAvatarPicker(const LLSD& key)
mNearMeListComplete(FALSE),
mCloseOnSelect(FALSE)
{
-// LLUICtrlFactory::getInstance()->buildFloater(this, "floater_avatar_picker.xml");
mCommitCallbackRegistrar.add("Refresh.FriendList", boost::bind(&LLFloaterAvatarPicker::populateFriend, this));
}
@@ -94,14 +87,14 @@ BOOL LLFloaterAvatarPicker::postBuild()
getChild<LLLineEditor>("Edit")->setKeystrokeCallback( boost::bind(&LLFloaterAvatarPicker::editKeystroke, this, _1, _2),NULL);
childSetAction("Find", boost::bind(&LLFloaterAvatarPicker::onBtnFind, this));
- childDisable("Find");
+ getChildView("Find")->setEnabled(FALSE);
childSetAction("Refresh", boost::bind(&LLFloaterAvatarPicker::onBtnRefresh, this));
getChild<LLUICtrl>("near_me_range")->setCommitCallback(boost::bind(&LLFloaterAvatarPicker::onRangeAdjust, this));
LLScrollListCtrl* searchresults = getChild<LLScrollListCtrl>("SearchResults");
searchresults->setDoubleClickCallback( boost::bind(&LLFloaterAvatarPicker::onBtnSelect, this));
searchresults->setCommitCallback(boost::bind(&LLFloaterAvatarPicker::onList, this));
- childDisable("SearchResults");
+ getChildView("SearchResults")->setEnabled(FALSE);
LLScrollListCtrl* nearme = getChild<LLScrollListCtrl>("NearMe");
nearme->setDoubleClickCallback(boost::bind(&LLFloaterAvatarPicker::onBtnSelect, this));
@@ -112,10 +105,10 @@ BOOL LLFloaterAvatarPicker::postBuild()
getChild<LLUICtrl>("Friends")->setCommitCallback(boost::bind(&LLFloaterAvatarPicker::onList, this));
childSetAction("ok_btn", boost::bind(&LLFloaterAvatarPicker::onBtnSelect, this));
- childDisable("ok_btn");
+ getChildView("ok_btn")->setEnabled(FALSE);
childSetAction("cancel_btn", boost::bind(&LLFloaterAvatarPicker::onBtnClose, this));
- childSetFocus("Edit");
+ getChild<LLUICtrl>("Edit")->setFocus(TRUE);
LLPanel* search_panel = getChild<LLPanel>("SearchPanel");
if (search_panel)
@@ -145,7 +138,7 @@ void LLFloaterAvatarPicker::setOkBtnEnableCb(validate_callback_t cb)
void LLFloaterAvatarPicker::onTabChanged()
{
- childSetEnabled("ok_btn", isSelectBtnEnabled());
+ getChildView("ok_btn")->setEnabled(isSelectBtnEnabled());
}
// Destroys the object
@@ -184,7 +177,7 @@ void LLFloaterAvatarPicker::onBtnSelect()
{
std::string acvtive_panel_name;
LLScrollListCtrl* list = NULL;
- LLPanel* active_panel = childGetVisibleTab("ResidentChooserTabs");
+ LLPanel* active_panel = getChild<LLTabContainer>("ResidentChooserTabs")->getCurrentPanel();
if(active_panel)
{
acvtive_panel_name = active_panel->getName();
@@ -239,7 +232,7 @@ void LLFloaterAvatarPicker::onRangeAdjust()
void LLFloaterAvatarPicker::onList()
{
- childSetEnabled("ok_btn", isSelectBtnEnabled());
+ getChildView("ok_btn")->setEnabled(isSelectBtnEnabled());
}
void LLFloaterAvatarPicker::populateNearMe()
@@ -273,14 +266,14 @@ void LLFloaterAvatarPicker::populateNearMe()
if (empty)
{
- childDisable("NearMe");
- childDisable("ok_btn");
+ getChildView("NearMe")->setEnabled(FALSE);
+ getChildView("ok_btn")->setEnabled(FALSE);
near_me_scroller->setCommentText(getString("no_one_near"));
}
else
{
- childEnable("NearMe");
- childEnable("ok_btn");
+ getChildView("NearMe")->setEnabled(TRUE);
+ getChildView("ok_btn")->setEnabled(TRUE);
near_me_scroller->selectFirstItem();
onList();
near_me_scroller->setFocus(TRUE);
@@ -327,7 +320,7 @@ void LLFloaterAvatarPicker::draw()
}
LLFloater::draw();
- if (!mNearMeListComplete && childGetVisibleTab("ResidentChooserTabs") == getChild<LLPanel>("NearMePanel"))
+ if (!mNearMeListComplete && getChild<LLTabContainer>("ResidentChooserTabs")->getCurrentPanel() == getChild<LLPanel>("NearMePanel"))
{
populateNearMe();
}
@@ -335,7 +328,7 @@ void LLFloaterAvatarPicker::draw()
BOOL LLFloaterAvatarPicker::visibleItemsSelected() const
{
- LLPanel* active_panel = childGetVisibleTab("ResidentChooserTabs");
+ LLPanel* active_panel = getChild<LLTabContainer>("ResidentChooserTabs")->getCurrentPanel();
if(active_panel == getChild<LLPanel>("SearchPanel"))
{
@@ -354,7 +347,7 @@ BOOL LLFloaterAvatarPicker::visibleItemsSelected() const
void LLFloaterAvatarPicker::find()
{
- std::string text = childGetValue("Edit").asString();
+ std::string text = getChild<LLUICtrl>("Edit")->getValue().asString();
mQueryID.generate();
@@ -373,7 +366,7 @@ void LLFloaterAvatarPicker::find()
getChild<LLScrollListCtrl>("SearchResults")->deleteAllItems();
getChild<LLScrollListCtrl>("SearchResults")->setCommentText(getString("searching"));
- childSetEnabled("ok_btn", FALSE);
+ getChildView("ok_btn")->setEnabled(FALSE);
mNumResultsReturned = 0;
}
@@ -388,7 +381,7 @@ LLScrollListCtrl* LLFloaterAvatarPicker::getActiveList()
{
std::string acvtive_panel_name;
LLScrollListCtrl* list = NULL;
- LLPanel* active_panel = childGetVisibleTab("ResidentChooserTabs");
+ LLPanel* active_panel = getChild<LLTabContainer>("ResidentChooserTabs")->getCurrentPanel();
if(active_panel)
{
acvtive_panel_name = active_panel->getName();
@@ -502,10 +495,10 @@ void LLFloaterAvatarPicker::processAvatarPickerReply(LLMessageSystem* msg, void*
if (avatar_id.isNull())
{
LLStringUtil::format_map_t map;
- map["[TEXT]"] = floater->childGetText("Edit");
+ map["[TEXT]"] = floater->getChild<LLUICtrl>("Edit")->getValue().asString();
avatar_name = floater->getString("not_found", map);
search_results->setEnabled(FALSE);
- floater->childDisable("ok_btn");
+ floater->getChildView("ok_btn")->setEnabled(FALSE);
}
else
{
@@ -521,7 +514,7 @@ void LLFloaterAvatarPicker::processAvatarPickerReply(LLMessageSystem* msg, void*
if (found_one)
{
- floater->childEnable("ok_btn");
+ floater->getChildView("ok_btn")->setEnabled(TRUE);
search_results->selectFirstItem();
floater->onList();
search_results->setFocus(TRUE);
@@ -531,7 +524,7 @@ void LLFloaterAvatarPicker::processAvatarPickerReply(LLMessageSystem* msg, void*
//static
void LLFloaterAvatarPicker::editKeystroke(LLLineEditor* caller, void* user_data)
{
- childSetEnabled("Find", caller->getText().size() >= 3);
+ getChildView("Find")->setEnabled(caller->getText().size() >= 3);
}
// virtual
@@ -539,7 +532,7 @@ BOOL LLFloaterAvatarPicker::handleKeyHere(KEY key, MASK mask)
{
if (key == KEY_RETURN && mask == MASK_NONE)
{
- if (childHasFocus("Edit"))
+ if (getChild<LLUICtrl>("Edit")->hasFocus())
{
onBtnFind();
}
@@ -566,7 +559,7 @@ bool LLFloaterAvatarPicker::isSelectBtnEnabled()
{
std::string acvtive_panel_name;
LLScrollListCtrl* list = NULL;
- LLPanel* active_panel = childGetVisibleTab("ResidentChooserTabs");
+ LLPanel* active_panel = getChild<LLTabContainer>("ResidentChooserTabs")->getCurrentPanel();
if(active_panel)
{
diff --git a/indra/newview/llfloateravatarpicker.h b/indra/newview/llfloateravatarpicker.h
index 0af72e85a0..b476e898e9 100644
--- a/indra/newview/llfloateravatarpicker.h
+++ b/indra/newview/llfloateravatarpicker.h
@@ -2,31 +2,25 @@
* @file llfloateravatarpicker.h
* @brief was llavatarpicker.h
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloateravatartextures.cpp b/indra/newview/llfloateravatartextures.cpp
index 847462a6c3..10cf26521f 100644
--- a/indra/newview/llfloateravatartextures.cpp
+++ b/indra/newview/llfloateravatartextures.cpp
@@ -2,31 +2,25 @@
* @file llfloateravatartextures.cpp
* @brief Debugging view showing underlying avatar textures and baked textures.
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -46,7 +40,6 @@ LLFloaterAvatarTextures::LLFloaterAvatarTextures(const LLSD& id)
: LLFloater(id),
mID(id.asUUID())
{
-// LLUICtrlFactory::getInstance()->buildFloater(this, "floater_avatar_textures.xml");
}
LLFloaterAvatarTextures::~LLFloaterAvatarTextures()
diff --git a/indra/newview/llfloateravatartextures.h b/indra/newview/llfloateravatartextures.h
index e27484d26f..85ff545855 100644
--- a/indra/newview/llfloateravatartextures.h
+++ b/indra/newview/llfloateravatartextures.h
@@ -2,31 +2,25 @@
* @file llfloateravatartextures.h
* @brief Debugging view showing underlying avatar textures and baked textures.
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloaterbeacons.cpp b/indra/newview/llfloaterbeacons.cpp
index 975c888a2b..e24df948c4 100644
--- a/indra/newview/llfloaterbeacons.cpp
+++ b/indra/newview/llfloaterbeacons.cpp
@@ -3,31 +3,25 @@
* @brief Front-end to LLPipeline controls for highlighting various kinds of objects.
* @author Coco
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -42,8 +36,6 @@
LLFloaterBeacons::LLFloaterBeacons(const LLSD& seed)
: LLFloater(seed)
{
-// LLUICtrlFactory::getInstance()->buildFloater(this, "floater_beacons.xml");
-
// Initialize pipeline states from saved settings.
// OK to do at floater constructor time because beacons do not display unless the floater is open
// therefore it is OK to not initialize the pipeline state before needed.
diff --git a/indra/newview/llfloaterbeacons.h b/indra/newview/llfloaterbeacons.h
index c175cb3ef4..47d0696296 100644
--- a/indra/newview/llfloaterbeacons.h
+++ b/indra/newview/llfloaterbeacons.h
@@ -3,31 +3,25 @@
* @brief Front-end to LLPipeline controls for highlighting various kinds of objects.
* @author Coco
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloaterbuildoptions.cpp b/indra/newview/llfloaterbuildoptions.cpp
index 30e9428df9..4b6fe4a115 100644
--- a/indra/newview/llfloaterbuildoptions.cpp
+++ b/indra/newview/llfloaterbuildoptions.cpp
@@ -2,31 +2,25 @@
* @file llfloaterbuildoptions.cpp
* @brief LLFloaterBuildOptions class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -46,7 +40,6 @@
LLFloaterBuildOptions::LLFloaterBuildOptions(const LLSD& key)
: LLFloater(key)
{
- //LLUICtrlFactory::getInstance()->buildFloater(this, "floater_build_options.xml");
}
LLFloaterBuildOptions::~LLFloaterBuildOptions()
diff --git a/indra/newview/llfloaterbuildoptions.h b/indra/newview/llfloaterbuildoptions.h
index 43cbb201c2..164944d7bc 100644
--- a/indra/newview/llfloaterbuildoptions.h
+++ b/indra/newview/llfloaterbuildoptions.h
@@ -2,31 +2,25 @@
* @file llfloaterbuildoptions.h
* @brief LLFloaterBuildOptions class definition
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloaterbulkpermission.cpp b/indra/newview/llfloaterbulkpermission.cpp
index 766fc0723c..90f40628a8 100644
--- a/indra/newview/llfloaterbulkpermission.cpp
+++ b/indra/newview/llfloaterbulkpermission.cpp
@@ -3,31 +3,25 @@
* @author Michelle2 Zenovka
* @brief A floater which allows task inventory item's properties to be changed on mass.
*
- * $LicenseInfo:firstyear=2008&license=viewergpl$
- *
- * Copyright (c) 2008-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2008&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -63,7 +57,6 @@ LLFloaterBulkPermission::LLFloaterBulkPermission(const LLSD& seed)
mDone(FALSE)
{
mID.generate();
-// LLUICtrlFactory::getInstance()->buildFloater(this,"floater_bulk_perms.xml");
mCommitCallbackRegistrar.add("BulkPermission.Apply", boost::bind(&LLFloaterBulkPermission::onApplyBtn, this));
mCommitCallbackRegistrar.add("BulkPermission.Close", boost::bind(&LLFloaterBulkPermission::onCloseBtn, this));
mCommitCallbackRegistrar.add("BulkPermission.CheckAll", boost::bind(&LLFloaterBulkPermission::onCheckAll, this));
diff --git a/indra/newview/llfloaterbulkpermission.h b/indra/newview/llfloaterbulkpermission.h
index 80dc88fbb1..7dd05df7ee 100644
--- a/indra/newview/llfloaterbulkpermission.h
+++ b/indra/newview/llfloaterbulkpermission.h
@@ -3,31 +3,25 @@
* @brief Allow multiple task inventory properties to be set in one go.
* @author Michelle2 Zenovka
*
- * $LicenseInfo:firstyear=2008&license=viewergpl$
- *
- * Copyright (c) 2008-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2008&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloaterbump.cpp b/indra/newview/llfloaterbump.cpp
index e925796526..a02b67f08e 100644
--- a/indra/newview/llfloaterbump.cpp
+++ b/indra/newview/llfloaterbump.cpp
@@ -3,31 +3,25 @@
* @brief Floater showing recent bumps, hits with objects, pushes, etc.
* @author Cory Ondrejka, James Cook
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -51,7 +45,6 @@ LLFloaterBump::LLFloaterBump(const LLSD& key)
: LLFloater(key)
{
if(gNoRender) return;
- //LLUICtrlFactory::getInstance()->buildFloater(this, "floater_bumps.xml");
}
diff --git a/indra/newview/llfloaterbump.h b/indra/newview/llfloaterbump.h
index 1f2cb6d6ab..5acab6da8c 100644
--- a/indra/newview/llfloaterbump.h
+++ b/indra/newview/llfloaterbump.h
@@ -3,31 +3,25 @@
* @brief Floater showing recent bumps, hits with objects, pushes, etc.
* @author Cory Ondrejka, James Cook
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloaterbuy.cpp b/indra/newview/llfloaterbuy.cpp
index d359856443..f46a2be0fa 100644
--- a/indra/newview/llfloaterbuy.cpp
+++ b/indra/newview/llfloaterbuy.cpp
@@ -3,31 +3,25 @@
* @author James Cook
* @brief LLFloaterBuy class implementation
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -57,13 +51,12 @@
LLFloaterBuy::LLFloaterBuy(const LLSD& key)
: LLFloater(key)
{
-// LLUICtrlFactory::getInstance()->buildFloater(this, "floater_buy_object.xml");
}
BOOL LLFloaterBuy::postBuild()
{
- childDisable("object_list");
- childDisable("item_list");
+ getChildView("object_list")->setEnabled(FALSE);
+ getChildView("item_list")->setEnabled(FALSE);
getChild<LLUICtrl>("cancel_btn")->setCommitCallback( boost::bind(&LLFloaterBuy::onClickCancel, this));
getChild<LLUICtrl>("buy_btn")->setCommitCallback( boost::bind(&LLFloaterBuy::onClickBuy, this));
@@ -183,8 +176,8 @@ void LLFloaterBuy::show(const LLSaleInfo& sale_info)
// Add after columns added so appropriate heights are correct.
object_list->addElement(row);
- floater->childSetTextArg("buy_text", "[AMOUNT]", llformat("%d", sale_info.getSalePrice()));
- floater->childSetTextArg("buy_text", "[NAME]", owner_name);
+ floater->getChild<LLUICtrl>("buy_text")->setTextArg("[AMOUNT]", llformat("%d", sale_info.getSalePrice()));
+ floater->getChild<LLUICtrl>("buy_text")->setTextArg("[NAME]", owner_name);
// Must do this after the floater is created, because
// sometimes the inventory is already there and
diff --git a/indra/newview/llfloaterbuy.h b/indra/newview/llfloaterbuy.h
index 411c8fb00e..3ec642dee1 100644
--- a/indra/newview/llfloaterbuy.h
+++ b/indra/newview/llfloaterbuy.h
@@ -3,31 +3,25 @@
* @author James Cook
* @brief LLFloaterBuy class definition
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloaterbuycontents.cpp b/indra/newview/llfloaterbuycontents.cpp
index 9bde3b1dac..a7388d21a3 100644
--- a/indra/newview/llfloaterbuycontents.cpp
+++ b/indra/newview/llfloaterbuycontents.cpp
@@ -3,31 +3,25 @@
* @author James Cook
* @brief LLFloaterBuyContents class implementation
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -47,6 +41,7 @@
#include "llinventorydefines.h"
#include "llinventoryfunctions.h"
#include "llinventorymodel.h" // for gInventory
+#include "llfirstuse.h"
#include "llfloaterreg.h"
#include "llfloaterinventory.h" // for LLInventoryIcon::getIcon
#include "llnotificationsutil.h"
@@ -60,7 +55,6 @@
LLFloaterBuyContents::LLFloaterBuyContents(const LLSD& key)
: LLFloater(key)
{
-// LLUICtrlFactory::getInstance()->buildFloater(this, "floater_buy_contents.xml");
}
BOOL LLFloaterBuyContents::postBuild()
@@ -69,9 +63,9 @@ BOOL LLFloaterBuyContents::postBuild()
getChild<LLUICtrl>("cancel_btn")->setCommitCallback( boost::bind(&LLFloaterBuyContents::onClickCancel, this));
getChild<LLUICtrl>("buy_btn")->setCommitCallback( boost::bind(&LLFloaterBuyContents::onClickBuy, this));
- childDisable("item_list");
- childDisable("buy_btn");
- childDisable("wear_check");
+ getChildView("item_list")->setEnabled(FALSE);
+ getChildView("buy_btn")->setEnabled(FALSE);
+ getChildView("wear_check")->setEnabled(FALSE);
setDefaultBtn("cancel_btn"); // to avoid accidental buy (SL-43130)
@@ -129,9 +123,9 @@ void LLFloaterBuyContents::show(const LLSaleInfo& sale_info)
gCacheName->getGroupName(owner_id, owner_name);
}
- floater->childSetTextArg("contains_text", "[NAME]", node->mName);
- floater->childSetTextArg("buy_text", "[AMOUNT]", llformat("%d", sale_info.getSalePrice()));
- floater->childSetTextArg("buy_text", "[NAME]", owner_name);
+ floater->getChild<LLUICtrl>("contains_text")->setTextArg("[NAME]", node->mName);
+ floater->getChild<LLUICtrl>("buy_text")->setTextArg("[AMOUNT]", llformat("%d", sale_info.getSalePrice()));
+ floater->getChild<LLUICtrl>("buy_text")->setTextArg("[NAME]", owner_name);
// Must do this after the floater is created, because
// sometimes the inventory is already there and
@@ -169,7 +163,7 @@ void LLFloaterBuyContents::inventoryChanged(LLViewerObject* obj,
}
// default to turning off the buy button.
- childDisable("buy_btn");
+ getChildView("buy_btn")->setEnabled(FALSE);
LLUUID owner_id;
BOOL is_group_owned;
@@ -210,7 +204,7 @@ void LLFloaterBuyContents::inventoryChanged(LLViewerObject* obj,
// There will be at least one item shown in the display, so go
// ahead and enable the buy button.
- childEnable("buy_btn");
+ getChildView("buy_btn")->setEnabled(TRUE);
// Create the line in the list
LLSD row;
@@ -256,8 +250,8 @@ void LLFloaterBuyContents::inventoryChanged(LLViewerObject* obj,
if (wearable_count > 0)
{
- childEnable("wear_check");
- childSetValue("wear_check", LLSD(false) );
+ getChildView("wear_check")->setEnabled(TRUE);
+ getChild<LLUICtrl>("wear_check")->setValue(LLSD(false) );
}
removeVOInventoryListener();
@@ -268,7 +262,7 @@ void LLFloaterBuyContents::onClickBuy()
{
// Make sure this wasn't selected through other mechanisms
// (ie, being the default button and pressing enter.
- if(!childIsEnabled("buy_btn"))
+ if(!getChildView("buy_btn")->getEnabled())
{
// We shouldn't be enabled. Just close.
closeFloater();
@@ -276,7 +270,7 @@ void LLFloaterBuyContents::onClickBuy()
}
// We may want to wear this item
- if (childGetValue("wear_check"))
+ if (getChild<LLUICtrl>("wear_check")->getValue())
{
LLInventoryState::sWearNewClothing = TRUE;
}
@@ -290,6 +284,10 @@ void LLFloaterBuyContents::onClickBuy()
// it doesn't match region info then sale is canceled.
LLSelectMgr::getInstance()->sendBuy(gAgent.getID(), category_id, mSaleInfo);
+ // NOTE: do this here instead of on receipt of object, since contents are transfered
+ // via a generic BulkUpdateInventory message with no way of distinguishing it from
+ // other inventory operations
+ LLFirstUse::newInventory();
closeFloater();
}
diff --git a/indra/newview/llfloaterbuycontents.h b/indra/newview/llfloaterbuycontents.h
index ab161adfea..19393fb6af 100644
--- a/indra/newview/llfloaterbuycontents.h
+++ b/indra/newview/llfloaterbuycontents.h
@@ -3,31 +3,25 @@
* @author James Cook
* @brief LLFloaterBuyContents class header file
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloaterbuycurrency.cpp b/indra/newview/llfloaterbuycurrency.cpp
index 7fddd1fc5f..58c79fdf15 100644
--- a/indra/newview/llfloaterbuycurrency.cpp
+++ b/indra/newview/llfloaterbuycurrency.cpp
@@ -2,31 +2,25 @@
* @file llfloaterbuycurrency.cpp
* @brief LLFloaterBuyCurrency class implementation
*
- * $LicenseInfo:firstyear=2005&license=viewergpl$
- *
- * Copyright (c) 2005-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -162,7 +156,7 @@ void LLFloaterBuyCurrencyUI::draw()
}
// disable the Buy button when we are not able to buy
- childSetEnabled("buy_btn", mManager.canBuy());
+ getChildView("buy_btn")->setEnabled(mManager.canBuy());
LLFloater::draw();
}
@@ -178,27 +172,27 @@ void LLFloaterBuyCurrencyUI::updateUI()
mManager.updateUI(!hasError && !mManager.buying());
// hide most widgets - we'll turn them on as needed next
- childHide("info_buying");
- childHide("info_cannot_buy");
- childHide("info_need_more");
- childHide("purchase_warning_repurchase");
- childHide("purchase_warning_notenough");
- childHide("contacting");
- childHide("buy_action");
+ getChildView("info_buying")->setVisible(FALSE);
+ getChildView("info_cannot_buy")->setVisible(FALSE);
+ getChildView("info_need_more")->setVisible(FALSE);
+ getChildView("purchase_warning_repurchase")->setVisible(FALSE);
+ getChildView("purchase_warning_notenough")->setVisible(FALSE);
+ getChildView("contacting")->setVisible(FALSE);
+ getChildView("buy_action")->setVisible(FALSE);
if (hasError)
{
// display an error from the server
- childHide("normal_background");
- childShow("error_background");
- childShow("info_cannot_buy");
- childShow("cannot_buy_message");
- childHide("balance_label");
- childHide("balance_amount");
- childHide("buying_label");
- childHide("buying_amount");
- childHide("total_label");
- childHide("total_amount");
+ getChildView("normal_background")->setVisible(FALSE);
+ getChildView("error_background")->setVisible(TRUE);
+ getChildView("info_cannot_buy")->setVisible(TRUE);
+ getChildView("cannot_buy_message")->setVisible(TRUE);
+ getChildView("balance_label")->setVisible(FALSE);
+ getChildView("balance_amount")->setVisible(FALSE);
+ getChildView("buying_label")->setVisible(FALSE);
+ getChildView("buying_amount")->setVisible(FALSE);
+ getChildView("total_label")->setVisible(FALSE);
+ getChildView("total_amount")->setVisible(FALSE);
LLTextBox* message = getChild<LLTextBox>("cannot_buy_message");
if (message)
@@ -206,67 +200,67 @@ void LLFloaterBuyCurrencyUI::updateUI()
message->setText(mManager.errorMessage());
}
- childSetVisible("error_web", !mManager.errorURI().empty());
+ getChildView("error_web")->setVisible( !mManager.errorURI().empty());
}
else
{
// display the main Buy L$ interface
- childShow("normal_background");
- childHide("error_background");
- childHide("cannot_buy_message");
- childHide("error_web");
+ getChildView("normal_background")->setVisible(TRUE);
+ getChildView("error_background")->setVisible(FALSE);
+ getChildView("cannot_buy_message")->setVisible(FALSE);
+ getChildView("error_web")->setVisible(FALSE);
if (mHasTarget)
{
- childShow("info_need_more");
+ getChildView("info_need_more")->setVisible(TRUE);
}
else
{
- childShow("info_buying");
+ getChildView("info_buying")->setVisible(TRUE);
}
if (mManager.buying())
{
- childSetVisible("contacting", true);
+ getChildView("contacting")->setVisible( true);
}
else
{
if (mHasTarget)
{
- childSetVisible("buy_action", true);
- childSetTextArg("buy_action", "[ACTION]", mTargetName);
+ getChildView("buy_action")->setVisible( true);
+ getChild<LLUICtrl>("buy_action")->setTextArg("[ACTION]", mTargetName);
}
}
S32 balance = gStatusBar->getBalance();
- childShow("balance_label");
- childShow("balance_amount");
- childSetTextArg("balance_amount", "[AMT]", llformat("%d", balance));
+ getChildView("balance_label")->setVisible(TRUE);
+ getChildView("balance_amount")->setVisible(TRUE);
+ getChild<LLUICtrl>("balance_amount")->setTextArg("[AMT]", llformat("%d", balance));
S32 buying = mManager.getAmount();
- childShow("buying_label");
- childShow("buying_amount");
- childSetTextArg("buying_amount", "[AMT]", llformat("%d", buying));
+ getChildView("buying_label")->setVisible(TRUE);
+ getChildView("buying_amount")->setVisible(TRUE);
+ getChild<LLUICtrl>("buying_amount")->setTextArg("[AMT]", llformat("%d", buying));
S32 total = balance + buying;
- childShow("total_label");
- childShow("total_amount");
- childSetTextArg("total_amount", "[AMT]", llformat("%d", total));
+ getChildView("total_label")->setVisible(TRUE);
+ getChildView("total_amount")->setVisible(TRUE);
+ getChild<LLUICtrl>("total_amount")->setTextArg("[AMT]", llformat("%d", total));
if (mHasTarget)
{
if (total >= mTargetPrice)
{
- childSetVisible("purchase_warning_repurchase", true);
+ getChildView("purchase_warning_repurchase")->setVisible( true);
}
else
{
- childSetVisible("purchase_warning_notenough", true);
+ getChildView("purchase_warning_notenough")->setVisible( true);
}
}
}
- childSetVisible("getting_data", !mManager.canBuy() && !hasError);
+ getChildView("getting_data")->setVisible( !mManager.canBuy() && !hasError);
}
void LLFloaterBuyCurrencyUI::onClickBuy()
diff --git a/indra/newview/llfloaterbuycurrency.h b/indra/newview/llfloaterbuycurrency.h
index 9b3f9b43d0..7ff6c42384 100644
--- a/indra/newview/llfloaterbuycurrency.h
+++ b/indra/newview/llfloaterbuycurrency.h
@@ -2,31 +2,25 @@
* @file llfloaterbuycurrency.h
* @brief LLFloaterBuyCurrency class definition
*
- * $LicenseInfo:firstyear=2005&license=viewergpl$
- *
- * Copyright (c) 2005-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloaterbuycurrencyhtml.cpp b/indra/newview/llfloaterbuycurrencyhtml.cpp
index d45df37092..bde620d965 100644
--- a/indra/newview/llfloaterbuycurrencyhtml.cpp
+++ b/indra/newview/llfloaterbuycurrencyhtml.cpp
@@ -2,31 +2,25 @@
* @file llfloaterbuycurrencyhtml.cpp
* @brief buy currency implemented in HTML floater - uses embedded media browser control
*
- * $LicenseInfo:firstyear=2010&license=viewergpl$
- *
- * Copyright (c) 2006-2010, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2010&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloaterbuycurrencyhtml.h b/indra/newview/llfloaterbuycurrencyhtml.h
index be7a4d3dd6..6b1fc53f1f 100644
--- a/indra/newview/llfloaterbuycurrencyhtml.h
+++ b/indra/newview/llfloaterbuycurrencyhtml.h
@@ -2,31 +2,25 @@
* @file llfloaterbuycurrencyhtml.h
* @brief buy currency implemented in HTML floater - uses embedded media browser control
*
- * $LicenseInfo:firstyear=2010&license=viewergpl$
- *
- * Copyright (c) 2006-2010, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2010&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloaterbuyland.cpp b/indra/newview/llfloaterbuyland.cpp
index 7ca7ace0fc..e48e1ab64f 100644
--- a/indra/newview/llfloaterbuyland.cpp
+++ b/indra/newview/llfloaterbuyland.cpp
@@ -2,31 +2,25 @@
* @file llfloaterbuyland.cpp
* @brief LLFloaterBuyLand class implementation
*
- * $LicenseInfo:firstyear=2005&license=viewergpl$
- *
- * Copyright (c) 2005-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -300,7 +294,6 @@ LLFloaterBuyLandUI::LLFloaterBuyLandUI(const LLSD& key)
{
LLViewerParcelMgr::getInstance()->addObserver(&mParcelSelectionObserver);
-// LLUICtrlFactory::getInstance()->buildFloater(sInstance, "floater_buy_land.xml");
}
LLFloaterBuyLandUI::~LLFloaterBuyLandUI()
@@ -668,6 +661,7 @@ void LLFloaterBuyLandUI::updateWebSiteInfo()
keywordArgs.appendString(
"secureSessionId",
gAgent.getSecureSessionID().asString());
+ keywordArgs.appendString("language", LLUI::getLanguage());
keywordArgs.appendInt("billableArea", mPreflightAskBillableArea);
keywordArgs.appendInt("currencyBuy", mPreflightAskCurrencyBuy);
@@ -731,7 +725,7 @@ void LLFloaterBuyLandUI::runWebSitePrep(const std::string& password)
return;
}
- BOOL remove_contribution = childGetValue("remove_contribution").asBoolean();
+ BOOL remove_contribution = getChild<LLUICtrl>("remove_contribution")->getValue().asBoolean();
mParcelBuyInfo = LLViewerParcelMgr::getInstance()->setupParcelBuy(gAgent.getID(), gAgent.getSessionID(),
gAgent.getGroupID(), mIsForGroup, mIsClaim, remove_contribution);
@@ -763,6 +757,7 @@ void LLFloaterBuyLandUI::runWebSitePrep(const std::string& password)
keywordArgs.appendString(
"secureSessionId",
gAgent.getSecureSessionID().asString());
+ keywordArgs.appendString("language", LLUI::getLanguage());
keywordArgs.appendString("levelId", newLevel);
keywordArgs.appendInt("billableArea",
mIsForGroup ? 0 : mParcelBillableArea);
@@ -1025,13 +1020,13 @@ void LLFloaterBuyLandUI::refreshUI()
if (mParcelValid)
{
- childSetText("info_parcel", mParcelLocation);
+ getChild<LLUICtrl>("info_parcel")->setValue(mParcelLocation);
LLStringUtil::format_map_t string_args;
string_args["[AMOUNT]"] = llformat("%d", mParcelActualArea);
string_args["[AMOUNT2]"] = llformat("%d", mParcelSupportedObjects);
- childSetText("info_size", getString("meters_supports_object", string_args));
+ getChild<LLUICtrl>("info_size")->setValue(getString("meters_supports_object", string_args));
F32 cost_per_sqm = 0.0f;
if (mParcelActualArea > 0)
@@ -1050,17 +1045,17 @@ void LLFloaterBuyLandUI::refreshUI()
{
info_price_args["[SOLD_WITH_OBJECTS]"] = getString("sold_without_objects");
}
- childSetText("info_price", getString("info_price_string", info_price_args));
- childSetVisible("info_price", mParcelIsForSale);
+ getChild<LLUICtrl>("info_price")->setValue(getString("info_price_string", info_price_args));
+ getChildView("info_price")->setVisible( mParcelIsForSale);
}
else
{
- childSetText("info_parcel", getString("no_parcel_selected"));
- childSetText("info_size", LLStringUtil::null);
- childSetText("info_price", LLStringUtil::null);
+ getChild<LLUICtrl>("info_parcel")->setValue(getString("no_parcel_selected"));
+ getChild<LLUICtrl>("info_size")->setValue(LLStringUtil::null);
+ getChild<LLUICtrl>("info_price")->setValue(LLStringUtil::null);
}
- childSetText("info_action",
+ getChild<LLUICtrl>("info_action")->setValue(
mCanBuy
?
mIsForGroup
@@ -1091,14 +1086,13 @@ void LLFloaterBuyLandUI::refreshUI()
message->setValue(LLSD(!mCanBuy ? mCannotBuyReason : "(waiting for data)"));
}
- childSetVisible("error_web",
- mCannotBuyIsError && !mCannotBuyURI.empty());
+ getChildView("error_web")->setVisible(mCannotBuyIsError && !mCannotBuyURI.empty());
}
else
{
- childHide("step_error");
- childHide("error_message");
- childHide("error_web");
+ getChildView("step_error")->setVisible(FALSE);
+ getChildView("error_message")->setVisible(FALSE);
+ getChildView("error_web")->setVisible(FALSE);
}
@@ -1109,8 +1103,8 @@ void LLFloaterBuyLandUI::refreshUI()
mSiteMembershipUpgrade
? LLViewChildren::BADGE_NOTE
: LLViewChildren::BADGE_OK);
- childSetText("account_action", mSiteMembershipAction);
- childSetText("account_reason",
+ getChild<LLUICtrl>("account_action")->setValue(mSiteMembershipAction);
+ getChild<LLUICtrl>("account_reason")->setValue(
mSiteMembershipUpgrade
? getString("must_upgrade")
: getString("cant_own_land")
@@ -1133,16 +1127,16 @@ void LLFloaterBuyLandUI::refreshUI()
levels->setCurrentByIndex(mUserPlanChoice);
}
- childShow("step_1");
- childShow("account_action");
- childShow("account_reason");
+ getChildView("step_1")->setVisible(TRUE);
+ getChildView("account_action")->setVisible(TRUE);
+ getChildView("account_reason")->setVisible(TRUE);
}
else
{
- childHide("step_1");
- childHide("account_action");
- childHide("account_reason");
- childHide("account_level");
+ getChildView("step_1")->setVisible(FALSE);
+ getChildView("account_action")->setVisible(FALSE);
+ getChildView("account_reason")->setVisible(FALSE);
+ getChildView("account_level")->setVisible(FALSE);
}
// section two: land use fees
@@ -1152,7 +1146,7 @@ void LLFloaterBuyLandUI::refreshUI()
mSiteLandUseUpgrade
? LLViewChildren::BADGE_NOTE
: LLViewChildren::BADGE_OK);
- childSetText("land_use_action", mSiteLandUseAction);
+ getChild<LLUICtrl>("land_use_action")->setValue(mSiteLandUseAction);
std::string message;
@@ -1198,17 +1192,17 @@ void LLFloaterBuyLandUI::refreshUI()
}
}
- childSetValue("land_use_reason", message);
+ getChild<LLUICtrl>("land_use_reason")->setValue(message);
- childShow("step_2");
- childShow("land_use_action");
- childShow("land_use_reason");
+ getChildView("step_2")->setVisible(TRUE);
+ getChildView("land_use_action")->setVisible(TRUE);
+ getChildView("land_use_reason")->setVisible(TRUE);
}
else
{
- childHide("step_2");
- childHide("land_use_action");
- childHide("land_use_reason");
+ getChildView("step_2")->setVisible(FALSE);
+ getChildView("land_use_action")->setVisible(FALSE);
+ getChildView("land_use_reason")->setVisible(FALSE);
}
// section three: purchase & currency
@@ -1232,8 +1226,8 @@ void LLFloaterBuyLandUI::refreshUI()
LLStringUtil::format_map_t string_args;
string_args["[AMOUNT]"] = llformat("%d", mParcelPrice);
string_args["[SELLER]"] = mParcelSellerName;
- childSetText("purchase_action", getString("pay_to_for_land", string_args));
- childSetVisible("purchase_action", mParcelValid);
+ getChild<LLUICtrl>("purchase_action")->setValue(getString("pay_to_for_land", string_args));
+ getChildView("purchase_action")->setVisible( mParcelValid);
std::string reasonString;
@@ -1242,7 +1236,7 @@ void LLFloaterBuyLandUI::refreshUI()
LLStringUtil::format_map_t string_args;
string_args["[AMOUNT]"] = llformat("%d", mAgentCashBalance);
- childSetText("currency_reason", getString("have_enough_lindens", string_args));
+ getChild<LLUICtrl>("currency_reason")->setValue(getString("have_enough_lindens", string_args));
}
else
{
@@ -1250,9 +1244,9 @@ void LLFloaterBuyLandUI::refreshUI()
string_args["[AMOUNT]"] = llformat("%d", mAgentCashBalance);
string_args["[AMOUNT2]"] = llformat("%d", mParcelPrice - mAgentCashBalance);
- childSetText("currency_reason", getString("not_enough_lindens", string_args));
+ getChild<LLUICtrl>("currency_reason")->setValue(getString("not_enough_lindens", string_args));
- childSetTextArg("currency_est", "[LOCAL_AMOUNT]", mCurrency.getLocalEstimate());
+ getChild<LLUICtrl>("currency_est")->setTextArg("[LOCAL_AMOUNT]", mCurrency.getLocalEstimate());
}
if (willHaveEnough)
@@ -1260,7 +1254,7 @@ void LLFloaterBuyLandUI::refreshUI()
LLStringUtil::format_map_t string_args;
string_args["[AMOUNT]"] = llformat("%d", finalBalance);
- childSetText("currency_balance", getString("balance_left", string_args));
+ getChild<LLUICtrl>("currency_balance")->setValue(getString("balance_left", string_args));
}
else
@@ -1268,30 +1262,30 @@ void LLFloaterBuyLandUI::refreshUI()
LLStringUtil::format_map_t string_args;
string_args["[AMOUNT]"] = llformat("%d", mParcelPrice - mAgentCashBalance);
- childSetText("currency_balance", getString("balance_needed", string_args));
+ getChild<LLUICtrl>("currency_balance")->setValue(getString("balance_needed", string_args));
}
- childSetValue("remove_contribution", LLSD(groupContributionEnough));
- childSetEnabled("remove_contribution", groupContributionEnough);
+ getChild<LLUICtrl>("remove_contribution")->setValue(LLSD(groupContributionEnough));
+ getChildView("remove_contribution")->setEnabled(groupContributionEnough);
bool showRemoveContribution = mParcelIsGroupLand
&& (mParcelGroupContribution > 0);
- childSetLabelArg("remove_contribution", "[AMOUNT]",
+ getChildView("remove_contribution")->setLabelArg("[AMOUNT]",
llformat("%d", minContribution));
- childSetVisible("remove_contribution", showRemoveContribution);
+ getChildView("remove_contribution")->setVisible( showRemoveContribution);
- childShow("step_3");
- childShow("purchase_action");
- childShow("currency_reason");
- childShow("currency_balance");
+ getChildView("step_3")->setVisible(TRUE);
+ getChildView("purchase_action")->setVisible(TRUE);
+ getChildView("currency_reason")->setVisible(TRUE);
+ getChildView("currency_balance")->setVisible(TRUE);
}
else
{
- childHide("step_3");
- childHide("purchase_action");
- childHide("currency_reason");
- childHide("currency_balance");
- childHide("remove_group_donation");
+ getChildView("step_3")->setVisible(FALSE);
+ getChildView("purchase_action")->setVisible(FALSE);
+ getChildView("currency_reason")->setVisible(FALSE);
+ getChildView("currency_balance")->setVisible(FALSE);
+ getChildView("remove_group_donation")->setVisible(FALSE);
}
@@ -1302,8 +1296,7 @@ void LLFloaterBuyLandUI::refreshUI()
agrees_to_covenant = check->get();
}
- childSetEnabled("buy_btn",
- mCanBuy && mSiteValid && willHaveEnough && !mTransaction && agrees_to_covenant);
+ getChildView("buy_btn")->setEnabled(mCanBuy && mSiteValid && willHaveEnough && !mTransaction && agrees_to_covenant);
}
void LLFloaterBuyLandUI::startBuyPreConfirm()
diff --git a/indra/newview/llfloaterbuyland.h b/indra/newview/llfloaterbuyland.h
index 00d44035ae..424f6f6616 100644
--- a/indra/newview/llfloaterbuyland.h
+++ b/indra/newview/llfloaterbuyland.h
@@ -2,31 +2,25 @@
* @file llfloaterbuyland.h
* @brief LLFloaterBuyLand class definition
*
- * $LicenseInfo:firstyear=2005&license=viewergpl$
- *
- * Copyright (c) 2005-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloatercamera.cpp b/indra/newview/llfloatercamera.cpp
index d6effb2b21..ad24c6534a 100644
--- a/indra/newview/llfloatercamera.cpp
+++ b/indra/newview/llfloatercamera.cpp
@@ -2,31 +2,25 @@
* @file llfloatercamera.cpp
* @brief Container for camera control buttons (zoom, pan, orbit)
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -62,6 +56,7 @@ const F32 CAMERA_BUTTON_DELAY = 0.0f;
#define CONTROLS "controls"
bool LLFloaterCamera::sFreeCamera = false;
+bool LLFloaterCamera::sAppearanceEditing = false;
// Zoom the camera in and out
class LLPanelCameraZoom
@@ -125,10 +120,15 @@ LLPanelCameraItem::LLPanelCameraItem(const LLPanelCameraItem::Params& p)
}
}
+void set_view_visible(LLView* parent, const std::string& name, bool visible)
+{
+ parent->getChildView(name)->setVisible(visible);
+}
+
BOOL LLPanelCameraItem::postBuild()
{
- setMouseEnterCallback(boost::bind(&LLPanelCameraItem::childSetVisible, this, "hovered_icon", true));
- setMouseLeaveCallback(boost::bind(&LLPanelCameraItem::childSetVisible, this, "hovered_icon", false));
+ setMouseEnterCallback(boost::bind(set_view_visible, this, "hovered_icon", true));
+ setMouseLeaveCallback(boost::bind(set_view_visible, this, "hovered_icon", false));
setMouseDownCallback(boost::bind(&LLPanelCameraItem::onAnyMouseClick, this));
setRightMouseDownCallback(boost::bind(&LLPanelCameraItem::onAnyMouseClick, this));
return TRUE;
@@ -143,9 +143,9 @@ void LLPanelCameraItem::setValue(const LLSD& value)
{
if (!value.isMap()) return;;
if (!value.has("selected")) return;
- childSetVisible("selected_icon", value["selected"]);
- childSetVisible("picture", !value["selected"]);
- childSetVisible("selected_picture", value["selected"]);
+ getChildView("selected_icon")->setVisible( value["selected"]);
+ getChildView("picture")->setVisible( !value["selected"]);
+ getChildView("selected_picture")->setVisible( value["selected"]);
}
static LLRegisterPanelClassWrapper<LLPanelCameraZoom> t_camera_zoom_panel("camera_zoom_panel");
@@ -243,6 +243,25 @@ void LLFloaterCamera::resetCameraMode()
floater_camera->switchMode(CAMERA_CTRL_MODE_PAN);
}
+void LLFloaterCamera::onAvatarEditingAppearance(bool editing)
+{
+ sAppearanceEditing = editing;
+ LLFloaterCamera* floater_camera = LLFloaterCamera::findInstance();
+ if (!floater_camera) return;
+ floater_camera->handleAvatarEditingAppearance(editing);
+}
+
+void LLFloaterCamera::handleAvatarEditingAppearance(bool editing)
+{
+ //camera presets (rear, front, etc.)
+ getChildView("preset_views_list")->setEnabled(!editing);
+ getChildView("presets_btn")->setEnabled(!editing);
+
+ //camera modes (object view, mouselook view)
+ getChildView("camera_modes_list")->setEnabled(!editing);
+ getChildView("avatarview_btn")->setEnabled(!editing);
+}
+
void LLFloaterCamera::update()
{
ECameraControlMode mode = determineMode();
@@ -326,7 +345,7 @@ BOOL LLFloaterCamera::postBuild()
setTitleVisible(TRUE); // restore title visibility after chrome applying
mRotate = getChild<LLJoystickCameraRotate>(ORBIT);
- mZoom = getChild<LLPanelCameraZoom>(ZOOM);
+ mZoom = findChild<LLPanelCameraZoom>(ZOOM);
mTrack = getChild<LLJoystickCameraTrack>(PAN);
assignButton2Mode(CAMERA_CTRL_MODE_MODES, "avatarview_btn");
@@ -335,6 +354,9 @@ BOOL LLFloaterCamera::postBuild()
update();
+ // ensure that appearance mode is handled while building. See EXT-7796.
+ handleAvatarEditingAppearance(sAppearanceEditing);
+
return LLDockableFloater::postBuild();
}
@@ -357,6 +379,12 @@ void LLFloaterCamera::fillFlatlistFromPanel (LLFlatListView* list, LLPanel* pane
ECameraControlMode LLFloaterCamera::determineMode()
{
+ if (sAppearanceEditing)
+ {
+ // this is the only enabled camera mode while editing agent appearance.
+ return CAMERA_CTRL_MODE_PAN;
+ }
+
LLTool* curr_tool = LLToolMgr::getInstance()->getCurrentTool();
if (curr_tool == LLToolCamera::getInstance())
{
@@ -470,15 +498,15 @@ void LLFloaterCamera::assignButton2Mode(ECameraControlMode mode, const std::stri
void LLFloaterCamera::updateState()
{
- childSetVisible(ZOOM, CAMERA_CTRL_MODE_PAN == mCurrMode);
+ getChildView(ZOOM)->setVisible(CAMERA_CTRL_MODE_PAN == mCurrMode);
bool show_presets = (CAMERA_CTRL_MODE_PRESETS == mCurrMode) || (CAMERA_CTRL_MODE_FREE_CAMERA == mCurrMode
&& CAMERA_CTRL_MODE_PRESETS == mPrevMode);
- childSetVisible(PRESETS, show_presets);
+ getChildView(PRESETS)->setVisible(show_presets);
bool show_camera_modes = CAMERA_CTRL_MODE_MODES == mCurrMode || (CAMERA_CTRL_MODE_FREE_CAMERA == mCurrMode
&& CAMERA_CTRL_MODE_MODES == mPrevMode);
- childSetVisible("camera_modes_list", show_camera_modes);
+ getChildView("camera_modes_list")->setVisible( show_camera_modes);
updateItemsSelection();
diff --git a/indra/newview/llfloatercamera.h b/indra/newview/llfloatercamera.h
index 564e38d02d..424191ef26 100644
--- a/indra/newview/llfloatercamera.h
+++ b/indra/newview/llfloatercamera.h
@@ -2,31 +2,25 @@
* @file llfloatercamera.h
* @brief Container for camera control buttons (zoom, pan, orbit)
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -68,6 +62,9 @@ public:
/** resets current camera mode to orbit mode */
static void resetCameraMode();
+ /** Called when Avatar is entered/exited editing appearance mode */
+ static void onAvatarEditingAppearance(bool editing);
+
/* determines actual mode and updates ui */
void update();
@@ -121,9 +118,12 @@ private:
// fills flatlist with items from given panel
void fillFlatlistFromPanel (LLFlatListView* list, LLPanel* panel);
+ void handleAvatarEditingAppearance(bool editing);
+
// set to true when free camera mode is selected in modes list
// remains true until preset camera mode is chosen, or pan button is clicked, or escape pressed
static bool sFreeCamera;
+ static bool sAppearanceEditing;
BOOL mClosed;
ECameraControlMode mPrevMode;
ECameraControlMode mCurrMode;
diff --git a/indra/newview/llfloaterchat.cpp b/indra/newview/llfloaterchat.cpp
index 882d12f68e..c2c2e7fe22 100644
--- a/indra/newview/llfloaterchat.cpp
+++ b/indra/newview/llfloaterchat.cpp
@@ -2,31 +2,25 @@
* @file llfloaterchat.cpp
* @brief LLFloaterChat class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloaterchat.h b/indra/newview/llfloaterchat.h
index 4437a0a5c2..fb2aabbfdf 100644
--- a/indra/newview/llfloaterchat.h
+++ b/indra/newview/llfloaterchat.h
@@ -2,31 +2,25 @@
* @file llfloaterchat.h
* @brief LLFloaterChat class definition
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloaterchatterbox.cpp b/indra/newview/llfloaterchatterbox.cpp
index a15cef7ea4..dc33e45dd4 100644
--- a/indra/newview/llfloaterchatterbox.cpp
+++ b/indra/newview/llfloaterchatterbox.cpp
@@ -4,31 +4,25 @@
* @date 2007-05-08
* @brief Implementation of the chatterbox integrated conversation ui
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloaterchatterbox.h b/indra/newview/llfloaterchatterbox.h
index ab44281d81..3a8bfe2fa4 100644
--- a/indra/newview/llfloaterchatterbox.h
+++ b/indra/newview/llfloaterchatterbox.h
@@ -4,31 +4,25 @@
* @date 2007-05-04
* @brief Integrated friends and group management/communication tool
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloatercolorpicker.cpp b/indra/newview/llfloatercolorpicker.cpp
index b65457c4eb..69f1774ff8 100644
--- a/indra/newview/llfloatercolorpicker.cpp
+++ b/indra/newview/llfloatercolorpicker.cpp
@@ -2,31 +2,25 @@
* @file llfloatercolorpicker.cpp
* @brief Generic system color picker
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -113,9 +107,8 @@ LLFloaterColorPicker::LLFloaterColorPicker (LLColorSwatchCtrl* swatch, BOOL show
mCanApplyImmediately ( show_apply_immediate ),
mContextConeOpacity ( 0.f )
{
- // build the majority of the gui using the factory builder
- LLUICtrlFactory::getInstance()->buildFloater ( this, "floater_color_picker.xml", NULL );
-
+ buildFromFile ( "floater_color_picker.xml");
+
// create user interface for this picker
createUI ();
@@ -692,12 +685,12 @@ void LLFloaterColorPicker::drawPalette ()
void LLFloaterColorPicker::updateTextEntry ()
{
// set values in spinners
- childSetValue("rspin", ( getCurR () * 255.0f ) );
- childSetValue("gspin", ( getCurG () * 255.0f ) );
- childSetValue("bspin", ( getCurB () * 255.0f ) );
- childSetValue("hspin", ( getCurH () * 360.0f ) );
- childSetValue("sspin", ( getCurS () * 100.0f ) );
- childSetValue("lspin", ( getCurL () * 100.0f ) );
+ getChild<LLUICtrl>("rspin")->setValue(( getCurR () * 255.0f ) );
+ getChild<LLUICtrl>("gspin")->setValue(( getCurG () * 255.0f ) );
+ getChild<LLUICtrl>("bspin")->setValue(( getCurB () * 255.0f ) );
+ getChild<LLUICtrl>("hspin")->setValue(( getCurH () * 360.0f ) );
+ getChild<LLUICtrl>("sspin")->setValue(( getCurS () * 100.0f ) );
+ getChild<LLUICtrl>("lspin")->setValue(( getCurL () * 100.0f ) );
}
//////////////////////////////////////////////////////////////////////////////
diff --git a/indra/newview/llfloatercolorpicker.h b/indra/newview/llfloatercolorpicker.h
index 0bbbe2051c..110fa43b9c 100644
--- a/indra/newview/llfloatercolorpicker.h
+++ b/indra/newview/llfloatercolorpicker.h
@@ -2,31 +2,25 @@
* @file llfloatercolorpicker.h
* @brief Generic system color picker
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloaterdaycycle.cpp b/indra/newview/llfloaterdaycycle.cpp
index 48d552022f..22816ee802 100644
--- a/indra/newview/llfloaterdaycycle.cpp
+++ b/indra/newview/llfloaterdaycycle.cpp
@@ -2,31 +2,25 @@
* @file llfloaterdaycycle.cpp
* @brief LLFloaterDayCycle class definition
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -65,7 +59,6 @@ const F32 LLFloaterDayCycle::sHoursPerDay = 24.0f;
LLFloaterDayCycle::LLFloaterDayCycle(const LLSD& key)
: LLFloater(key)
{
- //LLUICtrlFactory::getInstance()->buildFloater(this, "floater_day_cycle_options.xml");
}
BOOL LLFloaterDayCycle::postBuild()
@@ -158,11 +151,11 @@ void LLFloaterDayCycle::syncMenu()
// turn off Use Estate Time button if it's already being used
if( LLWLParamManager::instance()->mAnimator.mUseLindenTime == true)
{
- childDisable("WLUseLindenTime");
+ getChildView("WLUseLindenTime")->setEnabled(FALSE);
}
else
{
- childEnable("WLUseLindenTime");
+ getChildView("WLUseLindenTime")->setEnabled(TRUE);
}
}
diff --git a/indra/newview/llfloaterdaycycle.h b/indra/newview/llfloaterdaycycle.h
index c250902b65..993ddb8f07 100644
--- a/indra/newview/llfloaterdaycycle.h
+++ b/indra/newview/llfloaterdaycycle.h
@@ -2,31 +2,25 @@
* @file llfloaterdaycycle.h
* @brief LLFloaterDayCycle class definition
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloaterenvsettings.cpp b/indra/newview/llfloaterenvsettings.cpp
index 2fffa6eece..fcaef1f34b 100644
--- a/indra/newview/llfloaterenvsettings.cpp
+++ b/indra/newview/llfloaterenvsettings.cpp
@@ -2,31 +2,25 @@
* @file llfloaterenvsettings.cpp
* @brief LLFloaterEnvSettings class definition
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -56,7 +50,6 @@
LLFloaterEnvSettings::LLFloaterEnvSettings(const LLSD& key)
: LLFloater(key)
{
- //LLUICtrlFactory::getInstance()->buildFloater(this, "floater_env_settings.xml");
}
// virtual
LLFloaterEnvSettings::~LLFloaterEnvSettings()
@@ -113,7 +106,7 @@ void LLFloaterEnvSettings::syncMenu()
// sync cloud coverage
bool err;
- childSetValue("EnvCloudSlider", LLWLParamManager::instance()->mCurParams.getFloat("cloud_shadow", err));
+ getChild<LLUICtrl>("EnvCloudSlider")->setValue(LLWLParamManager::instance()->mCurParams.getFloat("cloud_shadow", err));
LLWaterParamManager * param_mgr = LLWaterParamManager::instance();
// sync water params
@@ -122,43 +115,43 @@ void LLFloaterEnvSettings::syncMenu()
col.mV[3] = 1.0f;
colCtrl->set(col);
- childSetValue("EnvWaterFogSlider", param_mgr->mFogDensity.mExp);
+ getChild<LLUICtrl>("EnvWaterFogSlider")->setValue(param_mgr->mFogDensity.mExp);
param_mgr->setDensitySliderValue(param_mgr->mFogDensity.mExp);
// turn off Use Estate Time button if it's already being used
if(LLWLParamManager::instance()->mAnimator.mUseLindenTime)
{
- childDisable("EnvUseEstateTimeButton");
+ getChildView("EnvUseEstateTimeButton")->setEnabled(FALSE);
} else {
- childEnable("EnvUseEstateTimeButton");
+ getChildView("EnvUseEstateTimeButton")->setEnabled(TRUE);
}
if(!gPipeline.canUseVertexShaders())
{
- childDisable("EnvWaterColor");
- childDisable("EnvWaterColorText");
- //childDisable("EnvAdvancedWaterButton");
+ getChildView("EnvWaterColor")->setEnabled(FALSE);
+ getChildView("EnvWaterColorText")->setEnabled(FALSE);
+ //getChildView("EnvAdvancedWaterButton")->setEnabled(FALSE);
}
else
{
- childEnable("EnvWaterColor");
- childEnable("EnvWaterColorText");
- //childEnable("EnvAdvancedWaterButton");
+ getChildView("EnvWaterColor")->setEnabled(TRUE);
+ getChildView("EnvWaterColorText")->setEnabled(TRUE);
+ //getChildView("EnvAdvancedWaterButton")->setEnabled(TRUE);
}
// only allow access to these if they are using windlight
if(!gPipeline.canUseWindLightShaders())
{
- childDisable("EnvCloudSlider");
- childDisable("EnvCloudText");
- //childDisable("EnvAdvancedSkyButton");
+ getChildView("EnvCloudSlider")->setEnabled(FALSE);
+ getChildView("EnvCloudText")->setEnabled(FALSE);
+ //getChildView("EnvAdvancedSkyButton")->setEnabled(FALSE);
}
else
{
- childEnable("EnvCloudSlider");
- childEnable("EnvCloudText");
- //childEnable("EnvAdvancedSkyButton");
+ getChildView("EnvCloudSlider")->setEnabled(TRUE);
+ getChildView("EnvCloudText")->setEnabled(TRUE);
+ //getChildView("EnvAdvancedSkyButton")->setEnabled(TRUE);
}
}
diff --git a/indra/newview/llfloaterenvsettings.h b/indra/newview/llfloaterenvsettings.h
index 02bc502120..a6280cfb97 100644
--- a/indra/newview/llfloaterenvsettings.h
+++ b/indra/newview/llfloaterenvsettings.h
@@ -2,31 +2,25 @@
* @file llfloaterskysettings.h
* @brief LLFloaterEnvSettings class definition
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloaterevent.cpp b/indra/newview/llfloaterevent.cpp
index f6cffd4b14..ee2ba2ba54 100644
--- a/indra/newview/llfloaterevent.cpp
+++ b/indra/newview/llfloaterevent.cpp
@@ -2,31 +2,25 @@
* @file llfloaterevent.cpp
* @brief Display for events in the finder
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -215,10 +209,10 @@ void LLFloaterEvent::processEventInfoReply(LLMessageSystem *msg, void **)
std::string desc = floater->mEventInfo.mSimName + llformat(" (%d, %d, %d)", region_x, region_y, region_z);
floater->mTBLocation->setText(desc);
- floater->childSetVisible("rating_icon_m", FALSE);
- floater->childSetVisible("rating_icon_r", FALSE);
- floater->childSetVisible("rating_icon_pg", FALSE);
- floater->childSetValue("rating_value", floater->getString("unknown"));
+ floater->getChildView("rating_icon_m")->setVisible( FALSE);
+ floater->getChildView("rating_icon_r")->setVisible( FALSE);
+ floater->getChildView("rating_icon_pg")->setVisible( FALSE);
+ floater->getChild<LLUICtrl>("rating_value")->setValue(floater->getString("unknown"));
//for some reason there's not adult flags for now, so see if region is adult and then
//set flags
@@ -259,25 +253,25 @@ void LLFloaterEvent::regionInfoCallback(U32 event_id, U64 region_handle)
// update the event with the maturity info
if (sim_info->isAdult())
{
- floater->childSetVisible("rating_icon_m", FALSE);
- floater->childSetVisible("rating_icon_r", TRUE);
- floater->childSetVisible("rating_icon_pg", FALSE);
- floater->childSetValue("rating_value", floater->getString("adult"));
+ floater->getChildView("rating_icon_m")->setVisible( FALSE);
+ floater->getChildView("rating_icon_r")->setVisible( TRUE);
+ floater->getChildView("rating_icon_pg")->setVisible( FALSE);
+ floater->getChild<LLUICtrl>("rating_value")->setValue(floater->getString("adult"));
}
else if (floater->mEventInfo.mEventFlags & EVENT_FLAG_MATURE)
{
- floater->childSetVisible("rating_icon_m", TRUE);
- floater->childSetVisible("rating_icon_r", FALSE);
- floater->childSetVisible("rating_icon_pg", FALSE);
- floater->childSetValue("rating_value", floater->getString("moderate"));
+ floater->getChildView("rating_icon_m")->setVisible( TRUE);
+ floater->getChildView("rating_icon_r")->setVisible( FALSE);
+ floater->getChildView("rating_icon_pg")->setVisible( FALSE);
+ floater->getChild<LLUICtrl>("rating_value")->setValue(floater->getString("moderate"));
}
else
{
- floater->childSetVisible("rating_icon_m", FALSE);
- floater->childSetVisible("rating_icon_r", FALSE);
- floater->childSetVisible("rating_icon_pg", TRUE);
- floater->childSetValue("rating_value", floater->getString("general"));
+ floater->getChildView("rating_icon_m")->setVisible( FALSE);
+ floater->getChildView("rating_icon_r")->setVisible( FALSE);
+ floater->getChildView("rating_icon_pg")->setVisible( TRUE);
+ floater->getChild<LLUICtrl>("rating_value")->setValue(floater->getString("general"));
}
}
}
diff --git a/indra/newview/llfloaterevent.h b/indra/newview/llfloaterevent.h
index 4126236964..bfed2f259b 100644
--- a/indra/newview/llfloaterevent.h
+++ b/indra/newview/llfloaterevent.h
@@ -2,31 +2,25 @@
* @file llfloaterevent.h
* @brief Display for events in the finder
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloaterfonttest.cpp b/indra/newview/llfloaterfonttest.cpp
index 413992910e..ff27b683b7 100644
--- a/indra/newview/llfloaterfonttest.cpp
+++ b/indra/newview/llfloaterfonttest.cpp
@@ -3,31 +3,25 @@
* @author Brad Payne
* @brief LLFloaterFontTest class implementation
*
- * $LicenseInfo:firstyear=2008&license=viewergpl$
- *
- * Copyright (c) 2008-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2008&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloaterfonttest.h b/indra/newview/llfloaterfonttest.h
index 4406a9f36a..fc82d7ef51 100644
--- a/indra/newview/llfloaterfonttest.h
+++ b/indra/newview/llfloaterfonttest.h
@@ -3,31 +3,25 @@
* @author Brad Payne
* @brief floater to exercise standard fonts
*
- * $LicenseInfo:firstyear=2008&license=viewergpl$
- *
- * Copyright (c) 2008-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2008&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloaterfriends.cpp b/indra/newview/llfloaterfriends.cpp
index 4e2633d750..f93568d617 100644
--- a/indra/newview/llfloaterfriends.cpp
+++ b/indra/newview/llfloaterfriends.cpp
@@ -4,31 +4,25 @@
* @date 2005-01-13
* @brief Implementation of the friends floater
*
- * $LicenseInfo:firstyear=2005&license=viewergpl$
- *
- * Copyright (c) 2005-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloaterfriends.h b/indra/newview/llfloaterfriends.h
index 0042da48d3..a303477c95 100644
--- a/indra/newview/llfloaterfriends.h
+++ b/indra/newview/llfloaterfriends.h
@@ -4,31 +4,25 @@
* @date 2005-01-13
* @brief Declaration of class for displaying the local agent's friends.
*
- * $LicenseInfo:firstyear=2005&license=viewergpl$
- *
- * Copyright (c) 2005-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloatergesture.cpp b/indra/newview/llfloatergesture.cpp
index eff7131145..ef3c8b764e 100644
--- a/indra/newview/llfloatergesture.cpp
+++ b/indra/newview/llfloatergesture.cpp
@@ -2,31 +2,25 @@
* @file llfloatergesture.cpp
* @brief Read-only list of gestures from your inventory.
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -194,8 +188,8 @@ BOOL LLFloaterGesture::postBuild()
getChild<LLUICtrl>("new_gesture_btn")->setCommitCallback(boost::bind(&LLFloaterGesture::onClickNew, this));
getChild<LLButton>("del_btn")->setClickedCallback(boost::bind(&LLFloaterGesture::onDeleteSelected, this));
- childSetVisible("play_btn", true);
- childSetVisible("stop_btn", false);
+ getChildView("play_btn")->setVisible( true);
+ getChildView("stop_btn")->setVisible( false);
setDefaultBtn("play_btn");
mGestureFolderID = gInventory.findCategoryUUIDForType(LLFolderType::FT_GESTURE, false);
@@ -563,13 +557,13 @@ void LLFloaterGesture::onCommitList()
mSelectedID = item_id;
if (LLGestureMgr::instance().isGesturePlaying(item_id))
{
- childSetVisible("play_btn", false);
- childSetVisible("stop_btn", true);
+ getChildView("play_btn")->setVisible( false);
+ getChildView("stop_btn")->setVisible( true);
}
else
{
- childSetVisible("play_btn", true);
- childSetVisible("stop_btn", false);
+ getChildView("play_btn")->setVisible( true);
+ getChildView("stop_btn")->setVisible( false);
}
}
diff --git a/indra/newview/llfloatergesture.h b/indra/newview/llfloatergesture.h
index 1676542c77..8efb3e6461 100644
--- a/indra/newview/llfloatergesture.h
+++ b/indra/newview/llfloatergesture.h
@@ -2,31 +2,25 @@
* @file llfloatergesture.h
* @brief Read-only list of gestures from your inventory.
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloatergodtools.cpp b/indra/newview/llfloatergodtools.cpp
index bd07cfdfbf..2dbe324586 100644
--- a/indra/newview/llfloatergodtools.cpp
+++ b/indra/newview/llfloatergodtools.cpp
@@ -2,31 +2,25 @@
* @file llfloatergodtools.cpp
* @brief The on-screen rectangle with tool options.
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -88,7 +82,7 @@ void LLFloaterGodTools::onOpen(const LLSD& key)
{
center();
setFocus(TRUE);
-// LLPanel *panel = childGetVisibleTab("GodTools Tabs");
+// LLPanel *panel = getChild<LLTabContainer>("GodTools Tabs")->getCurrentPanel();
// if (panel)
// panel->setFocus(TRUE);
if (mPanelObjectTools)
@@ -127,14 +121,12 @@ LLFloaterGodTools::LLFloaterGodTools(const LLSD& key)
mFactoryMap["region"] = LLCallbackMap(createPanelRegion, this);
mFactoryMap["objects"] = LLCallbackMap(createPanelObjects, this);
mFactoryMap["request"] = LLCallbackMap(createPanelRequest, this);
-// LLUICtrlFactory::getInstance()->buildFloater(this, "floater_god_tools.xml");
-
}
BOOL LLFloaterGodTools::postBuild()
{
sendRegionInfoRequest();
- childShowTab("GodTools Tabs", "region");
+ getChild<LLTabContainer>("GodTools Tabs")->selectTabByName("region");
return TRUE;
}
// static
@@ -203,9 +195,9 @@ void LLFloaterGodTools::draw()
void LLFloaterGodTools::showPanel(const std::string& panel_name)
{
- childShowTab("GodTools Tabs", panel_name);
+ getChild<LLTabContainer>("GodTools Tabs")->selectTabByName(panel_name);
openFloater();
- LLPanel *panel = childGetVisibleTab("GodTools Tabs");
+ LLPanel *panel = getChild<LLTabContainer>("GodTools Tabs")->getCurrentPanel();
if (panel)
panel->setFocus(TRUE);
}
@@ -416,17 +408,17 @@ LLPanelRegionTools::LLPanelRegionTools()
BOOL LLPanelRegionTools::postBuild()
{
getChild<LLLineEditor>("region name")->setKeystrokeCallback(onChangeSimName, this);
- childSetPrevalidate("region name", &LLTextValidate::validateASCIIPrintableNoPipe);
- childSetPrevalidate("estate", &LLTextValidate::validatePositiveS32);
- childSetPrevalidate("parentestate", &LLTextValidate::validatePositiveS32);
- childDisable("parentestate");
- childSetPrevalidate("gridposx", &LLTextValidate::validatePositiveS32);
- childDisable("gridposx");
- childSetPrevalidate("gridposy", &LLTextValidate::validatePositiveS32);
- childDisable("gridposy");
+ getChild<LLLineEditor>("region name")->setPrevalidate(&LLTextValidate::validateASCIIPrintableNoPipe);
+ getChild<LLLineEditor>("estate")->setPrevalidate(&LLTextValidate::validatePositiveS32);
+ getChild<LLLineEditor>("parentestate")->setPrevalidate(&LLTextValidate::validatePositiveS32);
+ getChildView("parentestate")->setEnabled(FALSE);
+ getChild<LLLineEditor>("gridposx")->setPrevalidate(&LLTextValidate::validatePositiveS32);
+ getChildView("gridposx")->setEnabled(FALSE);
+ getChild<LLLineEditor>("gridposy")->setPrevalidate(&LLTextValidate::validatePositiveS32);
+ getChildView("gridposy")->setEnabled(FALSE);
- childSetPrevalidate("redirectx", &LLTextValidate::validatePositiveS32);
- childSetPrevalidate("redirecty", &LLTextValidate::validatePositiveS32);
+ getChild<LLLineEditor>("redirectx")->setPrevalidate(&LLTextValidate::validatePositiveS32);
+ getChild<LLLineEditor>("redirecty")->setPrevalidate(&LLTextValidate::validatePositiveS32);
return TRUE;
}
@@ -453,42 +445,42 @@ void LLPanelRegionTools::refresh()
void LLPanelRegionTools::clearAllWidgets()
{
// clear all widgets
- childSetValue("region name", "unknown");
- childSetFocus("region name", FALSE);
+ getChild<LLUICtrl>("region name")->setValue("unknown");
+ getChild<LLUICtrl>("region name")->setFocus( FALSE);
- childSetValue("check prelude", FALSE);
- childDisable("check prelude");
+ getChild<LLUICtrl>("check prelude")->setValue(FALSE);
+ getChildView("check prelude")->setEnabled(FALSE);
- childSetValue("check fixed sun", FALSE);
- childDisable("check fixed sun");
+ getChild<LLUICtrl>("check fixed sun")->setValue(FALSE);
+ getChildView("check fixed sun")->setEnabled(FALSE);
- childSetValue("check reset home", FALSE);
- childDisable("check reset home");
+ getChild<LLUICtrl>("check reset home")->setValue(FALSE);
+ getChildView("check reset home")->setEnabled(FALSE);
- childSetValue("check damage", FALSE);
- childDisable("check damage");
+ getChild<LLUICtrl>("check damage")->setValue(FALSE);
+ getChildView("check damage")->setEnabled(FALSE);
- childSetValue("check visible", FALSE);
- childDisable("check visible");
+ getChild<LLUICtrl>("check visible")->setValue(FALSE);
+ getChildView("check visible")->setEnabled(FALSE);
- childSetValue("block terraform", FALSE);
- childDisable("block terraform");
+ getChild<LLUICtrl>("block terraform")->setValue(FALSE);
+ getChildView("block terraform")->setEnabled(FALSE);
- childSetValue("block dwell", FALSE);
- childDisable("block dwell");
+ getChild<LLUICtrl>("block dwell")->setValue(FALSE);
+ getChildView("block dwell")->setEnabled(FALSE);
- childSetValue("is sandbox", FALSE);
- childDisable("is sandbox");
+ getChild<LLUICtrl>("is sandbox")->setValue(FALSE);
+ getChildView("is sandbox")->setEnabled(FALSE);
- childSetValue("billable factor", BILLABLE_FACTOR_DEFAULT);
- childDisable("billable factor");
+ getChild<LLUICtrl>("billable factor")->setValue(BILLABLE_FACTOR_DEFAULT);
+ getChildView("billable factor")->setEnabled(FALSE);
- childSetValue("land cost", PRICE_PER_METER_DEFAULT);
- childDisable("land cost");
+ getChild<LLUICtrl>("land cost")->setValue(PRICE_PER_METER_DEFAULT);
+ getChildView("land cost")->setEnabled(FALSE);
- childDisable("Apply");
- childDisable("Bake Terrain");
- childDisable("Autosave now");
+ getChildView("Apply")->setEnabled(FALSE);
+ getChildView("Bake Terrain")->setEnabled(FALSE);
+ getChildView("Autosave now")->setEnabled(FALSE);
}
@@ -496,21 +488,21 @@ void LLPanelRegionTools::enableAllWidgets()
{
// enable all of the widgets
- childEnable("check prelude");
- childEnable("check fixed sun");
- childEnable("check reset home");
- childEnable("check damage");
- childDisable("check visible"); // use estates to update...
- childEnable("block terraform");
- childEnable("block dwell");
- childEnable("is sandbox");
+ getChildView("check prelude")->setEnabled(TRUE);
+ getChildView("check fixed sun")->setEnabled(TRUE);
+ getChildView("check reset home")->setEnabled(TRUE);
+ getChildView("check damage")->setEnabled(TRUE);
+ getChildView("check visible")->setEnabled(FALSE); // use estates to update...
+ getChildView("block terraform")->setEnabled(TRUE);
+ getChildView("block dwell")->setEnabled(TRUE);
+ getChildView("is sandbox")->setEnabled(TRUE);
- childEnable("billable factor");
- childEnable("land cost");
+ getChildView("billable factor")->setEnabled(TRUE);
+ getChildView("land cost")->setEnabled(TRUE);
- childDisable("Apply"); // don't enable this one
- childEnable("Bake Terrain");
- childEnable("Autosave now");
+ getChildView("Apply")->setEnabled(FALSE); // don't enable this one
+ getChildView("Bake Terrain")->setEnabled(TRUE);
+ getChildView("Autosave now")->setEnabled(TRUE);
}
void LLPanelRegionTools::onSaveState(void* userdata)
@@ -530,74 +522,74 @@ void LLPanelRegionTools::onSaveState(void* userdata)
const std::string LLPanelRegionTools::getSimName() const
{
- return childGetValue("region name");
+ return getChild<LLUICtrl>("region name")->getValue();
}
U32 LLPanelRegionTools::getEstateID() const
{
- U32 id = (U32)childGetValue("estate").asInteger();
+ U32 id = (U32)getChild<LLUICtrl>("estate")->getValue().asInteger();
return id;
}
U32 LLPanelRegionTools::getParentEstateID() const
{
- U32 id = (U32)childGetValue("parentestate").asInteger();
+ U32 id = (U32)getChild<LLUICtrl>("parentestate")->getValue().asInteger();
return id;
}
S32 LLPanelRegionTools::getRedirectGridX() const
{
- return childGetValue("redirectx").asInteger();
+ return getChild<LLUICtrl>("redirectx")->getValue().asInteger();
}
S32 LLPanelRegionTools::getRedirectGridY() const
{
- return childGetValue("redirecty").asInteger();
+ return getChild<LLUICtrl>("redirecty")->getValue().asInteger();
}
S32 LLPanelRegionTools::getGridPosX() const
{
- return childGetValue("gridposx").asInteger();
+ return getChild<LLUICtrl>("gridposx")->getValue().asInteger();
}
S32 LLPanelRegionTools::getGridPosY() const
{
- return childGetValue("gridposy").asInteger();
+ return getChild<LLUICtrl>("gridposy")->getValue().asInteger();
}
U32 LLPanelRegionTools::getRegionFlags() const
{
U32 flags = 0x0;
- flags = childGetValue("check prelude").asBoolean()
+ flags = getChild<LLUICtrl>("check prelude")->getValue().asBoolean()
? set_prelude_flags(flags)
: unset_prelude_flags(flags);
// override prelude
- if (childGetValue("check fixed sun").asBoolean())
+ if (getChild<LLUICtrl>("check fixed sun")->getValue().asBoolean())
{
flags |= REGION_FLAGS_SUN_FIXED;
}
- if (childGetValue("check reset home").asBoolean())
+ if (getChild<LLUICtrl>("check reset home")->getValue().asBoolean())
{
flags |= REGION_FLAGS_RESET_HOME_ON_TELEPORT;
}
- if (childGetValue("check visible").asBoolean())
+ if (getChild<LLUICtrl>("check visible")->getValue().asBoolean())
{
flags |= REGION_FLAGS_EXTERNALLY_VISIBLE;
}
- if (childGetValue("check damage").asBoolean())
+ if (getChild<LLUICtrl>("check damage")->getValue().asBoolean())
{
flags |= REGION_FLAGS_ALLOW_DAMAGE;
}
- if (childGetValue("block terraform").asBoolean())
+ if (getChild<LLUICtrl>("block terraform")->getValue().asBoolean())
{
flags |= REGION_FLAGS_BLOCK_TERRAFORM;
}
- if (childGetValue("block dwell").asBoolean())
+ if (getChild<LLUICtrl>("block dwell")->getValue().asBoolean())
{
flags |= REGION_FLAGS_BLOCK_DWELL;
}
- if (childGetValue("is sandbox").asBoolean())
+ if (getChild<LLUICtrl>("is sandbox")->getValue().asBoolean())
{
flags |= REGION_FLAGS_SANDBOX;
}
@@ -607,35 +599,35 @@ U32 LLPanelRegionTools::getRegionFlags() const
U32 LLPanelRegionTools::getRegionFlagsMask() const
{
U32 flags = 0xffffffff;
- flags = childGetValue("check prelude").asBoolean()
+ flags = getChild<LLUICtrl>("check prelude")->getValue().asBoolean()
? set_prelude_flags(flags)
: unset_prelude_flags(flags);
- if (!childGetValue("check fixed sun").asBoolean())
+ if (!getChild<LLUICtrl>("check fixed sun")->getValue().asBoolean())
{
flags &= ~REGION_FLAGS_SUN_FIXED;
}
- if (!childGetValue("check reset home").asBoolean())
+ if (!getChild<LLUICtrl>("check reset home")->getValue().asBoolean())
{
flags &= ~REGION_FLAGS_RESET_HOME_ON_TELEPORT;
}
- if (!childGetValue("check visible").asBoolean())
+ if (!getChild<LLUICtrl>("check visible")->getValue().asBoolean())
{
flags &= ~REGION_FLAGS_EXTERNALLY_VISIBLE;
}
- if (!childGetValue("check damage").asBoolean())
+ if (!getChild<LLUICtrl>("check damage")->getValue().asBoolean())
{
flags &= ~REGION_FLAGS_ALLOW_DAMAGE;
}
- if (!childGetValue("block terraform").asBoolean())
+ if (!getChild<LLUICtrl>("block terraform")->getValue().asBoolean())
{
flags &= ~REGION_FLAGS_BLOCK_TERRAFORM;
}
- if (!childGetValue("block dwell").asBoolean())
+ if (!getChild<LLUICtrl>("block dwell")->getValue().asBoolean())
{
flags &= ~REGION_FLAGS_BLOCK_DWELL;
}
- if (!childGetValue("is sandbox").asBoolean())
+ if (!getChild<LLUICtrl>("is sandbox")->getValue().asBoolean())
{
flags &= ~REGION_FLAGS_SANDBOX;
}
@@ -644,86 +636,86 @@ U32 LLPanelRegionTools::getRegionFlagsMask() const
F32 LLPanelRegionTools::getBillableFactor() const
{
- return (F32)childGetValue("billable factor").asReal();
+ return (F32)getChild<LLUICtrl>("billable factor")->getValue().asReal();
}
S32 LLPanelRegionTools::getPricePerMeter() const
{
- return childGetValue("land cost");
+ return getChild<LLUICtrl>("land cost")->getValue();
}
void LLPanelRegionTools::setSimName(const std::string& name)
{
- childSetValue("region name", name);
+ getChild<LLUICtrl>("region name")->setValue(name);
}
void LLPanelRegionTools::setEstateID(U32 id)
{
- childSetValue("estate", (S32)id);
+ getChild<LLUICtrl>("estate")->setValue((S32)id);
}
void LLPanelRegionTools::setGridPosX(S32 pos)
{
- childSetValue("gridposx", pos);
+ getChild<LLUICtrl>("gridposx")->setValue(pos);
}
void LLPanelRegionTools::setGridPosY(S32 pos)
{
- childSetValue("gridposy", pos);
+ getChild<LLUICtrl>("gridposy")->setValue(pos);
}
void LLPanelRegionTools::setRedirectGridX(S32 pos)
{
- childSetValue("redirectx", pos);
+ getChild<LLUICtrl>("redirectx")->setValue(pos);
}
void LLPanelRegionTools::setRedirectGridY(S32 pos)
{
- childSetValue("redirecty", pos);
+ getChild<LLUICtrl>("redirecty")->setValue(pos);
}
void LLPanelRegionTools::setParentEstateID(U32 id)
{
- childSetValue("parentestate", (S32)id);
+ getChild<LLUICtrl>("parentestate")->setValue((S32)id);
}
void LLPanelRegionTools::setCheckFlags(U32 flags)
{
- childSetValue("check prelude", is_prelude(flags) ? TRUE : FALSE);
- childSetValue("check fixed sun", flags & REGION_FLAGS_SUN_FIXED ? TRUE : FALSE);
- childSetValue("check reset home", flags & REGION_FLAGS_RESET_HOME_ON_TELEPORT ? TRUE : FALSE);
- childSetValue("check damage", flags & REGION_FLAGS_ALLOW_DAMAGE ? TRUE : FALSE);
- childSetValue("check visible", flags & REGION_FLAGS_EXTERNALLY_VISIBLE ? TRUE : FALSE);
- childSetValue("block terraform", flags & REGION_FLAGS_BLOCK_TERRAFORM ? TRUE : FALSE);
- childSetValue("block dwell", flags & REGION_FLAGS_BLOCK_DWELL ? TRUE : FALSE);
- childSetValue("is sandbox", flags & REGION_FLAGS_SANDBOX ? TRUE : FALSE );
+ getChild<LLUICtrl>("check prelude")->setValue(is_prelude(flags) ? TRUE : FALSE);
+ getChild<LLUICtrl>("check fixed sun")->setValue(flags & REGION_FLAGS_SUN_FIXED ? TRUE : FALSE);
+ getChild<LLUICtrl>("check reset home")->setValue(flags & REGION_FLAGS_RESET_HOME_ON_TELEPORT ? TRUE : FALSE);
+ getChild<LLUICtrl>("check damage")->setValue(flags & REGION_FLAGS_ALLOW_DAMAGE ? TRUE : FALSE);
+ getChild<LLUICtrl>("check visible")->setValue(flags & REGION_FLAGS_EXTERNALLY_VISIBLE ? TRUE : FALSE);
+ getChild<LLUICtrl>("block terraform")->setValue(flags & REGION_FLAGS_BLOCK_TERRAFORM ? TRUE : FALSE);
+ getChild<LLUICtrl>("block dwell")->setValue(flags & REGION_FLAGS_BLOCK_DWELL ? TRUE : FALSE);
+ getChild<LLUICtrl>("is sandbox")->setValue(flags & REGION_FLAGS_SANDBOX ? TRUE : FALSE );
}
void LLPanelRegionTools::setBillableFactor(F32 billable_factor)
{
- childSetValue("billable factor", billable_factor);
+ getChild<LLUICtrl>("billable factor")->setValue(billable_factor);
}
void LLPanelRegionTools::setPricePerMeter(S32 price)
{
- childSetValue("land cost", price);
+ getChild<LLUICtrl>("land cost")->setValue(price);
}
void LLPanelRegionTools::onChangeAnything()
{
if (gAgent.isGodlike())
{
- childEnable("Apply");
+ getChildView("Apply")->setEnabled(TRUE);
}
}
void LLPanelRegionTools::onChangePrelude()
{
// checking prelude auto-checks fixed sun
- if (childGetValue("check prelude").asBoolean())
+ if (getChild<LLUICtrl>("check prelude")->getValue().asBoolean())
{
- childSetValue("check fixed sun", TRUE);
- childSetValue("check reset home", TRUE);
+ getChild<LLUICtrl>("check fixed sun")->setValue(TRUE);
+ getChild<LLUICtrl>("check reset home")->setValue(TRUE);
onChangeAnything();
}
// pass on to default onChange handler
@@ -736,7 +728,7 @@ void LLPanelRegionTools::onChangeSimName(LLLineEditor* caller, void* userdata )
if (userdata && gAgent.isGodlike())
{
LLPanelRegionTools* region_tools = (LLPanelRegionTools*) userdata;
- region_tools->childEnable("Apply");
+ region_tools->getChildView("Apply")->setEnabled(TRUE);
}
}
@@ -761,7 +753,7 @@ void LLPanelRegionTools::onApplyChanges()
LLViewerRegion *region = gAgent.getRegion();
if (region && gAgent.isGodlike())
{
- childDisable("Apply");
+ getChildView("Apply")->setEnabled(FALSE);
god_tools->sendGodUpdateRegionInfo();
//LLFloaterReg::getTypedInstance<LLFloaterGodTools>("god_tools")->sendGodUpdateRegionInfo();
}
@@ -931,7 +923,7 @@ void LLPanelObjectTools::setTargetAvatar(const LLUUID &target_id)
mTargetAvatar = target_id;
if (target_id.isNull())
{
- childSetValue("target_avatar_name", getString("no_target"));
+ getChild<LLUICtrl>("target_avatar_name")->setValue(getString("no_target"));
}
}
@@ -941,14 +933,14 @@ void LLPanelObjectTools::refresh()
LLViewerRegion *regionp = gAgent.getRegion();
if (regionp)
{
- childSetText("region name", regionp->getName());
+ getChild<LLUICtrl>("region name")->setValue(regionp->getName());
}
}
U32 LLPanelObjectTools::computeRegionFlags(U32 flags) const
{
- if (childGetValue("disable scripts").asBoolean())
+ if (getChild<LLUICtrl>("disable scripts")->getValue().asBoolean())
{
flags |= REGION_FLAGS_SKIP_SCRIPTS;
}
@@ -956,7 +948,7 @@ U32 LLPanelObjectTools::computeRegionFlags(U32 flags) const
{
flags &= ~REGION_FLAGS_SKIP_SCRIPTS;
}
- if (childGetValue("disable collisions").asBoolean())
+ if (getChild<LLUICtrl>("disable collisions")->getValue().asBoolean())
{
flags |= REGION_FLAGS_SKIP_COLLISIONS;
}
@@ -964,7 +956,7 @@ U32 LLPanelObjectTools::computeRegionFlags(U32 flags) const
{
flags &= ~REGION_FLAGS_SKIP_COLLISIONS;
}
- if (childGetValue("disable physics").asBoolean())
+ if (getChild<LLUICtrl>("disable physics")->getValue().asBoolean())
{
flags |= REGION_FLAGS_SKIP_PHYSICS;
}
@@ -978,36 +970,36 @@ U32 LLPanelObjectTools::computeRegionFlags(U32 flags) const
void LLPanelObjectTools::setCheckFlags(U32 flags)
{
- childSetValue("disable scripts", flags & REGION_FLAGS_SKIP_SCRIPTS ? TRUE : FALSE);
- childSetValue("disable collisions", flags & REGION_FLAGS_SKIP_COLLISIONS ? TRUE : FALSE);
- childSetValue("disable physics", flags & REGION_FLAGS_SKIP_PHYSICS ? TRUE : FALSE);
+ getChild<LLUICtrl>("disable scripts")->setValue(flags & REGION_FLAGS_SKIP_SCRIPTS ? TRUE : FALSE);
+ getChild<LLUICtrl>("disable collisions")->setValue(flags & REGION_FLAGS_SKIP_COLLISIONS ? TRUE : FALSE);
+ getChild<LLUICtrl>("disable physics")->setValue(flags & REGION_FLAGS_SKIP_PHYSICS ? TRUE : FALSE);
}
void LLPanelObjectTools::clearAllWidgets()
{
- childSetValue("disable scripts", FALSE);
- childDisable("disable scripts");
+ getChild<LLUICtrl>("disable scripts")->setValue(FALSE);
+ getChildView("disable scripts")->setEnabled(FALSE);
- childDisable("Apply");
- childDisable("Set Target");
- childDisable("Delete Target's Scripted Objects On Others Land");
- childDisable("Delete Target's Scripted Objects On *Any* Land");
- childDisable("Delete *ALL* Of Target's Objects");
+ getChildView("Apply")->setEnabled(FALSE);
+ getChildView("Set Target")->setEnabled(FALSE);
+ getChildView("Delete Target's Scripted Objects On Others Land")->setEnabled(FALSE);
+ getChildView("Delete Target's Scripted Objects On *Any* Land")->setEnabled(FALSE);
+ getChildView("Delete *ALL* Of Target's Objects")->setEnabled(FALSE);
}
void LLPanelObjectTools::enableAllWidgets()
{
- childEnable("disable scripts");
+ getChildView("disable scripts")->setEnabled(TRUE);
- childDisable("Apply"); // don't enable this one
- childEnable("Set Target");
- childEnable("Delete Target's Scripted Objects On Others Land");
- childEnable("Delete Target's Scripted Objects On *Any* Land");
- childEnable("Delete *ALL* Of Target's Objects");
- childEnable("Get Top Colliders");
- childEnable("Get Top Scripts");
+ getChildView("Apply")->setEnabled(FALSE); // don't enable this one
+ getChildView("Set Target")->setEnabled(TRUE);
+ getChildView("Delete Target's Scripted Objects On Others Land")->setEnabled(TRUE);
+ getChildView("Delete Target's Scripted Objects On *Any* Land")->setEnabled(TRUE);
+ getChildView("Delete *ALL* Of Target's Objects")->setEnabled(TRUE);
+ getChildView("Get Top Colliders")->setEnabled(TRUE);
+ getChildView("Get Top Scripts")->setEnabled(TRUE);
}
@@ -1057,7 +1049,7 @@ void LLPanelObjectTools::onClickDeletePublicOwnedBy()
SWD_SCRIPTED_ONLY | SWD_OTHERS_LAND_ONLY;
LLSD args;
- args["AVATAR_NAME"] = childGetValue("target_avatar_name").asString();
+ args["AVATAR_NAME"] = getChild<LLUICtrl>("target_avatar_name")->getValue().asString();
LLSD payload;
payload["avatar_id"] = mTargetAvatar;
payload["flags"] = (S32)mSimWideDeletesFlags;
@@ -1077,7 +1069,7 @@ void LLPanelObjectTools::onClickDeleteAllScriptedOwnedBy()
mSimWideDeletesFlags = SWD_SCRIPTED_ONLY;
LLSD args;
- args["AVATAR_NAME"] = childGetValue("target_avatar_name").asString();
+ args["AVATAR_NAME"] = getChild<LLUICtrl>("target_avatar_name")->getValue().asString();
LLSD payload;
payload["avatar_id"] = mTargetAvatar;
payload["flags"] = (S32)mSimWideDeletesFlags;
@@ -1097,7 +1089,7 @@ void LLPanelObjectTools::onClickDeleteAllOwnedBy()
mSimWideDeletesFlags = 0;
LLSD args;
- args["AVATAR_NAME"] = childGetValue("target_avatar_name").asString();
+ args["AVATAR_NAME"] = getChild<LLUICtrl>("target_avatar_name")->getValue().asString();
LLSD payload;
payload["avatar_id"] = mTargetAvatar;
payload["flags"] = (S32)mSimWideDeletesFlags;
@@ -1148,14 +1140,14 @@ void LLPanelObjectTools::onClickSetBySelection(void* data)
args["[OBJECT]"] = node->mName;
args["[OWNER]"] = owner_name;
std::string name = LLTrans::getString("GodToolsObjectOwnedBy", args);
- panelp->childSetValue("target_avatar_name", name);
+ panelp->getChild<LLUICtrl>("target_avatar_name")->setValue(name);
}
void LLPanelObjectTools::callbackAvatarID(const std::vector<std::string>& names, const uuid_vec_t& ids)
{
if (ids.empty() || names.empty()) return;
mTargetAvatar = ids[0];
- childSetValue("target_avatar_name", names[0]);
+ getChild<LLUICtrl>("target_avatar_name")->setValue(names[0]);
refresh();
}
@@ -1163,7 +1155,7 @@ void LLPanelObjectTools::onChangeAnything()
{
if (gAgent.isGodlike())
{
- childEnable("Apply");
+ getChildView("Apply")->setEnabled(TRUE);
}
}
@@ -1175,7 +1167,7 @@ void LLPanelObjectTools::onApplyChanges()
if (region && gAgent.isGodlike())
{
// TODO -- implement this
- childDisable("Apply");
+ getChildView("Apply")->setEnabled(FALSE);
god_tools->sendGodUpdateRegionInfo();
//LLFloaterReg::getTypedInstance<LLFloaterGodTools>("god_tools")->sendGodUpdateRegionInfo();
}
@@ -1208,7 +1200,7 @@ BOOL LLPanelRequestTools::postBuild()
void LLPanelRequestTools::refresh()
{
- std::string buffer = childGetValue("destination");
+ std::string buffer = getChild<LLUICtrl>("destination")->getValue();
LLCtrlListInterface *list = childGetListInterface("destination");
if (!list) return;
@@ -1263,12 +1255,12 @@ void LLPanelRequestTools::sendRequest(const std::string& request,
void LLPanelRequestTools::onClickRequest()
{
- const std::string dest = childGetValue("destination").asString();
+ const std::string dest = getChild<LLUICtrl>("destination")->getValue().asString();
if(dest == SELECTION)
{
- std::string req =childGetValue("request");
+ std::string req =getChild<LLUICtrl>("request")->getValue();
req = req.substr(0, req.find_first_of(" "));
- std::string param = childGetValue("parameter");
+ std::string param = getChild<LLUICtrl>("parameter")->getValue();
LLSelectMgr::getInstance()->sendGodlikeRequest(req, param);
}
else if(dest == AGENT_REGION)
@@ -1307,7 +1299,7 @@ void LLPanelRequestTools::sendRequest(const LLHost& host)
{
// intercept viewer local actions here
- std::string req = childGetValue("request");
+ std::string req = getChild<LLUICtrl>("request")->getValue();
if (req == "terrain download")
{
gXferManager->requestFile(std::string("terrain.raw"), std::string("terrain.raw"), LL_PATH_NONE,
@@ -1319,7 +1311,7 @@ void LLPanelRequestTools::sendRequest(const LLHost& host)
else
{
req = req.substr(0, req.find_first_of(" "));
- sendRequest(req, childGetValue("parameter").asString(), host);
+ sendRequest(req, getChild<LLUICtrl>("parameter")->getValue().asString(), host);
}
}
diff --git a/indra/newview/llfloatergodtools.h b/indra/newview/llfloatergodtools.h
index aee9db78a3..60fc95580f 100644
--- a/indra/newview/llfloatergodtools.h
+++ b/indra/newview/llfloatergodtools.h
@@ -2,31 +2,25 @@
* @file llfloatergodtools.h
* @brief The on-screen rectangle with tool options.
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloatergroupinvite.cpp b/indra/newview/llfloatergroupinvite.cpp
index 5d1864b4c8..49da4e64b3 100644
--- a/indra/newview/llfloatergroupinvite.cpp
+++ b/indra/newview/llfloatergroupinvite.cpp
@@ -2,31 +2,25 @@
* @file llfloatergroupinvite.cpp
* @brief Floater to invite new members into a group.
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloatergroupinvite.h b/indra/newview/llfloatergroupinvite.h
index 68943724df..f6a3ca5550 100644
--- a/indra/newview/llfloatergroupinvite.h
+++ b/indra/newview/llfloatergroupinvite.h
@@ -3,31 +3,25 @@
* @brief This floater is just a wrapper for LLPanelGroupInvite, which
* is used to invite members to a specific group
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloatergroups.cpp b/indra/newview/llfloatergroups.cpp
index c71764c2e5..234a09d157 100644
--- a/indra/newview/llfloatergroups.cpp
+++ b/indra/newview/llfloatergroups.cpp
@@ -2,31 +2,25 @@
* @file llfloatergroups.cpp
* @brief LLPanelGroups class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -89,14 +83,13 @@ BOOL LLFloaterGroupPicker::postBuild()
list_ctrl->setContextMenu(LLScrollListCtrl::MENU_GROUP);
}
-
childSetAction("OK", onBtnOK, this);
childSetAction("Cancel", onBtnCancel, this);
setDefaultBtn("OK");
- childEnable("OK");
+ getChildView("OK")->setEnabled(TRUE);
return TRUE;
}
@@ -177,8 +170,8 @@ void LLPanelGroups::reset()
{
group_list->operateOnAll(LLCtrlListInterface::OP_DELETE);
}
- childSetTextArg("groupcount", "[COUNT]", llformat("%d",gAgent.mGroups.count()));
- childSetTextArg("groupcount", "[MAX]", llformat("%d",MAX_AGENT_GROUPS));
+ getChild<LLUICtrl>("groupcount")->setTextArg("[COUNT]", llformat("%d",gAgent.mGroups.count()));
+ getChild<LLUICtrl>("groupcount")->setTextArg("[MAX]", llformat("%d",MAX_AGENT_GROUPS));
init_group_list(getChild<LLScrollListCtrl>("group list"), gAgent.getGroupID());
enableButtons();
@@ -188,8 +181,8 @@ BOOL LLPanelGroups::postBuild()
{
childSetCommitCallback("group list", onGroupList, this);
- childSetTextArg("groupcount", "[COUNT]", llformat("%d",gAgent.mGroups.count()));
- childSetTextArg("groupcount", "[MAX]", llformat("%d",MAX_AGENT_GROUPS));
+ getChild<LLUICtrl>("groupcount")->setTextArg("[COUNT]", llformat("%d",gAgent.mGroups.count()));
+ getChild<LLUICtrl>("groupcount")->setTextArg("[MAX]", llformat("%d",MAX_AGENT_GROUPS));
LLScrollListCtrl *list = getChild<LLScrollListCtrl>("group list");
if (list)
@@ -229,25 +222,25 @@ void LLPanelGroups::enableButtons()
if(group_id != gAgent.getGroupID())
{
- childEnable("Activate");
+ getChildView("Activate")->setEnabled(TRUE);
}
else
{
- childDisable("Activate");
+ getChildView("Activate")->setEnabled(FALSE);
}
if (group_id.notNull())
{
- childEnable("Info");
- childEnable("IM");
- childEnable("Leave");
+ getChildView("Info")->setEnabled(TRUE);
+ getChildView("IM")->setEnabled(TRUE);
+ getChildView("Leave")->setEnabled(TRUE);
}
else
{
- childDisable("Info");
- childDisable("IM");
- childDisable("Leave");
+ getChildView("Info")->setEnabled(FALSE);
+ getChildView("IM")->setEnabled(FALSE);
+ getChildView("Leave")->setEnabled(FALSE);
}
- childSetEnabled("Create", gAgent.canJoinGroups());
+ getChildView("Create")->setEnabled(gAgent.canJoinGroups());
}
@@ -345,11 +338,10 @@ void LLPanelGroups::onGroupList(LLUICtrl* ctrl, void* userdata)
if(self) self->enableButtons();
}
-void init_group_list(LLScrollListCtrl* ctrl, const LLUUID& highlight_id, U64 powers_mask)
+void init_group_list(LLScrollListCtrl* group_list, const LLUUID& highlight_id, U64 powers_mask)
{
S32 count = gAgent.mGroups.count();
LLUUID id;
- LLCtrlListInterface *group_list = ctrl->getListInterface();
if (!group_list) return;
group_list->operateOnAll(LLCtrlListInterface::OP_DELETE);
@@ -373,10 +365,12 @@ void init_group_list(LLScrollListCtrl* ctrl, const LLUUID& highlight_id, U64 pow
element["columns"][0]["font"]["name"] = "SANSSERIF";
element["columns"][0]["font"]["style"] = style;
- group_list->addElement(element, ADD_SORTED);
+ group_list->addElement(element);
}
}
+ group_list->sortOnce(0, TRUE);
+
// add "none" to list at top
{
std::string style = "NORMAL";
diff --git a/indra/newview/llfloatergroups.h b/indra/newview/llfloatergroups.h
index ce3a470a23..1ad27cea19 100644
--- a/indra/newview/llfloatergroups.h
+++ b/indra/newview/llfloatergroups.h
@@ -2,31 +2,25 @@
* @file llfloatergroups.h
* @brief LLFloaterGroups class definition
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloaterhandler.cpp b/indra/newview/llfloaterhandler.cpp
index e50a09ed86..e2160498e9 100644
--- a/indra/newview/llfloaterhandler.cpp
+++ b/indra/newview/llfloaterhandler.cpp
@@ -1,29 +1,23 @@
/**
- * $LicenseInfo:firstyear=2008&license=viewergpl$
- *
- * Copyright (c) 2008-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2008&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
#include "llviewerprecompiledheaders.h"
diff --git a/indra/newview/llfloaterhandler.h b/indra/newview/llfloaterhandler.h
index cd9d8b5377..5915642d66 100644
--- a/indra/newview/llfloaterhandler.h
+++ b/indra/newview/llfloaterhandler.h
@@ -1,29 +1,23 @@
/**
- * $LicenseInfo:firstyear=2008&license=viewergpl$
- *
- * Copyright (c) 2008-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2008&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
#ifndef LLFLOATERHANDLER_H
diff --git a/indra/newview/llfloaterhardwaresettings.cpp b/indra/newview/llfloaterhardwaresettings.cpp
index 480e4ce3a4..77af054522 100644
--- a/indra/newview/llfloaterhardwaresettings.cpp
+++ b/indra/newview/llfloaterhardwaresettings.cpp
@@ -2,31 +2,25 @@
* @file llfloaterhardwaresettings.cpp
* @brief Menu of all the different graphics hardware settings
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -62,7 +56,6 @@ LLFloaterHardwareSettings::LLFloaterHardwareSettings(const LLSD& key)
mFogRatio(0.0),
mProbeHardwareOnStartup(FALSE)
{
- //LLUICtrlFactory::getInstance()->buildFloater(this, "floater_hardware_settings.xml");
}
LLFloaterHardwareSettings::~LLFloaterHardwareSettings()
@@ -87,7 +80,7 @@ void LLFloaterHardwareSettings::refresh()
mFogRatio = gSavedSettings.getF32("RenderFogRatio");
mProbeHardwareOnStartup = gSavedSettings.getBOOL("ProbeHardwareOnStartup");
- childSetValue("fsaa", (LLSD::Integer) mFSAASamples);
+ getChild<LLUICtrl>("fsaa")->setValue((LLSD::Integer) mFSAASamples);
refreshEnabledState();
}
@@ -101,13 +94,13 @@ void LLFloaterHardwareSettings::refreshEnabledState()
if (!LLFeatureManager::getInstance()->isFeatureAvailable("RenderVBOEnable") ||
!gGLManager.mHasVertexBufferObject)
{
- childSetEnabled("vbo", FALSE);
+ getChildView("vbo")->setEnabled(FALSE);
}
// if no windlight shaders, turn off nighttime brightness, gamma, and fog distance
- childSetEnabled("gamma", !gPipeline.canUseWindLightShaders());
- childSetEnabled("(brightness, lower is brighter)", !gPipeline.canUseWindLightShaders());
- childSetEnabled("fog", !gPipeline.canUseWindLightShaders());
+ getChildView("gamma")->setEnabled(!gPipeline.canUseWindLightShaders());
+ getChildView("(brightness, lower is brighter)")->setEnabled(!gPipeline.canUseWindLightShaders());
+ getChildView("fog")->setEnabled(!gPipeline.canUseWindLightShaders());
}
@@ -130,9 +123,9 @@ void LLFloaterHardwareSettings::apply()
{
// Anisotropic rendering
BOOL old_anisotropic = LLImageGL::sGlobalUseAnisotropic;
- LLImageGL::sGlobalUseAnisotropic = childGetValue("ani");
+ LLImageGL::sGlobalUseAnisotropic = getChild<LLUICtrl>("ani")->getValue();
- U32 fsaa = (U32) childGetValue("fsaa").asInteger();
+ U32 fsaa = (U32) getChild<LLUICtrl>("fsaa")->getValue().asInteger();
U32 old_fsaa = gSavedSettings.getU32("RenderFSAASamples");
BOOL logged_in = (LLStartUp::getStartupState() >= STATE_STARTED);
diff --git a/indra/newview/llfloaterhardwaresettings.h b/indra/newview/llfloaterhardwaresettings.h
index ef0b0c905e..f59b77b17f 100644
--- a/indra/newview/llfloaterhardwaresettings.h
+++ b/indra/newview/llfloaterhardwaresettings.h
@@ -2,31 +2,25 @@
* @file llfloaterhardwaresettings.h
* @brief Menu of all the different graphics hardware settings
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloaterhelpbrowser.cpp b/indra/newview/llfloaterhelpbrowser.cpp
index f3c6b286ab..cec98e9992 100644
--- a/indra/newview/llfloaterhelpbrowser.cpp
+++ b/indra/newview/llfloaterhelpbrowser.cpp
@@ -2,31 +2,25 @@
* @file llfloaterhelpbrowser.cpp
* @brief HTML Help floater - uses embedded web browser control
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -92,11 +86,11 @@ void LLFloaterHelpBrowser::handleMediaEvent(LLPluginClassMedia* self, EMediaEven
break;
case MEDIA_EVENT_NAVIGATE_BEGIN:
- childSetText("status_text", getString("loading_text"));
+ getChild<LLUICtrl>("status_text")->setValue(getString("loading_text"));
break;
case MEDIA_EVENT_NAVIGATE_COMPLETE:
- childSetText("status_text", getString("done_text"));
+ getChild<LLUICtrl>("status_text")->setValue(getString("done_text"));
break;
default:
diff --git a/indra/newview/llfloaterhelpbrowser.h b/indra/newview/llfloaterhelpbrowser.h
index b66a67c4d6..2731c81b9c 100644
--- a/indra/newview/llfloaterhelpbrowser.h
+++ b/indra/newview/llfloaterhelpbrowser.h
@@ -2,31 +2,25 @@
* @file llfloatermediabrowser.h
* @brief HTML Help floater - uses embedded web browser control
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloaterhud.cpp b/indra/newview/llfloaterhud.cpp
index 930bbe9e6b..4181d1906e 100644
--- a/indra/newview/llfloaterhud.cpp
+++ b/indra/newview/llfloaterhud.cpp
@@ -2,31 +2,25 @@
* @file llfloaterhud.cpp
* @brief Implementation of HUD floater
*
- * $LicenseInfo:firstyear=2008&license=viewergpl$
- *
- * Copyright (c) 2008-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2008&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -60,8 +54,6 @@ LLFloaterHUD::LLFloaterHUD(const LLSD& key)
return;
}
- //LLUICtrlFactory::getInstance()->buildFloater(this, "floater_hud.xml");
-
// Don't grab the focus as it will impede performing in-world actions
// while using the HUD
setIsChrome(TRUE);
diff --git a/indra/newview/llfloaterhud.h b/indra/newview/llfloaterhud.h
index 23ff82362a..e560d6320b 100644
--- a/indra/newview/llfloaterhud.h
+++ b/indra/newview/llfloaterhud.h
@@ -2,31 +2,25 @@
* @file llfloaterhud.h
* @brief A floater showing the HUD tutorial
*
- * $LicenseInfo:firstyear=2008&license=viewergpl$
- *
- * Copyright (c) 2008-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2008&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloaterimagepreview.cpp b/indra/newview/llfloaterimagepreview.cpp
index 8a20712ea8..c7fbdd5745 100644
--- a/indra/newview/llfloaterimagepreview.cpp
+++ b/indra/newview/llfloaterimagepreview.cpp
@@ -2,31 +2,25 @@
* @file llfloaterimagepreview.cpp
* @brief LLFloaterImagePreview class implementation
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -109,7 +103,7 @@ BOOL LLFloaterImagePreview::postBuild()
PREVIEW_HPAD + PREF_BUTTON_HEIGHT + PREVIEW_HPAD);
mPreviewImageRect.set(0.f, 1.f, 1.f, 0.f);
- childHide("bad_image_text");
+ getChildView("bad_image_text")->setVisible(FALSE);
if (mRawImagep.notNull() && gAgent.getRegion() != NULL)
{
@@ -120,19 +114,19 @@ BOOL LLFloaterImagePreview::postBuild()
mSculptedPreview->setPreviewTarget(mRawImagep, 2.0f);
if (mRawImagep->getWidth() * mRawImagep->getHeight () <= LL_IMAGE_REZ_LOSSLESS_CUTOFF * LL_IMAGE_REZ_LOSSLESS_CUTOFF)
- childEnable("lossless_check");
+ getChildView("lossless_check")->setEnabled(TRUE);
}
else
{
mAvatarPreview = NULL;
mSculptedPreview = NULL;
- childShow("bad_image_text");
- childDisable("clothing_type_combo");
- childDisable("ok_btn");
+ getChildView("bad_image_text")->setVisible(TRUE);
+ getChildView("clothing_type_combo")->setEnabled(FALSE);
+ getChildView("ok_btn")->setEnabled(FALSE);
if(!mImageLoadError.empty())
{
- childSetValue("bad_image_text",mImageLoadError.c_str());
+ getChild<LLUICtrl>("bad_image_text")->setValue(mImageLoadError.c_str());
}
}
diff --git a/indra/newview/llfloaterimagepreview.h b/indra/newview/llfloaterimagepreview.h
index 3a7e1ff7d8..d034622c35 100644
--- a/indra/newview/llfloaterimagepreview.h
+++ b/indra/newview/llfloaterimagepreview.h
@@ -2,31 +2,25 @@
* @file llfloaterimagepreview.h
* @brief LLFloaterImagePreview class definition
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloaterinspect.cpp b/indra/newview/llfloaterinspect.cpp
index 13ca7638c5..691f1b206c 100644
--- a/indra/newview/llfloaterinspect.cpp
+++ b/indra/newview/llfloaterinspect.cpp
@@ -2,31 +2,25 @@
* @file llfloaterinspect.cpp
* @brief Floater for object inspection tool
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -53,7 +47,6 @@ LLFloaterInspect::LLFloaterInspect(const LLSD& key)
: LLFloater(key),
mDirty(FALSE)
{
- //LLUICtrlFactory::getInstance()->buildFloater(this, "floater_inspect.xml");
mCommitCallbackRegistrar.add("Inspect.OwnerProfile", boost::bind(&LLFloaterInspect::onClickOwnerProfile, this));
mCommitCallbackRegistrar.add("Inspect.CreatorProfile", boost::bind(&LLFloaterInspect::onClickCreatorProfile, this));
mCommitCallbackRegistrar.add("Inspect.SelectObject", boost::bind(&LLFloaterInspect::onSelectObject, this));
@@ -154,8 +147,8 @@ void LLFloaterInspect::onSelectObject()
{
if(LLFloaterInspect::getSelectedUUID() != LLUUID::null)
{
- childSetEnabled("button owner", true);
- childSetEnabled("button creator", true);
+ getChildView("button owner")->setEnabled(true);
+ getChildView("button creator")->setEnabled(true);
}
}
@@ -178,8 +171,8 @@ void LLFloaterInspect::refresh()
LLUUID creator_id;
std::string creator_name;
S32 pos = mObjectList->getScrollPos();
- childSetEnabled("button owner", false);
- childSetEnabled("button creator", false);
+ getChildView("button owner")->setEnabled(false);
+ getChildView("button creator")->setEnabled(false);
LLUUID selected_uuid;
S32 selected_index = mObjectList->getFirstSelectedIndex();
if(selected_index > -1)
diff --git a/indra/newview/llfloaterinspect.h b/indra/newview/llfloaterinspect.h
index ce9485ee74..d9ffdf114b 100644
--- a/indra/newview/llfloaterinspect.h
+++ b/indra/newview/llfloaterinspect.h
@@ -4,31 +4,25 @@
* @date 2006-12-16
* @brief Declaration of class for displaying object attributes
*
-* $LicenseInfo:firstyear=2006&license=viewergpl$
-*
-* Copyright (c) 2006-2009, Linden Research, Inc.
-*
+* $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
-* The source code in this file ("Source Code") is provided by Linden Lab
-* to you under the terms of the GNU General Public License, version 2.0
-* ("GPL"), unless you have obtained a separate licensing agreement
-* ("Other License"), formally executed by you and Linden Lab. Terms of
-* the GPL can be found in doc/GPL-license.txt in this distribution, or
-* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+* 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.
*
-* There are special exceptions to the terms and conditions of the GPL as
-* it is applied to this Source Code. View the full text of the exception
-* in the file doc/FLOSS-exception.txt in this software distribution, or
-* online at
-* http://secondlifegrid.net/programs/open_source/licensing/flossexception
+* 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.
*
-* By copying, modifying or distributing this software, you acknowledge
-* that you have read and understood your obligations described above,
-* and agree to abide by those obligations.
+* 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
*
-* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
-* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
-* COMPLETENESS OR PERFORMANCE.
+* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloaterinventory.cpp b/indra/newview/llfloaterinventory.cpp
index 4bffd41d29..df769bdd88 100644
--- a/indra/newview/llfloaterinventory.cpp
+++ b/indra/newview/llfloaterinventory.cpp
@@ -2,31 +2,25 @@
* @file llfloaterinventory.cpp
* @brief Implementation of the inventory view and associated stuff.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -60,7 +54,7 @@ LLFloaterInventory::~LLFloaterInventory()
BOOL LLFloaterInventory::postBuild()
{
- mPanelMainInventory = getChild<LLPanelMainInventory>("Inventory Panel");
+ mPanelMainInventory = findChild<LLPanelMainInventory>("Inventory Panel");
return TRUE;
}
diff --git a/indra/newview/llfloaterinventory.h b/indra/newview/llfloaterinventory.h
index dc719bdafe..f59a015b07 100644
--- a/indra/newview/llfloaterinventory.h
+++ b/indra/newview/llfloaterinventory.h
@@ -3,31 +3,25 @@
* @brief LLFloaterInventory, LLInventoryFolder, and LLInventoryItem
* class definition
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloaterjoystick.cpp b/indra/newview/llfloaterjoystick.cpp
index 78bc63ac8c..c37798c330 100644
--- a/indra/newview/llfloaterjoystick.cpp
+++ b/indra/newview/llfloaterjoystick.cpp
@@ -2,31 +2,25 @@
* @file llfloaterjoystick.cpp
* @brief Joystick preferences panel
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -50,19 +44,17 @@
LLFloaterJoystick::LLFloaterJoystick(const LLSD& data)
: LLFloater(data)
{
- //Called from floater reg: LLUICtrlFactory::getInstance()->buildFloater(this, "floater_joystick.xml");
-
initFromSettings();
}
void LLFloaterJoystick::draw()
{
bool joystick_inited = LLViewerJoystick::getInstance()->isJoystickInitialized();
- childSetEnabled("enable_joystick", joystick_inited);
- childSetEnabled("joystick_type", joystick_inited);
+ getChildView("enable_joystick")->setEnabled(joystick_inited);
+ getChildView("joystick_type")->setEnabled(joystick_inited);
std::string desc = LLViewerJoystick::getInstance()->getDescription();
if (desc.empty()) desc = getString("NoDevice");
- childSetText("joystick_type", desc);
+ getChild<LLUICtrl>("joystick_type")->setValue(desc);
LLViewerJoystick* joystick(LLViewerJoystick::getInstance());
for (U32 i = 0; i < 6; i++)
diff --git a/indra/newview/llfloaterjoystick.h b/indra/newview/llfloaterjoystick.h
index 7a2f497c69..dfdb108ff8 100644
--- a/indra/newview/llfloaterjoystick.h
+++ b/indra/newview/llfloaterjoystick.h
@@ -2,31 +2,25 @@
* @file llfloaterjoystick.h
* @brief Joystick preferences panel
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloaterlagmeter.cpp b/indra/newview/llfloaterlagmeter.cpp
index 100cbdb217..68b1770bb2 100644
--- a/indra/newview/llfloaterlagmeter.cpp
+++ b/indra/newview/llfloaterlagmeter.cpp
@@ -2,31 +2,25 @@
* @file llfloaterlagmeter.cpp
* @brief The "Lag-o-Meter" floater used to tell users what is causing lag.
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -53,7 +47,6 @@ const std::string LAG_GOOD_IMAGE_NAME = "lag_status_good.tga";
LLFloaterLagMeter::LLFloaterLagMeter(const LLSD& key)
: LLFloater(key)
{
-// LLUICtrlFactory::getInstance()->buildFloater(this, "floater_lagmeter.xml");
mCommitCallbackRegistrar.add("LagMeter.ClickShrink", boost::bind(&LLFloaterLagMeter::onClickShrink, this));
}
@@ -329,9 +322,9 @@ void LLFloaterLagMeter::updateControls(bool shrink)
setRect(r);
reshape(mMaxWidth, getRect().getHeight());
- childSetText("client", getString("client_text_msg", mStringArgs) + ":");
- childSetText("network", getString("network_text_msg",mStringArgs) + ":");
- childSetText("server", getString("server_text_msg", mStringArgs) + ":");
+ getChild<LLUICtrl>("client")->setValue(getString("client_text_msg", mStringArgs) + ":");
+ getChild<LLUICtrl>("network")->setValue(getString("network_text_msg",mStringArgs) + ":");
+ getChild<LLUICtrl>("server")->setValue(getString("server_text_msg", mStringArgs) + ":");
// usually "<<"
button->setLabel( getString("smaller_label", mStringArgs) );
@@ -344,9 +337,9 @@ void LLFloaterLagMeter::updateControls(bool shrink)
setRect(r);
reshape(mMinWidth, getRect().getHeight());
- childSetText("client", getString("client_text_msg", mStringArgs) );
- childSetText("network",getString("network_text_msg",mStringArgs) );
- childSetText("server", getString("server_text_msg", mStringArgs) );
+ getChild<LLUICtrl>("client")->setValue(getString("client_text_msg", mStringArgs) );
+ getChild<LLUICtrl>("network")->setValue(getString("network_text_msg",mStringArgs) );
+ getChild<LLUICtrl>("server")->setValue(getString("server_text_msg", mStringArgs) );
// usually ">>"
button->setLabel( getString("bigger_label", mStringArgs) );
@@ -356,15 +349,15 @@ void LLFloaterLagMeter::updateControls(bool shrink)
// self->mClientText->setVisible(self->mShrunk);
// self->mClientCause->setVisible(self->mShrunk);
-// self->childSetVisible("client_help", self->mShrunk);
+// self->getChildView("client_help")->setVisible( self->mShrunk);
// self->mNetworkText->setVisible(self->mShrunk);
// self->mNetworkCause->setVisible(self->mShrunk);
-// self->childSetVisible("network_help", self->mShrunk);
+// self->getChildView("network_help")->setVisible( self->mShrunk);
// self->mServerText->setVisible(self->mShrunk);
// self->mServerCause->setVisible(self->mShrunk);
-// self->childSetVisible("server_help", self->mShrunk);
+// self->getChildView("server_help")->setVisible( self->mShrunk);
// self->mShrunk = !self->mShrunk;
}
diff --git a/indra/newview/llfloaterlagmeter.h b/indra/newview/llfloaterlagmeter.h
index 5416bca790..eef6955601 100644
--- a/indra/newview/llfloaterlagmeter.h
+++ b/indra/newview/llfloaterlagmeter.h
@@ -2,31 +2,25 @@
* @file llfloaterlagmeter.h
* @brief The "Lag-o-Meter" floater used to tell users what is causing lag.
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloaterland.cpp b/indra/newview/llfloaterland.cpp
index 7c5586ec96..df0d22561e 100644
--- a/indra/newview/llfloaterland.cpp
+++ b/indra/newview/llfloaterland.cpp
@@ -2,31 +2,25 @@
* @file llfloaterland.cpp
* @brief "About Land" floater, allowing display and editing of land parcel properties.
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -58,6 +52,7 @@
#include "llpanellandaudio.h"
#include "llpanellandmedia.h"
#include "llradiogroup.h"
+#include "llresmgr.h" // getMonetaryString
#include "llscrolllistctrl.h"
#include "llscrolllistitem.h"
#include "llscrolllistcell.h"
@@ -253,8 +248,6 @@ LLFloaterLand::LLFloaterLand(const LLSD& seed)
mFactoryMap["land_media_panel"] = LLCallbackMap(createPanelLandMedia, this);
mFactoryMap["land_access_panel"] = LLCallbackMap(createPanelLandAccess, this);
- //LLUICtrlFactory::getInstance()->buildFloater(this, "floater_about_land.xml", false);
-
sObserver = new LLParcelSelectionObserver();
LLViewerParcelMgr::getInstance()->addObserver( sObserver );
}
@@ -370,7 +363,7 @@ BOOL LLPanelLandGeneral::postBuild()
{
mEditName = getChild<LLLineEditor>("Name");
mEditName->setCommitCallback(onCommitAny, this);
- childSetPrevalidate("Name", LLTextValidate::validateASCIIPrintableNoPipe);
+ getChild<LLLineEditor>("Name")->setPrevalidate(LLTextValidate::validateASCIIPrintableNoPipe);
mEditDesc = getChild<LLTextEditor>("Description");
mEditDesc->setCommitOnFocusLost(TRUE);
@@ -387,7 +380,7 @@ BOOL LLPanelLandGeneral::postBuild()
mLandType = getChild<LLTextBox>("LandTypeText");
mBtnProfile = getChild<LLButton>("Profile...");
- mBtnProfile->setClickedCallback(onClickProfile, this);
+ mBtnProfile->setClickedCallback(boost::bind(&LLPanelLandGeneral::onClickProfile, this));
mTextGroupLabel = getChild<LLTextBox>("Group:");
@@ -739,7 +732,8 @@ void LLPanelLandGeneral::refresh()
cost_per_sqm = (F32)parcel->getSalePrice() / (F32)area;
}
- mSaleInfoForSale1->setTextArg("[PRICE]", llformat("%d", parcel->getSalePrice()));
+ S32 price = parcel->getSalePrice();
+ mSaleInfoForSale1->setTextArg("[PRICE]", LLResMgr::getInstance()->getMonetaryString(price));
mSaleInfoForSale1->setTextArg("[PRICE_PER_SQM]", llformat("%.1f", cost_per_sqm));
if (can_be_sold)
{
@@ -863,11 +857,9 @@ void LLPanelLandGeneral::onClickSetGroup()
}
}
-// static
-void LLPanelLandGeneral::onClickProfile(void* data)
+void LLPanelLandGeneral::onClickProfile()
{
- LLPanelLandGeneral* panelp = (LLPanelLandGeneral*)data;
- LLParcel* parcel = panelp->mParcel->getParcel();
+ LLParcel* parcel = mParcel->getParcel();
if (!parcel) return;
if (parcel->getIsGroupOwned())
@@ -918,13 +910,6 @@ void LLPanelLandGeneral::onClickScriptLimits(void* data)
}
}
-BOOL LLPanelLandGeneral::enableDeedToGroup(void* data)
-{
- LLPanelLandGeneral* panelp = (LLPanelLandGeneral*)data;
- LLParcel* parcel = panelp->mParcel->getParcel();
- return (parcel != NULL) && (parcel->getParcelFlag(PF_ALLOW_DEED_TO_GROUP));
-}
-
// static
void LLPanelLandGeneral::onClickDeed(void*)
{
@@ -1138,7 +1123,7 @@ BOOL LLPanelLandObjects::postBuild()
mCleanOtherObjectsTime->setFocusLostCallback(boost::bind(onLostFocus, _1, this));
mCleanOtherObjectsTime->setCommitCallback(onCommitClean, this);
- childSetPrevalidate("clean other time", LLTextValidate::validateNonNegativeS32);
+ getChild<LLLineEditor>("clean other time")->setPrevalidate(LLTextValidate::validateNonNegativeS32);
mBtnRefresh = getChild<LLButton>("Refresh List");
mBtnRefresh->setClickedCallback(onClickRefresh, this);
@@ -1940,8 +1925,6 @@ BOOL LLPanelLandOptions::postBuild()
mLandingTypeCombo = getChild<LLComboBox>( "landing type");
childSetCommitCallback("landing type", onCommitAny, this);
- getChild<LLTextureCtrl>("snapshot_ctrl")->setFallbackImageName("default_land_picture.j2c");
-
return TRUE;
}
@@ -2088,7 +2071,8 @@ void LLPanelLandOptions::refresh()
LLStyle::Params style;
style.image(LLUI::getUIImage(gFloaterView->getParentFloater(this)->getString("maturity_icon_moderate")));
LLCheckBoxWithTBAcess* fullaccess_mature_ctrl = (LLCheckBoxWithTBAcess*)mMatureCtrl;
- fullaccess_mature_ctrl->getTextBox()->setText(std::string("icon"),style);
+ fullaccess_mature_ctrl->getTextBox()->setText(LLStringExplicit(""));
+ fullaccess_mature_ctrl->getTextBox()->appendImageSegment(style);
fullaccess_mature_ctrl->getTextBox()->appendText(getString("mature_check_mature"), false);
fullaccess_mature_ctrl->setToolTip(getString("mature_check_mature_tooltip"));
fullaccess_mature_ctrl->reshape(fullaccess_mature_ctrl->getRect().getWidth(), fullaccess_mature_ctrl->getRect().getHeight(), FALSE);
@@ -2404,18 +2388,18 @@ void LLPanelLandAccess::refresh()
BOOL use_group = parcel->getParcelFlag(PF_USE_ACCESS_GROUP);
BOOL public_access = !use_access_list && !use_group;
- childSetValue("public_access", public_access );
- childSetValue("GroupCheck", use_group );
+ getChild<LLUICtrl>("public_access")->setValue(public_access );
+ getChild<LLUICtrl>("GroupCheck")->setValue(use_group );
std::string group_name;
gCacheName->getGroupName(parcel->getGroupID(), group_name);
- childSetLabelArg("GroupCheck", "[GROUP]", group_name );
+ getChild<LLUICtrl>("GroupCheck")->setLabelArg("[GROUP]", group_name );
// Allow list
{
S32 count = parcel->mAccessList.size();
- childSetToolTipArg("AccessList", "[LISTED]", llformat("%d",count));
- childSetToolTipArg("AccessList", "[MAX]", llformat("%d",PARCEL_MAX_ACCESS_LIST));
+ getChild<LLUICtrl>("AccessList")->setToolTipArg(LLStringExplicit("[LISTED]"), llformat("%d",count));
+ getChild<LLUICtrl>("AccessList")->setToolTipArg(LLStringExplicit("[MAX]"), llformat("%d",PARCEL_MAX_ACCESS_LIST));
for (access_map_const_iterator cit = parcel->mAccessList.begin();
cit != parcel->mAccessList.end(); ++cit)
@@ -2448,7 +2432,7 @@ void LLPanelLandAccess::refresh()
suffix.append(" " + parent_floater->getString("Remaining") + ")");
}
if (mListAccess)
- mListAccess->addNameItem(entry.mID, ADD_SORTED, TRUE, suffix);
+ mListAccess->addNameItem(entry.mID, ADD_DEFAULT, TRUE, suffix);
}
}
@@ -2456,8 +2440,8 @@ void LLPanelLandAccess::refresh()
{
S32 count = parcel->mBanList.size();
- childSetToolTipArg("BannedList", "[LISTED]", llformat("%d",count));
- childSetToolTipArg("BannedList", "[MAX]", llformat("%d",PARCEL_MAX_ACCESS_LIST));
+ getChild<LLUICtrl>("BannedList")->setToolTipArg(LLStringExplicit("[LISTED]"), llformat("%d",count));
+ getChild<LLUICtrl>("BannedList")->setToolTipArg(LLStringExplicit("[MAX]"), llformat("%d",PARCEL_MAX_ACCESS_LIST));
for (access_map_const_iterator cit = parcel->mBanList.begin();
cit != parcel->mBanList.end(); ++cit)
@@ -2489,7 +2473,7 @@ void LLPanelLandAccess::refresh()
}
suffix.append(" " + parent_floater->getString("Remaining") + ")");
}
- mListBanned->addNameItem(entry.mID, ADD_SORTED, TRUE, suffix);
+ mListBanned->addNameItem(entry.mID, ADD_DEFAULT, TRUE, suffix);
}
}
@@ -2516,27 +2500,27 @@ void LLPanelLandAccess::refresh()
if(parcel->getRegionDenyAnonymousOverride())
{
- childSetValue("limit_payment", TRUE);
- childSetLabelArg( "limit_payment", "[ESTATE_PAYMENT_LIMIT]", getString("access_estate_defined") );
+ getChild<LLUICtrl>("limit_payment")->setValue(TRUE);
+ getChild<LLUICtrl>("limit_payment")->setLabelArg("[ESTATE_PAYMENT_LIMIT]", getString("access_estate_defined") );
}
else
{
- childSetValue("limit_payment", (parcel->getParcelFlag(PF_DENY_ANONYMOUS)));
- childSetLabelArg( "limit_payment", "[ESTATE_PAYMENT_LIMIT]", std::string() );
+ getChild<LLUICtrl>("limit_payment")->setValue((parcel->getParcelFlag(PF_DENY_ANONYMOUS)));
+ getChild<LLUICtrl>("limit_payment")->setLabelArg("[ESTATE_PAYMENT_LIMIT]", std::string() );
}
if(parcel->getRegionDenyAgeUnverifiedOverride())
{
- childSetValue("limit_age_verified", TRUE);
- childSetLabelArg( "limit_age_verified", "[ESTATE_AGE_LIMIT]", getString("access_estate_defined") );
+ getChild<LLUICtrl>("limit_age_verified")->setValue(TRUE);
+ getChild<LLUICtrl>("limit_age_verified")->setLabelArg("[ESTATE_AGE_LIMIT]", getString("access_estate_defined") );
}
else
{
- childSetValue("limit_age_verified", (parcel->getParcelFlag(PF_DENY_AGEUNVERIFIED)));
- childSetLabelArg( "limit_age_verified", "[ESTATE_AGE_LIMIT]", std::string() );
+ getChild<LLUICtrl>("limit_age_verified")->setValue((parcel->getParcelFlag(PF_DENY_AGEUNVERIFIED)));
+ getChild<LLUICtrl>("limit_age_verified")->setLabelArg("[ESTATE_AGE_LIMIT]", std::string() );
}
BOOL use_pass = parcel->getParcelFlag(PF_USE_PASS_LIST);
- childSetValue("PassCheck", use_pass );
+ getChild<LLUICtrl>("PassCheck")->setValue(use_pass );
LLCtrlSelectionInterface* passcombo = childGetSelectionInterface("pass_combo");
if (passcombo)
{
@@ -2547,40 +2531,40 @@ void LLPanelLandAccess::refresh()
}
S32 pass_price = parcel->getPassPrice();
- childSetValue( "PriceSpin", (F32)pass_price );
+ getChild<LLUICtrl>("PriceSpin")->setValue((F32)pass_price );
F32 pass_hours = parcel->getPassHours();
- childSetValue( "HoursSpin", pass_hours );
+ getChild<LLUICtrl>("HoursSpin")->setValue(pass_hours );
}
else
{
- childSetValue("public_access", FALSE);
- childSetValue("limit_payment", FALSE);
- childSetValue("limit_age_verified", FALSE);
- childSetValue("GroupCheck", FALSE);
- childSetLabelArg("GroupCheck", "[GROUP]", LLStringUtil::null );
- childSetValue("PassCheck", FALSE);
- childSetValue("PriceSpin", (F32)PARCEL_PASS_PRICE_DEFAULT);
- childSetValue( "HoursSpin", PARCEL_PASS_HOURS_DEFAULT );
- childSetToolTipArg("AccessList", "[LISTED]", llformat("%d",0));
- childSetToolTipArg("AccessList", "[MAX]", llformat("%d",0));
- childSetToolTipArg("BannedList", "[LISTED]", llformat("%d",0));
- childSetToolTipArg("BannedList", "[MAX]", llformat("%d",0));
+ getChild<LLUICtrl>("public_access")->setValue(FALSE);
+ getChild<LLUICtrl>("limit_payment")->setValue(FALSE);
+ getChild<LLUICtrl>("limit_age_verified")->setValue(FALSE);
+ getChild<LLUICtrl>("GroupCheck")->setValue(FALSE);
+ getChild<LLUICtrl>("GroupCheck")->setLabelArg("[GROUP]", LLStringUtil::null );
+ getChild<LLUICtrl>("PassCheck")->setValue(FALSE);
+ getChild<LLUICtrl>("PriceSpin")->setValue((F32)PARCEL_PASS_PRICE_DEFAULT);
+ getChild<LLUICtrl>("HoursSpin")->setValue(PARCEL_PASS_HOURS_DEFAULT );
+ getChild<LLUICtrl>("AccessList")->setToolTipArg(LLStringExplicit("[LISTED]"), llformat("%d",0));
+ getChild<LLUICtrl>("AccessList")->setToolTipArg(LLStringExplicit("[MAX]"), llformat("%d",0));
+ getChild<LLUICtrl>("BannedList")->setToolTipArg(LLStringExplicit("[LISTED]"), llformat("%d",0));
+ getChild<LLUICtrl>("BannedList")->setToolTipArg(LLStringExplicit("[MAX]"), llformat("%d",0));
}
}
void LLPanelLandAccess::refresh_ui()
{
- childSetEnabled("public_access", FALSE);
- childSetEnabled("limit_payment", FALSE);
- childSetEnabled("limit_age_verified", FALSE);
- childSetEnabled("GroupCheck", FALSE);
- childSetEnabled("PassCheck", FALSE);
- childSetEnabled("pass_combo", FALSE);
- childSetEnabled("PriceSpin", FALSE);
- childSetEnabled("HoursSpin", FALSE);
- childSetEnabled("AccessList", FALSE);
- childSetEnabled("BannedList", FALSE);
+ getChildView("public_access")->setEnabled(FALSE);
+ getChildView("limit_payment")->setEnabled(FALSE);
+ getChildView("limit_age_verified")->setEnabled(FALSE);
+ getChildView("GroupCheck")->setEnabled(FALSE);
+ getChildView("PassCheck")->setEnabled(FALSE);
+ getChildView("pass_combo")->setEnabled(FALSE);
+ getChildView("PriceSpin")->setEnabled(FALSE);
+ getChildView("HoursSpin")->setEnabled(FALSE);
+ getChildView("AccessList")->setEnabled(FALSE);
+ getChildView("BannedList")->setEnabled(FALSE);
LLParcel *parcel = mParcel->getParcel();
if (parcel)
@@ -2588,73 +2572,73 @@ void LLPanelLandAccess::refresh_ui()
BOOL can_manage_allowed = LLViewerParcelMgr::isParcelModifiableByAgent(parcel, GP_LAND_MANAGE_ALLOWED);
BOOL can_manage_banned = LLViewerParcelMgr::isParcelModifiableByAgent(parcel, GP_LAND_MANAGE_BANNED);
- childSetEnabled("public_access", can_manage_allowed);
- BOOL public_access = childGetValue("public_access").asBoolean();
+ getChildView("public_access")->setEnabled(can_manage_allowed);
+ BOOL public_access = getChild<LLUICtrl>("public_access")->getValue().asBoolean();
if (public_access)
{
bool override = false;
if(parcel->getRegionDenyAnonymousOverride())
{
override = true;
- childSetEnabled("limit_payment", FALSE);
+ getChildView("limit_payment")->setEnabled(FALSE);
}
else
{
- childSetEnabled("limit_payment", can_manage_allowed);
+ getChildView("limit_payment")->setEnabled(can_manage_allowed);
}
if(parcel->getRegionDenyAgeUnverifiedOverride())
{
override = true;
- childSetEnabled("limit_age_verified", FALSE);
+ getChildView("limit_age_verified")->setEnabled(FALSE);
}
else
{
- childSetEnabled("limit_age_verified", can_manage_allowed);
+ getChildView("limit_age_verified")->setEnabled(can_manage_allowed);
}
if (override)
{
- childSetToolTip("Only Allow", getString("estate_override"));
+ getChildView("Only Allow")->setToolTip(getString("estate_override"));
}
else
{
- childSetToolTip("Only Allow", std::string());
+ getChildView("Only Allow")->setToolTip(std::string());
}
- childSetEnabled("GroupCheck", FALSE);
- childSetEnabled("PassCheck", FALSE);
- childSetEnabled("pass_combo", FALSE);
- childSetEnabled("AccessList", FALSE);
+ getChildView("GroupCheck")->setEnabled(FALSE);
+ getChildView("PassCheck")->setEnabled(FALSE);
+ getChildView("pass_combo")->setEnabled(FALSE);
+ getChildView("AccessList")->setEnabled(FALSE);
}
else
{
- childSetEnabled("limit_payment", FALSE);
- childSetEnabled("limit_age_verified", FALSE);
+ getChildView("limit_payment")->setEnabled(FALSE);
+ getChildView("limit_age_verified")->setEnabled(FALSE);
std::string group_name;
if (gCacheName->getGroupName(parcel->getGroupID(), group_name))
{
- childSetEnabled("GroupCheck", can_manage_allowed);
+ getChildView("GroupCheck")->setEnabled(can_manage_allowed);
}
- BOOL group_access = childGetValue("GroupCheck").asBoolean();
- BOOL sell_passes = childGetValue("PassCheck").asBoolean();
- childSetEnabled("PassCheck", can_manage_allowed);
+ BOOL group_access = getChild<LLUICtrl>("GroupCheck")->getValue().asBoolean();
+ BOOL sell_passes = getChild<LLUICtrl>("PassCheck")->getValue().asBoolean();
+ getChildView("PassCheck")->setEnabled(can_manage_allowed);
if (sell_passes)
{
- childSetEnabled("pass_combo", group_access && can_manage_allowed);
- childSetEnabled("PriceSpin", can_manage_allowed);
- childSetEnabled("HoursSpin", can_manage_allowed);
+ getChildView("pass_combo")->setEnabled(group_access && can_manage_allowed);
+ getChildView("PriceSpin")->setEnabled(can_manage_allowed);
+ getChildView("HoursSpin")->setEnabled(can_manage_allowed);
}
}
- childSetEnabled("AccessList", can_manage_allowed);
+ getChildView("AccessList")->setEnabled(can_manage_allowed);
S32 allowed_list_count = parcel->mAccessList.size();
- childSetEnabled("add_allowed", can_manage_allowed && allowed_list_count < PARCEL_MAX_ACCESS_LIST);
+ getChildView("add_allowed")->setEnabled(can_manage_allowed && allowed_list_count < PARCEL_MAX_ACCESS_LIST);
BOOL has_selected = mListAccess->getSelectionInterface()->getFirstSelectedIndex() >= 0;
- childSetEnabled("remove_allowed", can_manage_allowed && has_selected);
+ getChildView("remove_allowed")->setEnabled(can_manage_allowed && has_selected);
- childSetEnabled("BannedList", can_manage_banned);
+ getChildView("BannedList")->setEnabled(can_manage_banned);
S32 banned_list_count = parcel->mBanList.size();
- childSetEnabled("add_banned", can_manage_banned && banned_list_count < PARCEL_MAX_ACCESS_LIST);
+ getChildView("add_banned")->setEnabled(can_manage_banned && banned_list_count < PARCEL_MAX_ACCESS_LIST);
has_selected = mListBanned->getSelectionInterface()->getFirstSelectedIndex() >= 0;
- childSetEnabled("remove_banned", can_manage_banned && has_selected);
+ getChildView("remove_banned")->setEnabled(can_manage_banned && has_selected);
}
}
@@ -2668,7 +2652,7 @@ void LLPanelLandAccess::refreshNames()
{
gCacheName->getGroupName(parcel->getGroupID(), group_name);
}
- childSetLabelArg("GroupCheck", "[GROUP]", group_name);
+ getChild<LLUICtrl>("GroupCheck")->setLabelArg("[GROUP]", group_name);
}
@@ -2691,13 +2675,13 @@ void LLPanelLandAccess::onCommitPublicAccess(LLUICtrl *ctrl, void *userdata)
}
// If we disabled public access, enable group access by default (if applicable)
- BOOL public_access = self->childGetValue("public_access").asBoolean();
+ BOOL public_access = self->getChild<LLUICtrl>("public_access")->getValue().asBoolean();
if (public_access == FALSE)
{
std::string group_name;
if (gCacheName->getGroupName(parcel->getGroupID(), group_name))
{
- self->childSetValue("GroupCheck", public_access ? FALSE : TRUE);
+ self->getChild<LLUICtrl>("GroupCheck")->setValue(public_access ? FALSE : TRUE);
}
}
@@ -2716,8 +2700,8 @@ void LLPanelLandAccess::onCommitAny(LLUICtrl *ctrl, void *userdata)
}
// Extract data from UI
- BOOL public_access = self->childGetValue("public_access").asBoolean();
- BOOL use_access_group = self->childGetValue("GroupCheck").asBoolean();
+ BOOL public_access = self->getChild<LLUICtrl>("public_access")->getValue().asBoolean();
+ BOOL use_access_group = self->getChild<LLUICtrl>("GroupCheck")->getValue().asBoolean();
if (use_access_group)
{
std::string group_name;
@@ -2735,13 +2719,13 @@ void LLPanelLandAccess::onCommitAny(LLUICtrl *ctrl, void *userdata)
{
use_access_list = FALSE;
use_access_group = FALSE;
- limit_payment = self->childGetValue("limit_payment").asBoolean();
- limit_age_verified = self->childGetValue("limit_age_verified").asBoolean();
+ limit_payment = self->getChild<LLUICtrl>("limit_payment")->getValue().asBoolean();
+ limit_age_verified = self->getChild<LLUICtrl>("limit_age_verified")->getValue().asBoolean();
}
else
{
use_access_list = TRUE;
- use_pass_list = self->childGetValue("PassCheck").asBoolean();
+ use_pass_list = self->getChild<LLUICtrl>("PassCheck")->getValue().asBoolean();
if (use_access_group && use_pass_list)
{
LLCtrlSelectionInterface* passcombo = self->childGetSelectionInterface("pass_combo");
@@ -2755,8 +2739,8 @@ void LLPanelLandAccess::onCommitAny(LLUICtrl *ctrl, void *userdata)
}
}
- S32 pass_price = llfloor((F32)self->childGetValue("PriceSpin").asReal());
- F32 pass_hours = (F32)self->childGetValue("HoursSpin").asReal();
+ S32 pass_price = llfloor((F32)self->getChild<LLUICtrl>("PriceSpin")->getValue().asReal());
+ F32 pass_hours = (F32)self->getChild<LLUICtrl>("HoursSpin")->getValue().asReal();
// Push data into current parcel
parcel->setParcelFlag(PF_USE_ACCESS_GROUP, use_access_group);
@@ -3022,8 +3006,9 @@ void insert_maturity_into_textbox(LLTextBox* target_textbox, LLFloater* names_fl
std::string text_after_rating = str_to_parse.substr(maturity_pos + MATURITY.length());
target_textbox->setText(text_before_rating);
- // any text may be here instead of "icon" except ""
- target_textbox->appendText(std::string("icon"), false, style);
+
+ target_textbox->appendImageSegment(style);
+
target_textbox->appendText(LLViewerParcelMgr::getInstance()->getSelectionRegion()->getSimAccessString(), false);
target_textbox->appendText(text_after_rating, false);
}
diff --git a/indra/newview/llfloaterland.h b/indra/newview/llfloaterland.h
index 0a743e5215..309e0ee4e1 100644
--- a/indra/newview/llfloaterland.h
+++ b/indra/newview/llfloaterland.h
@@ -3,31 +3,25 @@
* @author James Cook
* @brief "About Land" floater, allowing display and editing of land parcel properties.
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -144,9 +138,8 @@ public:
virtual void draw();
void setGroup(const LLUUID& group_id);
- static void onClickProfile(void*);
- void onClickSetGroup();
- static BOOL enableDeedToGroup(void*);
+ void onClickProfile();
+ void onClickSetGroup();
static void onClickDeed(void*);
static void onClickBuyLand(void* data);
static void onClickScriptLimits(void* data);
diff --git a/indra/newview/llfloaterlandholdings.cpp b/indra/newview/llfloaterlandholdings.cpp
index 19552ca9c9..98e9b74278 100644
--- a/indra/newview/llfloaterlandholdings.cpp
+++ b/indra/newview/llfloaterlandholdings.cpp
@@ -2,31 +2,25 @@
* @file llfloaterlandholdings.cpp
* @brief "My Land" floater showing all your land parcels.
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -66,7 +60,6 @@ LLFloaterLandHoldings::LLFloaterLandHoldings(const LLSD& key)
mSortColumn(""),
mSortAscending(TRUE)
{
-// LLUICtrlFactory::getInstance()->buildFloater(floater, "floater_land_holdings.xml");
}
BOOL LLFloaterLandHoldings::postBuild()
@@ -75,10 +68,9 @@ BOOL LLFloaterLandHoldings::postBuild()
childSetAction("Show on Map", onClickMap, this);
// Grant list
- getChild<LLScrollListCtrl>("grant list")->setDoubleClickCallback(onGrantList, this);
-
- LLCtrlListInterface *list = childGetListInterface("grant list");
- if (!list) return TRUE;
+ LLScrollListCtrl* grant_list = getChild<LLScrollListCtrl>("grant list");
+ grant_list->sortByColumnIndex(0, TRUE);
+ grant_list->setDoubleClickCallback(onGrantList, this);
S32 count = gAgent.mGroups.count();
for(S32 i = 0; i < count; ++i)
@@ -97,7 +89,7 @@ BOOL LLFloaterLandHoldings::postBuild()
element["columns"][1]["value"] = areastr;
element["columns"][1]["font"] = "SANSSERIF";
- list->addElement(element, ADD_SORTED);
+ grant_list->addElement(element);
}
center();
@@ -145,8 +137,8 @@ void LLFloaterLandHoldings::refresh()
enable_btns = TRUE;
}
- childSetEnabled("Teleport", enable_btns);
- childSetEnabled("Show on Map", enable_btns);
+ getChildView("Teleport")->setEnabled(enable_btns);
+ getChildView("Show on Map")->setEnabled(enable_btns);
refreshAggregates();
}
@@ -334,7 +326,7 @@ void LLFloaterLandHoldings::refreshAggregates()
S32 current_area = gStatusBar->getSquareMetersCommitted();
S32 available_area = gStatusBar->getSquareMetersLeft();
- childSetTextArg("allowed_text", "[AREA]", llformat("%d",allowed_area));
- childSetTextArg("current_text", "[AREA]", llformat("%d",current_area));
- childSetTextArg("available_text", "[AREA]", llformat("%d",available_area));
+ getChild<LLUICtrl>("allowed_text")->setTextArg("[AREA]", llformat("%d",allowed_area));
+ getChild<LLUICtrl>("current_text")->setTextArg("[AREA]", llformat("%d",current_area));
+ getChild<LLUICtrl>("available_text")->setTextArg("[AREA]", llformat("%d",available_area));
}
diff --git a/indra/newview/llfloaterlandholdings.h b/indra/newview/llfloaterlandholdings.h
index 471ddf7f44..d1d510bb40 100644
--- a/indra/newview/llfloaterlandholdings.h
+++ b/indra/newview/llfloaterlandholdings.h
@@ -2,31 +2,25 @@
* @file llfloaterlandholdings.h
* @brief "My Land" floater showing all your land parcels.
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloatermap.cpp b/indra/newview/llfloatermap.cpp
index e74bfae026..4a324773e9 100644
--- a/indra/newview/llfloatermap.cpp
+++ b/indra/newview/llfloatermap.cpp
@@ -2,31 +2,25 @@
* @file llfloatermap.cpp
* @brief The "mini-map" or radar in the upper right part of the screen.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -53,7 +47,10 @@
//
// Constants
//
-const F32 MAP_MINOR_DIR_THRESHOLD = 0.08f;
+
+// The minor cardinal direction labels are hidden if their height is more
+// than this proportion of the map.
+const F32 MAP_MINOR_DIR_THRESHOLD = 0.07f;
const S32 MAP_PADDING_LEFT = 0;
const S32 MAP_PADDING_TOP = 2;
const S32 MAP_PADDING_RIGHT = 2;
@@ -75,7 +72,6 @@ LLFloaterMap::LLFloaterMap(const LLSD& key)
mTextBoxSouthWest(NULL),
mMap(NULL)
{
- //Called from floater reg: LLUICtrlFactory::getInstance()->buildFloater(this, "floater_map.xml", FALSE);
}
LLFloaterMap::~LLFloaterMap()
@@ -284,4 +280,15 @@ void LLFloaterMap::handleStopTracking (const LLSD& userdata)
LLTracker::stopTracking ((void*)LLTracker::isTracking(NULL));
}
}
-
+void LLFloaterMap::setMinimized(BOOL b)
+{
+ LLFloater::setMinimized(b);
+ if(b)
+ {
+ setTitle(getString("mini_map_caption"));
+ }
+ else
+ {
+ setTitle("");
+ }
+}
diff --git a/indra/newview/llfloatermap.h b/indra/newview/llfloatermap.h
index 3c063adfb8..4cbb48fb3e 100644
--- a/indra/newview/llfloatermap.h
+++ b/indra/newview/llfloatermap.h
@@ -2,31 +2,25 @@
* @file llfloatermap.h
* @brief The "mini-map" or radar in the upper right part of the screen.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -55,6 +49,8 @@ public:
/*virtual*/ void draw();
/*virtual*/ void onFocusLost();
/*virtual*/ void onFocusReceived();
+
+ /*virtual*/ void setMinimized(BOOL b);
private:
void handleZoom(const LLSD& userdata);
diff --git a/indra/newview/llfloatermediabrowser.cpp b/indra/newview/llfloatermediabrowser.cpp
index 5673550fbe..d20092e344 100644
--- a/indra/newview/llfloatermediabrowser.cpp
+++ b/indra/newview/llfloatermediabrowser.cpp
@@ -2,31 +2,25 @@
* @file llfloatermediabrowser.cpp
* @brief media browser floater - uses embedded media browser control
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -51,7 +45,11 @@
#include "llviewermedia.h"
#include "llviewerparcelmedia.h"
#include "llcombobox.h"
+#include "llwindow.h"
+#include "lllayoutstack.h"
+#include "llcheckboxctrl.h"
+#include "llnotifications.h"
// TEMP
#include "llsdutil.h"
@@ -59,18 +57,132 @@
LLFloaterMediaBrowser::LLFloaterMediaBrowser(const LLSD& key)
: LLFloater(key)
{
-// LLUICtrlFactory::getInstance()->buildFloater(this, "floater_media_browser.xml");
+}
+
+//static
+void LLFloaterMediaBrowser::create(const std::string &url, const std::string& target, const std::string& uuid)
+{
+ lldebugs << "url = " << url << ", target = " << target << ", uuid = " << uuid << llendl;
+
+ std::string tag = target;
+
+ if(target.empty() || target == "_blank")
+ {
+ if(!uuid.empty())
+ {
+ tag = uuid;
+ }
+ else
+ {
+ // create a unique tag for this instance
+ LLUUID id;
+ id.generate();
+ tag = id.asString();
+ }
+ }
+
+ S32 browser_window_limit = gSavedSettings.getS32("MediaBrowserWindowLimit");
+
+ if(LLFloaterReg::findInstance("media_browser", tag) != NULL)
+ {
+ // There's already a media browser for this tag, so we won't be opening a new window.
+ }
+ else if(browser_window_limit != 0)
+ {
+ // showInstance will open a new window. Figure out how many media browsers are already open,
+ // and close the least recently opened one if this will put us over the limit.
+
+ LLFloaterReg::const_instance_list_t &instances = LLFloaterReg::getFloaterList("media_browser");
+ lldebugs << "total instance count is " << instances.size() << llendl;
+
+ for(LLFloaterReg::const_instance_list_t::const_iterator iter = instances.begin(); iter != instances.end(); iter++)
+ {
+ lldebugs << " " << (*iter)->getKey() << llendl;
+ }
+
+ if(instances.size() >= (size_t)browser_window_limit)
+ {
+ // Destroy the least recently opened instance
+ (*instances.begin())->closeFloater();
+ }
+ }
+
+ LLFloaterMediaBrowser *browser = dynamic_cast<LLFloaterMediaBrowser*> (LLFloaterReg::showInstance("media_browser", tag));
+ llassert(browser);
+ if(browser)
+ {
+ browser->mUUID = uuid;
+
+ // tell the browser instance to load the specified URL
+ browser->openMedia(url, target);
+ LLViewerMedia::proxyWindowOpened(target, uuid);
+ }
+}
+
+//static
+void LLFloaterMediaBrowser::closeRequest(const std::string &uuid)
+{
+ LLFloaterReg::const_instance_list_t& inst_list = LLFloaterReg::getFloaterList("media_browser");
+ lldebugs << "instance list size is " << inst_list.size() << ", incoming uuid is " << uuid << llendl;
+ for (LLFloaterReg::const_instance_list_t::const_iterator iter = inst_list.begin(); iter != inst_list.end(); ++iter)
+ {
+ LLFloaterMediaBrowser* i = dynamic_cast<LLFloaterMediaBrowser*>(*iter);
+ lldebugs << " " << i->mUUID << llendl;
+ if (i && i->mUUID == uuid)
+ {
+ i->closeFloater(false);
+ return;
+ }
+ }
+}
+//static
+void LLFloaterMediaBrowser::geometryChanged(const std::string &uuid, S32 x, S32 y, S32 width, S32 height)
+{
+ LLFloaterReg::const_instance_list_t& inst_list = LLFloaterReg::getFloaterList("media_browser");
+ lldebugs << "instance list size is " << inst_list.size() << ", incoming uuid is " << uuid << llendl;
+ for (LLFloaterReg::const_instance_list_t::const_iterator iter = inst_list.begin(); iter != inst_list.end(); ++iter)
+ {
+ LLFloaterMediaBrowser* i = dynamic_cast<LLFloaterMediaBrowser*>(*iter);
+ lldebugs << " " << i->mUUID << llendl;
+ if (i && i->mUUID == uuid)
+ {
+ i->geometryChanged(x, y, width, height);
+ return;
+ }
+}
}
+
+void LLFloaterMediaBrowser::geometryChanged(S32 x, S32 y, S32 width, S32 height)
+{
+ // Make sure the layout of the browser control is updated, so this calculation is correct.
+ LLLayoutStack::updateClass();
+
+ // TODO: need to adjust size and constrain position to make sure floaters aren't moved outside the window view, etc.
+ LLCoordWindow window_size;
+ getWindow()->getSize(&window_size);
+
+ // Adjust width and height for the size of the chrome on the Media Browser window.
+ width += getRect().getWidth() - mBrowser->getRect().getWidth();
+ height += getRect().getHeight() - mBrowser->getRect().getHeight();
+
+ LLRect geom;
+ geom.setOriginAndSize(x, window_size.mY - (y + height), width, height);
+
+ lldebugs << "geometry change: " << geom << llendl;
+
+ handleReshape(geom,false);
+}
+
void LLFloaterMediaBrowser::draw()
{
- childSetEnabled("go", !mAddressCombo->getValue().asString().empty());
+ getChildView("go")->setEnabled(!mAddressCombo->getValue().asString().empty());
LLParcel* parcel = LLViewerParcelMgr::getInstance()->getAgentParcel();
if(parcel)
{
- childSetVisible("parcel_owner_controls", LLViewerParcelMgr::isParcelModifiableByAgent(parcel, GP_LAND_CHANGE_MEDIA));
- childSetEnabled("assign", !mAddressCombo->getValue().asString().empty());
+ getChildView("parcel_owner_controls")->setVisible( LLViewerParcelMgr::isParcelModifiableByAgent(parcel, GP_LAND_CHANGE_MEDIA));
+ getChildView("assign")->setEnabled(!mAddressCombo->getValue().asString().empty());
}
bool show_time_controls = false;
bool media_playing = false;
@@ -83,17 +195,17 @@ void LLFloaterMediaBrowser::draw()
media_playing = media_plugin->getStatus() == LLPluginClassMediaOwner::MEDIA_PLAYING;
}
}
- childSetVisible("rewind", show_time_controls);
- childSetVisible("play", show_time_controls && ! media_playing);
- childSetVisible("pause", show_time_controls && media_playing);
- childSetVisible("stop", show_time_controls);
- childSetVisible("seek", show_time_controls);
+ getChildView("rewind")->setVisible( show_time_controls);
+ getChildView("play")->setVisible( show_time_controls && ! media_playing);
+ getChildView("pause")->setVisible( show_time_controls && media_playing);
+ getChildView("stop")->setVisible( show_time_controls);
+ getChildView("seek")->setVisible( show_time_controls);
- childSetEnabled("play", ! media_playing);
- childSetEnabled("stop", media_playing);
+ getChildView("play")->setEnabled(! media_playing);
+ getChildView("stop")->setEnabled(media_playing);
- childSetEnabled("back", mBrowser->canNavigateBack());
- childSetEnabled("forward", mBrowser->canNavigateForward());
+ getChildView("back")->setEnabled(mBrowser->canNavigateBack());
+ getChildView("forward")->setEnabled(mBrowser->canNavigateForward());
LLFloater::draw();
}
@@ -105,6 +217,7 @@ BOOL LLFloaterMediaBrowser::postBuild()
mAddressCombo = getChild<LLComboBox>("address");
mAddressCombo->setCommitCallback(onEnterAddress, this);
+ mAddressCombo->sortByName();
childSetAction("back", onClickBack, this);
childSetAction("forward", onClickForward, this);
@@ -120,6 +233,7 @@ BOOL LLFloaterMediaBrowser::postBuild()
childSetAction("assign", onClickAssign, this);
buildURLHistory();
+
return TRUE;
}
@@ -160,6 +274,7 @@ std::string LLFloaterMediaBrowser::getSupportURL()
//virtual
void LLFloaterMediaBrowser::onClose(bool app_quitting)
{
+ LLViewerMedia::proxyWindowClosed(mUUID);
//setVisible(FALSE);
destroy();
}
@@ -173,10 +288,20 @@ void LLFloaterMediaBrowser::handleMediaEvent(LLPluginClassMedia* self, EMediaEve
else if(event == MEDIA_EVENT_NAVIGATE_COMPLETE)
{
// This is the event these flags are sent with.
- childSetEnabled("back", self->getHistoryBackAvailable());
- childSetEnabled("forward", self->getHistoryForwardAvailable());
+ getChildView("back")->setEnabled(self->getHistoryBackAvailable());
+ getChildView("forward")->setEnabled(self->getHistoryForwardAvailable());
+ }
+ else if(event == MEDIA_EVENT_CLOSE_REQUEST)
+ {
+ // The browser instance wants its window closed.
+ closeFloater();
+ }
+ else if(event == MEDIA_EVENT_GEOMETRY_CHANGE)
+ {
+ geometryChanged(self->getGeometryX(), self->getGeometryY(), self->getGeometryWidth(), self->getGeometryHeight());
}
}
+
void LLFloaterMediaBrowser::setCurrentURL(const std::string& url)
{
mCurrentURL = url;
@@ -185,22 +310,16 @@ void LLFloaterMediaBrowser::setCurrentURL(const std::string& url)
if (mCurrentURL != "about:blank")
{
mAddressCombo->remove(mCurrentURL);
- mAddressCombo->add(mCurrentURL, ADD_SORTED);
+ mAddressCombo->add(mCurrentURL);
mAddressCombo->selectByValue(mCurrentURL);
// Serialize url history
LLURLHistory::removeURL("browser", mCurrentURL);
LLURLHistory::addURL("browser", mCurrentURL);
}
- childSetEnabled("back", mBrowser->canNavigateBack());
- childSetEnabled("forward", mBrowser->canNavigateForward());
- childSetEnabled("reload", TRUE);
-}
-
-void LLFloaterMediaBrowser::onOpen(const LLSD& media_url)
-{
- LLFloater::onOpen(media_url);
- openMedia(media_url.asString());
+ getChildView("back")->setEnabled(mBrowser->canNavigateBack());
+ getChildView("forward")->setEnabled(mBrowser->canNavigateForward());
+ getChildView("reload")->setEnabled(TRUE);
}
//static
@@ -328,9 +447,12 @@ void LLFloaterMediaBrowser::onClickSeek(void* user_data)
if(self->mBrowser->getMediaPlugin())
self->mBrowser->getMediaPlugin()->start(2.0f);
}
-void LLFloaterMediaBrowser::openMedia(const std::string& media_url)
+void LLFloaterMediaBrowser::openMedia(const std::string& media_url, const std::string& target)
{
mBrowser->setHomePageUrl(media_url);
+ mBrowser->setTarget(target);
mBrowser->navigateTo(media_url);
setCurrentURL(media_url);
}
+
+
diff --git a/indra/newview/llfloatermediabrowser.h b/indra/newview/llfloatermediabrowser.h
index c315f9e797..152d221a01 100644
--- a/indra/newview/llfloatermediabrowser.h
+++ b/indra/newview/llfloatermediabrowser.h
@@ -2,31 +2,25 @@
* @file llfloatermediabrowser.h
* @brief media browser floater - uses embedded media browser control
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -39,23 +33,30 @@
class LLComboBox;
class LLMediaCtrl;
+class LLNotification;
class LLFloaterMediaBrowser :
public LLFloater,
public LLViewerMediaObserver
{
public:
+ LOG_CLASS(LLFloaterMediaBrowser);
LLFloaterMediaBrowser(const LLSD& key);
+ static void create(const std::string &url, const std::string& target, const std::string& uuid = LLStringUtil::null);
+
+ static void closeRequest(const std::string &uuid);
+ static void geometryChanged(const std::string &uuid, S32 x, S32 y, S32 width, S32 height);
+ void geometryChanged(S32 x, S32 y, S32 width, S32 height);
+
/*virtual*/ BOOL postBuild();
/*virtual*/ void onClose(bool app_quitting);
/*virtual*/ void draw();
- /*virtual*/ void onOpen(const LLSD& key);
// inherited from LLViewerMediaObserver
/*virtual*/ void handleMediaEvent(LLPluginClassMedia* self, EMediaEvent event);
- void openMedia(const std::string& media_url);
+ void openMedia(const std::string& media_url, const std::string& target);
void buildURLHistory();
std::string getSupportURL();
void setCurrentURL(const std::string& url);
@@ -77,6 +78,8 @@ private:
LLMediaCtrl* mBrowser;
LLComboBox* mAddressCombo;
std::string mCurrentURL;
+ boost::shared_ptr<LLNotification> mCurNotification;
+ std::string mUUID;
};
#endif // LL_LLFLOATERMEDIABROWSER_H
diff --git a/indra/newview/llfloatermediasettings.cpp b/indra/newview/llfloatermediasettings.cpp
index ee68faf84b..b5f1b967df 100644
--- a/indra/newview/llfloatermediasettings.cpp
+++ b/indra/newview/llfloatermediasettings.cpp
@@ -2,31 +2,25 @@
* @file llfloatermediasettings.cpp
* @brief Tabbed dialog for media settings - class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloatermediasettings.h b/indra/newview/llfloatermediasettings.h
index cdfd5aa8ae..ecc55d2cbc 100644
--- a/indra/newview/llfloatermediasettings.h
+++ b/indra/newview/llfloatermediasettings.h
@@ -2,31 +2,25 @@
* @file llfloatermediasettings.cpp
* @brief Tabbed dialog for media settings - class definition
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloatermemleak.cpp b/indra/newview/llfloatermemleak.cpp
index 529bd68e03..58931d112e 100644
--- a/indra/newview/llfloatermemleak.cpp
+++ b/indra/newview/llfloatermemleak.cpp
@@ -2,31 +2,25 @@
* @file llfloatermemleak.cpp
* @brief LLFloatermemleak class definition
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -64,7 +58,7 @@ LLFloaterMemLeak::LLFloaterMemLeak(const LLSD& key)
BOOL LLFloaterMemLeak::postBuild(void)
{
F32 a, b ;
- a = childGetValue("leak_speed").asReal();
+ a = getChild<LLUICtrl>("leak_speed")->getValue().asReal();
if(a > (F32)(0xFFFFFFFF))
{
sMemLeakingSpeed = 0xFFFFFFFF ;
@@ -73,7 +67,7 @@ BOOL LLFloaterMemLeak::postBuild(void)
{
sMemLeakingSpeed = (U32)a ;
}
- b = childGetValue("max_leak").asReal();
+ b = getChild<LLUICtrl>("max_leak")->getValue().asReal();
if(b > (F32)0xFFF)
{
sMaxLeakedMem = 0xFFFFFFFF ;
@@ -150,7 +144,7 @@ void LLFloaterMemLeak::idle()
void LLFloaterMemLeak::onChangeLeakingSpeed()
{
F32 tmp ;
- tmp =childGetValue("leak_speed").asReal();
+ tmp =getChild<LLUICtrl>("leak_speed")->getValue().asReal();
if(tmp > (F32)0xFFFFFFFF)
{
@@ -167,7 +161,7 @@ void LLFloaterMemLeak::onChangeMaxMemLeaking()
{
F32 tmp ;
- tmp =childGetValue("max_leak").asReal();
+ tmp =getChild<LLUICtrl>("max_leak")->getValue().asReal();
if(tmp > (F32)0xFFF)
{
sMaxLeakedMem = 0xFFFFFFFF ;
@@ -206,22 +200,22 @@ void LLFloaterMemLeak::draw()
{
std::string bytes_string;
LLResMgr::getInstance()->getIntegerString(bytes_string, sTotalLeaked >> 10 );
- childSetTextArg("total_leaked_label", "[SIZE]", bytes_string);
+ getChild<LLUICtrl>("total_leaked_label")->setTextArg("[SIZE]", bytes_string);
}
else
{
- childSetTextArg("total_leaked_label", "[SIZE]", LLStringExplicit("0"));
+ getChild<LLUICtrl>("total_leaked_label")->setTextArg("[SIZE]", LLStringExplicit("0"));
}
if(sbAllocationFailed)
{
- childSetTextArg("note_label_1", "[NOTE1]", LLStringExplicit("Memory leaking simulation stops. Reduce leaking speed or"));
- childSetTextArg("note_label_2", "[NOTE2]", LLStringExplicit("increase max leaked memory, then press Start to continue."));
+ getChild<LLUICtrl>("note_label_1")->setTextArg("[NOTE1]", LLStringExplicit("Memory leaking simulation stops. Reduce leaking speed or"));
+ getChild<LLUICtrl>("note_label_2")->setTextArg("[NOTE2]", LLStringExplicit("increase max leaked memory, then press Start to continue."));
}
else
{
- childSetTextArg("note_label_1", "[NOTE1]", LLStringExplicit(""));
- childSetTextArg("note_label_2", "[NOTE2]", LLStringExplicit(""));
+ getChild<LLUICtrl>("note_label_1")->setTextArg("[NOTE1]", LLStringExplicit(""));
+ getChild<LLUICtrl>("note_label_2")->setTextArg("[NOTE2]", LLStringExplicit(""));
}
LLFloater::draw();
diff --git a/indra/newview/llfloatermemleak.h b/indra/newview/llfloatermemleak.h
index 763af943ba..86416eaa07 100644
--- a/indra/newview/llfloatermemleak.h
+++ b/indra/newview/llfloatermemleak.h
@@ -2,31 +2,25 @@
* @file llfloatermemleak.h
* @brief memory leaking simulation window, debug use only
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloaternamedesc.cpp b/indra/newview/llfloaternamedesc.cpp
index 159ce41b79..ae95d4392a 100644
--- a/indra/newview/llfloaternamedesc.cpp
+++ b/indra/newview/llfloaternamedesc.cpp
@@ -2,31 +2,25 @@
* @file llfloaternamedesc.cpp
* @brief LLFloaterNameDesc class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -105,7 +99,7 @@ BOOL LLFloaterNameDesc::postBuild()
r.setLeftTopAndSize( PREVIEW_HPAD, y, line_width, PREVIEW_LINE_HEIGHT );
getChild<LLUICtrl>("name_form")->setCommitCallback(boost::bind(&LLFloaterNameDesc::doCommit, this));
- childSetValue("name_form", LLSD(asset_name));
+ getChild<LLUICtrl>("name_form")->setValue(LLSD(asset_name));
LLLineEditor *NameEditor = getChild<LLLineEditor>("name_form");
if (NameEditor)
@@ -131,7 +125,7 @@ BOOL LLFloaterNameDesc::postBuild()
// Cancel button
getChild<LLUICtrl>("cancel_btn")->setCommitCallback(boost::bind(&LLFloaterNameDesc::onBtnCancel, this));
- childSetLabelArg("ok_btn", "[AMOUNT]", llformat("%d", LLGlobalEconomy::Singleton::getInstance()->getPriceUpload() ));
+ getChild<LLUICtrl>("ok_btn")->setLabelArg("[AMOUNT]", llformat("%d", LLGlobalEconomy::Singleton::getInstance()->getPriceUpload() ));
setDefaultBtn("ok_btn");
@@ -167,15 +161,15 @@ void LLFloaterNameDesc::doCommit()
//-----------------------------------------------------------------------------
void LLFloaterNameDesc::onBtnOK( )
{
- childDisable("ok_btn"); // don't allow inadvertent extra uploads
+ getChildView("ok_btn")->setEnabled(FALSE); // don't allow inadvertent extra uploads
LLAssetStorage::LLStoreAssetCallback callback = NULL;
S32 expected_upload_cost = LLGlobalEconomy::Singleton::getInstance()->getPriceUpload(); // kinda hack - assumes that unsubclassed LLFloaterNameDesc is only used for uploading chargeable assets, which it is right now (it's only used unsubclassed for the sound upload dialog, and THAT should be a subclass).
void *nruserdata = NULL;
std::string display_name = LLStringUtil::null;
upload_new_resource(mFilenameAndPath, // file
- childGetValue("name_form").asString(),
- childGetValue("description_form").asString(),
+ getChild<LLUICtrl>("name_form")->getValue().asString(),
+ getChild<LLUICtrl>("description_form")->getValue().asString(),
0, LLFolderType::FT_NONE, LLInventoryType::IT_NONE,
LLFloaterPerms::getNextOwnerPerms(), LLFloaterPerms::getGroupPerms(), LLFloaterPerms::getEveryonePerms(),
display_name, callback, expected_upload_cost, nruserdata);
diff --git a/indra/newview/llfloaternamedesc.h b/indra/newview/llfloaternamedesc.h
index 2cc7f1101d..7381a6334a 100644
--- a/indra/newview/llfloaternamedesc.h
+++ b/indra/newview/llfloaternamedesc.h
@@ -2,31 +2,25 @@
* @file llfloaternamedesc.h
* @brief LLFloaterNameDesc class definition
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloaternotificationsconsole.cpp b/indra/newview/llfloaternotificationsconsole.cpp
index 105d7f9201..42dc60f9e0 100644
--- a/indra/newview/llfloaternotificationsconsole.cpp
+++ b/indra/newview/llfloaternotificationsconsole.cpp
@@ -2,31 +2,25 @@
* @file llnotificationsconsole.cpp
* @brief Debugging console for unified notifications.
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -43,10 +37,10 @@
const S32 NOTIFICATION_PANEL_HEADER_HEIGHT = 20;
const S32 HEADER_PADDING = 38;
-class LLNotificationChannelPanel : public LLPanel
+class LLNotificationChannelPanel : public LLLayoutPanel
{
public:
- LLNotificationChannelPanel(const std::string& channel_name);
+ LLNotificationChannelPanel(const Params& p);
BOOL postBuild();
private:
@@ -58,14 +52,14 @@ private:
LLNotificationChannelPtr mChannelRejectsPtr;
};
-LLNotificationChannelPanel::LLNotificationChannelPanel(const std::string& channel_name)
- : LLPanel()
+LLNotificationChannelPanel::LLNotificationChannelPanel(const LLNotificationChannelPanel::Params& p)
+: LLLayoutPanel(p)
{
- mChannelPtr = LLNotifications::instance().getChannel(channel_name);
+ mChannelPtr = LLNotifications::instance().getChannel(p.name);
mChannelRejectsPtr = LLNotificationChannelPtr(
- LLNotificationChannel::buildChannel(channel_name + "rejects", mChannelPtr->getParentChannelName(),
+ LLNotificationChannel::buildChannel(p.name() + "rejects", mChannelPtr->getParentChannelName(),
!boost::bind(mChannelPtr->getFilter(), _1)));
- LLUICtrlFactory::instance().buildPanel(this, "panel_notifications_channel.xml");
+ buildFromFile( "panel_notifications_channel.xml");
}
BOOL LLNotificationChannelPanel::postBuild()
@@ -173,8 +167,6 @@ LLFloaterNotificationConsole::LLFloaterNotificationConsole(const LLSD& key)
: LLFloater(key)
{
mCommitCallbackRegistrar.add("ClickAdd", boost::bind(&LLFloaterNotificationConsole::onClickAdd, this));
-
- //LLUICtrlFactory::instance().buildFloater(this, "floater_notifications_console.xml");
}
BOOL LLFloaterNotificationConsole::postBuild()
@@ -209,8 +201,13 @@ BOOL LLFloaterNotificationConsole::postBuild()
void LLFloaterNotificationConsole::addChannel(const std::string& name, bool open)
{
LLLayoutStack& stack = getChildRef<LLLayoutStack>("notification_channels");
- LLNotificationChannelPanel* panelp = new LLNotificationChannelPanel(name);
- stack.addPanel(panelp, 0, NOTIFICATION_PANEL_HEADER_HEIGHT, S32_MAX, S32_MAX, TRUE, TRUE, LLLayoutStack::ANIMATE);
+ LLNotificationChannelPanel::Params p;
+ p.min_dim = NOTIFICATION_PANEL_HEADER_HEIGHT;
+ p.auto_resize = true;
+ p.user_resize = true;
+ p.name = name;
+ LLNotificationChannelPanel* panelp = new LLNotificationChannelPanel(p);
+ stack.addPanel(panelp, LLLayoutStack::ANIMATE);
LLButton& header_button = panelp->getChildRef<LLButton>("header");
header_button.setToggleState(!open);
@@ -254,7 +251,7 @@ LLFloaterNotification::LLFloaterNotification(LLNotification* note)
: LLFloater(LLSD()),
mNote(note)
{
- LLUICtrlFactory::instance().buildFloater(this, "floater_notification.xml", NULL);
+ buildFromFile("floater_notification.xml");
}
BOOL LLFloaterNotification::postBuild()
diff --git a/indra/newview/llfloaternotificationsconsole.h b/indra/newview/llfloaternotificationsconsole.h
index a05d559eb4..4e92b7d857 100644
--- a/indra/newview/llfloaternotificationsconsole.h
+++ b/indra/newview/llfloaternotificationsconsole.h
@@ -2,31 +2,25 @@
* @file llfloaternotificationsconsole.h
* @brief Debugging console for unified notifications.
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloateropenobject.cpp b/indra/newview/llfloateropenobject.cpp
index 71bfae316a..8b6619def2 100644
--- a/indra/newview/llfloateropenobject.cpp
+++ b/indra/newview/llfloateropenobject.cpp
@@ -2,31 +2,25 @@
* @file llfloateropenobject.cpp
* @brief LLFloaterOpenObject class implementation
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -62,7 +56,6 @@ LLFloaterOpenObject::LLFloaterOpenObject(const LLSD& key)
mPanelInventoryObject(NULL),
mDirty(TRUE)
{
-// LLUICtrlFactory::getInstance()->buildFloater(this,"floater_openobject.xml");
mCommitCallbackRegistrar.add("OpenObject.MoveToInventory", boost::bind(&LLFloaterOpenObject::onClickMoveToInventory, this));
mCommitCallbackRegistrar.add("OpenObject.MoveAndWear", boost::bind(&LLFloaterOpenObject::onClickMoveAndWear, this));
}
@@ -75,7 +68,7 @@ LLFloaterOpenObject::~LLFloaterOpenObject()
// virtual
BOOL LLFloaterOpenObject::postBuild()
{
- childSetTextArg("object_name", "[DESC]", std::string("Object") ); // *Note: probably do not want to translate this
+ getChild<LLUICtrl>("object_name")->setTextArg("[DESC]", std::string("Object") ); // *Note: probably do not want to translate this
mPanelInventoryObject = getChild<LLPanelObjectInventory>("object_contents");
refresh();
@@ -105,49 +98,23 @@ void LLFloaterOpenObject::refresh()
mPanelInventoryObject->refresh();
std::string name = "";
-
- // Enable the copy || copy & wear buttons only if we have something we can copy or copy & wear (respectively).
- bool copy_enabled = false;
- bool wear_enabled = false;
+ BOOL enabled = FALSE;
LLSelectNode* node = mObjectSelection->getFirstRootNode();
if (node)
{
name = node->mName;
- copy_enabled = true;
-
- LLViewerObject* object = node->getObject();
- if (object)
- {
- // this folder is coming from an object, as there is only one folder in an object, the root,
- // we need to collect the entire contents and handle them as a group
- LLInventoryObject::object_list_t inventory_objects;
- object->getInventoryContents(inventory_objects);
-
- if (!inventory_objects.empty())
- {
- for (LLInventoryObject::object_list_t::iterator it = inventory_objects.begin();
- it != inventory_objects.end();
- ++it)
- {
- LLInventoryItem* item = static_cast<LLInventoryItem*> ((LLInventoryObject*)(*it));
- LLInventoryType::EType type = item->getInventoryType();
- if (type == LLInventoryType::IT_OBJECT
- || type == LLInventoryType::IT_ATTACHMENT
- || type == LLInventoryType::IT_WEARABLE
- || type == LLInventoryType::IT_GESTURE)
- {
- wear_enabled = true;
- break;
- }
- }
- }
- }
+ enabled = TRUE;
}
-
- childSetTextArg("object_name", "[DESC]", name);
- childSetEnabled("copy_to_inventory_button", copy_enabled);
- childSetEnabled("copy_and_wear_button", wear_enabled);
+ else
+ {
+ name = "";
+ enabled = FALSE;
+ }
+
+ getChild<LLUICtrl>("object_name")->setTextArg("[DESC]", name);
+ getChildView("copy_to_inventory_button")->setEnabled(enabled);
+ getChildView("copy_and_wear_button")->setEnabled(enabled);
}
diff --git a/indra/newview/llfloateropenobject.h b/indra/newview/llfloateropenobject.h
index 10d96b7ea3..0706e99f16 100644
--- a/indra/newview/llfloateropenobject.h
+++ b/indra/newview/llfloateropenobject.h
@@ -2,31 +2,25 @@
* @file llfloateropenobject.h
* @brief LLFloaterOpenObject class definition
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloaterparcel.cpp b/indra/newview/llfloaterparcel.cpp
deleted file mode 100644
index e2be784116..0000000000
--- a/indra/newview/llfloaterparcel.cpp
+++ /dev/null
@@ -1,128 +0,0 @@
-/**
- * @file llfloaterparcel.cpp
- * @brief LLFloaterParcel class implementation
- * Parcel information as shown in a floating window from secondlife:// command
- * handler.
- *
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
- * Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
- * $/LicenseInfo$
- */
-#include "llviewerprecompiledheaders.h"
-
-#include "llfloaterparcel.h"
-
-#include "llfloaterreg.h"
-
-// viewer project includes
-#include "llcommandhandler.h"
-#include "llpanelplace.h"
-#include "llsidetray.h"
-
-// linden library includes
-#include "lluuid.h"
-#include "lluictrlfactory.h"
-
-//-----------------------------------------------------------------------------
-// Globals
-//-----------------------------------------------------------------------------
-
-class LLParcelHandler : public LLCommandHandler
-{
-public:
- // requires trusted browser to trigger
- LLParcelHandler() : LLCommandHandler("parcel", UNTRUSTED_THROTTLE) { }
- bool handle(const LLSD& params, const LLSD& query_map,
- LLMediaCtrl* web)
- {
- if (params.size() < 2)
- {
- return false;
- }
- LLUUID parcel_id;
- if (!parcel_id.set(params[0], FALSE))
- {
- return false;
- }
- if (params[1].asString() == "about")
- {
- if (parcel_id.notNull())
- {
- LLSD key;
- key["type"] = "remote_place";
- key["id"] = parcel_id;
- LLSideTray::getInstance()->showPanel("panel_places", key);
- return true;
- }
- }
- return false;
- }
-};
-LLParcelHandler gParcelHandler;
-
-//-----------------------------------------------------------------------------
-// Member functions
-//-----------------------------------------------------------------------------
-
-//----------------------------------------------------------------------------
-
-void* LLFloaterParcelInfo::createPanelPlace(void* data)
-{
- LLFloaterParcelInfo* self = (LLFloaterParcelInfo*)data;
- self->mPanelParcelp = new LLPanelPlace(); // allow edit self
- LLUICtrlFactory::getInstance()->buildPanel(self->mPanelParcelp, "panel_place.xml");
- return self->mPanelParcelp;
-}
-
-//----------------------------------------------------------------------------
-
-
-LLFloaterParcelInfo::LLFloaterParcelInfo(const LLSD& parcel_id)
-: LLFloater(parcel_id),
- mParcelID( parcel_id.asUUID() ),
- mPanelParcelp(NULL)
-{
- mFactoryMap["place_details_panel"] = LLCallbackMap(LLFloaterParcelInfo::createPanelPlace, this);
-// LLUICtrlFactory::getInstance()->buildFloater(this, "floater_preview_url.xml");
-}
-
-// virtual
-LLFloaterParcelInfo::~LLFloaterParcelInfo()
-{
-
-}
-
-BOOL LLFloaterParcelInfo::postBuild()
-{
- if (mPanelParcelp)
- {
- mPanelParcelp->setParcelID(mParcelID);
- }
- center();
- return LLFloater::postBuild();
-}
-
-
diff --git a/indra/newview/llfloaterparcel.h b/indra/newview/llfloaterparcel.h
deleted file mode 100644
index 386acb3fd5..0000000000
--- a/indra/newview/llfloaterparcel.h
+++ /dev/null
@@ -1,59 +0,0 @@
-/**
- * @file llfloaterparcel.h
- * @brief Parcel information as shown in a floating window from a sl-url.
- * Just a wrapper for LLPanelPlace, shared with the Find directory.
- *
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
- * Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
- * $/LicenseInfo$
- */
-#ifndef LL_FLOATERPARCELINFO_H
-#define LL_FLOATERPARCELINFO_H
-
-#include "llfloater.h"
-
-class LLPanelPlace;
-
-class LLFloaterParcelInfo
-: public LLFloater
-{
-public:
- static void* createPanelPlace(void* data);
-
- LLFloaterParcelInfo( const LLSD& parcel_id );
- /*virtual*/ ~LLFloaterParcelInfo();
-
- /*virtual*/ BOOL postBuild();
-
- void displayParcelInfo(const LLUUID& parcel_id);
-
-private:
- LLUUID mParcelID; // for which parcel is this window?
- LLPanelPlace* mPanelParcelp;
-};
-
-
-#endif
diff --git a/indra/newview/llfloaterpay.cpp b/indra/newview/llfloaterpay.cpp
index 51364594e4..151a76285b 100644
--- a/indra/newview/llfloaterpay.cpp
+++ b/indra/newview/llfloaterpay.cpp
@@ -3,31 +3,25 @@
* @author Aaron Brashears, Kelly Washington, James Cook
* @brief Implementation of the LLFloaterPay class.
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -145,6 +139,9 @@ LLFloaterPay::~LLFloaterPay()
{
std::for_each(mCallbackData.begin(), mCallbackData.end(), DeletePointer());
// Name callbacks will be automatically disconnected since LLFloater is trackable
+
+ // In case this floater is currently waiting for a reply.
+ gMessageSystem->setHandlerFuncFast(_PREHASH_PayPriceReply, 0, 0);
}
BOOL LLFloaterPay::postBuild()
@@ -155,7 +152,7 @@ BOOL LLFloaterPay::postBuild()
mCallbackData.push_back(info);
childSetAction("fastpay 1",&LLFloaterPay::onGive,info);
- childSetVisible("fastpay 1", FALSE);
+ getChildView("fastpay 1")->setVisible( FALSE);
mQuickPayButton[i] = getChild<LLButton>("fastpay 1");
mQuickPayInfo[i] = info;
@@ -165,7 +162,7 @@ BOOL LLFloaterPay::postBuild()
mCallbackData.push_back(info);
childSetAction("fastpay 5",&LLFloaterPay::onGive,info);
- childSetVisible("fastpay 5", FALSE);
+ getChildView("fastpay 5")->setVisible( FALSE);
mQuickPayButton[i] = getChild<LLButton>("fastpay 5");
mQuickPayInfo[i] = info;
@@ -175,7 +172,7 @@ BOOL LLFloaterPay::postBuild()
mCallbackData.push_back(info);
childSetAction("fastpay 10",&LLFloaterPay::onGive,info);
- childSetVisible("fastpay 10", FALSE);
+ getChildView("fastpay 10")->setVisible( FALSE);
mQuickPayButton[i] = getChild<LLButton>("fastpay 10");
mQuickPayInfo[i] = info;
@@ -185,14 +182,14 @@ BOOL LLFloaterPay::postBuild()
mCallbackData.push_back(info);
childSetAction("fastpay 20",&LLFloaterPay::onGive,info);
- childSetVisible("fastpay 20", FALSE);
+ getChildView("fastpay 20")->setVisible( FALSE);
mQuickPayButton[i] = getChild<LLButton>("fastpay 20");
mQuickPayInfo[i] = info;
++i;
- childSetVisible("amount text", FALSE);
+ getChildView("amount text")->setVisible( FALSE);
std::string last_amount;
if(sLastAmount > 0)
@@ -200,19 +197,19 @@ BOOL LLFloaterPay::postBuild()
last_amount = llformat("%d", sLastAmount);
}
- childSetVisible("amount", FALSE);
+ getChildView("amount")->setVisible( FALSE);
getChild<LLLineEditor>("amount")->setKeystrokeCallback(&LLFloaterPay::onKeystroke, this);
- childSetText("amount", last_amount);
- childSetPrevalidate("amount", LLTextValidate::validateNonNegativeS32);
+ getChild<LLUICtrl>("amount")->setValue(last_amount);
+ getChild<LLLineEditor>("amount")->setPrevalidate(LLTextValidate::validateNonNegativeS32);
info = new LLGiveMoneyInfo(this, 0);
mCallbackData.push_back(info);
childSetAction("pay btn",&LLFloaterPay::onGive,info);
setDefaultBtn("pay btn");
- childSetVisible("pay btn", FALSE);
- childSetEnabled("pay btn", (sLastAmount > 0));
+ getChildView("pay btn")->setVisible( FALSE);
+ getChildView("pay btn")->setEnabled((sLastAmount > 0));
childSetAction("cancel btn",&LLFloaterPay::onCancel,this);
@@ -246,27 +243,27 @@ void LLFloaterPay::processPayPriceReply(LLMessageSystem* msg, void **userdata)
if (PAY_PRICE_HIDE == price)
{
- self->childSetVisible("amount", FALSE);
- self->childSetVisible("pay btn", FALSE);
- self->childSetVisible("amount text", FALSE);
+ self->getChildView("amount")->setVisible( FALSE);
+ self->getChildView("pay btn")->setVisible( FALSE);
+ self->getChildView("amount text")->setVisible( FALSE);
}
else if (PAY_PRICE_DEFAULT == price)
{
- self->childSetVisible("amount", TRUE);
- self->childSetVisible("pay btn", TRUE);
- self->childSetVisible("amount text", TRUE);
+ self->getChildView("amount")->setVisible( TRUE);
+ self->getChildView("pay btn")->setVisible( TRUE);
+ self->getChildView("amount text")->setVisible( TRUE);
}
else
{
// PAY_PRICE_HIDE and PAY_PRICE_DEFAULT are negative values
// So we take the absolute value here after we have checked for those cases
- self->childSetVisible("amount", TRUE);
- self->childSetVisible("pay btn", TRUE);
- self->childSetEnabled("pay btn", TRUE);
- self->childSetVisible("amount text", TRUE);
+ self->getChildView("amount")->setVisible( TRUE);
+ self->getChildView("pay btn")->setVisible( TRUE);
+ self->getChildView("pay btn")->setEnabled(TRUE);
+ self->getChildView("amount text")->setVisible( TRUE);
- self->childSetText("amount", llformat("%d", llabs(price)));
+ self->getChild<LLUICtrl>("amount")->setValue(llformat("%d", llabs(price)));
}
S32 num_blocks = msg->getNumberOfBlocksFast(_PREHASH_ButtonData);
@@ -289,7 +286,7 @@ void LLFloaterPay::processPayPriceReply(LLMessageSystem* msg, void **userdata)
self->mQuickPayButton[i]->setLabelUnselected(button_str);
self->mQuickPayButton[i]->setVisible(TRUE);
self->mQuickPayInfo[i]->mAmount = pay_button;
- self->childSetVisible("fastpay text",TRUE);
+ self->getChildView("fastpay text")->setVisible(TRUE);
if ( pay_button > max_pay_amount )
{
@@ -396,7 +393,7 @@ void LLFloaterPay::payViaObject(money_callback callback, LLSafeHandle<LLObjectSe
BOOL is_group = FALSE;
node->mPermissions->getOwnership(owner_id, is_group);
- floater->childSetText("object_name_text",node->mName);
+ floater->getChild<LLUICtrl>("object_name_text")->setValue(node->mName);
floater->finishPayUI(owner_id, is_group);
}
@@ -412,11 +409,11 @@ void LLFloaterPay::payDirectly(money_callback callback,
floater->setCallback(callback);
floater->mObjectSelection = NULL;
- floater->childSetVisible("amount", TRUE);
- floater->childSetVisible("pay btn", TRUE);
- floater->childSetVisible("amount text", TRUE);
+ floater->getChildView("amount")->setVisible( TRUE);
+ floater->getChildView("pay btn")->setVisible( TRUE);
+ floater->getChildView("amount text")->setVisible( TRUE);
- floater->childSetVisible("fastpay text",TRUE);
+ floater->getChildView("fastpay text")->setVisible(TRUE);
for(S32 i=0;i<MAX_PAY_BUTTONS;++i)
{
floater->mQuickPayButton[i]->setVisible(TRUE);
@@ -431,7 +428,7 @@ void LLFloaterPay::finishPayUI(const LLUUID& target_id, BOOL is_group)
// Make sure the amount field has focus
- childSetFocus("amount", TRUE);
+ getChild<LLUICtrl>("amount")->setFocus( TRUE);
LLLineEditor* amount = getChild<LLLineEditor>("amount");
amount->selectAll();
@@ -452,8 +449,8 @@ void LLFloaterPay::onCacheOwnerName(const LLUUID& owner_id,
setTitle(getString("payee_resident"));
}
- childSetTextArg("payee_name", "[FIRST]", firstname);
- childSetTextArg("payee_name", "[LAST]", lastname);
+ getChild<LLUICtrl>("payee_name")->setTextArg("[FIRST]", firstname);
+ getChild<LLUICtrl>("payee_name")->setTextArg("[LAST]", lastname);
}
// static
@@ -473,8 +470,8 @@ void LLFloaterPay::onKeystroke(LLLineEditor*, void* data)
if(self)
{
// enable the Pay button when amount is non-empty and positive, disable otherwise
- std::string amtstr = self->childGetText("amount");
- self->childSetEnabled("pay btn", !amtstr.empty() && atoi(amtstr.c_str()) > 0);
+ std::string amtstr = self->getChild<LLUICtrl>("amount")->getValue().asString();
+ self->getChildView("pay btn")->setEnabled(!amtstr.empty() && atoi(amtstr.c_str()) > 0);
}
}
@@ -497,7 +494,7 @@ void LLFloaterPay::give(S32 amount)
// text field.
if(amount == 0)
{
- amount = atoi(childGetText("amount").c_str());
+ amount = atoi(getChild<LLUICtrl>("amount")->getValue().asString().c_str());
}
sLastAmount = amount;
diff --git a/indra/newview/llfloaterpay.h b/indra/newview/llfloaterpay.h
index 161ed78acb..f322e5ef04 100644
--- a/indra/newview/llfloaterpay.h
+++ b/indra/newview/llfloaterpay.h
@@ -1,31 +1,25 @@
/**
* @file llfloaterpay.h
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloaterperms.cpp b/indra/newview/llfloaterperms.cpp
index 7edc27d4c3..80b55c3cbb 100644
--- a/indra/newview/llfloaterperms.cpp
+++ b/indra/newview/llfloaterperms.cpp
@@ -3,31 +3,25 @@
* @brief Asset creation permission preferences.
* @author Coco
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -43,7 +37,6 @@
LLFloaterPerms::LLFloaterPerms(const LLSD& seed)
: LLFloater(seed)
{
- //LLUICtrlFactory::getInstance()->buildFloater(this, "floater_perm_prefs.xml");
mCommitCallbackRegistrar.add("Perms.Copy", boost::bind(&LLFloaterPerms::onCommitCopy, this));
mCommitCallbackRegistrar.add("Perms.OK", boost::bind(&LLFloaterPerms::onClickOK, this));
mCommitCallbackRegistrar.add("Perms.Cancel", boost::bind(&LLFloaterPerms::onClickCancel, this));
@@ -121,7 +114,7 @@ U32 LLFloaterPerms::getEveryonePerms(std::string prefix)
//static
U32 LLFloaterPerms::getNextOwnerPerms(std::string prefix)
{
- U32 flags = 0;
+ U32 flags = PERM_MOVE;
if ( gSavedSettings.getBOOL(prefix+"NextOwnerCopy") )
{
flags |= PERM_COPY;
diff --git a/indra/newview/llfloaterperms.h b/indra/newview/llfloaterperms.h
index 2426f43ca7..6b65f4b0cd 100644
--- a/indra/newview/llfloaterperms.h
+++ b/indra/newview/llfloaterperms.h
@@ -3,31 +3,25 @@
* @brief Asset creation permission preferences.
* @author Coco
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloaterpostcard.cpp b/indra/newview/llfloaterpostcard.cpp
index 8da44e2035..e8e9f76912 100644
--- a/indra/newview/llfloaterpostcard.cpp
+++ b/indra/newview/llfloaterpostcard.cpp
@@ -2,31 +2,25 @@
* @file llfloaterpostcard.cpp
* @brief Postcard send floater, allows setting name, e-mail address, etc.
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -82,7 +76,6 @@ LLFloaterPostcard::LLFloaterPostcard(const LLSD& key)
mViewerImage(NULL),
mHasFirstMsgFocus(false)
{
- //LLUICtrlFactory::getInstance()->buildFloater(this, "floater_postcard.xml");
}
// Destroys the object
@@ -99,16 +92,16 @@ BOOL LLFloaterPostcard::postBuild()
childSetAction("cancel_btn", onClickCancel, this);
childSetAction("send_btn", onClickSend, this);
- childDisable("from_form");
+ getChildView("from_form")->setEnabled(FALSE);
std::string name_string;
LLAgentUI::buildFullname(name_string);
- childSetValue("name_form", LLSD(name_string));
+ getChild<LLUICtrl>("name_form")->setValue(LLSD(name_string));
// For the first time a user focusess to .the msg box, all text will be selected.
getChild<LLUICtrl>("msg_form")->setFocusChangedCallback(boost::bind(onMsgFormFocusRecieved, _1, this));
- childSetFocus("to_form", TRUE);
+ getChild<LLUICtrl>("to_form")->setFocus(TRUE);
return TRUE;
}
@@ -215,8 +208,8 @@ void LLFloaterPostcard::onClickSend(void* data)
{
LLFloaterPostcard *self = (LLFloaterPostcard *)data;
- std::string from(self->childGetValue("from_form").asString());
- std::string to(self->childGetValue("to_form").asString());
+ std::string from(self->getChild<LLUICtrl>("from_form")->getValue().asString());
+ std::string to(self->getChild<LLUICtrl>("to_form")->getValue().asString());
boost::regex emailFormat("[A-Za-z0-9.%+-_]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}(,[ \t]*[A-Za-z0-9.%+-_]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,})*");
@@ -232,7 +225,7 @@ void LLFloaterPostcard::onClickSend(void* data)
return;
}
- std::string subject(self->childGetValue("subject_form").asString());
+ std::string subject(self->getChild<LLUICtrl>("subject_form")->getValue().asString());
if(subject.empty() || !self->mHasFirstMsgFocus)
{
LLNotificationsUtil::add("PromptMissingSubjMsg", LLSD(), LLSD(), boost::bind(&LLFloaterPostcard::missingSubjMsgAlertCallback, self, _1, _2));
@@ -275,11 +268,11 @@ void LLFloaterPostcard::uploadCallback(const LLUUID& asset_id, void *user_data,
msg->addUUID("SessionID", gAgent.getSessionID());
msg->addUUID("AssetID", self->mAssetID);
msg->addVector3d("PosGlobal", self->mPosTakenGlobal);
- msg->addString("To", self->childGetValue("to_form").asString());
- msg->addString("From", self->childGetValue("from_form").asString());
- msg->addString("Name", self->childGetValue("name_form").asString());
- msg->addString("Subject", self->childGetValue("subject_form").asString());
- msg->addString("Msg", self->childGetValue("msg_form").asString());
+ msg->addString("To", self->getChild<LLUICtrl>("to_form")->getValue().asString());
+ msg->addString("From", self->getChild<LLUICtrl>("from_form")->getValue().asString());
+ msg->addString("Name", self->getChild<LLUICtrl>("name_form")->getValue().asString());
+ msg->addString("Subject", self->getChild<LLUICtrl>("subject_form")->getValue().asString());
+ msg->addString("Msg", self->getChild<LLUICtrl>("msg_form")->getValue().asString());
msg->addBOOL("AllowPublish", FALSE);
msg->addBOOL("MaturePublish", FALSE);
gAgent.sendReliableMessage();
@@ -296,11 +289,11 @@ void LLFloaterPostcard::updateUserInfo(const std::string& email)
iter != inst_list.end(); ++iter)
{
LLFloater* instance = *iter;
- const std::string& text = instance->childGetValue("from_form").asString();
+ const std::string& text = instance->getChild<LLUICtrl>("from_form")->getValue().asString();
if (text.empty())
{
// there's no text in this field yet, pre-populate
- instance->childSetValue("from_form", LLSD(email));
+ instance->getChild<LLUICtrl>("from_form")->setValue(LLSD(email));
}
}
}
@@ -325,17 +318,17 @@ bool LLFloaterPostcard::missingSubjMsgAlertCallback(const LLSD& notification, co
if(0 == option)
{
// User clicked OK
- if((childGetValue("subject_form").asString()).empty())
+ if((getChild<LLUICtrl>("subject_form")->getValue().asString()).empty())
{
// Stuff the subject back into the form.
- childSetValue("subject_form", getString("default_subject"));
+ getChild<LLUICtrl>("subject_form")->setValue(getString("default_subject"));
}
if(!mHasFirstMsgFocus)
{
// The user never switched focus to the messagee window.
// Using the default string.
- childSetValue("msg_form", getString("default_message"));
+ getChild<LLUICtrl>("msg_form")->setValue(getString("default_message"));
}
sendPostcard();
@@ -357,11 +350,11 @@ void LLFloaterPostcard::sendPostcard()
LLSD body = LLSD::emptyMap();
// the capability already encodes: agent ID, region ID
body["pos-global"] = mPosTakenGlobal.getValue();
- body["to"] = childGetValue("to_form").asString();
- body["from"] = childGetValue("from_form").asString();
- body["name"] = childGetValue("name_form").asString();
- body["subject"] = childGetValue("subject_form").asString();
- body["msg"] = childGetValue("msg_form").asString();
+ body["to"] = getChild<LLUICtrl>("to_form")->getValue().asString();
+ body["from"] = getChild<LLUICtrl>("from_form")->getValue().asString();
+ body["name"] = getChild<LLUICtrl>("name_form")->getValue().asString();
+ body["subject"] = getChild<LLUICtrl>("subject_form")->getValue().asString();
+ body["msg"] = getChild<LLUICtrl>("msg_form")->getValue().asString();
LLHTTPClient::post(url, body, new LLSendPostcardResponder(body, mAssetID, LLAssetType::AT_IMAGE_JPEG));
}
else
diff --git a/indra/newview/llfloaterpostcard.h b/indra/newview/llfloaterpostcard.h
index 0a44b50779..472592154f 100644
--- a/indra/newview/llfloaterpostcard.h
+++ b/indra/newview/llfloaterpostcard.h
@@ -2,31 +2,25 @@
* @file llfloaterpostcard.h
* @brief Postcard send floater, allows setting name, e-mail address, etc.
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloaterpostprocess.cpp b/indra/newview/llfloaterpostprocess.cpp
index 87a12d3d66..2d61109e17 100644
--- a/indra/newview/llfloaterpostprocess.cpp
+++ b/indra/newview/llfloaterpostprocess.cpp
@@ -2,31 +2,25 @@
* @file llfloaterpostprocess.cpp
* @brief LLFloaterPostProcess class definition
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -48,7 +42,6 @@
LLFloaterPostProcess::LLFloaterPostProcess(const LLSD& key)
: LLFloater(key)
{
- //LLUICtrlFactory::getInstance()->buildFloater(this, "floater_post_process.xml");
}
LLFloaterPostProcess::~LLFloaterPostProcess()
@@ -212,25 +205,25 @@ void LLFloaterPostProcess::syncMenu()
comboBox->selectByValue(gPostProcess->getSelectedEffect());
/// Sync Color Filter Menu
- childSetValue("ColorFilterToggle", gPostProcess->tweaks.useColorFilter());
- //childSetValue("ColorFilterGamma", gPostProcess->tweaks.gamma());
- childSetValue("ColorFilterBrightness", gPostProcess->tweaks.brightness());
- childSetValue("ColorFilterSaturation", gPostProcess->tweaks.saturation());
- childSetValue("ColorFilterContrast", gPostProcess->tweaks.contrast());
- childSetValue("ColorFilterBaseR", gPostProcess->tweaks.contrastBaseR());
- childSetValue("ColorFilterBaseG", gPostProcess->tweaks.contrastBaseG());
- childSetValue("ColorFilterBaseB", gPostProcess->tweaks.contrastBaseB());
- childSetValue("ColorFilterBaseI", gPostProcess->tweaks.contrastBaseIntensity());
+ getChild<LLUICtrl>("ColorFilterToggle")->setValue(gPostProcess->tweaks.useColorFilter());
+ //getChild<LLUICtrl>("ColorFilterGamma")->setValue(gPostProcess->tweaks.gamma());
+ getChild<LLUICtrl>("ColorFilterBrightness")->setValue(gPostProcess->tweaks.brightness());
+ getChild<LLUICtrl>("ColorFilterSaturation")->setValue(gPostProcess->tweaks.saturation());
+ getChild<LLUICtrl>("ColorFilterContrast")->setValue(gPostProcess->tweaks.contrast());
+ getChild<LLUICtrl>("ColorFilterBaseR")->setValue(gPostProcess->tweaks.contrastBaseR());
+ getChild<LLUICtrl>("ColorFilterBaseG")->setValue(gPostProcess->tweaks.contrastBaseG());
+ getChild<LLUICtrl>("ColorFilterBaseB")->setValue(gPostProcess->tweaks.contrastBaseB());
+ getChild<LLUICtrl>("ColorFilterBaseI")->setValue(gPostProcess->tweaks.contrastBaseIntensity());
/// Sync Night Vision Menu
- childSetValue("NightVisionToggle", gPostProcess->tweaks.useNightVisionShader());
- childSetValue("NightVisionBrightMult", gPostProcess->tweaks.brightMult());
- childSetValue("NightVisionNoiseSize", gPostProcess->tweaks.noiseSize());
- childSetValue("NightVisionNoiseStrength", gPostProcess->tweaks.noiseStrength());
+ getChild<LLUICtrl>("NightVisionToggle")->setValue(gPostProcess->tweaks.useNightVisionShader());
+ getChild<LLUICtrl>("NightVisionBrightMult")->setValue(gPostProcess->tweaks.brightMult());
+ getChild<LLUICtrl>("NightVisionNoiseSize")->setValue(gPostProcess->tweaks.noiseSize());
+ getChild<LLUICtrl>("NightVisionNoiseStrength")->setValue(gPostProcess->tweaks.noiseStrength());
/// Sync Bloom Menu
- childSetValue("BloomToggle", LLSD(gPostProcess->tweaks.useBloomShader()));
- childSetValue("BloomExtract", gPostProcess->tweaks.extractLow());
- childSetValue("BloomSize", gPostProcess->tweaks.bloomWidth());
- childSetValue("BloomStrength", gPostProcess->tweaks.bloomStrength());
+ getChild<LLUICtrl>("BloomToggle")->setValue(LLSD(gPostProcess->tweaks.useBloomShader()));
+ getChild<LLUICtrl>("BloomExtract")->setValue(gPostProcess->tweaks.extractLow());
+ getChild<LLUICtrl>("BloomSize")->setValue(gPostProcess->tweaks.bloomWidth());
+ getChild<LLUICtrl>("BloomStrength")->setValue(gPostProcess->tweaks.bloomStrength());
}
diff --git a/indra/newview/llfloaterpostprocess.h b/indra/newview/llfloaterpostprocess.h
index c789adee00..424a5fc8f0 100644
--- a/indra/newview/llfloaterpostprocess.h
+++ b/indra/newview/llfloaterpostprocess.h
@@ -2,31 +2,25 @@
* @file llfloaterpostprocess.h
* @brief LLFloaterPostProcess class definition
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloaterpreference.cpp b/indra/newview/llfloaterpreference.cpp
index f450b199c8..ff6df548c4 100644
--- a/indra/newview/llfloaterpreference.cpp
+++ b/indra/newview/llfloaterpreference.cpp
@@ -2,31 +2,25 @@
* @file llfloaterpreference.cpp
* @brief Global preferences with and without persistence.
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -55,7 +49,6 @@
#include "llfloaterreg.h"
#include "llfloaterabout.h"
#include "llfloaterhardwaresettings.h"
-#include "llfloatervoicedevicesettings.h"
#include "llimfloater.h"
#include "llkeyboard.h"
#include "llmodaldialog.h"
@@ -63,13 +56,16 @@
#include "llnearbychat.h"
#include "llnotifications.h"
#include "llnotificationsutil.h"
+#include "llnotificationtemplate.h"
#include "llpanellogin.h"
+#include "llpanelvoicedevicesettings.h"
#include "llradiogroup.h"
#include "llsearchcombobox.h"
#include "llsky.h"
#include "llscrolllistctrl.h"
#include "llscrolllistitem.h"
#include "llsliderctrl.h"
+#include "llsidetray.h"
#include "lltabcontainer.h"
#include "lltrans.h"
#include "llviewercontrol.h"
@@ -136,14 +132,13 @@ LLVoiceSetKeyDialog::LLVoiceSetKeyDialog(const LLSD& key)
: LLModalDialog(key),
mParent(NULL)
{
-// LLUICtrlFactory::getInstance()->buildFloater(this, "floater_select_key.xml", NULL);
}
//virtual
BOOL LLVoiceSetKeyDialog::postBuild()
{
childSetAction("Cancel", onCancel, this);
- childSetFocus("Cancel");
+ getChild<LLUICtrl>("Cancel")->setFocus(TRUE);
gFocusMgr.setKeystrokesOnly(TRUE);
@@ -309,6 +304,7 @@ LLFloaterPreference::LLFloaterPreference(const LLSD& key)
mCommitCallbackRegistrar.add("Pref.applyUIColor", boost::bind(&LLFloaterPreference::applyUIColor, this ,_1, _2));
mCommitCallbackRegistrar.add("Pref.getUIColor", boost::bind(&LLFloaterPreference::getUIColor, this ,_1, _2));
mCommitCallbackRegistrar.add("Pref.MaturitySettings", boost::bind(&LLFloaterPreference::onChangeMaturity, this));
+ mCommitCallbackRegistrar.add("Pref.BlockList", boost::bind(&LLFloaterPreference::onClickBlockList, this));
sSkin = gSavedSettings.getString("SkinCurrent");
}
@@ -328,7 +324,7 @@ BOOL LLFloaterPreference::postBuild()
tabcontainer->selectFirstTab();
std::string cache_location = gDirUtilp->getExpandedFilename(LL_PATH_CACHE, "");
- childSetText("cache_location", cache_location);
+ getChild<LLUICtrl>("cache_location")->setValue(cache_location);
// if floater is opened before login set default localized busy message
if (LLStartUp::getStartupState() < STATE_STARTED)
@@ -411,12 +407,6 @@ void LLFloaterPreference::apply()
hardware_settings->apply();
}
- LLFloaterVoiceDeviceSettings* voice_device_settings = LLFloaterReg::findTypedInstance<LLFloaterVoiceDeviceSettings>("pref_voicedevicesettings");
- if(voice_device_settings)
- {
- voice_device_settings->apply();
- }
-
gViewerWindow->requestResolutionUpdate(); // for UIScaleFactor
LLSliderCtrl* fov_slider = getChild<LLSliderCtrl>("camera_fov");
@@ -424,28 +414,28 @@ void LLFloaterPreference::apply()
fov_slider->setMaxValue(LLViewerCamera::getInstance()->getMaxView());
std::string cache_location = gDirUtilp->getExpandedFilename(LL_PATH_CACHE, "");
- childSetText("cache_location", cache_location);
+ getChild<LLUICtrl>("cache_location")->setValue(cache_location);
- LLViewerMedia::setCookiesEnabled(childGetValue("cookies_enabled"));
+ LLViewerMedia::setCookiesEnabled(getChild<LLUICtrl>("cookies_enabled")->getValue());
if(hasChild("web_proxy_enabled") &&hasChild("web_proxy_editor") && hasChild("web_proxy_port"))
{
- bool proxy_enable = childGetValue("web_proxy_enabled");
- std::string proxy_address = childGetValue("web_proxy_editor");
- int proxy_port = childGetValue("web_proxy_port");
+ bool proxy_enable = getChild<LLUICtrl>("web_proxy_enabled")->getValue();
+ std::string proxy_address = getChild<LLUICtrl>("web_proxy_editor")->getValue();
+ int proxy_port = getChild<LLUICtrl>("web_proxy_port")->getValue();
LLViewerMedia::setProxyConfig(proxy_enable, proxy_address, proxy_port);
}
// LLWString busy_response = utf8str_to_wstring(getChild<LLUICtrl>("busy_response")->getValue().asString());
// LLWStringUtil::replaceTabsWithSpaces(busy_response, 4);
- gSavedSettings.setBOOL("PlainTextChatHistory", childGetValue("plain_text_chat_history").asBoolean());
+ gSavedSettings.setBOOL("PlainTextChatHistory", getChild<LLUICtrl>("plain_text_chat_history")->getValue().asBoolean());
if(mGotPersonalInfo)
{
// gSavedSettings.setString("BusyModeResponse2", std::string(wstring_to_utf8str(busy_response)));
- bool new_im_via_email = childGetValue("send_im_to_email").asBoolean();
- bool new_hide_online = childGetValue("online_visibility").asBoolean();
+ bool new_im_via_email = getChild<LLUICtrl>("send_im_to_email")->getValue().asBoolean();
+ bool new_hide_online = getChild<LLUICtrl>("online_visibility")->getValue().asBoolean();
if((new_im_via_email != mOriginalIMViaEmail)
||(new_hide_online != mOriginalHideOnlineStatus))
@@ -491,15 +481,6 @@ void LLFloaterPreference::cancel()
// reverts any changes to current skin
gSavedSettings.setString("SkinCurrent", sSkin);
-
- LLFloaterVoiceDeviceSettings* voice_device_settings = LLFloaterReg::findTypedInstance<LLFloaterVoiceDeviceSettings>("pref_voicedevicesettings");
- if (voice_device_settings)
- {
- voice_device_settings ->cancel();
- }
-
- LLFloaterReg::hideInstance("pref_voicedevicesettings");
-
}
void LLFloaterPreference::onOpen(const LLSD& key)
@@ -543,13 +524,13 @@ void LLFloaterPreference::onOpen(const LLSD& key)
maturity_list->deleteItems(LLSD(SIM_ACCESS_ADULT));
}
}
- childSetVisible("maturity_desired_combobox", true);
- childSetVisible("maturity_desired_textbox", false);
+ getChildView("maturity_desired_combobox")->setVisible( true);
+ getChildView("maturity_desired_textbox")->setVisible( false);
}
else
{
- childSetText("maturity_desired_textbox", maturity_combo->getSelectedItemLabel());
- childSetVisible("maturity_desired_combobox", false);
+ getChild<LLUICtrl>("maturity_desired_textbox")->setValue(maturity_combo->getSelectedItemLabel());
+ getChildView("maturity_desired_combobox")->setVisible( false);
}
// Display selected maturity icons.
@@ -802,7 +783,7 @@ void LLFloaterPreference::buildPopupLists()
LLScrollListItem* item = NULL;
- bool show_popup = LLUI::sSettingGroups["ignores"]->getBOOL(templatep->mName);
+ bool show_popup = formp->getIgnored();
if (!show_popup)
{
if (ignore == LLNotificationForm::IGNORE_WITH_LAST_RESPONSE)
@@ -824,13 +805,11 @@ void LLFloaterPreference::buildPopupLists()
row["columns"][1]["font"] = "SANSSERIF_SMALL";
row["columns"][1]["width"] = 360;
}
- item = disabled_popups.addElement(row,
- ADD_SORTED);
+ item = disabled_popups.addElement(row);
}
else
{
- item = enabled_popups.addElement(row,
- ADD_SORTED);
+ item = enabled_popups.addElement(row);
}
if (item)
@@ -842,7 +821,7 @@ void LLFloaterPreference::buildPopupLists()
void LLFloaterPreference::refreshEnabledState()
{
- LLCheckBoxCtrl* ctrl_reflections = getChild<LLCheckBoxCtrl>("Reflections");
+ LLComboBox* ctrl_reflections = getChild<LLComboBox>("Reflections");
LLRadioGroup* radio_reflection_detail = getChild<LLRadioGroup>("ReflectionDetailRadio");
// Reflections
@@ -855,7 +834,7 @@ void LLFloaterPreference::refreshEnabledState()
bool bumpshiny = gGLManager.mHasCubeMap && LLCubeMap::sUseCubeMaps && LLFeatureManager::getInstance()->isFeatureAvailable("RenderObjectBump");
getChild<LLCheckBoxCtrl>("BumpShiny")->setEnabled(bumpshiny ? TRUE : FALSE);
- radio_reflection_detail->setEnabled(ctrl_reflections->get() && reflections);
+ radio_reflection_detail->setEnabled(reflections);
// Avatar Mode
// Enable Avatar Shaders
@@ -901,20 +880,47 @@ void LLFloaterPreference::refreshEnabledState()
// *HACK just checks to see if we can use shaders...
// maybe some cards that use shaders, but don't support windlight
ctrl_wind_light->setEnabled(ctrl_shader_enable->getEnabled() && shaders);
+
+ //Deferred/SSAO/Shadows
+ LLCheckBoxCtrl* ctrl_deferred = getChild<LLCheckBoxCtrl>("UseLightShaders");
+ if (LLFeatureManager::getInstance()->isFeatureAvailable("RenderUseFBO") &&
+ LLFeatureManager::getInstance()->isFeatureAvailable("RenderDeferred") &&
+ shaders)
+ {
+ BOOL enabled = (ctrl_wind_light->get()) ? TRUE : FALSE;
+
+ ctrl_deferred->setEnabled(enabled);
+
+ LLCheckBoxCtrl* ctrl_ssao = getChild<LLCheckBoxCtrl>("UseSSAO");
+ LLComboBox* ctrl_shadow = getChild<LLComboBox>("ShadowDetail");
+
+ enabled = enabled && LLFeatureManager::getInstance()->isFeatureAvailable("RenderDeferredSSAO") && (ctrl_deferred->get() ? TRUE : FALSE);
+
+ ctrl_ssao->setEnabled(enabled);
+
+ enabled = enabled && LLFeatureManager::getInstance()->isFeatureAvailable("RenderShadowDetail");
+
+ ctrl_shadow->setEnabled(enabled);
+ }
+
+
// now turn off any features that are unavailable
disableUnavailableSettings();
- childSetEnabled ("block_list", LLLoginInstance::getInstance()->authSuccess());
+ getChildView("block_list")->setEnabled(LLLoginInstance::getInstance()->authSuccess());
}
void LLFloaterPreference::disableUnavailableSettings()
{
- LLCheckBoxCtrl* ctrl_reflections = getChild<LLCheckBoxCtrl>("Reflections");
+ LLComboBox* ctrl_reflections = getChild<LLComboBox>("Reflections");
LLCheckBoxCtrl* ctrl_avatar_vp = getChild<LLCheckBoxCtrl>("AvatarVertexProgram");
LLCheckBoxCtrl* ctrl_avatar_cloth = getChild<LLCheckBoxCtrl>("AvatarCloth");
LLCheckBoxCtrl* ctrl_shader_enable = getChild<LLCheckBoxCtrl>("BasicShaders");
LLCheckBoxCtrl* ctrl_wind_light = getChild<LLCheckBoxCtrl>("WindLightUseAtmosShaders");
LLCheckBoxCtrl* ctrl_avatar_impostors = getChild<LLCheckBoxCtrl>("AvatarImpostors");
+ LLCheckBoxCtrl* ctrl_deferred = getChild<LLCheckBoxCtrl>("UseLightShaders");
+ LLComboBox* ctrl_shadows = getChild<LLComboBox>("ShadowDetail");
+ LLCheckBoxCtrl* ctrl_ssao = getChild<LLCheckBoxCtrl>("UseSSAO");
// if vertex shaders off, disable all shader related products
if(!LLFeatureManager::getInstance()->isFeatureAvailable("VertexShaderEnable"))
@@ -926,13 +932,22 @@ void LLFloaterPreference::disableUnavailableSettings()
ctrl_wind_light->setValue(FALSE);
ctrl_reflections->setEnabled(FALSE);
- ctrl_reflections->setValue(FALSE);
+ ctrl_reflections->setValue(0);
ctrl_avatar_vp->setEnabled(FALSE);
ctrl_avatar_vp->setValue(FALSE);
ctrl_avatar_cloth->setEnabled(FALSE);
ctrl_avatar_cloth->setValue(FALSE);
+
+ ctrl_shadows->setEnabled(FALSE);
+ ctrl_shadows->setValue(0);
+
+ ctrl_ssao->setEnabled(FALSE);
+ ctrl_ssao->setValue(FALSE);
+
+ ctrl_deferred->setEnabled(FALSE);
+ ctrl_deferred->setValue(FALSE);
}
// disabled windlight
@@ -940,10 +955,47 @@ void LLFloaterPreference::disableUnavailableSettings()
{
ctrl_wind_light->setEnabled(FALSE);
ctrl_wind_light->setValue(FALSE);
+
+ //deferred needs windlight, disable deferred
+ ctrl_shadows->setEnabled(FALSE);
+ ctrl_shadows->setValue(0);
+
+ ctrl_ssao->setEnabled(FALSE);
+ ctrl_ssao->setValue(FALSE);
+
+ ctrl_deferred->setEnabled(FALSE);
+ ctrl_deferred->setValue(FALSE);
+ }
+
+ // disabled deferred
+ if(!LLFeatureManager::getInstance()->isFeatureAvailable("RenderDeferred"))
+ {
+ ctrl_shadows->setEnabled(FALSE);
+ ctrl_shadows->setValue(0);
+
+ ctrl_ssao->setEnabled(FALSE);
+ ctrl_ssao->setValue(FALSE);
+
+ ctrl_deferred->setEnabled(FALSE);
+ ctrl_deferred->setValue(FALSE);
+ }
+
+ // disabled deferred SSAO
+ if(!LLFeatureManager::getInstance()->isFeatureAvailable("RenderDeferredSSAO"))
+ {
+ ctrl_ssao->setEnabled(FALSE);
+ ctrl_ssao->setValue(FALSE);
}
+ // disabled deferred shadows
+ if(!LLFeatureManager::getInstance()->isFeatureAvailable("RenderShadowDetail"))
+ {
+ ctrl_shadows->setEnabled(FALSE);
+ ctrl_shadows->setValue(0);
+ }
+
// disabled reflections
- if(!LLFeatureManager::getInstance()->isFeatureAvailable("RenderWaterReflections"))
+ if(!LLFeatureManager::getInstance()->isFeatureAvailable("RenderReflectionDetail"))
{
ctrl_reflections->setEnabled(FALSE);
ctrl_reflections->setValue(FALSE);
@@ -957,13 +1009,25 @@ void LLFloaterPreference::disableUnavailableSettings()
ctrl_avatar_cloth->setEnabled(FALSE);
ctrl_avatar_cloth->setValue(FALSE);
+
+ //deferred needs AvatarVP, disable deferred
+ ctrl_shadows->setEnabled(FALSE);
+ ctrl_shadows->setValue(0);
+
+ ctrl_ssao->setEnabled(FALSE);
+ ctrl_ssao->setValue(FALSE);
+
+ ctrl_deferred->setEnabled(FALSE);
+ ctrl_deferred->setValue(FALSE);
}
+
// disabled cloth
if(!LLFeatureManager::getInstance()->isFeatureAvailable("RenderAvatarCloth"))
{
ctrl_avatar_cloth->setEnabled(FALSE);
ctrl_avatar_cloth->setValue(FALSE);
}
+
// disabled impostors
if(!LLFeatureManager::getInstance()->isFeatureAvailable("RenderUseImpostors"))
{
@@ -1014,7 +1078,7 @@ void LLFloaterPreference::onClickSetKey()
void LLFloaterPreference::setKey(KEY key)
{
- childSetValue("modifier_combo", LLKeyboard::stringFromKey(key));
+ getChild<LLUICtrl>("modifier_combo")->setValue(LLKeyboard::stringFromKey(key));
// update the control right away since we no longer wait for apply
getChild<LLUICtrl>("modifier_combo")->onCommit();
}
@@ -1071,9 +1135,7 @@ void LLFloaterPreference::onClickDisablePopup()
for (itor = items.begin(); itor != items.end(); ++itor)
{
LLNotificationTemplatePtr templatep = LLNotifications::instance().getTemplate(*(std::string*)((*itor)->getUserdata()));
- //gSavedSettings.setWarning(templatep->mName, TRUE);
- std::string notification_name = templatep->mName;
- LLUI::sSettingGroups["ignores"]->setBOOL(notification_name, FALSE);
+ templatep->mForm->setIgnored(false);
}
buildPopupLists();
@@ -1087,7 +1149,7 @@ void LLFloaterPreference::resetAllIgnored()
{
if (iter->second->mForm->getIgnoreType() != LLNotificationForm::IGNORE_NO)
{
- LLUI::sSettingGroups["ignores"]->setBOOL(iter->first, TRUE);
+ iter->second->mForm->setIgnored(true);
}
}
}
@@ -1100,7 +1162,7 @@ void LLFloaterPreference::setAllIgnored()
{
if (iter->second->mForm->getIgnoreType() != LLNotificationForm::IGNORE_NO)
{
- LLUI::sSettingGroups["ignores"]->setBOOL(iter->first, FALSE);
+ iter->second->mForm->setIgnored(false);
}
}
}
@@ -1127,46 +1189,46 @@ void LLFloaterPreference::setPersonalInfo(const std::string& visibility, bool im
if(visibility == VISIBILITY_DEFAULT)
{
mOriginalHideOnlineStatus = false;
- childEnable("online_visibility");
+ getChildView("online_visibility")->setEnabled(TRUE);
}
else if(visibility == VISIBILITY_HIDDEN)
{
mOriginalHideOnlineStatus = true;
- childEnable("online_visibility");
+ getChildView("online_visibility")->setEnabled(TRUE);
}
else
{
mOriginalHideOnlineStatus = true;
}
- childEnable("include_im_in_chat_history");
- childEnable("show_timestamps_check_im");
- childEnable("friends_online_notify_checkbox");
-
- childSetValue("online_visibility", mOriginalHideOnlineStatus);
- childSetLabelArg("online_visibility", "[DIR_VIS]", mDirectoryVisibility);
- childEnable("send_im_to_email");
- childSetValue("send_im_to_email", im_via_email);
- childEnable("plain_text_chat_history");
- childSetValue("plain_text_chat_history", gSavedSettings.getBOOL("PlainTextChatHistory"));
- childEnable("log_instant_messages");
-// childEnable("log_chat");
-// childEnable("busy_response");
-// childEnable("log_instant_messages_timestamp");
-// childEnable("log_chat_timestamp");
- childEnable("log_chat_IM");
- childEnable("log_date_timestamp");
-
-// childSetText("busy_response", gSavedSettings.getString("BusyModeResponse2"));
-
- childEnable("log_nearby_chat");
- childEnable("log_instant_messages");
- childEnable("show_timestamps_check_im");
- childDisable("log_path_string");// LineEditor becomes readonly in this case.
- childEnable("log_path_button");
+ getChildView("include_im_in_chat_history")->setEnabled(TRUE);
+ getChildView("show_timestamps_check_im")->setEnabled(TRUE);
+ getChildView("friends_online_notify_checkbox")->setEnabled(TRUE);
+
+ getChild<LLUICtrl>("online_visibility")->setValue(mOriginalHideOnlineStatus);
+ getChild<LLUICtrl>("online_visibility")->setLabelArg("[DIR_VIS]", mDirectoryVisibility);
+ getChildView("send_im_to_email")->setEnabled(TRUE);
+ getChild<LLUICtrl>("send_im_to_email")->setValue(im_via_email);
+ getChildView("plain_text_chat_history")->setEnabled(TRUE);
+ getChild<LLUICtrl>("plain_text_chat_history")->setValue(gSavedSettings.getBOOL("PlainTextChatHistory"));
+ getChildView("log_instant_messages")->setEnabled(TRUE);
+// getChildView("log_chat")->setEnabled(TRUE);
+// getChildView("busy_response")->setEnabled(TRUE);
+// getChildView("log_instant_messages_timestamp")->setEnabled(TRUE);
+// getChildView("log_chat_timestamp")->setEnabled(TRUE);
+ getChildView("log_chat_IM")->setEnabled(TRUE);
+ getChildView("log_date_timestamp")->setEnabled(TRUE);
+
+// getChild<LLUICtrl>("busy_response")->setValue(gSavedSettings.getString("BusyModeResponse2"));
+
+ getChildView("log_nearby_chat")->setEnabled(TRUE);
+ getChildView("log_instant_messages")->setEnabled(TRUE);
+ getChildView("show_timestamps_check_im")->setEnabled(TRUE);
+ getChildView("log_path_string")->setEnabled(FALSE);// LineEditor becomes readonly in this case.
+ getChildView("log_path_button")->setEnabled(TRUE);
std::string display_email(email);
- childSetText("email_address",display_email);
+ getChild<LLUICtrl>("email_address")->setValue(display_email);
}
@@ -1225,6 +1287,17 @@ void LLFloaterPreference::onChangeMaturity()
getChild<LLIconCtrl>("rating_icon_adult")->setVisible(sim_access == SIM_ACCESS_ADULT);
}
+// FIXME: this will stop you from spawning the sidetray from preferences dialog on login screen
+// but the UI for this will still be enabled
+void LLFloaterPreference::onClickBlockList()
+{
+ // don't create side tray on demand
+ if (LLSideTray::instanceCreated())
+ {
+ LLSideTray::getInstance()->showPanel("panel_block_list_sidetray");
+ }
+}
+
void LLFloaterPreference::applyUIColor(LLUICtrl* ctrl, const LLSD& param)
{
@@ -1254,8 +1327,8 @@ BOOL LLPanelPreference::postBuild()
if(hasChild("voice_unavailable"))
{
BOOL voice_disabled = gSavedSettings.getBOOL("CmdLineDisableVoice");
- childSetVisible("voice_unavailable", voice_disabled);
- childSetVisible("enable_voice_check", !voice_disabled);
+ getChildView("voice_unavailable")->setVisible( voice_disabled);
+ getChildView("enable_voice_check")->setVisible( !voice_disabled);
}
//////////////////////PanelSkins ///////////////////
@@ -1275,8 +1348,8 @@ BOOL LLPanelPreference::postBuild()
if(hasChild("online_visibility") && hasChild("send_im_to_email"))
{
- childSetText("email_address",getString("log_in_to_change") );
-// childSetText("busy_response", getString("log_in_to_change"));
+ getChild<LLUICtrl>("email_address")->setValue(getString("log_in_to_change") );
+// getChild<LLUICtrl>("busy_response")->setValue(getString("log_in_to_change"));
}
//////////////////////PanelPrivacy ///////////////////
@@ -1300,9 +1373,9 @@ BOOL LLPanelPreference::postBuild()
if (hasChild("modifier_combo"))
{
//localizing if push2talk button is set to middle mouse
- if (MIDDLE_MOUSE_CV == childGetValue("modifier_combo").asString())
+ if (MIDDLE_MOUSE_CV == getChild<LLUICtrl>("modifier_combo")->getValue().asString())
{
- childSetValue("modifier_combo", getString("middle_mouse"));
+ getChild<LLUICtrl>("modifier_combo")->setValue(getString("middle_mouse"));
}
}
diff --git a/indra/newview/llfloaterpreference.h b/indra/newview/llfloaterpreference.h
index b45e09db7d..d1e15d5ab8 100644
--- a/indra/newview/llfloaterpreference.h
+++ b/indra/newview/llfloaterpreference.h
@@ -2,31 +2,25 @@
* @file llfloaterpreference.h
* @brief LLPreferenceCore class definition
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -141,6 +135,7 @@ public:
void onCommitMusicEnabled();
void applyResolution();
void onChangeMaturity();
+ void onClickBlockList();
void applyUIColor(LLUICtrl* ctrl, const LLSD& param);
void getUIColor(LLUICtrl* ctrl, const LLSD& param);
diff --git a/indra/newview/llfloaterproperties.cpp b/indra/newview/llfloaterproperties.cpp
index 30b654de24..dd12fa64d3 100644
--- a/indra/newview/llfloaterproperties.cpp
+++ b/indra/newview/llfloaterproperties.cpp
@@ -2,31 +2,25 @@
* @file llfloaterproperties.cpp
* @brief A floater which shows an inventory item's properties.
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -114,8 +108,6 @@ LLFloaterProperties::LLFloaterProperties(const LLUUID& item_id)
mDirty(TRUE)
{
mPropertiesObserver = new LLPropertiesObserver(this);
-
- //LLUICtrlFactory::getInstance()->buildFloater(this,"floater_inventory_item_properties.xml");
}
// Destroys the object
@@ -130,9 +122,9 @@ BOOL LLFloaterProperties::postBuild()
{
// build the UI
// item name & description
- childSetPrevalidate("LabelItemName",&LLTextValidate::validateASCIIPrintableNoPipe);
+ getChild<LLLineEditor>("LabelItemName")->setPrevalidate(&LLTextValidate::validateASCIIPrintableNoPipe);
getChild<LLUICtrl>("LabelItemName")->setCommitCallback(boost::bind(&LLFloaterProperties::onCommitName,this));
- childSetPrevalidate("LabelItemDesc",&LLTextValidate::validateASCIIPrintableNoPipe);
+ getChild<LLLineEditor>("LabelItemDesc")->setPrevalidate(&LLTextValidate::validateASCIIPrintableNoPipe);
getChild<LLUICtrl>("LabelItemDesc")->setCommitCallback(boost::bind(&LLFloaterProperties:: onCommitDescription, this));
// Creator information
getChild<LLUICtrl>("BtnCreator")->setCommitCallback(boost::bind(&LLFloaterProperties::onClickCreator,this));
@@ -201,7 +193,7 @@ void LLFloaterProperties::refresh()
};
for(size_t t=0; t<LL_ARRAY_SIZE(enableNames); ++t)
{
- childSetEnabled(enableNames[t],false);
+ getChildView(enableNames[t])->setEnabled(false);
}
const char* hideNames[]={
"BaseMaskDebug",
@@ -212,7 +204,7 @@ void LLFloaterProperties::refresh()
};
for(size_t t=0; t<LL_ARRAY_SIZE(hideNames); ++t)
{
- childSetVisible(hideNames[t],false);
+ getChildView(hideNames[t])->setVisible(false);
}
}
}
@@ -265,13 +257,13 @@ void LLFloaterProperties::refreshFromItem(LLInventoryItem* item)
GP_OBJECT_MANIPULATE)
&& is_obj_modify && is_complete;
- childSetEnabled("LabelItemNameTitle",TRUE);
- childSetEnabled("LabelItemName",is_modifiable && !is_calling_card); // for now, don't allow rename of calling cards
- childSetText("LabelItemName",item->getName());
- childSetEnabled("LabelItemDescTitle",TRUE);
- childSetEnabled("LabelItemDesc",is_modifiable);
- childSetVisible("IconLocked",!is_modifiable);
- childSetText("LabelItemDesc",item->getDescription());
+ getChildView("LabelItemNameTitle")->setEnabled(TRUE);
+ getChildView("LabelItemName")->setEnabled(is_modifiable && !is_calling_card); // for now, don't allow rename of calling cards
+ getChild<LLUICtrl>("LabelItemName")->setValue(item->getName());
+ getChildView("LabelItemDescTitle")->setEnabled(TRUE);
+ getChildView("LabelItemDesc")->setEnabled(is_modifiable);
+ getChildView("IconLocked")->setVisible(!is_modifiable);
+ getChild<LLUICtrl>("LabelItemDesc")->setValue(item->getDescription());
//////////////////
// CREATOR NAME //
@@ -283,17 +275,17 @@ void LLFloaterProperties::refreshFromItem(LLInventoryItem* item)
{
std::string name;
gCacheName->getFullName(item->getCreatorUUID(), name);
- childSetEnabled("BtnCreator",TRUE);
- childSetEnabled("LabelCreatorTitle",TRUE);
- childSetEnabled("LabelCreatorName",TRUE);
- childSetText("LabelCreatorName",name);
+ getChildView("BtnCreator")->setEnabled(TRUE);
+ getChildView("LabelCreatorTitle")->setEnabled(TRUE);
+ getChildView("LabelCreatorName")->setEnabled(TRUE);
+ getChild<LLUICtrl>("LabelCreatorName")->setValue(name);
}
else
{
- childSetEnabled("BtnCreator",FALSE);
- childSetEnabled("LabelCreatorTitle",FALSE);
- childSetEnabled("LabelCreatorName",FALSE);
- childSetText("LabelCreatorName",getString("unknown"));
+ getChildView("BtnCreator")->setEnabled(FALSE);
+ getChildView("LabelCreatorTitle")->setEnabled(FALSE);
+ getChildView("LabelCreatorName")->setEnabled(FALSE);
+ getChild<LLUICtrl>("LabelCreatorName")->setValue(getString("unknown"));
}
////////////////
@@ -310,17 +302,17 @@ void LLFloaterProperties::refreshFromItem(LLInventoryItem* item)
{
gCacheName->getFullName(perm.getOwner(), name);
}
- childSetEnabled("BtnOwner",TRUE);
- childSetEnabled("LabelOwnerTitle",TRUE);
- childSetEnabled("LabelOwnerName",TRUE);
- childSetText("LabelOwnerName",name);
+ getChildView("BtnOwner")->setEnabled(TRUE);
+ getChildView("LabelOwnerTitle")->setEnabled(TRUE);
+ getChildView("LabelOwnerName")->setEnabled(TRUE);
+ getChild<LLUICtrl>("LabelOwnerName")->setValue(name);
}
else
{
- childSetEnabled("BtnOwner",FALSE);
- childSetEnabled("LabelOwnerTitle",FALSE);
- childSetEnabled("LabelOwnerName",FALSE);
- childSetText("LabelOwnerName",getString("public"));
+ getChildView("BtnOwner")->setEnabled(FALSE);
+ getChildView("LabelOwnerTitle")->setEnabled(FALSE);
+ getChildView("LabelOwnerName")->setEnabled(FALSE);
+ getChild<LLUICtrl>("LabelOwnerName")->setValue(getString("public"));
}
//////////////////
@@ -330,7 +322,7 @@ void LLFloaterProperties::refreshFromItem(LLInventoryItem* item)
time_t time_utc = item->getCreationDate();
if (0 == time_utc)
{
- childSetText("LabelAcquiredDate",getString("unknown"));
+ getChild<LLUICtrl>("LabelAcquiredDate")->setValue(getString("unknown"));
}
else
{
@@ -338,7 +330,7 @@ void LLFloaterProperties::refreshFromItem(LLInventoryItem* item)
LLSD substitution;
substitution["datetime"] = (S32) time_utc;
LLStringUtil::format (timeStr, substitution);
- childSetText ("LabelAcquiredDate", timeStr);
+ getChild<LLUICtrl>("LabelAcquiredDate")->setValue(timeStr);
}
///////////////////////
@@ -346,11 +338,11 @@ void LLFloaterProperties::refreshFromItem(LLInventoryItem* item)
///////////////////////
if(can_agent_manipulate)
{
- childSetText("OwnerLabel",getString("you_can"));
+ getChild<LLUICtrl>("OwnerLabel")->setValue(getString("you_can"));
}
else
{
- childSetText("OwnerLabel",getString("owner_can"));
+ getChild<LLUICtrl>("OwnerLabel")->setValue(getString("owner_can"));
}
U32 base_mask = perm.getMaskBase();
@@ -359,13 +351,13 @@ void LLFloaterProperties::refreshFromItem(LLInventoryItem* item)
U32 everyone_mask = perm.getMaskEveryone();
U32 next_owner_mask = perm.getMaskNextOwner();
- childSetEnabled("OwnerLabel",TRUE);
- childSetEnabled("CheckOwnerModify",FALSE);
- childSetValue("CheckOwnerModify",LLSD((BOOL)(owner_mask & PERM_MODIFY)));
- childSetEnabled("CheckOwnerCopy",FALSE);
- childSetValue("CheckOwnerCopy",LLSD((BOOL)(owner_mask & PERM_COPY)));
- childSetEnabled("CheckOwnerTransfer",FALSE);
- childSetValue("CheckOwnerTransfer",LLSD((BOOL)(owner_mask & PERM_TRANSFER)));
+ getChildView("OwnerLabel")->setEnabled(TRUE);
+ getChildView("CheckOwnerModify")->setEnabled(FALSE);
+ getChild<LLUICtrl>("CheckOwnerModify")->setValue(LLSD((BOOL)(owner_mask & PERM_MODIFY)));
+ getChildView("CheckOwnerCopy")->setEnabled(FALSE);
+ getChild<LLUICtrl>("CheckOwnerCopy")->setValue(LLSD((BOOL)(owner_mask & PERM_COPY)));
+ getChildView("CheckOwnerTransfer")->setEnabled(FALSE);
+ getChild<LLUICtrl>("CheckOwnerTransfer")->setValue(LLSD((BOOL)(owner_mask & PERM_TRANSFER)));
///////////////////////
// DEBUG PERMISSIONS //
@@ -389,39 +381,39 @@ void LLFloaterProperties::refreshFromItem(LLInventoryItem* item)
perm_string = "B: ";
perm_string += mask_to_string(base_mask);
- childSetText("BaseMaskDebug",perm_string);
- childSetVisible("BaseMaskDebug",TRUE);
+ getChild<LLUICtrl>("BaseMaskDebug")->setValue(perm_string);
+ getChildView("BaseMaskDebug")->setVisible(TRUE);
perm_string = "O: ";
perm_string += mask_to_string(owner_mask);
- childSetText("OwnerMaskDebug",perm_string);
- childSetVisible("OwnerMaskDebug",TRUE);
+ getChild<LLUICtrl>("OwnerMaskDebug")->setValue(perm_string);
+ getChildView("OwnerMaskDebug")->setVisible(TRUE);
perm_string = "G";
perm_string += overwrite_group ? "*: " : ": ";
perm_string += mask_to_string(group_mask);
- childSetText("GroupMaskDebug",perm_string);
- childSetVisible("GroupMaskDebug",TRUE);
+ getChild<LLUICtrl>("GroupMaskDebug")->setValue(perm_string);
+ getChildView("GroupMaskDebug")->setVisible(TRUE);
perm_string = "E";
perm_string += overwrite_everyone ? "*: " : ": ";
perm_string += mask_to_string(everyone_mask);
- childSetText("EveryoneMaskDebug",perm_string);
- childSetVisible("EveryoneMaskDebug",TRUE);
+ getChild<LLUICtrl>("EveryoneMaskDebug")->setValue(perm_string);
+ getChildView("EveryoneMaskDebug")->setVisible(TRUE);
perm_string = "N";
perm_string += slam_perm ? "*: " : ": ";
perm_string += mask_to_string(next_owner_mask);
- childSetText("NextMaskDebug",perm_string);
- childSetVisible("NextMaskDebug",TRUE);
+ getChild<LLUICtrl>("NextMaskDebug")->setValue(perm_string);
+ getChildView("NextMaskDebug")->setVisible(TRUE);
}
else
{
- childSetVisible("BaseMaskDebug",FALSE);
- childSetVisible("OwnerMaskDebug",FALSE);
- childSetVisible("GroupMaskDebug",FALSE);
- childSetVisible("EveryoneMaskDebug",FALSE);
- childSetVisible("NextMaskDebug",FALSE);
+ getChildView("BaseMaskDebug")->setVisible(FALSE);
+ getChildView("OwnerMaskDebug")->setVisible(FALSE);
+ getChildView("GroupMaskDebug")->setVisible(FALSE);
+ getChildView("EveryoneMaskDebug")->setVisible(FALSE);
+ getChildView("NextMaskDebug")->setVisible(FALSE);
}
/////////////
@@ -431,18 +423,18 @@ void LLFloaterProperties::refreshFromItem(LLInventoryItem* item)
// Check for ability to change values.
if (is_link || cannot_restrict_permissions)
{
- childSetEnabled("CheckShareWithGroup",FALSE);
- childSetEnabled("CheckEveryoneCopy",FALSE);
+ getChildView("CheckShareWithGroup")->setEnabled(FALSE);
+ getChildView("CheckEveryoneCopy")->setEnabled(FALSE);
}
else if (is_obj_modify && can_agent_manipulate)
{
- childSetEnabled("CheckShareWithGroup",TRUE);
- childSetEnabled("CheckEveryoneCopy",(owner_mask & PERM_COPY) && (owner_mask & PERM_TRANSFER));
+ getChildView("CheckShareWithGroup")->setEnabled(TRUE);
+ getChildView("CheckEveryoneCopy")->setEnabled((owner_mask & PERM_COPY) && (owner_mask & PERM_TRANSFER));
}
else
{
- childSetEnabled("CheckShareWithGroup",FALSE);
- childSetEnabled("CheckEveryoneCopy",FALSE);
+ getChildView("CheckShareWithGroup")->setEnabled(FALSE);
+ getChildView("CheckEveryoneCopy")->setEnabled(FALSE);
}
// Set values.
@@ -452,7 +444,7 @@ void LLFloaterProperties::refreshFromItem(LLInventoryItem* item)
if (is_group_copy && is_group_modify && is_group_move)
{
- childSetValue("CheckShareWithGroup",LLSD((BOOL)TRUE));
+ getChild<LLUICtrl>("CheckShareWithGroup")->setValue(LLSD((BOOL)TRUE));
LLCheckBoxCtrl* ctl = getChild<LLCheckBoxCtrl>("CheckShareWithGroup");
if(ctl)
@@ -462,7 +454,7 @@ void LLFloaterProperties::refreshFromItem(LLInventoryItem* item)
}
else if (!is_group_copy && !is_group_modify && !is_group_move)
{
- childSetValue("CheckShareWithGroup",LLSD((BOOL)FALSE));
+ getChild<LLUICtrl>("CheckShareWithGroup")->setValue(LLSD((BOOL)FALSE));
LLCheckBoxCtrl* ctl = getChild<LLCheckBoxCtrl>("CheckShareWithGroup");
if(ctl)
{
@@ -479,7 +471,7 @@ void LLFloaterProperties::refreshFromItem(LLInventoryItem* item)
}
}
- childSetValue("CheckEveryoneCopy",LLSD((BOOL)(everyone_mask & PERM_COPY)));
+ getChild<LLUICtrl>("CheckEveryoneCopy")->setValue(LLSD((BOOL)(everyone_mask & PERM_COPY)));
///////////////
// SALE INFO //
@@ -491,40 +483,40 @@ void LLFloaterProperties::refreshFromItem(LLInventoryItem* item)
if (is_obj_modify && can_agent_sell
&& gAgent.allowOperation(PERM_TRANSFER, perm, GP_OBJECT_MANIPULATE))
{
- childSetEnabled("SaleLabel",is_complete);
- childSetEnabled("CheckPurchase",is_complete);
+ getChildView("SaleLabel")->setEnabled(is_complete);
+ getChildView("CheckPurchase")->setEnabled(is_complete);
- childSetEnabled("NextOwnerLabel",TRUE);
- childSetEnabled("CheckNextOwnerModify",(base_mask & PERM_MODIFY) && !cannot_restrict_permissions);
- childSetEnabled("CheckNextOwnerCopy",(base_mask & PERM_COPY) && !cannot_restrict_permissions);
- childSetEnabled("CheckNextOwnerTransfer",(next_owner_mask & PERM_COPY) && !cannot_restrict_permissions);
+ getChildView("NextOwnerLabel")->setEnabled(TRUE);
+ getChildView("CheckNextOwnerModify")->setEnabled((base_mask & PERM_MODIFY) && !cannot_restrict_permissions);
+ getChildView("CheckNextOwnerCopy")->setEnabled((base_mask & PERM_COPY) && !cannot_restrict_permissions);
+ getChildView("CheckNextOwnerTransfer")->setEnabled((next_owner_mask & PERM_COPY) && !cannot_restrict_permissions);
- childSetEnabled("RadioSaleType",is_complete && is_for_sale);
- childSetEnabled("TextPrice",is_complete && is_for_sale);
- childSetEnabled("Edit Cost",is_complete && is_for_sale);
+ getChildView("RadioSaleType")->setEnabled(is_complete && is_for_sale);
+ getChildView("TextPrice")->setEnabled(is_complete && is_for_sale);
+ getChildView("Edit Cost")->setEnabled(is_complete && is_for_sale);
}
else
{
- childSetEnabled("SaleLabel",FALSE);
- childSetEnabled("CheckPurchase",FALSE);
+ getChildView("SaleLabel")->setEnabled(FALSE);
+ getChildView("CheckPurchase")->setEnabled(FALSE);
- childSetEnabled("NextOwnerLabel",FALSE);
- childSetEnabled("CheckNextOwnerModify",FALSE);
- childSetEnabled("CheckNextOwnerCopy",FALSE);
- childSetEnabled("CheckNextOwnerTransfer",FALSE);
+ getChildView("NextOwnerLabel")->setEnabled(FALSE);
+ getChildView("CheckNextOwnerModify")->setEnabled(FALSE);
+ getChildView("CheckNextOwnerCopy")->setEnabled(FALSE);
+ getChildView("CheckNextOwnerTransfer")->setEnabled(FALSE);
- childSetEnabled("RadioSaleType",FALSE);
- childSetEnabled("TextPrice",FALSE);
- childSetEnabled("Edit Cost",FALSE);
+ getChildView("RadioSaleType")->setEnabled(FALSE);
+ getChildView("TextPrice")->setEnabled(FALSE);
+ getChildView("Edit Cost")->setEnabled(FALSE);
}
// Set values.
- childSetValue("CheckPurchase", is_for_sale);
- childSetEnabled("combobox sale copy", is_for_sale);
- childSetEnabled("Edit Cost", is_for_sale);
- childSetValue("CheckNextOwnerModify",LLSD(BOOL(next_owner_mask & PERM_MODIFY)));
- childSetValue("CheckNextOwnerCopy",LLSD(BOOL(next_owner_mask & PERM_COPY)));
- childSetValue("CheckNextOwnerTransfer",LLSD(BOOL(next_owner_mask & PERM_TRANSFER)));
+ getChild<LLUICtrl>("CheckPurchase")->setValue(is_for_sale);
+ getChildView("combobox sale copy")->setEnabled(is_for_sale);
+ getChildView("Edit Cost")->setEnabled(is_for_sale);
+ getChild<LLUICtrl>("CheckNextOwnerModify")->setValue(LLSD(BOOL(next_owner_mask & PERM_MODIFY)));
+ getChild<LLUICtrl>("CheckNextOwnerCopy")->setValue(LLSD(BOOL(next_owner_mask & PERM_COPY)));
+ getChild<LLUICtrl>("CheckNextOwnerTransfer")->setValue(LLSD(BOOL(next_owner_mask & PERM_TRANSFER)));
LLRadioGroup* radioSaleType = getChild<LLRadioGroup>("RadioSaleType");
if (is_for_sale)
@@ -532,12 +524,12 @@ void LLFloaterProperties::refreshFromItem(LLInventoryItem* item)
radioSaleType->setSelectedIndex((S32)sale_info.getSaleType() - 1);
S32 numerical_price;
numerical_price = sale_info.getSalePrice();
- childSetText("Edit Cost",llformat("%d",numerical_price));
+ getChild<LLUICtrl>("Edit Cost")->setValue(llformat("%d",numerical_price));
}
else
{
radioSaleType->setSelectedIndex(-1);
- childSetText("Edit Cost",llformat("%d",0));
+ getChild<LLUICtrl>("Edit Cost")->setValue(llformat("%d",0));
}
}
@@ -758,10 +750,10 @@ void LLFloaterProperties::updateSaleInfo()
LLSaleInfo sale_info(item->getSaleInfo());
if(!gAgent.allowOperation(PERM_TRANSFER, item->getPermissions(), GP_OBJECT_SET_SALE))
{
- childSetValue("CheckPurchase",LLSD((BOOL)FALSE));
+ getChild<LLUICtrl>("CheckPurchase")->setValue(LLSD((BOOL)FALSE));
}
- if((BOOL)childGetValue("CheckPurchase"))
+ if((BOOL)getChild<LLUICtrl>("CheckPurchase")->getValue())
{
// turn on sale info
LLSaleInfo::EForSale sale_type = LLSaleInfo::FS_COPY;
diff --git a/indra/newview/llfloaterproperties.h b/indra/newview/llfloaterproperties.h
index 586719a4dc..aa3fcec337 100644
--- a/indra/newview/llfloaterproperties.h
+++ b/indra/newview/llfloaterproperties.h
@@ -2,31 +2,25 @@
* @file llfloaterproperties.h
* @brief A floater which shows an inventory item's properties.
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloaterregioninfo.cpp b/indra/newview/llfloaterregioninfo.cpp
index 8c219cb3fd..ed81fdec16 100644
--- a/indra/newview/llfloaterregioninfo.cpp
+++ b/indra/newview/llfloaterregioninfo.cpp
@@ -3,31 +3,25 @@
* @author Aaron Brashears
* @brief Implementation of the region info and controls floater and panels.
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -167,7 +161,6 @@ LLUUID LLFloaterRegionInfo::sRequestInvoice;
LLFloaterRegionInfo::LLFloaterRegionInfo(const LLSD& seed)
: LLFloater(seed)
{
- //LLUICtrlFactory::getInstance()->buildFloater(this, "floater_region_info.xml", FALSE);
}
BOOL LLFloaterRegionInfo::postBuild()
@@ -180,32 +173,32 @@ BOOL LLFloaterRegionInfo::postBuild()
mInfoPanels.push_back(panel);
panel->getCommitCallbackRegistrar().add("RegionInfo.ManageTelehub", boost::bind(&LLPanelRegionInfo::onClickManageTelehub, panel));
- LLUICtrlFactory::getInstance()->buildPanel(panel, "panel_region_general.xml");
+ panel->buildFromFile("panel_region_general.xml");
mTab->addTabPanel(LLTabContainer::TabPanelParams().panel(panel).select_tab(true));
panel = new LLPanelRegionDebugInfo;
mInfoPanels.push_back(panel);
- LLUICtrlFactory::getInstance()->buildPanel(panel, "panel_region_debug.xml");
+ panel->buildFromFile("panel_region_debug.xml");
mTab->addTabPanel(panel);
panel = new LLPanelRegionTextureInfo;
mInfoPanels.push_back(panel);
- LLUICtrlFactory::getInstance()->buildPanel(panel, "panel_region_texture.xml");
+ panel->buildFromFile("panel_region_texture.xml");
mTab->addTabPanel(panel);
panel = new LLPanelRegionTerrainInfo;
mInfoPanels.push_back(panel);
- LLUICtrlFactory::getInstance()->buildPanel(panel, "panel_region_terrain.xml");
+ panel->buildFromFile("panel_region_terrain.xml");
mTab->addTabPanel(panel);
panel = new LLPanelEstateInfo;
mInfoPanels.push_back(panel);
- LLUICtrlFactory::getInstance()->buildPanel(panel, "panel_region_estate.xml");
+ panel->buildFromFile("panel_region_estate.xml");
mTab->addTabPanel(panel);
panel = new LLPanelEstateCovenant;
mInfoPanels.push_back(panel);
- LLUICtrlFactory::getInstance()->buildPanel(panel, "panel_region_covenant.xml");
+ panel->buildFromFile("panel_region_covenant.xml");
mTab->addTabPanel(panel);
gMessageSystem->setHandlerFunc(
@@ -332,20 +325,20 @@ void LLFloaterRegionInfo::processRegionInfo(LLMessageSystem* msg)
// GENERAL PANEL
panel = tab->getChild<LLPanel>("General");
- panel->childSetValue("region_text", LLSD(sim_name));
- panel->childSetValue("region_type", LLSD(sim_type));
- panel->childSetValue("version_channel_text", gLastVersionChannel);
-
- panel->childSetValue("block_terraform_check", (region_flags & REGION_FLAGS_BLOCK_TERRAFORM) ? TRUE : FALSE );
- panel->childSetValue("block_fly_check", (region_flags & REGION_FLAGS_BLOCK_FLY) ? TRUE : FALSE );
- panel->childSetValue("allow_damage_check", (region_flags & REGION_FLAGS_ALLOW_DAMAGE) ? TRUE : FALSE );
- panel->childSetValue("restrict_pushobject", (region_flags & REGION_FLAGS_RESTRICT_PUSHOBJECT) ? TRUE : FALSE );
- panel->childSetValue("allow_land_resell_check", (region_flags & REGION_FLAGS_BLOCK_LAND_RESELL) ? FALSE : TRUE );
- panel->childSetValue("allow_parcel_changes_check", (region_flags & REGION_FLAGS_ALLOW_PARCEL_CHANGES) ? TRUE : FALSE );
- panel->childSetValue("block_parcel_search_check", (region_flags & REGION_FLAGS_BLOCK_PARCEL_SEARCH) ? TRUE : FALSE );
- panel->childSetValue("agent_limit_spin", LLSD((F32)agent_limit) );
- panel->childSetValue("object_bonus_spin", LLSD(object_bonus_factor) );
- panel->childSetValue("access_combo", LLSD(sim_access) );
+ panel->getChild<LLUICtrl>("region_text")->setValue(LLSD(sim_name));
+ panel->getChild<LLUICtrl>("region_type")->setValue(LLSD(sim_type));
+ panel->getChild<LLUICtrl>("version_channel_text")->setValue(gLastVersionChannel);
+
+ panel->getChild<LLUICtrl>("block_terraform_check")->setValue((region_flags & REGION_FLAGS_BLOCK_TERRAFORM) ? TRUE : FALSE );
+ panel->getChild<LLUICtrl>("block_fly_check")->setValue((region_flags & REGION_FLAGS_BLOCK_FLY) ? TRUE : FALSE );
+ panel->getChild<LLUICtrl>("allow_damage_check")->setValue((region_flags & REGION_FLAGS_ALLOW_DAMAGE) ? TRUE : FALSE );
+ panel->getChild<LLUICtrl>("restrict_pushobject")->setValue((region_flags & REGION_FLAGS_RESTRICT_PUSHOBJECT) ? TRUE : FALSE );
+ panel->getChild<LLUICtrl>("allow_land_resell_check")->setValue((region_flags & REGION_FLAGS_BLOCK_LAND_RESELL) ? FALSE : TRUE );
+ panel->getChild<LLUICtrl>("allow_parcel_changes_check")->setValue((region_flags & REGION_FLAGS_ALLOW_PARCEL_CHANGES) ? TRUE : FALSE );
+ panel->getChild<LLUICtrl>("block_parcel_search_check")->setValue((region_flags & REGION_FLAGS_BLOCK_PARCEL_SEARCH) ? TRUE : FALSE );
+ panel->getChild<LLUICtrl>("agent_limit_spin")->setValue(LLSD((F32)agent_limit) );
+ panel->getChild<LLUICtrl>("object_bonus_spin")->setValue(LLSD(object_bonus_factor) );
+ panel->getChild<LLUICtrl>("access_combo")->setValue(LLSD(sim_access) );
// detect teen grid for maturity
@@ -353,32 +346,32 @@ void LLFloaterRegionInfo::processRegionInfo(LLMessageSystem* msg)
U32 parent_estate_id;
msg->getU32("RegionInfo", "ParentEstateID", parent_estate_id);
BOOL teen_grid = (parent_estate_id == 5); // *TODO add field to estate table and test that
- panel->childSetEnabled("access_combo", gAgent.isGodlike() || (region && region->canManageEstate() && !teen_grid));
+ panel->getChildView("access_combo")->setEnabled(gAgent.isGodlike() || (region && region->canManageEstate() && !teen_grid));
panel->setCtrlsEnabled(allow_modify);
// DEBUG PANEL
panel = tab->getChild<LLPanel>("Debug");
- panel->childSetValue("region_text", LLSD(sim_name) );
- panel->childSetValue("disable_scripts_check", LLSD((BOOL)(region_flags & REGION_FLAGS_SKIP_SCRIPTS)) );
- panel->childSetValue("disable_collisions_check", LLSD((BOOL)(region_flags & REGION_FLAGS_SKIP_COLLISIONS)) );
- panel->childSetValue("disable_physics_check", LLSD((BOOL)(region_flags & REGION_FLAGS_SKIP_PHYSICS)) );
+ 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->setCtrlsEnabled(allow_modify);
// TERRAIN PANEL
panel = tab->getChild<LLPanel>("Terrain");
- panel->childSetValue("region_text", LLSD(sim_name));
- panel->childSetValue("water_height_spin", LLSD(water_height));
- panel->childSetValue("terrain_raise_spin", LLSD(terrain_raise_limit));
- panel->childSetValue("terrain_lower_spin", LLSD(terrain_lower_limit));
- panel->childSetValue("use_estate_sun_check", LLSD(use_estate_sun));
+ panel->getChild<LLUICtrl>("region_text")->setValue(LLSD(sim_name));
+ panel->getChild<LLUICtrl>("water_height_spin")->setValue(LLSD(water_height));
+ panel->getChild<LLUICtrl>("terrain_raise_spin")->setValue(LLSD(terrain_raise_limit));
+ panel->getChild<LLUICtrl>("terrain_lower_spin")->setValue(LLSD(terrain_lower_limit));
+ panel->getChild<LLUICtrl>("use_estate_sun_check")->setValue(LLSD(use_estate_sun));
- panel->childSetValue("fixed_sun_check", LLSD((BOOL)(region_flags & REGION_FLAGS_SUN_FIXED)));
- panel->childSetEnabled("fixed_sun_check", allow_modify && !use_estate_sun);
- panel->childSetValue("sun_hour_slider", LLSD(sun_hour));
- panel->childSetEnabled("sun_hour_slider", allow_modify && !use_estate_sun);
+ panel->getChild<LLUICtrl>("fixed_sun_check")->setValue(LLSD((BOOL)(region_flags & REGION_FLAGS_SUN_FIXED)));
+ panel->getChildView("fixed_sun_check")->setEnabled(allow_modify && !use_estate_sun);
+ panel->getChild<LLUICtrl>("sun_hour_slider")->setValue(LLSD(sun_hour));
+ panel->getChildView("sun_hour_slider")->setEnabled(allow_modify && !use_estate_sun);
panel->setCtrlsEnabled(allow_modify);
floater->refreshFromRegion( gAgent.getRegion() );
@@ -485,7 +478,7 @@ void LLPanelRegionInfo::onChangeText(LLLineEditor* caller, void* user_data)
BOOL LLPanelRegionInfo::postBuild()
{
getChild<LLUICtrl>("apply_btn")->setCommitCallback(boost::bind(&LLPanelRegionInfo::onBtnSet, this));
- childDisable("apply_btn");
+ getChildView("apply_btn")->setEnabled(FALSE);
refresh();
return TRUE;
}
@@ -537,12 +530,12 @@ void LLPanelRegionInfo::sendEstateOwnerMessage(
void LLPanelRegionInfo::enableButton(const std::string& btn_name, BOOL enable)
{
- childSetEnabled(btn_name, enable);
+ getChildView(btn_name)->setEnabled(enable);
}
void LLPanelRegionInfo::disableButton(const std::string& btn_name)
{
- childDisable(btn_name);
+ getChildView(btn_name)->setEnabled(FALSE);
}
void LLPanelRegionInfo::initCtrl(const std::string& name)
@@ -563,14 +556,14 @@ bool LLPanelRegionGeneralInfo::refreshFromRegion(LLViewerRegion* region)
{
BOOL allow_modify = gAgent.isGodlike() || (region && region->canManageEstate());
setCtrlsEnabled(allow_modify);
- childDisable("apply_btn");
- childSetEnabled("access_text", allow_modify);
- // childSetEnabled("access_combo", allow_modify);
+ getChildView("apply_btn")->setEnabled(FALSE);
+ getChildView("access_text")->setEnabled(allow_modify);
+ // getChildView("access_combo")->setEnabled(allow_modify);
// now set in processRegionInfo for teen grid detection
- childSetEnabled("kick_btn", allow_modify);
- childSetEnabled("kick_all_btn", allow_modify);
- childSetEnabled("im_btn", allow_modify);
- childSetEnabled("manage_telehub_btn", allow_modify);
+ getChildView("kick_btn")->setEnabled(allow_modify);
+ getChildView("kick_all_btn")->setEnabled(allow_modify);
+ getChildView("im_btn")->setEnabled(allow_modify);
+ getChildView("manage_telehub_btn")->setEnabled(allow_modify);
// Data gets filled in by processRegionInfo
@@ -719,16 +712,16 @@ BOOL LLPanelRegionGeneralInfo::sendUpdate()
std::string url = gAgent.getRegion()->getCapability("DispatchRegionInfo");
if (!url.empty())
{
- body["block_terraform"] = childGetValue("block_terraform_check");
- body["block_fly"] = childGetValue("block_fly_check");
- body["allow_damage"] = childGetValue("allow_damage_check");
- body["allow_land_resell"] = childGetValue("allow_land_resell_check");
- body["agent_limit"] = childGetValue("agent_limit_spin");
- body["prim_bonus"] = childGetValue("object_bonus_spin");
- body["sim_access"] = childGetValue("access_combo");
- body["restrict_pushobject"] = childGetValue("restrict_pushobject");
- body["allow_parcel_changes"] = childGetValue("allow_parcel_changes_check");
- body["block_parcel_search"] = childGetValue("block_parcel_search_check");
+ body["block_terraform"] = getChild<LLUICtrl>("block_terraform_check")->getValue();
+ body["block_fly"] = getChild<LLUICtrl>("block_fly_check")->getValue();
+ body["allow_damage"] = getChild<LLUICtrl>("allow_damage_check")->getValue();
+ body["allow_land_resell"] = getChild<LLUICtrl>("allow_land_resell_check")->getValue();
+ body["agent_limit"] = getChild<LLUICtrl>("agent_limit_spin")->getValue();
+ body["prim_bonus"] = getChild<LLUICtrl>("object_bonus_spin")->getValue();
+ body["sim_access"] = getChild<LLUICtrl>("access_combo")->getValue();
+ body["restrict_pushobject"] = getChild<LLUICtrl>("restrict_pushobject")->getValue();
+ body["allow_parcel_changes"] = getChild<LLUICtrl>("allow_parcel_changes_check")->getValue();
+ body["block_parcel_search"] = getChild<LLUICtrl>("block_parcel_search_check")->getValue();
LLHTTPClient::post(url, body, new LLHTTPClient::Responder());
}
@@ -737,33 +730,33 @@ BOOL LLPanelRegionGeneralInfo::sendUpdate()
strings_t strings;
std::string buffer;
- buffer = llformat("%s", (childGetValue("block_terraform_check").asBoolean() ? "Y" : "N"));
+ buffer = llformat("%s", (getChild<LLUICtrl>("block_terraform_check")->getValue().asBoolean() ? "Y" : "N"));
strings.push_back(strings_t::value_type(buffer));
- buffer = llformat("%s", (childGetValue("block_fly_check").asBoolean() ? "Y" : "N"));
+ buffer = llformat("%s", (getChild<LLUICtrl>("block_fly_check")->getValue().asBoolean() ? "Y" : "N"));
strings.push_back(strings_t::value_type(buffer));
- buffer = llformat("%s", (childGetValue("allow_damage_check").asBoolean() ? "Y" : "N"));
+ buffer = llformat("%s", (getChild<LLUICtrl>("allow_damage_check")->getValue().asBoolean() ? "Y" : "N"));
strings.push_back(strings_t::value_type(buffer));
- buffer = llformat("%s", (childGetValue("allow_land_resell_check").asBoolean() ? "Y" : "N"));
+ buffer = llformat("%s", (getChild<LLUICtrl>("allow_land_resell_check")->getValue().asBoolean() ? "Y" : "N"));
strings.push_back(strings_t::value_type(buffer));
- F32 value = (F32)childGetValue("agent_limit_spin").asReal();
+ F32 value = (F32)getChild<LLUICtrl>("agent_limit_spin")->getValue().asReal();
buffer = llformat("%f", value);
strings.push_back(strings_t::value_type(buffer));
- value = (F32)childGetValue("object_bonus_spin").asReal();
+ value = (F32)getChild<LLUICtrl>("object_bonus_spin")->getValue().asReal();
buffer = llformat("%f", value);
strings.push_back(strings_t::value_type(buffer));
- buffer = llformat("%d", childGetValue("access_combo").asInteger());
+ buffer = llformat("%d", getChild<LLUICtrl>("access_combo")->getValue().asInteger());
strings.push_back(strings_t::value_type(buffer));
- buffer = llformat("%s", (childGetValue("restrict_pushobject").asBoolean() ? "Y" : "N"));
+ buffer = llformat("%s", (getChild<LLUICtrl>("restrict_pushobject")->getValue().asBoolean() ? "Y" : "N"));
strings.push_back(strings_t::value_type(buffer));
- buffer = llformat("%s", (childGetValue("allow_parcel_changes_check").asBoolean() ? "Y" : "N"));
+ buffer = llformat("%s", (getChild<LLUICtrl>("allow_parcel_changes_check")->getValue().asBoolean() ? "Y" : "N"));
strings.push_back(strings_t::value_type(buffer));
LLUUID invoice(LLFloaterRegionInfo::getLastInvoice());
@@ -772,7 +765,7 @@ BOOL LLPanelRegionGeneralInfo::sendUpdate()
// if we changed access levels, tell user about it
LLViewerRegion* region = gAgent.getRegion();
- if (region && (childGetValue("access_combo").asInteger() != region->getSimAccess()) )
+ if (region && (getChild<LLUICtrl>("access_combo")->getValue().asInteger() != region->getSimAccess()) )
{
LLNotificationsUtil::add("RegionMaturityChange");
}
@@ -805,18 +798,18 @@ bool LLPanelRegionDebugInfo::refreshFromRegion(LLViewerRegion* region)
{
BOOL allow_modify = gAgent.isGodlike() || (region && region->canManageEstate());
setCtrlsEnabled(allow_modify);
- childDisable("apply_btn");
- childDisable("target_avatar_name");
+ getChildView("apply_btn")->setEnabled(FALSE);
+ getChildView("target_avatar_name")->setEnabled(FALSE);
- childSetEnabled("choose_avatar_btn", allow_modify);
- childSetEnabled("return_scripts", allow_modify && !mTargetAvatar.isNull());
- childSetEnabled("return_other_land", allow_modify && !mTargetAvatar.isNull());
- childSetEnabled("return_estate_wide", allow_modify && !mTargetAvatar.isNull());
- childSetEnabled("return_btn", allow_modify && !mTargetAvatar.isNull());
- childSetEnabled("top_colliders_btn", allow_modify);
- childSetEnabled("top_scripts_btn", allow_modify);
- childSetEnabled("restart_btn", allow_modify);
- childSetEnabled("cancel_restart_btn", allow_modify);
+ getChildView("choose_avatar_btn")->setEnabled(allow_modify);
+ getChildView("return_scripts")->setEnabled(allow_modify && !mTargetAvatar.isNull());
+ getChildView("return_other_land")->setEnabled(allow_modify && !mTargetAvatar.isNull());
+ getChildView("return_estate_wide")->setEnabled(allow_modify && !mTargetAvatar.isNull());
+ getChildView("return_btn")->setEnabled(allow_modify && !mTargetAvatar.isNull());
+ getChildView("top_colliders_btn")->setEnabled(allow_modify);
+ getChildView("top_scripts_btn")->setEnabled(allow_modify);
+ getChildView("restart_btn")->setEnabled(allow_modify);
+ getChildView("cancel_restart_btn")->setEnabled(allow_modify);
return LLPanelRegionInfo::refreshFromRegion(region);
}
@@ -828,13 +821,13 @@ BOOL LLPanelRegionDebugInfo::sendUpdate()
strings_t strings;
std::string buffer;
- buffer = llformat("%s", (childGetValue("disable_scripts_check").asBoolean() ? "Y" : "N"));
+ buffer = llformat("%s", (getChild<LLUICtrl>("disable_scripts_check")->getValue().asBoolean() ? "Y" : "N"));
strings.push_back(buffer);
- buffer = llformat("%s", (childGetValue("disable_collisions_check").asBoolean() ? "Y" : "N"));
+ buffer = llformat("%s", (getChild<LLUICtrl>("disable_collisions_check")->getValue().asBoolean() ? "Y" : "N"));
strings.push_back(buffer);
- buffer = llformat("%s", (childGetValue("disable_physics_check").asBoolean() ? "Y" : "N"));
+ buffer = llformat("%s", (getChild<LLUICtrl>("disable_physics_check")->getValue().asBoolean() ? "Y" : "N"));
strings.push_back(buffer);
LLUUID invoice(LLFloaterRegionInfo::getLastInvoice());
@@ -852,7 +845,7 @@ void LLPanelRegionDebugInfo::callbackAvatarID(const std::vector<std::string>& na
{
if (ids.empty() || names.empty()) return;
mTargetAvatar = ids[0];
- childSetValue("target_avatar_name", LLSD(names[0]));
+ getChild<LLUICtrl>("target_avatar_name")->setValue(LLSD(names[0]));
refreshFromRegion( gAgent.getRegion() );
}
@@ -863,23 +856,23 @@ void LLPanelRegionDebugInfo::onClickReturn(void* data)
if (panelp->mTargetAvatar.isNull()) return;
LLSD args;
- args["USER_NAME"] = panelp->childGetValue("target_avatar_name").asString();
+ args["USER_NAME"] = panelp->getChild<LLUICtrl>("target_avatar_name")->getValue().asString();
LLSD payload;
payload["avatar_id"] = panelp->mTargetAvatar;
U32 flags = SWD_ALWAYS_RETURN_OBJECTS;
- if (panelp->childGetValue("return_scripts").asBoolean())
+ if (panelp->getChild<LLUICtrl>("return_scripts")->getValue().asBoolean())
{
flags |= SWD_SCRIPTED_ONLY;
}
- if (panelp->childGetValue("return_other_land").asBoolean())
+ if (panelp->getChild<LLUICtrl>("return_other_land")->getValue().asBoolean())
{
flags |= SWD_OTHERS_LAND_ONLY;
}
payload["flags"] = int(flags);
- payload["return_estate_wide"] = panelp->childGetValue("return_estate_wide").asBoolean();
+ payload["return_estate_wide"] = panelp->getChild<LLUICtrl>("return_estate_wide")->getValue().asBoolean();
LLNotificationsUtil::add("EstateObjectReturn", args, payload,
boost::bind(&LLPanelRegionDebugInfo::callbackReturn, panelp, _1, _2));
}
@@ -985,15 +978,15 @@ bool LLPanelRegionTextureInfo::refreshFromRegion(LLViewerRegion* region)
{
BOOL allow_modify = gAgent.isGodlike() || (region && region->canManageEstate());
setCtrlsEnabled(allow_modify);
- childDisable("apply_btn");
+ getChildView("apply_btn")->setEnabled(FALSE);
if (region)
{
- childSetValue("region_text", LLSD(region->getName()));
+ getChild<LLUICtrl>("region_text")->setValue(LLSD(region->getName()));
}
else
{
- childSetValue("region_text", LLSD(""));
+ getChild<LLUICtrl>("region_text")->setValue(LLSD(""));
}
if (!region) return LLPanelRegionInfo::refreshFromRegion(region);
@@ -1017,9 +1010,9 @@ bool LLPanelRegionTextureInfo::refreshFromRegion(LLViewerRegion* region)
for(S32 i = 0; i < CORNER_COUNT; ++i)
{
buffer = llformat("height_start_spin_%d", i);
- childSetValue(buffer, LLSD(compp->getStartHeight(i)));
+ getChild<LLUICtrl>(buffer)->setValue(LLSD(compp->getStartHeight(i)));
buffer = llformat("height_range_spin_%d", i);
- childSetValue(buffer, LLSD(compp->getHeightRange(i)));
+ getChild<LLUICtrl>(buffer)->setValue(LLSD(compp->getHeightRange(i)));
}
// Call the parent for common book-keeping
@@ -1088,7 +1081,7 @@ BOOL LLPanelRegionTextureInfo::sendUpdate()
{
buffer = llformat("height_start_spin_%d", i);
std::string buffer2 = llformat("height_range_spin_%d", i);
- std::string buffer3 = llformat("%d %f %f", i, (F32)childGetValue(buffer).asReal(), (F32)childGetValue(buffer2).asReal());
+ std::string buffer3 = llformat("%d %f %f", i, (F32)getChild<LLUICtrl>(buffer)->getValue().asReal(), (F32)getChild<LLUICtrl>(buffer2)->getValue().asReal());
strings.push_back(buffer3);
}
sendEstateOwnerMessage(msg, "textureheights", invoice, strings);
@@ -1181,11 +1174,11 @@ bool LLPanelRegionTerrainInfo::refreshFromRegion(LLViewerRegion* region)
BOOL owner_or_god_or_manager = owner_or_god
|| (region && region->isEstateManager());
setCtrlsEnabled(owner_or_god_or_manager);
- childDisable("apply_btn");
+ getChildView("apply_btn")->setEnabled(FALSE);
- childSetEnabled("download_raw_btn", owner_or_god);
- childSetEnabled("upload_raw_btn", owner_or_god);
- childSetEnabled("bake_terrain_btn", owner_or_god);
+ getChildView("download_raw_btn")->setEnabled(owner_or_god);
+ getChildView("upload_raw_btn")->setEnabled(owner_or_god);
+ getChildView("bake_terrain_btn")->setEnabled(owner_or_god);
return LLPanelRegionInfo::refreshFromRegion(region);
}
@@ -1198,17 +1191,17 @@ BOOL LLPanelRegionTerrainInfo::sendUpdate()
strings_t strings;
LLUUID invoice(LLFloaterRegionInfo::getLastInvoice());
- buffer = llformat("%f", (F32)childGetValue("water_height_spin").asReal());
+ buffer = llformat("%f", (F32)getChild<LLUICtrl>("water_height_spin")->getValue().asReal());
strings.push_back(buffer);
- buffer = llformat("%f", (F32)childGetValue("terrain_raise_spin").asReal());
+ buffer = llformat("%f", (F32)getChild<LLUICtrl>("terrain_raise_spin")->getValue().asReal());
strings.push_back(buffer);
- buffer = llformat("%f", (F32)childGetValue("terrain_lower_spin").asReal());
+ buffer = llformat("%f", (F32)getChild<LLUICtrl>("terrain_lower_spin")->getValue().asReal());
strings.push_back(buffer);
- buffer = llformat("%s", (childGetValue("use_estate_sun_check").asBoolean() ? "Y" : "N"));
+ buffer = llformat("%s", (getChild<LLUICtrl>("use_estate_sun_check")->getValue().asBoolean() ? "Y" : "N"));
strings.push_back(buffer);
- buffer = llformat("%s", (childGetValue("fixed_sun_check").asBoolean() ? "Y" : "N"));
+ buffer = llformat("%s", (getChild<LLUICtrl>("fixed_sun_check")->getValue().asBoolean() ? "Y" : "N"));
strings.push_back(buffer);
- buffer = llformat("%f", (F32)childGetValue("sun_hour_slider").asReal() );
+ buffer = llformat("%f", (F32)getChild<LLUICtrl>("sun_hour_slider")->getValue().asReal() );
strings.push_back(buffer);
// Grab estate information in case the user decided to set the
@@ -1247,27 +1240,27 @@ BOOL LLPanelRegionTerrainInfo::sendUpdate()
void LLPanelRegionTerrainInfo::onChangeUseEstateTime()
{
- BOOL use_estate_sun = childGetValue("use_estate_sun_check").asBoolean();
- childSetEnabled("fixed_sun_check", !use_estate_sun);
- childSetEnabled("sun_hour_slider", !use_estate_sun);
+ BOOL use_estate_sun = getChild<LLUICtrl>("use_estate_sun_check")->getValue().asBoolean();
+ getChildView("fixed_sun_check")->setEnabled(!use_estate_sun);
+ getChildView("sun_hour_slider")->setEnabled(!use_estate_sun);
if (use_estate_sun)
{
- childSetValue("fixed_sun_check", LLSD(FALSE));
- childSetValue("sun_hour_slider", LLSD(0.f));
+ getChild<LLUICtrl>("fixed_sun_check")->setValue(LLSD(FALSE));
+ getChild<LLUICtrl>("sun_hour_slider")->setValue(LLSD(0.f));
}
- childEnable("apply_btn");
+ getChildView("apply_btn")->setEnabled(TRUE);
}
void LLPanelRegionTerrainInfo::onChangeFixedSun()
{
// Just enable the apply button. We let the sun-hour slider be enabled
// for both fixed-sun and non-fixed-sun. JC
- childEnable("apply_btn");
+ getChildView("apply_btn")->setEnabled(TRUE);
}
void LLPanelRegionTerrainInfo::onChangeSunHour()
{
- childEnable("apply_btn");
+ getChildView("apply_btn")->setEnabled(TRUE);
}
// static
@@ -1363,19 +1356,19 @@ void LLPanelEstateInfo::initDispatch(LLDispatcher& dispatch)
// Disables the sun-hour slider and the use fixed time check if the use global time is check
void LLPanelEstateInfo::onChangeUseGlobalTime()
{
- bool enabled = !childGetValue("use_global_time_check").asBoolean();
- childSetEnabled("sun_hour_slider", enabled);
- childSetEnabled("fixed_sun_check", enabled);
- childSetValue("fixed_sun_check", LLSD(FALSE));
+ bool enabled = !getChild<LLUICtrl>("use_global_time_check")->getValue().asBoolean();
+ getChildView("sun_hour_slider")->setEnabled(enabled);
+ getChildView("fixed_sun_check")->setEnabled(enabled);
+ getChild<LLUICtrl>("fixed_sun_check")->setValue(LLSD(FALSE));
enableButton("apply_btn");
}
// Enables the sun-hour slider if the fixed-sun checkbox is set
void LLPanelEstateInfo::onChangeFixedSun()
{
- bool enabled = !childGetValue("fixed_sun_check").asBoolean();
- childSetEnabled("use_global_time_check", enabled);
- childSetValue("use_global_time_check", LLSD(FALSE));
+ bool enabled = !getChild<LLUICtrl>("fixed_sun_check")->getValue().asBoolean();
+ getChildView("use_global_time_check")->setEnabled(enabled);
+ getChild<LLUICtrl>("use_global_time_check")->setValue(LLSD(FALSE));
enableButton("apply_btn");
}
@@ -1385,21 +1378,19 @@ void LLPanelEstateInfo::onChangeFixedSun()
//---------------------------------------------------------------------------
// Add/Remove estate access button callbacks
//---------------------------------------------------------------------------
-void LLPanelEstateInfo::onClickEditSky(void* user_data)
+void LLPanelEstateInfo::onClickEditSky()
{
LLFloaterReg::showInstance("env_windlight");
}
-void LLPanelEstateInfo::onClickEditDayCycle(void* user_data)
+void LLPanelEstateInfo::onClickEditDayCycle()
{
LLFloaterReg::showInstance("env_day_cycle");
}
-// static
-void LLPanelEstateInfo::onClickAddAllowedAgent(void* user_data)
+void LLPanelEstateInfo::onClickAddAllowedAgent()
{
- LLPanelEstateInfo* self = (LLPanelEstateInfo*)user_data;
- LLCtrlListInterface *list = self->childGetListInterface("allowed_avatar_name_list");
+ LLCtrlListInterface *list = childGetListInterface("allowed_avatar_name_list");
if (!list) return;
if (list->getItemCount() >= ESTATE_MAX_ACCESS_IDS)
{
@@ -1413,8 +1404,7 @@ void LLPanelEstateInfo::onClickAddAllowedAgent(void* user_data)
accessAddCore(ESTATE_ACCESS_ALLOWED_AGENT_ADD, "EstateAllowedAgentAdd");
}
-// static
-void LLPanelEstateInfo::onClickRemoveAllowedAgent(void* user_data)
+void LLPanelEstateInfo::onClickRemoveAllowedAgent()
{
accessRemoveCore(ESTATE_ACCESS_ALLOWED_AGENT_REMOVE, "EstateAllowedAgentRemove", "allowed_avatar_name_list");
}
@@ -1466,17 +1456,14 @@ bool LLPanelEstateInfo::addAllowedGroup(const LLSD& notification, const LLSD& re
return false;
}
-// static
-void LLPanelEstateInfo::onClickRemoveAllowedGroup(void* user_data)
+void LLPanelEstateInfo::onClickRemoveAllowedGroup()
{
accessRemoveCore(ESTATE_ACCESS_ALLOWED_GROUP_REMOVE, "EstateAllowedGroupRemove", "allowed_group_name_list");
}
-// static
-void LLPanelEstateInfo::onClickAddBannedAgent(void* user_data)
+void LLPanelEstateInfo::onClickAddBannedAgent()
{
- LLPanelEstateInfo* self = (LLPanelEstateInfo*)user_data;
- LLCtrlListInterface *list = self->childGetListInterface("banned_avatar_name_list");
+ LLCtrlListInterface *list = childGetListInterface("banned_avatar_name_list");
if (!list) return;
if (list->getItemCount() >= ESTATE_MAX_ACCESS_IDS)
{
@@ -1488,17 +1475,15 @@ void LLPanelEstateInfo::onClickAddBannedAgent(void* user_data)
accessAddCore(ESTATE_ACCESS_BANNED_AGENT_ADD, "EstateBannedAgentAdd");
}
-// static
-void LLPanelEstateInfo::onClickRemoveBannedAgent(void* user_data)
+void LLPanelEstateInfo::onClickRemoveBannedAgent()
{
accessRemoveCore(ESTATE_ACCESS_BANNED_AGENT_REMOVE, "EstateBannedAgentRemove", "banned_avatar_name_list");
}
// static
-void LLPanelEstateInfo::onClickAddEstateManager(void* user_data)
+void LLPanelEstateInfo::onClickAddEstateManager()
{
- LLPanelEstateInfo* self = (LLPanelEstateInfo*)user_data;
- LLCtrlListInterface *list = self->childGetListInterface("estate_manager_name_list");
+ LLCtrlListInterface *list = childGetListInterface("estate_manager_name_list");
if (!list) return;
if (list->getItemCount() >= ESTATE_MAX_MANAGERS)
{ // Tell user they can't add more managers
@@ -1513,7 +1498,7 @@ void LLPanelEstateInfo::onClickAddEstateManager(void* user_data)
}
// static
-void LLPanelEstateInfo::onClickRemoveEstateManager(void* user_data)
+void LLPanelEstateInfo::onClickRemoveEstateManager()
{
accessRemoveCore(ESTATE_ACCESS_MANAGER_REMOVE, "EstateManagerRemove", "estate_manager_name_list");
}
@@ -1966,20 +1951,20 @@ void LLPanelEstateInfo::updateControls(LLViewerRegion* region)
BOOL manager = (region && region->isEstateManager());
setCtrlsEnabled(god || owner || manager);
- childDisable("apply_btn");
- childSetEnabled("add_allowed_avatar_btn", god || owner || manager);
- childSetEnabled("remove_allowed_avatar_btn", god || owner || manager);
- childSetEnabled("add_allowed_group_btn", god || owner || manager);
- childSetEnabled("remove_allowed_group_btn", god || owner || manager);
- childSetEnabled("add_banned_avatar_btn", god || owner || manager);
- childSetEnabled("remove_banned_avatar_btn", god || owner || manager);
- childSetEnabled("message_estate_btn", god || owner || manager);
- childSetEnabled("kick_user_from_estate_btn", god || owner || manager);
+ getChildView("apply_btn")->setEnabled(FALSE);
+ getChildView("add_allowed_avatar_btn")->setEnabled(god || owner || manager);
+ getChildView("remove_allowed_avatar_btn")->setEnabled(god || owner || manager);
+ getChildView("add_allowed_group_btn")->setEnabled(god || owner || manager);
+ getChildView("remove_allowed_group_btn")->setEnabled(god || owner || manager);
+ getChildView("add_banned_avatar_btn")->setEnabled(god || owner || manager);
+ getChildView("remove_banned_avatar_btn")->setEnabled(god || owner || manager);
+ getChildView("message_estate_btn")->setEnabled(god || owner || manager);
+ getChildView("kick_user_from_estate_btn")->setEnabled(god || owner || manager);
// estate managers can't add estate managers
- childSetEnabled("add_estate_manager_btn", god || owner);
- childSetEnabled("remove_estate_manager_btn", god || owner);
- childSetEnabled("estate_manager_name_list", god || owner);
+ getChildView("add_estate_manager_btn")->setEnabled(god || owner);
+ getChildView("remove_estate_manager_btn")->setEnabled(god || owner);
+ getChildView("estate_manager_name_list")->setEnabled(god || owner);
}
bool LLPanelEstateInfo::refreshFromRegion(LLViewerRegion* region)
@@ -2054,8 +2039,8 @@ BOOL LLPanelEstateInfo::postBuild()
avatar_name_list->setMaxItemCount(ESTATE_MAX_ACCESS_IDS);
}
- childSetAction("add_allowed_avatar_btn", onClickAddAllowedAgent, this);
- childSetAction("remove_allowed_avatar_btn", onClickRemoveAllowedAgent, this);
+ childSetAction("add_allowed_avatar_btn", boost::bind(&LLPanelEstateInfo::onClickAddAllowedAgent, this));
+ childSetAction("remove_allowed_avatar_btn", boost::bind(&LLPanelEstateInfo::onClickRemoveAllowedAgent, this));
getChild<LLUICtrl>("allowed_group_name_list")->setCommitCallback(boost::bind(&LLPanelEstateInfo::onChangeChildCtrl, this, _1));
LLNameListCtrl* group_name_list = getChild<LLNameListCtrl>("allowed_group_name_list");
@@ -2066,7 +2051,7 @@ BOOL LLPanelEstateInfo::postBuild()
}
getChild<LLUICtrl>("add_allowed_group_btn")->setCommitCallback(boost::bind(&LLPanelEstateInfo::onClickAddAllowedGroup, this));
- childSetAction("remove_allowed_group_btn", onClickRemoveAllowedGroup, this);
+ childSetAction("remove_allowed_group_btn", boost::bind(&LLPanelEstateInfo::onClickRemoveAllowedGroup, this));
getChild<LLUICtrl>("banned_avatar_name_list")->setCommitCallback(boost::bind(&LLPanelEstateInfo::onChangeChildCtrl, this, _1));
LLNameListCtrl* banned_name_list = getChild<LLNameListCtrl>("banned_avatar_name_list");
@@ -2076,8 +2061,8 @@ BOOL LLPanelEstateInfo::postBuild()
banned_name_list->setMaxItemCount(ESTATE_MAX_ACCESS_IDS);
}
- childSetAction("add_banned_avatar_btn", onClickAddBannedAgent, this);
- childSetAction("remove_banned_avatar_btn", onClickRemoveBannedAgent, this);
+ childSetAction("add_banned_avatar_btn", boost::bind(&LLPanelEstateInfo::onClickAddBannedAgent, this));
+ childSetAction("remove_banned_avatar_btn", boost::bind(&LLPanelEstateInfo::onClickRemoveBannedAgent, this));
getChild<LLUICtrl>("estate_manager_name_list")->setCommitCallback(boost::bind(&LLPanelEstateInfo::onChangeChildCtrl, this, _1));
LLNameListCtrl* manager_name_list = getChild<LLNameListCtrl>("estate_manager_name_list");
@@ -2087,28 +2072,28 @@ BOOL LLPanelEstateInfo::postBuild()
manager_name_list->setMaxItemCount(ESTATE_MAX_MANAGERS * 4); // Allow extras for dupe issue
}
- childSetAction("add_estate_manager_btn", onClickAddEstateManager, this);
- childSetAction("remove_estate_manager_btn", onClickRemoveEstateManager, this);
- childSetAction("message_estate_btn", onClickMessageEstate, this);
+ childSetAction("add_estate_manager_btn", boost::bind(&LLPanelEstateInfo::onClickAddEstateManager, this));
+ childSetAction("remove_estate_manager_btn", boost::bind(&LLPanelEstateInfo::onClickRemoveEstateManager, this));
+ childSetAction("message_estate_btn", boost::bind(&LLPanelEstateInfo::onClickMessageEstate, this));
childSetAction("kick_user_from_estate_btn", boost::bind(&LLPanelEstateInfo::onClickKickUser, this));
- childSetAction("WLEditSky", onClickEditSky, this);
- childSetAction("WLEditDayCycle", onClickEditDayCycle, this);
+ childSetAction("WLEditSky", boost::bind(&LLPanelEstateInfo::onClickEditSky, this));
+ childSetAction("WLEditDayCycle", boost::bind(&LLPanelEstateInfo::onClickEditDayCycle, this));
return LLPanelRegionInfo::postBuild();
}
void LLPanelEstateInfo::refresh()
{
- bool public_access = childGetValue("externally_visible_check").asBoolean();
- childSetEnabled("Only Allow", public_access);
- childSetEnabled("limit_payment", public_access);
- childSetEnabled("limit_age_verified", public_access);
+ bool public_access = getChild<LLUICtrl>("externally_visible_check")->getValue().asBoolean();
+ getChildView("Only Allow")->setEnabled(public_access);
+ getChildView("limit_payment")->setEnabled(public_access);
+ getChildView("limit_age_verified")->setEnabled(public_access);
// if this is set to false, then the limit fields are meaningless and should be turned off
if (public_access == false)
{
- childSetValue("limit_payment", false);
- childSetValue("limit_age_verified", false);
+ getChild<LLUICtrl>("limit_payment")->setValue(false);
+ getChild<LLUICtrl>("limit_age_verified")->setValue(false);
}
}
@@ -2231,19 +2216,19 @@ bool LLPanelEstateInfo::commitEstateInfoCaps()
LLSD body;
body["estate_name"] = getEstateName();
- body["is_externally_visible"] = childGetValue("externally_visible_check").asBoolean();
- body["allow_direct_teleport"] = childGetValue("allow_direct_teleport").asBoolean();
- body["is_sun_fixed" ] = childGetValue("fixed_sun_check").asBoolean();
- body["deny_anonymous" ] = childGetValue("limit_payment").asBoolean();
- body["deny_age_unverified" ] = childGetValue("limit_age_verified").asBoolean();
- body["allow_voice_chat" ] = childGetValue("voice_chat_check").asBoolean();
+ body["is_externally_visible"] = getChild<LLUICtrl>("externally_visible_check")->getValue().asBoolean();
+ body["allow_direct_teleport"] = getChild<LLUICtrl>("allow_direct_teleport")->getValue().asBoolean();
+ body["is_sun_fixed" ] = getChild<LLUICtrl>("fixed_sun_check")->getValue().asBoolean();
+ body["deny_anonymous" ] = getChild<LLUICtrl>("limit_payment")->getValue().asBoolean();
+ body["deny_age_unverified" ] = getChild<LLUICtrl>("limit_age_verified")->getValue().asBoolean();
+ body["allow_voice_chat" ] = getChild<LLUICtrl>("voice_chat_check")->getValue().asBoolean();
body["invoice" ] = LLFloaterRegionInfo::getLastInvoice();
// block fly is in estate database but not in estate UI, so we're not supporting it
- //body["block_fly" ] = childGetValue("").asBoolean();
+ //body["block_fly" ] = getChild<LLUICtrl>("")->getValue().asBoolean();
F32 sun_hour = getSunHour();
- if (childGetValue("use_global_time_check").asBoolean())
+ if (getChild<LLUICtrl>("use_global_time_check")->getValue().asBoolean())
{
sun_hour = 0.f; // 0 = global time
}
@@ -2283,7 +2268,7 @@ void LLPanelEstateInfo::commitEstateInfoDataserver()
msg->addString("Parameter", buffer);
F32 sun_hour = getSunHour();
- if (childGetValue("use_global_time_check").asBoolean())
+ if (getChild<LLUICtrl>("use_global_time_check")->getValue().asBoolean())
{
sun_hour = 0.f; // 0 = global time
}
@@ -2297,14 +2282,13 @@ void LLPanelEstateInfo::commitEstateInfoDataserver()
void LLPanelEstateInfo::setEstateFlags(U32 flags)
{
- childSetValue("externally_visible_check", LLSD(flags & REGION_FLAGS_EXTERNALLY_VISIBLE ? TRUE : FALSE) );
- childSetValue("fixed_sun_check", LLSD(flags & REGION_FLAGS_SUN_FIXED ? TRUE : FALSE) );
- childSetValue(
- "voice_chat_check",
+ getChild<LLUICtrl>("externally_visible_check")->setValue(LLSD(flags & REGION_FLAGS_EXTERNALLY_VISIBLE ? TRUE : FALSE) );
+ getChild<LLUICtrl>("fixed_sun_check")->setValue(LLSD(flags & REGION_FLAGS_SUN_FIXED ? TRUE : FALSE) );
+ getChild<LLUICtrl>("voice_chat_check")->setValue(
LLSD(flags & REGION_FLAGS_ALLOW_VOICE ? TRUE : FALSE));
- childSetValue("allow_direct_teleport", LLSD(flags & REGION_FLAGS_ALLOW_DIRECT_TELEPORT ? TRUE : FALSE) );
- childSetValue("limit_payment", LLSD(flags & REGION_FLAGS_DENY_ANONYMOUS ? TRUE : FALSE) );
- childSetValue("limit_age_verified", LLSD(flags & REGION_FLAGS_DENY_AGEUNVERIFIED ? TRUE : FALSE) );
+ getChild<LLUICtrl>("allow_direct_teleport")->setValue(LLSD(flags & REGION_FLAGS_ALLOW_DIRECT_TELEPORT ? TRUE : FALSE) );
+ getChild<LLUICtrl>("limit_payment")->setValue(LLSD(flags & REGION_FLAGS_DENY_ANONYMOUS ? TRUE : FALSE) );
+ getChild<LLUICtrl>("limit_age_verified")->setValue(LLSD(flags & REGION_FLAGS_DENY_AGEUNVERIFIED ? TRUE : FALSE) );
refresh();
}
@@ -2313,32 +2297,32 @@ U32 LLPanelEstateInfo::computeEstateFlags()
{
U32 flags = 0;
- if (childGetValue("externally_visible_check").asBoolean())
+ if (getChild<LLUICtrl>("externally_visible_check")->getValue().asBoolean())
{
flags |= REGION_FLAGS_EXTERNALLY_VISIBLE;
}
- if ( childGetValue("voice_chat_check").asBoolean() )
+ if ( getChild<LLUICtrl>("voice_chat_check")->getValue().asBoolean() )
{
flags |= REGION_FLAGS_ALLOW_VOICE;
}
- if (childGetValue("allow_direct_teleport").asBoolean())
+ if (getChild<LLUICtrl>("allow_direct_teleport")->getValue().asBoolean())
{
flags |= REGION_FLAGS_ALLOW_DIRECT_TELEPORT;
}
- if (childGetValue("fixed_sun_check").asBoolean())
+ if (getChild<LLUICtrl>("fixed_sun_check")->getValue().asBoolean())
{
flags |= REGION_FLAGS_SUN_FIXED;
}
- if (childGetValue("limit_payment").asBoolean())
+ if (getChild<LLUICtrl>("limit_payment")->getValue().asBoolean())
{
flags |= REGION_FLAGS_DENY_ANONYMOUS;
}
- if (childGetValue("limit_age_verified").asBoolean())
+ if (getChild<LLUICtrl>("limit_age_verified")->getValue().asBoolean())
{
flags |= REGION_FLAGS_DENY_AGEUNVERIFIED;
}
@@ -2349,24 +2333,24 @@ U32 LLPanelEstateInfo::computeEstateFlags()
BOOL LLPanelEstateInfo::getGlobalTime()
{
- return childGetValue("use_global_time_check").asBoolean();
+ return getChild<LLUICtrl>("use_global_time_check")->getValue().asBoolean();
}
void LLPanelEstateInfo::setGlobalTime(bool b)
{
- childSetValue("use_global_time_check", LLSD(b));
- childSetEnabled("fixed_sun_check", LLSD(!b));
- childSetEnabled("sun_hour_slider", LLSD(!b));
+ getChild<LLUICtrl>("use_global_time_check")->setValue(LLSD(b));
+ getChildView("fixed_sun_check")->setEnabled(LLSD(!b));
+ getChildView("sun_hour_slider")->setEnabled(LLSD(!b));
if (b)
{
- childSetValue("sun_hour_slider", LLSD(0.f));
+ getChild<LLUICtrl>("sun_hour_slider")->setValue(LLSD(0.f));
}
}
BOOL LLPanelEstateInfo::getFixedSun()
{
- return childGetValue("fixed_sun_check").asBoolean();
+ return getChild<LLUICtrl>("fixed_sun_check")->getValue().asBoolean();
}
void LLPanelEstateInfo::setSunHour(F32 sun_hour)
@@ -2375,61 +2359,61 @@ void LLPanelEstateInfo::setSunHour(F32 sun_hour)
{
sun_hour = 24.0f + sun_hour;
}
- childSetValue("sun_hour_slider", LLSD(sun_hour));
+ getChild<LLUICtrl>("sun_hour_slider")->setValue(LLSD(sun_hour));
}
F32 LLPanelEstateInfo::getSunHour()
{
- if (childIsEnabled("sun_hour_slider"))
+ if (getChildView("sun_hour_slider")->getEnabled())
{
- return (F32)childGetValue("sun_hour_slider").asReal();
+ return (F32)getChild<LLUICtrl>("sun_hour_slider")->getValue().asReal();
}
return 0.f;
}
const std::string LLPanelEstateInfo::getEstateName() const
{
- return childGetValue("estate_name").asString();
+ return getChild<LLUICtrl>("estate_name")->getValue().asString();
}
void LLPanelEstateInfo::setEstateName(const std::string& name)
{
- childSetValue("estate_name", LLSD(name));
+ getChild<LLUICtrl>("estate_name")->setValue(LLSD(name));
}
const std::string LLPanelEstateInfo::getOwnerName() const
{
- return childGetValue("estate_owner").asString();
+ return getChild<LLUICtrl>("estate_owner")->getValue().asString();
}
void LLPanelEstateInfo::setOwnerName(const std::string& name)
{
- childSetValue("estate_owner", LLSD(name));
+ getChild<LLUICtrl>("estate_owner")->setValue(LLSD(name));
}
void LLPanelEstateInfo::setAccessAllowedEnabled(bool enable_agent,
bool enable_group,
bool enable_ban)
{
- childSetEnabled("allow_resident_label", enable_agent);
- childSetEnabled("allowed_avatar_name_list", enable_agent);
- childSetVisible("allowed_avatar_name_list", enable_agent);
- childSetEnabled("add_allowed_avatar_btn", enable_agent);
- childSetEnabled("remove_allowed_avatar_btn", enable_agent);
+ getChildView("allow_resident_label")->setEnabled(enable_agent);
+ getChildView("allowed_avatar_name_list")->setEnabled(enable_agent);
+ getChildView("allowed_avatar_name_list")->setVisible( enable_agent);
+ getChildView("add_allowed_avatar_btn")->setEnabled(enable_agent);
+ getChildView("remove_allowed_avatar_btn")->setEnabled(enable_agent);
// Groups
- childSetEnabled("allow_group_label", enable_group);
- childSetEnabled("allowed_group_name_list", enable_group);
- childSetVisible("allowed_group_name_list", enable_group);
- childSetEnabled("add_allowed_group_btn", enable_group);
- childSetEnabled("remove_allowed_group_btn", enable_group);
+ getChildView("allow_group_label")->setEnabled(enable_group);
+ getChildView("allowed_group_name_list")->setEnabled(enable_group);
+ getChildView("allowed_group_name_list")->setVisible( enable_group);
+ getChildView("add_allowed_group_btn")->setEnabled(enable_group);
+ getChildView("remove_allowed_group_btn")->setEnabled(enable_group);
// Ban
- childSetEnabled("ban_resident_label", enable_ban);
- childSetEnabled("banned_avatar_name_list", enable_ban);
- childSetVisible("banned_avatar_name_list", enable_ban);
- childSetEnabled("add_banned_avatar_btn", enable_ban);
- childSetEnabled("remove_banned_avatar_btn", enable_ban);
+ getChildView("ban_resident_label")->setEnabled(enable_ban);
+ getChildView("banned_avatar_name_list")->setEnabled(enable_ban);
+ getChildView("banned_avatar_name_list")->setVisible( enable_ban);
+ getChildView("add_banned_avatar_btn")->setEnabled(enable_ban);
+ getChildView("remove_banned_avatar_btn")->setEnabled(enable_ban);
// Update removal buttons if needed
if (enable_agent)
@@ -2491,7 +2475,7 @@ BOOL LLPanelEstateInfo::checkRemovalButton(std::string name)
// enable the remove button if something is selected
LLNameListCtrl* name_list = getChild<LLNameListCtrl>(name);
- childSetEnabled(btn_name, name_list && name_list->getFirstSelected() ? TRUE : FALSE);
+ getChildView(btn_name)->setEnabled(name_list && name_list->getFirstSelected() ? TRUE : FALSE);
return (btn_name != "");
}
@@ -3026,7 +3010,7 @@ bool LLDispatchSetEstateAccess::operator()(
args["[ALLOWEDAGENTS]"] = llformat ("%d", totalAllowedAgents);
args["[MAXACCESS]"] = llformat ("%d", ESTATE_MAX_ACCESS_IDS);
std::string msg = LLTrans::getString("RegionInfoAllowedResidents", args);
- panel->childSetValue("allow_resident_label", LLSD(msg));
+ panel->getChild<LLUICtrl>("allow_resident_label")->setValue(LLSD(msg));
if (allowed_agent_name_list)
{
@@ -3037,7 +3021,7 @@ bool LLDispatchSetEstateAccess::operator()(
memcpy(id.mData, strings[index++].data(), UUID_BYTES); /* Flawfinder: ignore */
allowed_agent_name_list->addNameItem(id);
}
- panel->childSetEnabled("remove_allowed_avatar_btn", allowed_agent_name_list->getFirstSelected() ? TRUE : FALSE);
+ panel->getChildView("remove_allowed_avatar_btn")->setEnabled(allowed_agent_name_list->getFirstSelected() ? TRUE : FALSE);
allowed_agent_name_list->sortByColumnIndex(0, TRUE);
}
}
@@ -3051,7 +3035,7 @@ bool LLDispatchSetEstateAccess::operator()(
args["[ALLOWEDGROUPS]"] = llformat ("%d", num_allowed_groups);
args["[MAXACCESS]"] = llformat ("%d", ESTATE_MAX_GROUP_IDS);
std::string msg = LLTrans::getString("RegionInfoAllowedGroups", args);
- panel->childSetValue("allow_group_label", LLSD(msg));
+ panel->getChild<LLUICtrl>("allow_group_label")->setValue(LLSD(msg));
if (allowed_group_name_list)
{
@@ -3062,7 +3046,7 @@ bool LLDispatchSetEstateAccess::operator()(
memcpy(id.mData, strings[index++].data(), UUID_BYTES); /* Flawfinder: ignore */
allowed_group_name_list->addGroupNameItem(id);
}
- panel->childSetEnabled("remove_allowed_group_btn", allowed_group_name_list->getFirstSelected() ? TRUE : FALSE);
+ panel->getChildView("remove_allowed_group_btn")->setEnabled(allowed_group_name_list->getFirstSelected() ? TRUE : FALSE);
allowed_group_name_list->sortByColumnIndex(0, TRUE);
}
}
@@ -3083,7 +3067,7 @@ bool LLDispatchSetEstateAccess::operator()(
std::string msg = llformat("Banned residents: (%d, max %d)",
totalBannedAgents,
ESTATE_MAX_ACCESS_IDS);
- panel->childSetValue("ban_resident_label", LLSD(msg));
+ panel->getChild<LLUICtrl>("ban_resident_label")->setValue(LLSD(msg));
if (banned_agent_name_list)
{
@@ -3094,7 +3078,7 @@ bool LLDispatchSetEstateAccess::operator()(
memcpy(id.mData, strings[index++].data(), UUID_BYTES); /* Flawfinder: ignore */
banned_agent_name_list->addNameItem(id);
}
- panel->childSetEnabled("remove_banned_avatar_btn", banned_agent_name_list->getFirstSelected() ? TRUE : FALSE);
+ panel->getChildView("remove_banned_avatar_btn")->setEnabled(banned_agent_name_list->getFirstSelected() ? TRUE : FALSE);
banned_agent_name_list->sortByColumnIndex(0, TRUE);
}
}
@@ -3104,7 +3088,7 @@ bool LLDispatchSetEstateAccess::operator()(
std::string msg = llformat("Estate Managers: (%d, max %d)",
num_estate_managers,
ESTATE_MAX_MANAGERS);
- panel->childSetValue("estate_manager_label", LLSD(msg));
+ panel->getChild<LLUICtrl>("estate_manager_label")->setValue(LLSD(msg));
LLNameListCtrl* estate_manager_name_list =
panel->getChild<LLNameListCtrl>("estate_manager_name_list");
@@ -3121,7 +3105,7 @@ bool LLDispatchSetEstateAccess::operator()(
memcpy(id.mData, strings[index++].data(), UUID_BYTES); /* Flawfinder: ignore */
estate_manager_name_list->addNameItem(id);
}
- panel->childSetEnabled("remove_estate_manager_btn", estate_manager_name_list->getFirstSelected() ? TRUE : FALSE);
+ panel->getChildView("remove_estate_manager_btn")->setEnabled(estate_manager_name_list->getFirstSelected() ? TRUE : FALSE);
estate_manager_name_list->sortByColumnIndex(0, TRUE);
}
}
diff --git a/indra/newview/llfloaterregioninfo.h b/indra/newview/llfloaterregioninfo.h
index 482ebb3303..2393c74c45 100644
--- a/indra/newview/llfloaterregioninfo.h
+++ b/indra/newview/llfloaterregioninfo.h
@@ -3,31 +3,25 @@
* @author Aaron Brashears
* @brief Declaration of the region info and controls floater and panels.
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -262,19 +256,19 @@ public:
void onChangeFixedSun();
void onChangeUseGlobalTime();
- static void onClickEditSky(void* userdata);
- static void onClickEditSkyHelp(void* userdata);
- static void onClickEditDayCycle(void* userdata);
- static void onClickEditDayCycleHelp(void* userdata);
-
- static void onClickAddAllowedAgent(void* user_data);
- static void onClickRemoveAllowedAgent(void* user_data);
- void onClickAddAllowedGroup();
- static void onClickRemoveAllowedGroup(void* user_data);
- static void onClickAddBannedAgent(void* user_data);
- static void onClickRemoveBannedAgent(void* user_data);
- static void onClickAddEstateManager(void* user_data);
- static void onClickRemoveEstateManager(void* user_data);
+ void onClickEditSky();
+ void onClickEditSkyHelp();
+ void onClickEditDayCycle();
+ void onClickEditDayCycleHelp();
+
+ void onClickAddAllowedAgent();
+ void onClickRemoveAllowedAgent();
+ void onClickAddAllowedGroup();
+ void onClickRemoveAllowedGroup();
+ void onClickAddBannedAgent();
+ void onClickRemoveBannedAgent();
+ void onClickAddEstateManager();
+ void onClickRemoveEstateManager();
void onClickKickUser();
// Group picker callback is different, can't use core methods below
diff --git a/indra/newview/llfloaterreporter.cpp b/indra/newview/llfloaterreporter.cpp
index f7c8855bf6..66d7e804ea 100644
--- a/indra/newview/llfloaterreporter.cpp
+++ b/indra/newview/llfloaterreporter.cpp
@@ -2,31 +2,25 @@
* @file llfloaterreporter.cpp
* @brief Abuse reports.
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -109,7 +103,6 @@ LLFloaterReporter::LLFloaterReporter(const LLSD& key)
mCopyrightWarningSeen( FALSE ),
mResourceDatap(new LLResourceData())
{
- //LLUICtrlFactory::getInstance()->buildFloater(this, "floater_report_abuse.xml");
}
// static
@@ -128,7 +121,7 @@ BOOL LLFloaterReporter::postBuild()
{
LLSLURL slurl;
LLAgentUI::buildSLURL(slurl);
- childSetText("abuse_location_edit", slurl.getSLURLString());
+ getChild<LLUICtrl>("abuse_location_edit")->setValue(slurl.getSLURLString());
enableControls(TRUE);
@@ -137,7 +130,7 @@ BOOL LLFloaterReporter::postBuild()
LLViewerRegion *regionp = gAgent.getRegion();
if (regionp)
{
- childSetText("sim_field", regionp->getName());
+ getChild<LLUICtrl>("sim_field")->setValue(regionp->getName());
pos -= regionp->getOriginGlobal();
}
setPosBox(pos);
@@ -148,13 +141,13 @@ BOOL LLFloaterReporter::postBuild()
setVisible(TRUE);
// Default text to be blank
- childSetText("object_name", LLStringUtil::null);
- childSetText("owner_name", LLStringUtil::null);
+ getChild<LLUICtrl>("object_name")->setValue(LLStringUtil::null);
+ getChild<LLUICtrl>("owner_name")->setValue(LLStringUtil::null);
mOwnerName = LLStringUtil::null;
- childSetFocus("summary_edit");
+ getChild<LLUICtrl>("summary_edit")->setFocus(TRUE);
- mDefaultSummary = childGetText("details_edit");
+ mDefaultSummary = getChild<LLUICtrl>("details_edit")->getValue().asString();
// send a message and ask for information about this region -
// result comes back in processRegionInfo(..)
@@ -184,7 +177,7 @@ BOOL LLFloaterReporter::postBuild()
// grab the user's name
std::string fullname;
LLAgentUI::buildFullname(fullname);
- childSetText("reporter_field", fullname);
+ getChild<LLUICtrl>("reporter_field")->setValue(fullname);
center();
@@ -212,22 +205,22 @@ LLFloaterReporter::~LLFloaterReporter()
// virtual
void LLFloaterReporter::draw()
{
- childSetEnabled("screen_check", TRUE );
+ getChildView("screen_check")->setEnabled(TRUE );
LLFloater::draw();
}
void LLFloaterReporter::enableControls(BOOL enable)
{
- childSetEnabled("category_combo", enable);
- childSetEnabled("chat_check", enable);
- childSetEnabled("screen_check", enable);
- childDisable("screenshot");
- childSetEnabled("pick_btn", enable);
- childSetEnabled("summary_edit", enable);
- childSetEnabled("details_edit", enable);
- childSetEnabled("send_btn", enable);
- childSetEnabled("cancel_btn", enable);
+ getChildView("category_combo")->setEnabled(enable);
+ getChildView("chat_check")->setEnabled(enable);
+ getChildView("screen_check")->setEnabled(enable);
+ getChildView("screenshot")->setEnabled(FALSE);
+ getChildView("pick_btn")->setEnabled(enable);
+ getChildView("summary_edit")->setEnabled(enable);
+ getChildView("details_edit")->setEnabled(enable);
+ getChildView("send_btn")->setEnabled(enable);
+ getChildView("cancel_btn")->setEnabled(enable);
}
void LLFloaterReporter::getObjectInfo(const LLUUID& object_id)
@@ -259,7 +252,7 @@ void LLFloaterReporter::getObjectInfo(const LLUUID& object_id)
LLViewerRegion *regionp = objectp->getRegion();
if (regionp)
{
- childSetText("sim_field", regionp->getName());
+ getChild<LLUICtrl>("sim_field")->setValue(regionp->getName());
LLVector3d global_pos;
global_pos.setVec(objectp->getPositionRegion());
setPosBox(global_pos);
@@ -313,7 +306,7 @@ void LLFloaterReporter::callbackAvatarID(const std::vector<std::string>& names,
{
if (ids.empty() || names.empty()) return;
- childSetText("abuser_name_edit", names[0] );
+ getChild<LLUICtrl>("abuser_name_edit")->setValue(names[0] );
mAbuserID = ids[0];
@@ -328,9 +321,9 @@ void LLFloaterReporter::setFromAvatar(const LLUUID& avatar_id, const std::string
std::string avatar_link =
LLSLURL("agent", mObjectID, "inspect").getSLURLString();
- childSetText("owner_name", avatar_link);
- childSetText("object_name", avatar_name);
- childSetText("abuser_name_edit", avatar_name);
+ getChild<LLUICtrl>("owner_name")->setValue(avatar_link);
+ getChild<LLUICtrl>("object_name")->setValue(avatar_name);
+ getChild<LLUICtrl>("abuser_name_edit")->setValue(avatar_name);
}
// static
@@ -354,9 +347,9 @@ void LLFloaterReporter::onClickSend(void *userdata)
if ( ! self->mCopyrightWarningSeen )
{
- std::string details_lc = self->childGetText("details_edit");
+ std::string details_lc = self->getChild<LLUICtrl>("details_edit")->getValue().asString();
LLStringUtil::toLower( details_lc );
- std::string summary_lc = self->childGetText("summary_edit");
+ std::string summary_lc = self->getChild<LLUICtrl>("summary_edit")->getValue().asString();
LLStringUtil::toLower( summary_lc );
if ( details_lc.find( "copyright" ) != std::string::npos ||
summary_lc.find( "copyright" ) != std::string::npos ||
@@ -387,10 +380,10 @@ void LLFloaterReporter::onClickSend(void *userdata)
}
else
{
- if(self->childGetValue("screen_check"))
+ if(self->getChild<LLUICtrl>("screen_check")->getValue())
{
- self->childDisable("send_btn");
- self->childDisable("cancel_btn");
+ self->getChildView("send_btn")->setEnabled(FALSE);
+ self->getChildView("cancel_btn")->setEnabled(FALSE);
// the callback from uploading the image calls sendReportViaLegacy()
self->uploadImage();
}
@@ -428,8 +421,8 @@ void LLFloaterReporter::onClickObjPicker(void *userdata)
LLToolObjPicker::getInstance()->setExitCallback(LLFloaterReporter::closePickTool, self);
LLToolMgr::getInstance()->setTransientTool(LLToolObjPicker::getInstance());
self->mPicking = TRUE;
- self->childSetText("object_name", LLStringUtil::null);
- self->childSetText("owner_name", LLStringUtil::null);
+ self->getChild<LLUICtrl>("object_name")->setValue(LLStringUtil::null);
+ self->getChild<LLUICtrl>("owner_name")->setValue(LLStringUtil::null);
self->mOwnerName = LLStringUtil::null;
LLButton* pick_btn = self->getChild<LLButton>("pick_btn");
if (pick_btn) pick_btn->setToggleState(TRUE);
@@ -475,7 +468,7 @@ void LLFloaterReporter::show(const LLUUID& object_id, const std::string& avatar_
// grab the user's name
std::string fullname;
LLAgentUI::buildFullname(fullname);
- f->childSetText("reporter_field", fullname);
+ f->getChild<LLUICtrl>("reporter_field")->setValue(fullname);
if (avatar_name.empty())
// Request info for this object
@@ -504,11 +497,11 @@ void LLFloaterReporter::showFromAvatar(const LLUUID& avatar_id, const std::strin
void LLFloaterReporter::setPickedObjectProperties(const std::string& object_name, const std::string& owner_name, const LLUUID owner_id)
{
- childSetText("object_name", object_name);
+ getChild<LLUICtrl>("object_name")->setValue(object_name);
std::string owner_link =
LLSLURL("agent", owner_id, "inspect").getSLURLString();
- childSetText("owner_name", owner_link);
- childSetText("abuser_name_edit", owner_name);
+ getChild<LLUICtrl>("owner_name")->setValue(owner_link);
+ getChild<LLUICtrl>("abuser_name_edit")->setValue(owner_name);
mAbuserID = owner_id;
mOwnerName = owner_name;
}
@@ -517,7 +510,7 @@ void LLFloaterReporter::setPickedObjectProperties(const std::string& object_name
bool LLFloaterReporter::validateReport()
{
// Ensure user selected a category from the list
- LLSD category_sd = childGetValue("category_combo");
+ LLSD category_sd = getChild<LLUICtrl>("category_combo")->getValue();
U8 category = (U8)category_sd.asInteger();
if (category == 0)
{
@@ -526,32 +519,32 @@ bool LLFloaterReporter::validateReport()
}
- if ( childGetText("abuser_name_edit").empty() )
+ if ( getChild<LLUICtrl>("abuser_name_edit")->getValue().asString().empty() )
{
LLNotificationsUtil::add("HelpReportAbuseAbuserNameEmpty");
return false;
};
- if ( childGetText("abuse_location_edit").empty() )
+ if ( getChild<LLUICtrl>("abuse_location_edit")->getValue().asString().empty() )
{
LLNotificationsUtil::add("HelpReportAbuseAbuserLocationEmpty");
return false;
};
- if ( childGetText("abuse_location_edit").empty() )
+ if ( getChild<LLUICtrl>("abuse_location_edit")->getValue().asString().empty() )
{
LLNotificationsUtil::add("HelpReportAbuseAbuserLocationEmpty");
return false;
};
- if ( childGetText("summary_edit").empty() )
+ if ( getChild<LLUICtrl>("summary_edit")->getValue().asString().empty() )
{
LLNotificationsUtil::add("HelpReportAbuseSummaryEmpty");
return false;
};
- if ( childGetText("details_edit") == mDefaultSummary )
+ if ( getChild<LLUICtrl>("details_edit")->getValue().asString() == mDefaultSummary )
{
LLNotificationsUtil::add("HelpReportAbuseDetailsEmpty");
return false;
@@ -597,17 +590,17 @@ LLSD LLFloaterReporter::gatherReport()
summary << ""
<< " |" << regionp->getName() << "|" // region reporter is currently in.
- << " (" << childGetText("abuse_location_edit") << ")" // region abuse occured in (freeform text - no LLRegionPicker tool)
+ << " (" << getChild<LLUICtrl>("abuse_location_edit")->getValue().asString() << ")" // region abuse occured in (freeform text - no LLRegionPicker tool)
<< " [" << category_name << "] " // updated category
- << " {" << childGetText("abuser_name_edit") << "} " // name of abuse entered in report (chosen using LLAvatarPicker)
- << " \"" << childGetValue("summary_edit").asString() << "\""; // summary as entered
+ << " {" << getChild<LLUICtrl>("abuser_name_edit")->getValue().asString() << "} " // name of abuse entered in report (chosen using LLAvatarPicker)
+ << " \"" << getChild<LLUICtrl>("summary_edit")->getValue().asString() << "\""; // summary as entered
std::ostringstream details;
details << "V" << LLVersionInfo::getVersion() << std::endl << std::endl; // client version moved to body of email for abuse reports
- std::string object_name = childGetText("object_name");
+ std::string object_name = getChild<LLUICtrl>("object_name")->getValue().asString();
if (!object_name.empty() && !mOwnerName.empty())
{
details << "Object: " << object_name << "\n";
@@ -615,10 +608,10 @@ LLSD LLFloaterReporter::gatherReport()
}
- details << "Abuser name: " << childGetText("abuser_name_edit") << " \n";
- details << "Abuser location: " << childGetText("abuse_location_edit") << " \n";
+ details << "Abuser name: " << getChild<LLUICtrl>("abuser_name_edit")->getValue().asString() << " \n";
+ details << "Abuser location: " << getChild<LLUICtrl>("abuse_location_edit")->getValue().asString() << " \n";
- details << childGetValue("details_edit").asString();
+ details << getChild<LLUICtrl>("details_edit")->getValue().asString();
std::string version_string;
version_string = llformat(
@@ -632,14 +625,14 @@ LLSD LLFloaterReporter::gatherReport()
// only send a screenshot ID if we're asked to and the email is
// going to LL - Estate Owners cannot see the screenshot asset
LLUUID screenshot_id = LLUUID::null;
- if (childGetValue("screen_check"))
+ if (getChild<LLUICtrl>("screen_check")->getValue())
{
- screenshot_id = childGetValue("screenshot");
+ screenshot_id = getChild<LLUICtrl>("screenshot")->getValue();
};
LLSD report = LLSD::emptyMap();
report["report-type"] = (U8) mReportType;
- report["category"] = childGetValue("category_combo");
+ report["category"] = getChild<LLUICtrl>("category_combo")->getValue();
report["position"] = mPosition.getValue();
report["check-flags"] = (U8)0; // this is not used
report["screenshot-id"] = screenshot_id;
@@ -721,7 +714,7 @@ public:
void LLFloaterReporter::sendReportViaCaps(std::string url, std::string sshot_url, const LLSD& report)
{
- if(childGetValue("screen_check").asBoolean() && !sshot_url.empty())
+ if(getChild<LLUICtrl>("screen_check")->getValue().asBoolean() && !sshot_url.empty())
{
// try to upload screenshot
LLHTTPClient::post(sshot_url, report, new LLUserReportScreenshotResponder(report,
@@ -853,7 +846,7 @@ void LLFloaterReporter::setPosBox(const LLVector3d &pos)
mPosition.mV[VX],
mPosition.mV[VY],
mPosition.mV[VZ]);
- childSetText("pos_field", pos_string);
+ getChild<LLUICtrl>("pos_field")->setValue(pos_string);
}
// void LLFloaterReporter::setDescription(const std::string& description, LLMeanCollisionData *mcd)
@@ -861,7 +854,7 @@ void LLFloaterReporter::setPosBox(const LLVector3d &pos)
// LLFloaterReporter *self = LLFloaterReg::findTypedInstance<LLFloaterReporter>("reporter");
// if (self)
// {
-// self->childSetText("details_edit", description);
+// self->getChild<LLUICtrl>("details_edit")->setValue(description);
// for_each(self->mMCDList.begin(), self->mMCDList.end(), DeletePointer());
// self->mMCDList.clear();
diff --git a/indra/newview/llfloaterreporter.h b/indra/newview/llfloaterreporter.h
index 23784b7650..92e842d318 100644
--- a/indra/newview/llfloaterreporter.h
+++ b/indra/newview/llfloaterreporter.h
@@ -3,31 +3,25 @@
* @author Andrew Meadows
* @brief Abuse reports.
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloaterscriptdebug.cpp b/indra/newview/llfloaterscriptdebug.cpp
index d6732a9d5c..a0d1a32e12 100644
--- a/indra/newview/llfloaterscriptdebug.cpp
+++ b/indra/newview/llfloaterscriptdebug.cpp
@@ -2,31 +2,25 @@
* @file llfloaterscriptdebug.cpp
* @brief Chat window for showing script errors and warnings
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -58,11 +52,11 @@
LLFloaterScriptDebug::LLFloaterScriptDebug(const LLSD& key)
: LLMultiFloater(key)
{
-// LLUICtrlFactory::getInstance()->buildFloater(this, "floater_script_debug.xml");
-
// avoid resizing of the window to match
// the initial size of the tabbed-childs, whenever a tab is opened or closed
mAutoResize = FALSE;
+ // enabled autocous blocks controling focus via LLFloaterReg::showInstance
+ setAutoFocus(FALSE);
}
LLFloaterScriptDebug::~LLFloaterScriptDebug()
@@ -93,7 +87,8 @@ LLFloater* LLFloaterScriptDebug::addOutputWindow(const LLUUID &object_id)
return NULL;
LLFloater::setFloaterHost(host);
- LLFloater* floaterp = LLFloaterReg::showInstance("script_debug_output", object_id);
+ // prevent stealing focus, see EXT-8040
+ LLFloater* floaterp = LLFloaterReg::showInstance("script_debug_output", object_id, FALSE);
LLFloater::setFloaterHost(NULL);
return floaterp;
@@ -144,7 +139,8 @@ LLFloaterScriptDebugOutput::LLFloaterScriptDebugOutput(const LLSD& object_id)
: LLFloater(LLSD(object_id)),
mObjectID(object_id.asUUID())
{
- //LLUICtrlFactory::getInstance()->buildFloater(this, "floater_script_debug_panel.xml");
+ // enabled autocous blocks controling focus via LLFloaterReg::showInstance
+ setAutoFocus(FALSE);
}
BOOL LLFloaterScriptDebugOutput::postBuild()
diff --git a/indra/newview/llfloaterscriptdebug.h b/indra/newview/llfloaterscriptdebug.h
index ffc60e5554..6d9d1eb500 100644
--- a/indra/newview/llfloaterscriptdebug.h
+++ b/indra/newview/llfloaterscriptdebug.h
@@ -2,31 +2,25 @@
* @file llfloaterscriptdebug.h
* @brief Shows error and warning output from scripts
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloaterscriptlimits.cpp b/indra/newview/llfloaterscriptlimits.cpp
index 4792d761d8..cd792c263c 100644
--- a/indra/newview/llfloaterscriptlimits.cpp
+++ b/indra/newview/llfloaterscriptlimits.cpp
@@ -3,31 +3,25 @@
* @author Gabriel Lee
* @brief Implementation of the region info and controls floater and panels.
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -121,7 +115,7 @@ BOOL LLFloaterScriptLimits::postBuild()
LLPanelScriptLimitsRegionMemory* panel_memory;
panel_memory = new LLPanelScriptLimitsRegionMemory;
mInfoPanels.push_back(panel_memory);
- LLUICtrlFactory::getInstance()->buildPanel(panel_memory, "panel_script_limits_region_memory.xml");
+ panel_memory->buildFromFile( "panel_script_limits_region_memory.xml");
mTab->addTabPanel(panel_memory);
}
@@ -130,7 +124,7 @@ BOOL LLFloaterScriptLimits::postBuild()
{
LLPanelScriptLimitsAttachment* panel_attachments = new LLPanelScriptLimitsAttachment;
mInfoPanels.push_back(panel_attachments);
- LLUICtrlFactory::getInstance()->buildPanel(panel_attachments, "panel_script_limits_my_avatar.xml");
+ panel_attachments->buildFromFile("panel_script_limits_my_avatar.xml");
mTab->addTabPanel(panel_attachments);
}
@@ -298,7 +292,7 @@ void fetchScriptLimitsRegionSummaryResponder::result(const LLSD& content_ref)
LLPanelScriptLimitsRegionMemory* panel_memory = (LLPanelScriptLimitsRegionMemory*)tab->getChild<LLPanel>("script_limits_region_memory_panel");
if(panel_memory)
{
- panel_memory->childSetValue("loading_text", LLSD(std::string("")));
+ panel_memory->getChild<LLUICtrl>("loading_text")->setValue(LLSD(std::string("")));
LLButton* btn = panel_memory->getChild<LLButton>("refresh_list_btn");
if(btn)
@@ -495,7 +489,7 @@ void fetchScriptLimitsAttachmentInfoResponder::result(const LLSD& content_ref)
LLPanelScriptLimitsAttachment* panel = (LLPanelScriptLimitsAttachment*)tab->getChild<LLPanel>("script_limits_my_avatar_panel");
if(panel)
{
- panel->childSetValue("loading_text", LLSD(std::string("")));
+ panel->getChild<LLUICtrl>("loading_text")->setValue(LLSD(std::string("")));
LLButton* btn = panel->getChild<LLButton>("refresh_list_btn");
if(btn)
@@ -557,17 +551,15 @@ BOOL LLPanelScriptLimitsRegionMemory::getLandScriptResources()
void LLPanelScriptLimitsRegionMemory::processParcelInfo(const LLParcelData& parcel_data)
{
- mParcelId = parcel_data.parcel_id;
-
if(!getLandScriptResources())
{
std::string msg_error = LLTrans::getString("ScriptLimitsRequestError");
- childSetValue("loading_text", LLSD(msg_error));
+ getChild<LLUICtrl>("loading_text")->setValue(LLSD(msg_error));
}
else
{
std::string msg_waiting = LLTrans::getString("ScriptLimitsRequestWaiting");
- childSetValue("loading_text", LLSD(msg_waiting));
+ getChild<LLUICtrl>("loading_text")->setValue(LLSD(msg_waiting));
}
}
@@ -580,13 +572,14 @@ void LLPanelScriptLimitsRegionMemory::setParcelID(const LLUUID& parcel_id)
LLRemoteParcelInfoProcessor::getInstance()->removeObserver(mParcelId, this);
mParcelId.setNull();
}
+ mParcelId = parcel_id;
LLRemoteParcelInfoProcessor::getInstance()->addObserver(parcel_id, this);
LLRemoteParcelInfoProcessor::getInstance()->sendParcelInfoRequest(parcel_id);
}
else
{
std::string msg_error = LLTrans::getString("ScriptLimitsRequestError");
- childSetValue("loading_text", LLSD(msg_error));
+ getChild<LLUICtrl>("loading_text")->setValue(LLSD(msg_error));
}
}
@@ -642,7 +635,7 @@ void LLPanelScriptLimitsRegionMemory::setRegionDetails(LLSD content)
LLStringUtil::format_map_t args_parcels;
args_parcels["[PARCELS]"] = llformat ("%d", number_parcels);
std::string msg_parcels = LLTrans::getString("ScriptLimitsParcelsOwned", args_parcels);
- childSetValue("parcels_listed", LLSD(msg_parcels));
+ getChild<LLUICtrl>("parcels_listed")->setValue(LLSD(msg_parcels));
uuid_vec_t names_requested;
@@ -713,38 +706,44 @@ void LLPanelScriptLimitsRegionMemory::setRegionDetails(LLSD content)
}
}
- LLSD element;
+ LLScrollListItem::Params item_params;
+ item_params.value = task_id;
- element["id"] = task_id;
- element["columns"][0]["column"] = "size";
- element["columns"][0]["value"] = llformat("%d", size);
- element["columns"][0]["font"] = "SANSSERIF";
- element["columns"][1]["column"] = "urls";
- element["columns"][1]["value"] = llformat("%d", urls);
- element["columns"][1]["font"] = "SANSSERIF";
- element["columns"][2]["column"] = "name";
- element["columns"][2]["value"] = name_buf;
- element["columns"][2]["font"] = "SANSSERIF";
- element["columns"][3]["column"] = "owner";
- element["columns"][3]["value"] = owner_buf;
- element["columns"][3]["font"] = "SANSSERIF";
- element["columns"][4]["column"] = "parcel";
- element["columns"][4]["value"] = parcel_name;
- element["columns"][4]["font"] = "SANSSERIF";
- element["columns"][5]["column"] = "location";
- if(has_locations)
- {
- element["columns"][5]["value"] = llformat("<%0.1f,%0.1f,%0.1f>", location_x, location_y, location_z);
- }
- else
- {
- element["columns"][5]["value"] = "";
- }
- element["columns"][5]["font"] = "SANSSERIF";
+ LLScrollListCell::Params cell_params;
+ cell_params.font = LLFontGL::getFontSansSerif();
+
+ cell_params.column = "size";
+ cell_params.value = size;
+ item_params.columns.add(cell_params);
+
+ cell_params.column = "urls";
+ cell_params.value = urls;
+ item_params.columns.add(cell_params);
- list->addElement(element, ADD_SORTED);
+ cell_params.column = "name";
+ cell_params.value = name_buf;
+ item_params.columns.add(cell_params);
+
+ cell_params.column = "owner";
+ cell_params.value = owner_buf;
+ item_params.columns.add(cell_params);
+
+ cell_params.column = "parcel";
+ cell_params.value = parcel_name;
+ item_params.columns.add(cell_params);
+
+ cell_params.column = "location";
+ cell_params.value = has_locations
+ ? llformat("<%0.1f,%0.1f,%0.1f>", location_x, location_y, location_z)
+ : "";
+ item_params.columns.add(cell_params);
+
+ list->addRow(item_params);
+ LLSD element;
element["owner_id"] = owner_id;
+
+ element["id"] = task_id;
element["local_id"] = local_id;
mObjectListItems.push_back(element);
}
@@ -819,7 +818,7 @@ void LLPanelScriptLimitsRegionMemory::setRegionSummary(LLSD content)
args_parcel_memory["[MAX]"] = llformat ("%d", mParcelMemoryMax);
args_parcel_memory["[AVAILABLE]"] = llformat ("%d", parcel_memory_available);
std::string msg_parcel_memory = LLTrans::getString("ScriptLimitsMemoryUsed", args_parcel_memory);
- childSetValue("memory_used", LLSD(msg_parcel_memory));
+ getChild<LLUICtrl>("memory_used")->setValue(LLSD(msg_parcel_memory));
}
if((mParcelURLsUsed >= 0) && (mParcelURLsMax >= 0))
@@ -831,7 +830,7 @@ void LLPanelScriptLimitsRegionMemory::setRegionSummary(LLSD content)
args_parcel_urls["[MAX]"] = llformat ("%d", mParcelURLsMax);
args_parcel_urls["[AVAILABLE]"] = llformat ("%d", parcel_urls_available);
std::string msg_parcel_urls = LLTrans::getString("ScriptLimitsURLsUsed", args_parcel_urls);
- childSetValue("urls_used", LLSD(msg_parcel_urls));
+ getChild<LLUICtrl>("urls_used")->setValue(LLSD(msg_parcel_urls));
}
}
@@ -842,7 +841,7 @@ BOOL LLPanelScriptLimitsRegionMemory::postBuild()
childSetAction("return_btn", onClickReturn, this);
std::string msg_waiting = LLTrans::getString("ScriptLimitsRequestWaiting");
- childSetValue("loading_text", LLSD(msg_waiting));
+ getChild<LLUICtrl>("loading_text")->setValue(LLSD(msg_waiting));
LLScrollListCtrl *list = getChild<LLScrollListCtrl>("scripts_list");
if(!list)
@@ -867,7 +866,7 @@ BOOL LLPanelScriptLimitsRegionMemory::StartRequestChain()
LLFloaterLand* instance = LLFloaterReg::getTypedInstance<LLFloaterLand>("about_land");
if(!instance)
{
- childSetValue("loading_text", LLSD(std::string("")));
+ getChild<LLUICtrl>("loading_text")->setValue(LLSD(std::string("")));
//might have to do parent post build here
//if not logic below could use early outs
return FALSE;
@@ -886,7 +885,7 @@ BOOL LLPanelScriptLimitsRegionMemory::StartRequestChain()
if(region_id != current_region_id)
{
std::string msg_wrong_region = LLTrans::getString("ScriptLimitsRequestWrongRegion");
- childSetValue("loading_text", LLSD(msg_wrong_region));
+ getChild<LLUICtrl>("loading_text")->setValue(LLSD(msg_wrong_region));
return FALSE;
}
@@ -915,13 +914,13 @@ BOOL LLPanelScriptLimitsRegionMemory::StartRequestChain()
<< " does not support RemoteParcelRequest" << llendl;
std::string msg_waiting = LLTrans::getString("ScriptLimitsRequestError");
- childSetValue("loading_text", LLSD(msg_waiting));
+ getChild<LLUICtrl>("loading_text")->setValue(LLSD(msg_waiting));
}
}
else
{
std::string msg_waiting = LLTrans::getString("ScriptLimitsRequestNoParcelSelected");
- childSetValue("loading_text", LLSD(msg_waiting));
+ getChild<LLUICtrl>("loading_text")->setValue(LLSD(msg_waiting));
}
return LLPanelScriptLimitsInfo::postBuild();
@@ -943,9 +942,9 @@ void LLPanelScriptLimitsRegionMemory::clearList()
LLStringUtil::format_map_t args_parcel_memory;
std::string msg_empty_string("");
- childSetValue("memory_used", LLSD(msg_empty_string));
- childSetValue("urls_used", LLSD(msg_empty_string));
- childSetValue("parcels_listed", LLSD(msg_empty_string));
+ getChild<LLUICtrl>("memory_used")->setValue(LLSD(msg_empty_string));
+ getChild<LLUICtrl>("urls_used")->setValue(LLSD(msg_empty_string));
+ getChild<LLUICtrl>("parcels_listed")->setValue(LLSD(msg_empty_string));
mObjectListItems.clear();
}
@@ -1214,7 +1213,7 @@ void LLPanelScriptLimitsAttachment::setAttachmentDetails(LLSD content)
setAttachmentSummary(content);
- childSetValue("loading_text", LLSD(std::string("")));
+ getChild<LLUICtrl>("loading_text")->setValue(LLSD(std::string("")));
LLButton* btn = getChild<LLButton>("refresh_list_btn");
if(btn)
@@ -1228,7 +1227,7 @@ BOOL LLPanelScriptLimitsAttachment::postBuild()
childSetAction("refresh_list_btn", onClickRefresh, this);
std::string msg_waiting = LLTrans::getString("ScriptLimitsRequestWaiting");
- childSetValue("loading_text", LLSD(msg_waiting));
+ getChild<LLUICtrl>("loading_text")->setValue(LLSD(msg_waiting));
return requestAttachmentDetails();
}
@@ -1242,7 +1241,7 @@ void LLPanelScriptLimitsAttachment::clearList()
}
std::string msg_waiting = LLTrans::getString("ScriptLimitsRequestWaiting");
- childSetValue("loading_text", LLSD(msg_waiting));
+ getChild<LLUICtrl>("loading_text")->setValue(LLSD(msg_waiting));
}
void LLPanelScriptLimitsAttachment::setAttachmentSummary(LLSD content)
@@ -1292,7 +1291,7 @@ void LLPanelScriptLimitsAttachment::setAttachmentSummary(LLSD content)
args_attachment_memory["[MAX]"] = llformat ("%d", mAttachmentMemoryMax);
args_attachment_memory["[AVAILABLE]"] = llformat ("%d", attachment_memory_available);
std::string msg_attachment_memory = LLTrans::getString("ScriptLimitsMemoryUsed", args_attachment_memory);
- childSetValue("memory_used", LLSD(msg_attachment_memory));
+ getChild<LLUICtrl>("memory_used")->setValue(LLSD(msg_attachment_memory));
}
if((mAttachmentURLsUsed >= 0) && (mAttachmentURLsMax >= 0))
@@ -1304,7 +1303,7 @@ void LLPanelScriptLimitsAttachment::setAttachmentSummary(LLSD content)
args_attachment_urls["[MAX]"] = llformat ("%d", mAttachmentURLsMax);
args_attachment_urls["[AVAILABLE]"] = llformat ("%d", attachment_urls_available);
std::string msg_attachment_urls = LLTrans::getString("ScriptLimitsURLsUsed", args_attachment_urls);
- childSetValue("urls_used", LLSD(msg_attachment_urls));
+ getChild<LLUICtrl>("urls_used")->setValue(LLSD(msg_attachment_urls));
}
}
diff --git a/indra/newview/llfloaterscriptlimits.h b/indra/newview/llfloaterscriptlimits.h
index 3c32b9f701..46e2e6f0e2 100644
--- a/indra/newview/llfloaterscriptlimits.h
+++ b/indra/newview/llfloaterscriptlimits.h
@@ -3,31 +3,25 @@
* @author Gabriel Lee
* @brief Declaration of the region info and controls floater and panels.
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloatersearch.cpp b/indra/newview/llfloatersearch.cpp
index 76caa0cf91..3ed4aec89a 100644
--- a/indra/newview/llfloatersearch.cpp
+++ b/indra/newview/llfloatersearch.cpp
@@ -3,31 +3,25 @@
* @author Martin Reddy
* @brief Search floater - uses an embedded web browser control
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -102,11 +96,7 @@ LLFloaterSearch::LLFloaterSearch(const LLSD& key) :
BOOL LLFloaterSearch::postBuild()
{
mBrowser = getChild<LLMediaCtrl>("browser");
- if (mBrowser)
- {
- mBrowser->addObserver(this);
- mBrowser->setTrusted(true);
- }
+ mBrowser->addObserver(this);
return TRUE;
}
@@ -128,11 +118,11 @@ void LLFloaterSearch::handleMediaEvent(LLPluginClassMedia *self, EMediaEvent eve
switch (event)
{
case MEDIA_EVENT_NAVIGATE_BEGIN:
- childSetText("status_text", getString("loading_text"));
+ getChild<LLUICtrl>("status_text")->setValue(getString("loading_text"));
break;
case MEDIA_EVENT_NAVIGATE_COMPLETE:
- childSetText("status_text", getString("done_text"));
+ getChild<LLUICtrl>("status_text")->setValue(getString("done_text"));
break;
default:
@@ -146,7 +136,7 @@ void LLFloaterSearch::godLevelChanged(U8 godlevel)
// changes god level, then give them a warning (we don't refresh
// the search as this might undo any page navigation or
// AJAX-driven changes since the last search).
- childSetVisible("refresh_search", (godlevel != mSearchGodLevel));
+ getChildView("refresh_search")->setVisible( (godlevel != mSearchGodLevel));
}
void LLFloaterSearch::search(const LLSD &key)
@@ -157,7 +147,7 @@ void LLFloaterSearch::search(const LLSD &key)
}
// reset the god level warning as we're sending the latest state
- childHide("refresh_search");
+ getChildView("refresh_search")->setVisible(FALSE);
mSearchGodLevel = gAgent.getGodLevel();
// work out the subdir to use based on the requested category
diff --git a/indra/newview/llfloatersearch.h b/indra/newview/llfloatersearch.h
index 0a8d9bbe36..ba4dc4c0fa 100644
--- a/indra/newview/llfloatersearch.h
+++ b/indra/newview/llfloatersearch.h
@@ -3,31 +3,25 @@
* @author Martin Reddy
* @brief Search floater - uses an embedded web browser control
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloatersellland.cpp b/indra/newview/llfloatersellland.cpp
index 9dddbd998a..3d87904dbe 100644
--- a/indra/newview/llfloatersellland.cpp
+++ b/indra/newview/llfloatersellland.cpp
@@ -1,31 +1,25 @@
/**
* @file llfloatersellland.cpp
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -163,7 +157,7 @@ BOOL LLFloaterSellLandUI::postBuild()
{
childSetCommitCallback("sell_to", onChangeValue, this);
childSetCommitCallback("price", onChangeValue, this);
- childSetPrevalidate("price", LLTextValidate::validateNonNegativeS32);
+ getChild<LLLineEditor>("price")->setPrevalidate(LLTextValidate::validateNonNegativeS32);
childSetCommitCallback("sell_objects", onChangeValue, this);
childSetAction("sell_to_select_agent", boost::bind( &LLFloaterSellLandUI::doSelectAgent, this));
childSetAction("cancel_btn", doCancel, this);
@@ -207,20 +201,20 @@ void LLFloaterSellLandUI::updateParcelInfo()
mParcelSoldWithObjects = parcelp->getSellWithObjects();
if (mParcelIsForSale)
{
- childSetValue("price", mParcelPrice);
+ getChild<LLUICtrl>("price")->setValue(mParcelPrice);
if (mParcelSoldWithObjects)
{
- childSetValue("sell_objects", "yes");
+ getChild<LLUICtrl>("sell_objects")->setValue("yes");
}
else
{
- childSetValue("sell_objects", "no");
+ getChild<LLUICtrl>("sell_objects")->setValue("no");
}
}
else
{
- childSetValue("price", "");
- childSetValue("sell_objects", "none");
+ getChild<LLUICtrl>("price")->setValue("");
+ getChild<LLUICtrl>("sell_objects")->setValue("none");
}
mParcelSnapshot = parcelp->getSnapshotID();
@@ -232,7 +226,7 @@ void LLFloaterSellLandUI::updateParcelInfo()
{
std::string name;
gCacheName->getFullName(mAuthorizedBuyer, name);
- childSetText("sell_to_agent", name);
+ getChild<LLUICtrl>("sell_to_agent")->setValue(name);
}
}
@@ -253,7 +247,7 @@ void LLFloaterSellLandUI::setBadge(const char* id, Badge badge)
case BADGE_ERROR: badgeName = badgeError; break;
}
- childSetValue(id, badgeName);
+ getChild<LLUICtrl>(id)->setValue(badgeName);
}
void LLFloaterSellLandUI::refreshUI()
@@ -264,10 +258,10 @@ void LLFloaterSellLandUI::refreshUI()
LLTextureCtrl* snapshot = getChild<LLTextureCtrl>("info_image");
snapshot->setImageAssetID(mParcelSnapshot);
- childSetText("info_parcel", parcelp->getName());
- childSetTextArg("info_size", "[AREA]", llformat("%d", mParcelActualArea));
+ getChild<LLUICtrl>("info_parcel")->setValue(parcelp->getName());
+ getChild<LLUICtrl>("info_size")->setTextArg("[AREA]", llformat("%d", mParcelActualArea));
- std::string price_str = childGetValue("price").asString();
+ std::string price_str = getChild<LLUICtrl>("price")->getValue().asString();
bool valid_price = false;
valid_price = (price_str != "") && LLTextValidate::validateNonNegativeS32(utf8str_to_wstring(price_str));
@@ -275,14 +269,14 @@ void LLFloaterSellLandUI::refreshUI()
{
F32 per_meter_price = 0;
per_meter_price = F32(mParcelPrice) / F32(mParcelActualArea);
- childSetTextArg("price_per_m", "[PER_METER]", llformat("%0.2f", per_meter_price));
- childShow("price_per_m");
+ getChild<LLUICtrl>("price_per_m")->setTextArg("[PER_METER]", llformat("%0.2f", per_meter_price));
+ getChildView("price_per_m")->setVisible(TRUE);
setBadge("step_price", BADGE_OK);
}
else
{
- childHide("price_per_m");
+ getChildView("price_per_m")->setVisible(FALSE);
if ("" == price_str)
{
@@ -296,26 +290,26 @@ void LLFloaterSellLandUI::refreshUI()
if (mSellToBuyer)
{
- childSetValue("sell_to", "user");
- childShow("sell_to_agent");
- childShow("sell_to_select_agent");
+ getChild<LLUICtrl>("sell_to")->setValue("user");
+ getChildView("sell_to_agent")->setVisible(TRUE);
+ getChildView("sell_to_select_agent")->setVisible(TRUE);
}
else
{
if (mChoseSellTo)
{
- childSetValue("sell_to", "anyone");
+ getChild<LLUICtrl>("sell_to")->setValue("anyone");
}
else
{
- childSetValue("sell_to", "select");
+ getChild<LLUICtrl>("sell_to")->setValue("select");
}
- childHide("sell_to_agent");
- childHide("sell_to_select_agent");
+ getChildView("sell_to_agent")->setVisible(FALSE);
+ getChildView("sell_to_select_agent")->setVisible(FALSE);
}
// Must select Sell To: Anybody, or User (with a specified username)
- std::string sell_to = childGetValue("sell_to").asString();
+ std::string sell_to = getChild<LLUICtrl>("sell_to")->getValue().asString();
bool valid_sell_to = "select" != sell_to &&
("user" != sell_to || mAuthorizedBuyer.notNull());
@@ -328,7 +322,7 @@ void LLFloaterSellLandUI::refreshUI()
setBadge("step_sell_to", BADGE_OK);
}
- bool valid_sell_objects = ("none" != childGetValue("sell_objects").asString());
+ bool valid_sell_objects = ("none" != getChild<LLUICtrl>("sell_objects")->getValue().asString());
if (!valid_sell_objects)
{
@@ -341,11 +335,11 @@ void LLFloaterSellLandUI::refreshUI()
if (valid_sell_to && valid_price && valid_sell_objects)
{
- childEnable("sell_btn");
+ getChildView("sell_btn")->setEnabled(TRUE);
}
else
{
- childDisable("sell_btn");
+ getChildView("sell_btn")->setEnabled(FALSE);
}
}
@@ -354,7 +348,7 @@ void LLFloaterSellLandUI::onChangeValue(LLUICtrl *ctrl, void *userdata)
{
LLFloaterSellLandUI *self = (LLFloaterSellLandUI *)userdata;
- std::string sell_to = self->childGetValue("sell_to").asString();
+ std::string sell_to = self->getChild<LLUICtrl>("sell_to")->getValue().asString();
if (sell_to == "user")
{
@@ -371,9 +365,9 @@ void LLFloaterSellLandUI::onChangeValue(LLUICtrl *ctrl, void *userdata)
self->mSellToBuyer = false;
}
- self->mParcelPrice = self->childGetValue("price");
+ self->mParcelPrice = self->getChild<LLUICtrl>("price")->getValue();
- if ("yes" == self->childGetValue("sell_objects").asString())
+ if ("yes" == self->getChild<LLUICtrl>("sell_objects")->getValue().asString())
{
self->mParcelSoldWithObjects = true;
}
@@ -402,7 +396,7 @@ void LLFloaterSellLandUI::callbackAvatarPick(const std::vector<std::string>& nam
mAuthorizedBuyer = ids[0];
- childSetText("sell_to_agent", names[0]);
+ getChild<LLUICtrl>("sell_to_agent")->setValue(names[0]);
refreshUI();
}
@@ -445,13 +439,13 @@ void LLFloaterSellLandUI::doSellLand(void *userdata)
LLParcel* parcel = self->mParcelSelection->getParcel();
// Do a confirmation
- S32 sale_price = self->childGetValue("price");
+ S32 sale_price = self->getChild<LLUICtrl>("price")->getValue();
S32 area = parcel->getArea();
std::string authorizedBuyerName = "Anyone";
bool sell_to_anyone = true;
- if ("user" == self->childGetValue("sell_to").asString())
+ if ("user" == self->getChild<LLUICtrl>("sell_to")->getValue().asString())
{
- authorizedBuyerName = self->childGetText("sell_to_agent");
+ authorizedBuyerName = self->getChild<LLUICtrl>("sell_to_agent")->getValue().asString();
sell_to_anyone = false;
}
@@ -498,7 +492,7 @@ bool LLFloaterSellLandUI::onConfirmSale(const LLSD& notification, const LLSD& re
{
return false;
}
- S32 sale_price = childGetValue("price");
+ S32 sale_price = getChild<LLUICtrl>("price")->getValue();
// Valid extracted data
if (sale_price < 0)
@@ -520,12 +514,12 @@ bool LLFloaterSellLandUI::onConfirmSale(const LLSD& notification, const LLSD& re
parcel->setParcelFlag(PF_FOR_SALE, TRUE);
parcel->setSalePrice(sale_price);
bool sell_with_objects = false;
- if ("yes" == childGetValue("sell_objects").asString())
+ if ("yes" == getChild<LLUICtrl>("sell_objects")->getValue().asString())
{
sell_with_objects = true;
}
parcel->setSellWithObjects(sell_with_objects);
- if ("user" == childGetValue("sell_to").asString())
+ if ("user" == getChild<LLUICtrl>("sell_to")->getValue().asString())
{
parcel->setAuthorizedBuyerID(mAuthorizedBuyer);
}
diff --git a/indra/newview/llfloatersellland.h b/indra/newview/llfloatersellland.h
index 1adf08052b..808e2ce4b0 100644
--- a/indra/newview/llfloatersellland.h
+++ b/indra/newview/llfloatersellland.h
@@ -1,31 +1,25 @@
/**
* @file llfloatersellland.h
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloatersettingsdebug.cpp b/indra/newview/llfloatersettingsdebug.cpp
index a6ffa5ec09..71882fbb83 100644
--- a/indra/newview/llfloatersettingsdebug.cpp
+++ b/indra/newview/llfloatersettingsdebug.cpp
@@ -2,31 +2,25 @@
* @file llfloatersettingsdebug.cpp
* @brief floater for debugging internal viewer settings
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -45,7 +39,6 @@
LLFloaterSettingsDebug::LLFloaterSettingsDebug(const LLSD& key)
: LLFloater(key)
{
- //LLUICtrlFactory::getInstance()->buildFloater(this, "floater_settings_debug.xml");
mCommitCallbackRegistrar.add("SettingSelect", boost::bind(&LLFloaterSettingsDebug::onSettingSelect, this,_1));
mCommitCallbackRegistrar.add("CommitSettings", boost::bind(&LLFloaterSettingsDebug::onCommitSettings, this));
mCommitCallbackRegistrar.add("ClickDefault", boost::bind(&LLFloaterSettingsDebug::onClickDefault, this));
@@ -127,49 +120,49 @@ void LLFloaterSettingsDebug::onCommitSettings()
switch(controlp->type())
{
case TYPE_U32:
- controlp->set(childGetValue("val_spinner_1"));
+ controlp->set(getChild<LLUICtrl>("val_spinner_1")->getValue());
break;
case TYPE_S32:
- controlp->set(childGetValue("val_spinner_1"));
+ controlp->set(getChild<LLUICtrl>("val_spinner_1")->getValue());
break;
case TYPE_F32:
- controlp->set(LLSD(childGetValue("val_spinner_1").asReal()));
+ controlp->set(LLSD(getChild<LLUICtrl>("val_spinner_1")->getValue().asReal()));
break;
case TYPE_BOOLEAN:
- controlp->set(childGetValue("boolean_combo"));
+ controlp->set(getChild<LLUICtrl>("boolean_combo")->getValue());
break;
case TYPE_STRING:
- controlp->set(LLSD(childGetValue("val_text").asString()));
+ controlp->set(LLSD(getChild<LLUICtrl>("val_text")->getValue().asString()));
break;
case TYPE_VEC3:
- vector.mV[VX] = (F32)childGetValue("val_spinner_1").asReal();
- vector.mV[VY] = (F32)childGetValue("val_spinner_2").asReal();
- vector.mV[VZ] = (F32)childGetValue("val_spinner_3").asReal();
+ vector.mV[VX] = (F32)getChild<LLUICtrl>("val_spinner_1")->getValue().asReal();
+ vector.mV[VY] = (F32)getChild<LLUICtrl>("val_spinner_2")->getValue().asReal();
+ vector.mV[VZ] = (F32)getChild<LLUICtrl>("val_spinner_3")->getValue().asReal();
controlp->set(vector.getValue());
break;
case TYPE_VEC3D:
- vectord.mdV[VX] = childGetValue("val_spinner_1").asReal();
- vectord.mdV[VY] = childGetValue("val_spinner_2").asReal();
- vectord.mdV[VZ] = childGetValue("val_spinner_3").asReal();
+ vectord.mdV[VX] = getChild<LLUICtrl>("val_spinner_1")->getValue().asReal();
+ vectord.mdV[VY] = getChild<LLUICtrl>("val_spinner_2")->getValue().asReal();
+ vectord.mdV[VZ] = getChild<LLUICtrl>("val_spinner_3")->getValue().asReal();
controlp->set(vectord.getValue());
break;
case TYPE_RECT:
- rect.mLeft = childGetValue("val_spinner_1").asInteger();
- rect.mRight = childGetValue("val_spinner_2").asInteger();
- rect.mBottom = childGetValue("val_spinner_3").asInteger();
- rect.mTop = childGetValue("val_spinner_4").asInteger();
+ rect.mLeft = getChild<LLUICtrl>("val_spinner_1")->getValue().asInteger();
+ rect.mRight = getChild<LLUICtrl>("val_spinner_2")->getValue().asInteger();
+ rect.mBottom = getChild<LLUICtrl>("val_spinner_3")->getValue().asInteger();
+ rect.mTop = getChild<LLUICtrl>("val_spinner_4")->getValue().asInteger();
controlp->set(rect.getValue());
break;
case TYPE_COL4:
- col3.setValue(childGetValue("val_color_swatch"));
- col4 = LLColor4(col3, (F32)childGetValue("val_spinner_4").asReal());
+ col3.setValue(getChild<LLUICtrl>("val_color_swatch")->getValue());
+ col4 = LLColor4(col3, (F32)getChild<LLUICtrl>("val_spinner_4")->getValue().asReal());
controlp->set(col4.getValue());
break;
case TYPE_COL3:
- controlp->set(childGetValue("val_color_swatch"));
- //col3.mV[VRED] = (F32)floaterp->childGetValue("val_spinner_1").asC();
- //col3.mV[VGREEN] = (F32)floaterp->childGetValue("val_spinner_2").asReal();
- //col3.mV[VBLUE] = (F32)floaterp->childGetValue("val_spinner_3").asReal();
+ controlp->set(getChild<LLUICtrl>("val_color_swatch")->getValue());
+ //col3.mV[VRED] = (F32)floaterp->getChild<LLUICtrl>("val_spinner_1")->getValue().asC();
+ //col3.mV[VGREEN] = (F32)floaterp->getChild<LLUICtrl>("val_spinner_2")->getValue().asReal();
+ //col3.mV[VBLUE] = (F32)floaterp->getChild<LLUICtrl>("val_spinner_3")->getValue().asReal();
//controlp->set(col3.getValue());
break;
default:
@@ -211,7 +204,7 @@ void LLFloaterSettingsDebug::updateControl(LLControlVariable* controlp)
spinner3->setVisible(FALSE);
spinner4->setVisible(FALSE);
color_swatch->setVisible(FALSE);
- childSetVisible("val_text", FALSE);
+ getChildView("val_text")->setVisible( FALSE);
mComment->setText(LLStringUtil::null);
if (controlp)
@@ -219,7 +212,7 @@ void LLFloaterSettingsDebug::updateControl(LLControlVariable* controlp)
eControlType type = controlp->type();
//hide combo box only for non booleans, otherwise this will result in the combo box closing every frame
- childSetVisible("boolean_combo", type == TYPE_BOOLEAN);
+ getChildView("boolean_combo")->setVisible( type == TYPE_BOOLEAN);
mComment->setText(controlp->getComment());
@@ -285,23 +278,23 @@ void LLFloaterSettingsDebug::updateControl(LLControlVariable* controlp)
}
break;
case TYPE_BOOLEAN:
- if (!childHasFocus("boolean_combo"))
+ if (!getChild<LLUICtrl>("boolean_combo")->hasFocus())
{
if (sd.asBoolean())
{
- childSetValue("boolean_combo", LLSD("true"));
+ getChild<LLUICtrl>("boolean_combo")->setValue(LLSD("true"));
}
else
{
- childSetValue("boolean_combo", LLSD(""));
+ getChild<LLUICtrl>("boolean_combo")->setValue(LLSD(""));
}
}
break;
case TYPE_STRING:
- childSetVisible("val_text", TRUE);
- if (!childHasFocus("val_text"))
+ getChildView("val_text")->setVisible( TRUE);
+ if (!getChild<LLUICtrl>("val_text")->hasFocus())
{
- childSetValue("val_text", sd);
+ getChild<LLUICtrl>("val_text")->setValue(sd);
}
break;
case TYPE_VEC3:
diff --git a/indra/newview/llfloatersettingsdebug.h b/indra/newview/llfloatersettingsdebug.h
index 65803fbf70..f07e0557e3 100644
--- a/indra/newview/llfloatersettingsdebug.h
+++ b/indra/newview/llfloatersettingsdebug.h
@@ -2,31 +2,25 @@
* @file llfloatersettingsdebug.h
* @brief floater for debugging internal viewer settings
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloatersidetraytab.cpp b/indra/newview/llfloatersidetraytab.cpp
new file mode 100644
index 0000000000..f13b4db3a0
--- /dev/null
+++ b/indra/newview/llfloatersidetraytab.cpp
@@ -0,0 +1,45 @@
+/**
+ * @file llfloatersidetraytab.cpp
+ * @brief LLFloaterSideTrayTab class definition
+ *
+ * $LicenseInfo:firstyear=2010&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 "llfloatersidetraytab.h"
+
+// newview includes
+#include "lltransientfloatermgr.h"
+
+LLFloaterSideTrayTab::LLFloaterSideTrayTab(const LLSD& key, const Params& params)
+: LLFloater(key, params)
+{
+ // Prevent transient floaters (e.g. IM windows) from hiding
+ // when this floater is clicked.
+ LLTransientFloaterMgr::getInstance()->addControlView(LLTransientFloaterMgr::GLOBAL, this);
+}
+
+LLFloaterSideTrayTab::~LLFloaterSideTrayTab()
+{
+ LLTransientFloaterMgr::getInstance()->removeControlView(LLTransientFloaterMgr::GLOBAL, this);
+}
diff --git a/indra/newview/llfloatersidetraytab.h b/indra/newview/llfloatersidetraytab.h
new file mode 100644
index 0000000000..e47f82e8ba
--- /dev/null
+++ b/indra/newview/llfloatersidetraytab.h
@@ -0,0 +1,47 @@
+/**
+ * @file llfloatersidetraytab.h
+ * @brief LLFloaterSideTrayTab class definition
+ *
+ * $LicenseInfo:firstyear=2010&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_LLFLOATERSIDETRAYTAB_H
+#define LL_LLFLOATERSIDETRAYTAB_H
+
+#include "llfloater.h"
+
+/**
+ * When a side tray tab gets detached, it's wrapped in an instance of this class.
+ *
+ * This class helps to make sure that clicking a detached side tray tab doesn't
+ * make transient floaters (e.g. IM windows) hide, so that it's possible to
+ * drag an inventory item from detached My Inventory window to a docked IM window,
+ * i.e. share the item (see VWR-22891).
+ */
+class LLFloaterSideTrayTab : public LLFloater
+{
+public:
+ LLFloaterSideTrayTab(const LLSD& key, const Params& params = getDefaultParams());
+ ~LLFloaterSideTrayTab();
+};
+
+#endif // LL_LLFLOATERSIDETRAYTAB_H
diff --git a/indra/newview/llfloatersnapshot.cpp b/indra/newview/llfloatersnapshot.cpp
index f3baa482a0..36e8ad9dfc 100644
--- a/indra/newview/llfloatersnapshot.cpp
+++ b/indra/newview/llfloatersnapshot.cpp
@@ -2,31 +2,25 @@
* @file llfloatersnapshot.cpp
* @brief Snapshot preview window, allowing saving, e-mailing, etc.
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -41,11 +35,13 @@
#include "llagentcamera.h"
#include "llcallbacklist.h"
#include "llcriticaldamp.h"
+#include "llfloaterperms.h"
#include "llui.h"
#include "llfocusmgr.h"
#include "llbutton.h"
#include "llcombobox.h"
#include "lleconomy.h"
+#include "lllandmarkactions.h"
#include "llsliderctrl.h"
#include "llspinctrl.h"
#include "llviewercontrol.h"
@@ -59,6 +55,7 @@
#include "llradiogroup.h"
#include "lltoolfocus.h"
#include "lltoolmgr.h"
+#include "llwebsharing.h"
#include "llworld.h"
#include "llagentui.h"
@@ -86,8 +83,8 @@
///----------------------------------------------------------------------------
/// Local function declarations, constants, enums, and typedefs
///----------------------------------------------------------------------------
-S32 LLFloaterSnapshot::sUIWinHeightLong = 526 ;
-S32 LLFloaterSnapshot::sUIWinHeightShort = LLFloaterSnapshot::sUIWinHeightLong - 230 ;
+S32 LLFloaterSnapshot::sUIWinHeightLong = 530 ;
+S32 LLFloaterSnapshot::sUIWinHeightShort = LLFloaterSnapshot::sUIWinHeightLong - 240 ;
S32 LLFloaterSnapshot::sUIWinWidth = 215 ;
LLSnapshotFloaterView* gSnapshotFloaterView = NULL;
@@ -115,7 +112,8 @@ public:
{
SNAPSHOT_POSTCARD,
SNAPSHOT_TEXTURE,
- SNAPSHOT_LOCAL
+ SNAPSHOT_LOCAL,
+ SNAPSHOT_WEB
};
@@ -161,6 +159,7 @@ public:
void setSnapshotQuality(S32 quality);
void setSnapshotBufferType(LLViewerWindow::ESnapshotType type) { mSnapshotBufferType = type; }
void updateSnapshot(BOOL new_snapshot, BOOL new_thumbnail = FALSE, F32 delay = 0.f);
+ void saveWeb();
LLFloaterPostcard* savePostcard();
void saveTexture();
BOOL saveLocal();
@@ -173,6 +172,9 @@ public:
// Returns TRUE when snapshot generated, FALSE otherwise.
static BOOL onIdle( void* snapshot_preview );
+ // callback for region name resolve
+ void regionNameCallback(LLImageJPEG* snapshot, LLSD& metadata, const std::string& name, S32 x, S32 y, S32 z);
+
private:
LLColor4 mColor;
LLPointer<LLViewerTexture> mViewerImage[2]; //used to represent the scene when the frame is frozen.
@@ -826,9 +828,19 @@ BOOL LLSnapshotLivePreview::onIdle( void* snapshot_preview )
// delete any existing image
previewp->mFormattedImage = NULL;
// now create the new one of the appropriate format.
- // note: postcards hardcoded to use jpeg always.
- LLFloaterSnapshot::ESnapshotFormat format = previewp->getSnapshotType() == SNAPSHOT_POSTCARD
- ? LLFloaterSnapshot::SNAPSHOT_FORMAT_JPEG : previewp->getSnapshotFormat();
+ // note: postcards and web hardcoded to use jpeg always.
+ LLFloaterSnapshot::ESnapshotFormat format;
+
+ if (previewp->getSnapshotType() == SNAPSHOT_POSTCARD ||
+ previewp->getSnapshotType() == SNAPSHOT_WEB)
+ {
+ format = LLFloaterSnapshot::SNAPSHOT_FORMAT_JPEG;
+ }
+ else
+ {
+ format = previewp->getSnapshotFormat();
+ }
+
switch(format)
{
case LLFloaterSnapshot::SNAPSHOT_FORMAT_PNG:
@@ -988,8 +1000,8 @@ void LLSnapshotLivePreview::saveTexture()
LLFolderType::FT_SNAPSHOT_CATEGORY,
LLInventoryType::IT_SNAPSHOT,
PERM_ALL, // Note: Snapshots to inventory is a special case of content upload
- PERM_NONE, // that ignores the user's premissions preferences and continues to
- PERM_NONE, // always use these fairly permissive hard-coded initial perms. - MG
+ LLFloaterPerms::getGroupPerms(), // that is more permissive than other uploads
+ LLFloaterPerms::getEveryonePerms(),
"Snapshot : " + pos_string,
callback, expected_upload_cost, userdata);
gViewerWindow->playSnapshotAnimAndSound();
@@ -1021,6 +1033,33 @@ BOOL LLSnapshotLivePreview::saveLocal()
return success;
}
+void LLSnapshotLivePreview::saveWeb()
+{
+ // *FIX: Will break if the window closes because of CloseSnapshotOnKeep!
+ // Needs to pass on ownership of the image.
+ LLImageJPEG* jpg = dynamic_cast<LLImageJPEG*>(mFormattedImage.get());
+ if(!jpg)
+ {
+ llwarns << "Formatted image not a JPEG" << llendl;
+ return;
+ }
+
+ LLSD metadata;
+ metadata["description"] = getChild<LLLineEditor>("description")->getText();
+
+ LLLandmarkActions::getRegionNameAndCoordsFromPosGlobal(gAgentCamera.getCameraPositionGlobal(),
+ boost::bind(&LLSnapshotLivePreview::regionNameCallback, this, jpg, metadata, _1, _2, _3, _4));
+
+ gViewerWindow->playSnapshotAnimAndSound();
+}
+
+void LLSnapshotLivePreview::regionNameCallback(LLImageJPEG* snapshot, LLSD& metadata, const std::string& name, S32 x, S32 y, S32 z)
+{
+ metadata["slurl"] = LLSLURL(name, LLVector3d(x, y, z)).getSLURLString();
+
+ LLWebSharing::instance().shareSnapshot(snapshot, metadata);
+}
+
///----------------------------------------------------------------------------
/// Class LLFloaterSnapshot::Impl
///----------------------------------------------------------------------------
@@ -1071,6 +1110,7 @@ public:
private:
static LLSnapshotLivePreview::ESnapshotType getTypeIndex(LLFloaterSnapshot* floater);
+ static LLSD getTypeName(LLSnapshotLivePreview::ESnapshotType index);
static ESnapshotFormat getFormatIndex(LLFloaterSnapshot* floater);
static LLViewerWindow::ESnapshotType getLayerType(LLFloaterSnapshot* floater);
static void comboSetCustom(LLFloaterSnapshot *floater, const std::string& comboname);
@@ -1096,17 +1136,51 @@ LLSnapshotLivePreview* LLFloaterSnapshot::Impl::getPreviewView(LLFloaterSnapshot
LLSnapshotLivePreview::ESnapshotType LLFloaterSnapshot::Impl::getTypeIndex(LLFloaterSnapshot* floater)
{
LLSnapshotLivePreview::ESnapshotType index = LLSnapshotLivePreview::SNAPSHOT_POSTCARD;
- LLSD value = floater->childGetValue("snapshot_type_radio");
+ LLSD value = floater->getChild<LLUICtrl>("snapshot_type_radio")->getValue();
+
const std::string id = value.asString();
if (id == "postcard")
+ {
index = LLSnapshotLivePreview::SNAPSHOT_POSTCARD;
+ }
else if (id == "texture")
+ {
index = LLSnapshotLivePreview::SNAPSHOT_TEXTURE;
+ }
else if (id == "local")
+ {
index = LLSnapshotLivePreview::SNAPSHOT_LOCAL;
+ }
+ else if (id == "share_to_web")
+ {
+ index = LLSnapshotLivePreview::SNAPSHOT_WEB;
+ }
+
return index;
}
+// static
+LLSD LLFloaterSnapshot::Impl::getTypeName(LLSnapshotLivePreview::ESnapshotType index)
+{
+ std::string id;
+ switch (index)
+ {
+ case LLSnapshotLivePreview::SNAPSHOT_WEB:
+ id = "share_to_web";
+ break;
+ case LLSnapshotLivePreview::SNAPSHOT_POSTCARD:
+ id = "postcard";
+ break;
+ case LLSnapshotLivePreview::SNAPSHOT_TEXTURE:
+ id = "texture";
+ break;
+ case LLSnapshotLivePreview::SNAPSHOT_LOCAL:
+ default:
+ id = "local";
+ break;
+ }
+ return LLSD(id);
+}
// static
LLFloaterSnapshot::ESnapshotFormat LLFloaterSnapshot::Impl::getFormatIndex(LLFloaterSnapshot* floater)
@@ -1132,7 +1206,7 @@ LLFloaterSnapshot::ESnapshotFormat LLFloaterSnapshot::Impl::getFormatIndex(LLFlo
LLViewerWindow::ESnapshotType LLFloaterSnapshot::Impl::getLayerType(LLFloaterSnapshot* floater)
{
LLViewerWindow::ESnapshotType type = LLViewerWindow::SNAPSHOT_TYPE_COLOR;
- LLSD value = floater->childGetValue("layer_types");
+ LLSD value = floater->getChild<LLUICtrl>("layer_types")->getValue();
const std::string id = value.asString();
if (id == "colors")
type = LLViewerWindow::SNAPSHOT_TYPE_COLOR;
@@ -1175,7 +1249,7 @@ void LLFloaterSnapshot::Impl::updateLayout(LLFloaterSnapshot* floaterp)
previewp->setSize(gViewerWindow->getWindowWidthRaw(), gViewerWindow->getWindowHeightRaw());
}
- bool use_freeze_frame = floaterp->childGetValue("freeze_frame_check").asBoolean();
+ bool use_freeze_frame = floaterp->getChild<LLUICtrl>("freeze_frame_check")->getValue().asBoolean();
if (use_freeze_frame)
{
@@ -1243,56 +1317,64 @@ void LLFloaterSnapshot::Impl::updateLayout(LLFloaterSnapshot* floaterp)
void LLFloaterSnapshot::Impl::updateControls(LLFloaterSnapshot* floater)
{
LLRadioGroup* snapshot_type_radio = floater->getChild<LLRadioGroup>("snapshot_type_radio");
- snapshot_type_radio->setSelectedIndex(gSavedSettings.getS32("LastSnapshotType"));
- LLSnapshotLivePreview::ESnapshotType shot_type = getTypeIndex(floater);
- ESnapshotFormat shot_format = (ESnapshotFormat)gSavedSettings.getS32("SnapshotFormat"); //getFormatIndex(floater); LLViewerWindow::ESnapshotType layer_type = getLayerType(floater);
+ LLSnapshotLivePreview::ESnapshotType shot_type = (LLSnapshotLivePreview::ESnapshotType)gSavedSettings.getS32("LastSnapshotType");
+ snapshot_type_radio->setSelectedByValue(getTypeName(shot_type), true);
+
+ ESnapshotFormat shot_format = (ESnapshotFormat)gSavedSettings.getS32("SnapshotFormat");
LLViewerWindow::ESnapshotType layer_type = getLayerType(floater);
- floater->childSetVisible("postcard_size_combo", FALSE);
- floater->childSetVisible("texture_size_combo", FALSE);
- floater->childSetVisible("local_size_combo", FALSE);
+ floater->getChildView("share_to_web")->setVisible( gSavedSettings.getBOOL("SnapshotSharingEnabled"));
+
+ floater->getChildView("postcard_size_combo")->setVisible( FALSE);
+ floater->getChildView("texture_size_combo")->setVisible( FALSE);
+ floater->getChildView("local_size_combo")->setVisible( FALSE);
floater->getChild<LLComboBox>("postcard_size_combo")->selectNthItem(gSavedSettings.getS32("SnapshotPostcardLastResolution"));
floater->getChild<LLComboBox>("texture_size_combo")->selectNthItem(gSavedSettings.getS32("SnapshotTextureLastResolution"));
floater->getChild<LLComboBox>("local_size_combo")->selectNthItem(gSavedSettings.getS32("SnapshotLocalLastResolution"));
floater->getChild<LLComboBox>("local_format_combo")->selectNthItem(gSavedSettings.getS32("SnapshotFormat"));
- floater->childSetVisible("upload_btn", shot_type == LLSnapshotLivePreview::SNAPSHOT_TEXTURE);
- floater->childSetVisible("send_btn", shot_type == LLSnapshotLivePreview::SNAPSHOT_POSTCARD);
- floater->childSetVisible("save_btn", shot_type == LLSnapshotLivePreview::SNAPSHOT_LOCAL);
- floater->childSetEnabled("keep_aspect_check", shot_type != LLSnapshotLivePreview::SNAPSHOT_TEXTURE && !floater->impl.mAspectRatioCheckOff);
- floater->childSetEnabled("layer_types", shot_type == LLSnapshotLivePreview::SNAPSHOT_LOCAL);
+ // *TODO: Separate settings for Web images from postcards
+ floater->getChildView("send_btn")->setVisible( shot_type == LLSnapshotLivePreview::SNAPSHOT_POSTCARD ||
+ shot_type == LLSnapshotLivePreview::SNAPSHOT_WEB);
+ floater->getChildView("upload_btn")->setVisible(shot_type == LLSnapshotLivePreview::SNAPSHOT_TEXTURE);
+ floater->getChildView("save_btn")->setVisible( shot_type == LLSnapshotLivePreview::SNAPSHOT_LOCAL);
+ floater->getChildView("keep_aspect_check")->setEnabled(shot_type != LLSnapshotLivePreview::SNAPSHOT_TEXTURE && !floater->impl.mAspectRatioCheckOff);
+ floater->getChildView("layer_types")->setEnabled(shot_type == LLSnapshotLivePreview::SNAPSHOT_LOCAL);
BOOL is_advance = gSavedSettings.getBOOL("AdvanceSnapshot");
BOOL is_local = shot_type == LLSnapshotLivePreview::SNAPSHOT_LOCAL;
- BOOL show_slider =
- shot_type == LLSnapshotLivePreview::SNAPSHOT_POSTCARD
- || (is_local && shot_format == LLFloaterSnapshot::SNAPSHOT_FORMAT_JPEG);
-
- floater->childSetVisible("more_btn", !is_advance); // the only item hidden in advanced mode
- floater->childSetVisible("less_btn", is_advance);
- floater->childSetVisible("type_label2", is_advance);
- floater->childSetVisible("format_label", is_advance && is_local);
- floater->childSetVisible("local_format_combo", is_advance && is_local);
- floater->childSetVisible("layer_types", is_advance);
- floater->childSetVisible("layer_type_label", is_advance);
- floater->childSetVisible("snapshot_width", is_advance);
- floater->childSetVisible("snapshot_height", is_advance);
- floater->childSetVisible("keep_aspect_check", is_advance);
- floater->childSetVisible("ui_check", is_advance);
- floater->childSetVisible("hud_check", is_advance);
- floater->childSetVisible("keep_open_check", is_advance);
- floater->childSetVisible("freeze_frame_check", is_advance);
- floater->childSetVisible("auto_snapshot_check", is_advance);
- floater->childSetVisible("image_quality_slider", is_advance && show_slider);
+ BOOL show_slider = (shot_type == LLSnapshotLivePreview::SNAPSHOT_POSTCARD ||
+ shot_type == LLSnapshotLivePreview::SNAPSHOT_WEB ||
+ (is_local && shot_format == LLFloaterSnapshot::SNAPSHOT_FORMAT_JPEG));
+
+ floater->getChildView("more_btn")->setVisible( !is_advance); // the only item hidden in advanced mode
+ floater->getChildView("less_btn")->setVisible( is_advance);
+ floater->getChildView("type_label2")->setVisible( is_advance);
+ floater->getChildView("format_label")->setVisible( is_advance && is_local);
+ floater->getChildView("local_format_combo")->setVisible( is_advance && is_local);
+ floater->getChildView("layer_types")->setVisible( is_advance);
+ floater->getChildView("layer_type_label")->setVisible( is_advance);
+ floater->getChildView("snapshot_width")->setVisible( is_advance);
+ floater->getChildView("snapshot_height")->setVisible( is_advance);
+ floater->getChildView("keep_aspect_check")->setVisible( is_advance);
+ floater->getChildView("ui_check")->setVisible( is_advance);
+ floater->getChildView("hud_check")->setVisible( is_advance);
+ floater->getChildView("keep_open_check")->setVisible( is_advance);
+ floater->getChildView("freeze_frame_check")->setVisible( is_advance);
+ floater->getChildView("auto_snapshot_check")->setVisible( is_advance);
+ floater->getChildView("image_quality_slider")->setVisible( is_advance && show_slider);
LLSnapshotLivePreview* previewp = getPreviewView(floater);
BOOL got_bytes = previewp && previewp->getDataSize() > 0;
BOOL got_snap = previewp && previewp->getSnapshotUpToDate();
- floater->childSetEnabled("send_btn", shot_type == LLSnapshotLivePreview::SNAPSHOT_POSTCARD && got_snap && previewp->getDataSize() <= MAX_POSTCARD_DATASIZE);
- floater->childSetEnabled("upload_btn", shot_type == LLSnapshotLivePreview::SNAPSHOT_TEXTURE && got_snap);
- floater->childSetEnabled("save_btn", shot_type == LLSnapshotLivePreview::SNAPSHOT_LOCAL && got_snap);
+ // *TODO: Separate maximum size for Web images from postcards
+ floater->getChildView("send_btn")->setEnabled((shot_type == LLSnapshotLivePreview::SNAPSHOT_POSTCARD ||
+ shot_type == LLSnapshotLivePreview::SNAPSHOT_WEB) &&
+ got_snap && previewp->getDataSize() <= MAX_POSTCARD_DATASIZE);
+ floater->getChildView("upload_btn")->setEnabled(shot_type == LLSnapshotLivePreview::SNAPSHOT_TEXTURE && got_snap);
+ floater->getChildView("save_btn")->setEnabled(shot_type == LLSnapshotLivePreview::SNAPSHOT_LOCAL && got_snap);
LLLocale locale(LLLocale::USER_LOCALE);
std::string bytes_string;
@@ -1301,19 +1383,21 @@ void LLFloaterSnapshot::Impl::updateControls(LLFloaterSnapshot* floater)
LLResMgr::getInstance()->getIntegerString(bytes_string, (previewp->getDataSize()) >> 10 );
}
S32 upload_cost = LLGlobalEconomy::Singleton::getInstance()->getPriceUpload();
- floater->childSetLabelArg("texture", "[AMOUNT]", llformat("%d",upload_cost));
- floater->childSetLabelArg("upload_btn", "[AMOUNT]", llformat("%d",upload_cost));
- floater->childSetTextArg("file_size_label", "[SIZE]", got_snap ? bytes_string : floater->getString("unknown"));
- floater->childSetColor("file_size_label",
+ floater->getChild<LLUICtrl>("texture")->setLabelArg("[AMOUNT]", llformat("%d",upload_cost));
+ floater->getChild<LLUICtrl>("upload_btn")->setLabelArg("[AMOUNT]", llformat("%d",upload_cost));
+ floater->getChild<LLUICtrl>("file_size_label")->setTextArg("[SIZE]", got_snap ? bytes_string : floater->getString("unknown"));
+ floater->getChild<LLUICtrl>("file_size_label")->setColor(
shot_type == LLSnapshotLivePreview::SNAPSHOT_POSTCARD
&& got_bytes
&& previewp->getDataSize() > MAX_POSTCARD_DATASIZE ? LLUIColor(LLColor4::red) : LLUIColorTable::instance().getColor( "LabelTextColor" ));
switch(shot_type)
{
+ // *TODO: Separate settings for Web images from postcards
+ case LLSnapshotLivePreview::SNAPSHOT_WEB:
case LLSnapshotLivePreview::SNAPSHOT_POSTCARD:
layer_type = LLViewerWindow::SNAPSHOT_TYPE_COLOR;
- floater->childSetValue("layer_types", "colors");
+ floater->getChild<LLUICtrl>("layer_types")->setValue("colors");
if(is_advance)
{
setResolution(floater, "postcard_size_combo");
@@ -1321,7 +1405,7 @@ void LLFloaterSnapshot::Impl::updateControls(LLFloaterSnapshot* floater)
break;
case LLSnapshotLivePreview::SNAPSHOT_TEXTURE:
layer_type = LLViewerWindow::SNAPSHOT_TYPE_COLOR;
- floater->childSetValue("layer_types", "colors");
+ floater->getChild<LLUICtrl>("layer_types")->setValue("colors");
if(is_advance)
{
setResolution(floater, "texture_size_combo");
@@ -1402,28 +1486,39 @@ void LLFloaterSnapshot::Impl::onClickKeep(void* data)
{
LLFloaterSnapshot *view = (LLFloaterSnapshot *)data;
LLSnapshotLivePreview* previewp = getPreviewView(view);
-
+
if (previewp)
{
- if (previewp->getSnapshotType() == LLSnapshotLivePreview::SNAPSHOT_POSTCARD)
+ switch (previewp->getSnapshotType())
{
- LLFloaterPostcard* floater = previewp->savePostcard();
- // if still in snapshot mode, put postcard floater in snapshot floaterview
- // and link it to snapshot floater
- if (floater && !gSavedSettings.getBOOL("CloseSnapshotOnKeep"))
+ case LLSnapshotLivePreview::SNAPSHOT_WEB:
+ previewp->saveWeb();
+ break;
+
+ case LLSnapshotLivePreview::SNAPSHOT_POSTCARD:
{
- gFloaterView->removeChild(floater);
- gSnapshotFloaterView->addChild(floater);
- view->addDependentFloater(floater, FALSE);
+ LLFloaterPostcard* floater = previewp->savePostcard();
+ // if still in snapshot mode, put postcard floater in snapshot floaterview
+ // and link it to snapshot floater
+ if (floater && !gSavedSettings.getBOOL("CloseSnapshotOnKeep"))
+ {
+ gFloaterView->removeChild(floater);
+ gSnapshotFloaterView->addChild(floater);
+ view->addDependentFloater(floater, FALSE);
+ }
}
- }
- else if (previewp->getSnapshotType() == LLSnapshotLivePreview::SNAPSHOT_TEXTURE)
- {
+ break;
+
+ case LLSnapshotLivePreview::SNAPSHOT_TEXTURE:
previewp->saveTexture();
- }
- else
- {
+ break;
+
+ case LLSnapshotLivePreview::SNAPSHOT_LOCAL:
previewp->saveLocal();
+ break;
+
+ default:
+ break;
}
if (gSavedSettings.getBOOL("CloseSnapshotOnKeep"))
@@ -1610,7 +1705,7 @@ void LLFloaterSnapshot::Impl::checkAspectRatio(LLFloaterSnapshot *view, S32 inde
if(0 == index) //current window size
{
view->impl.mAspectRatioCheckOff = true ;
- view->childSetEnabled("keep_aspect_check", FALSE) ;
+ view->getChildView("keep_aspect_check")->setEnabled(FALSE) ;
if(previewp)
{
@@ -1622,7 +1717,7 @@ void LLFloaterSnapshot::Impl::checkAspectRatio(LLFloaterSnapshot *view, S32 inde
view->impl.mAspectRatioCheckOff = false ;
//if(LLSnapshotLivePreview::SNAPSHOT_TEXTURE != gSavedSettings.getS32("LastSnapshotType"))
{
- view->childSetEnabled("keep_aspect_check", TRUE) ;
+ view->getChildView("keep_aspect_check")->setEnabled(TRUE) ;
if(previewp)
{
@@ -1633,7 +1728,7 @@ void LLFloaterSnapshot::Impl::checkAspectRatio(LLFloaterSnapshot *view, S32 inde
else
{
view->impl.mAspectRatioCheckOff = true ;
- view->childSetEnabled("keep_aspect_check", FALSE) ;
+ view->getChildView("keep_aspect_check")->setEnabled(FALSE) ;
if(previewp)
{
@@ -1648,18 +1743,22 @@ static std::string lastSnapshotWidthName()
{
switch(gSavedSettings.getS32("LastSnapshotType"))
{
- case LLSnapshotLivePreview::SNAPSHOT_POSTCARD: return "LastSnapshotToEmailWidth";
- case LLSnapshotLivePreview::SNAPSHOT_TEXTURE: return "LastSnapshotToInventoryWidth";
- default: return "LastSnapshotToDiskWidth";
+ // *TODO: Separate settings for Web snapshots and postcards
+ case LLSnapshotLivePreview::SNAPSHOT_WEB: return "LastSnapshotToEmailWidth";
+ case LLSnapshotLivePreview::SNAPSHOT_POSTCARD: return "LastSnapshotToEmailWidth";
+ case LLSnapshotLivePreview::SNAPSHOT_TEXTURE: return "LastSnapshotToInventoryWidth";
+ default: return "LastSnapshotToDiskWidth";
}
}
static std::string lastSnapshotHeightName()
{
switch(gSavedSettings.getS32("LastSnapshotType"))
{
- case LLSnapshotLivePreview::SNAPSHOT_POSTCARD: return "LastSnapshotToEmailHeight";
- case LLSnapshotLivePreview::SNAPSHOT_TEXTURE: return "LastSnapshotToInventoryHeight";
- default: return "LastSnapshotToDiskHeight";
+ // *TODO: Separate settings for Web snapshots and postcards
+ case LLSnapshotLivePreview::SNAPSHOT_WEB: return "LastSnapshotToEmailHeight";
+ case LLSnapshotLivePreview::SNAPSHOT_POSTCARD: return "LastSnapshotToEmailHeight";
+ case LLSnapshotLivePreview::SNAPSHOT_TEXTURE: return "LastSnapshotToInventoryHeight";
+ default: return "LastSnapshotToDiskHeight";
}
}
@@ -1718,10 +1817,10 @@ void LLFloaterSnapshot::Impl::updateResolution(LLUICtrl* ctrl, void* data, BOOL
resetSnapshotSizeOnUI(view, width, height) ;
}
- if(view->childGetValue("snapshot_width").asInteger() != width || view->childGetValue("snapshot_height").asInteger() != height)
+ if(view->getChild<LLUICtrl>("snapshot_width")->getValue().asInteger() != width || view->getChild<LLUICtrl>("snapshot_height")->getValue().asInteger() != height)
{
- view->childSetValue("snapshot_width", width);
- view->childSetValue("snapshot_height", height);
+ view->getChild<LLUICtrl>("snapshot_width")->setValue(width);
+ view->getChild<LLUICtrl>("snapshot_height")->setValue(height);
}
if(original_width != width || original_height != height)
@@ -1773,7 +1872,7 @@ void LLFloaterSnapshot::Impl::onCommitSnapshotType(LLUICtrl* ctrl, void* data)
//static
void LLFloaterSnapshot::Impl::onCommitSnapshotFormat(LLUICtrl* ctrl, void* data)
{
- LLFloaterSnapshot *view = (LLFloaterSnapshot *)data;
+ LLFloaterSnapshot *view = (LLFloaterSnapshot *)data;
if (view)
{
gSavedSettings.setS32("SnapshotFormat", getFormatIndex(view));
@@ -1904,8 +2003,8 @@ void LLFloaterSnapshot::Impl::onCommitCustomResolution(LLUICtrl *ctrl, void* dat
LLFloaterSnapshot *view = (LLFloaterSnapshot *)data;
if (view)
{
- S32 w = llfloor((F32)view->childGetValue("snapshot_width").asReal());
- S32 h = llfloor((F32)view->childGetValue("snapshot_height").asReal());
+ S32 w = llfloor((F32)view->getChild<LLUICtrl>("snapshot_width")->getValue().asReal());
+ S32 h = llfloor((F32)view->getChild<LLUICtrl>("snapshot_height")->getValue().asReal());
LLSnapshotLivePreview* previewp = getPreviewView(view);
if (previewp)
@@ -1972,7 +2071,6 @@ LLFloaterSnapshot::LLFloaterSnapshot(const LLSD& key)
: LLFloater(key),
impl (*(new Impl))
{
- //Called from floater reg: LLUICtrlFactory::getInstance()->buildFloater(this, "floater_snapshot.xml", FALSE);
}
// Destroys the object
@@ -1994,6 +2092,12 @@ LLFloaterSnapshot::~LLFloaterSnapshot()
BOOL LLFloaterSnapshot::postBuild()
{
+ // Kick start Web Sharing, to fetch its config data if it needs to.
+ if (gSavedSettings.getBOOL("SnapshotSharingEnabled"))
+ {
+ LLWebSharing::instance().init();
+ }
+
childSetCommitCallback("snapshot_type_radio", Impl::onCommitSnapshotType, this);
childSetCommitCallback("local_format_combo", Impl::onCommitSnapshotFormat, this);
@@ -2008,34 +2112,34 @@ BOOL LLFloaterSnapshot::postBuild()
childSetAction("discard_btn", Impl::onClickDiscard, this);
childSetCommitCallback("image_quality_slider", Impl::onCommitQuality, this);
- childSetValue("image_quality_slider", gSavedSettings.getS32("SnapshotQuality"));
+ getChild<LLUICtrl>("image_quality_slider")->setValue(gSavedSettings.getS32("SnapshotQuality"));
childSetCommitCallback("snapshot_width", Impl::onCommitCustomResolution, this);
childSetCommitCallback("snapshot_height", Impl::onCommitCustomResolution, this);
childSetCommitCallback("ui_check", Impl::onClickUICheck, this);
- childSetValue("ui_check", gSavedSettings.getBOOL("RenderUIInSnapshot"));
+ getChild<LLUICtrl>("ui_check")->setValue(gSavedSettings.getBOOL("RenderUIInSnapshot"));
childSetCommitCallback("hud_check", Impl::onClickHUDCheck, this);
- childSetValue("hud_check", gSavedSettings.getBOOL("RenderHUDInSnapshot"));
+ getChild<LLUICtrl>("hud_check")->setValue(gSavedSettings.getBOOL("RenderHUDInSnapshot"));
childSetCommitCallback("keep_open_check", Impl::onClickKeepOpenCheck, this);
- childSetValue("keep_open_check", !gSavedSettings.getBOOL("CloseSnapshotOnKeep"));
+ getChild<LLUICtrl>("keep_open_check")->setValue(!gSavedSettings.getBOOL("CloseSnapshotOnKeep"));
childSetCommitCallback("keep_aspect_check", Impl::onClickKeepAspectCheck, this);
- childSetValue("keep_aspect_check", gSavedSettings.getBOOL("KeepAspectForSnapshot"));
+ getChild<LLUICtrl>("keep_aspect_check")->setValue(gSavedSettings.getBOOL("KeepAspectForSnapshot"));
childSetCommitCallback("layer_types", Impl::onCommitLayerTypes, this);
- childSetValue("layer_types", "colors");
- childSetEnabled("layer_types", FALSE);
+ getChild<LLUICtrl>("layer_types")->setValue("colors");
+ getChildView("layer_types")->setEnabled(FALSE);
- childSetValue("snapshot_width", gSavedSettings.getS32(lastSnapshotWidthName()));
- childSetValue("snapshot_height", gSavedSettings.getS32(lastSnapshotHeightName()));
+ getChild<LLUICtrl>("snapshot_width")->setValue(gSavedSettings.getS32(lastSnapshotWidthName()));
+ getChild<LLUICtrl>("snapshot_height")->setValue(gSavedSettings.getS32(lastSnapshotHeightName()));
- childSetValue("freeze_frame_check", gSavedSettings.getBOOL("UseFreezeFrame"));
+ getChild<LLUICtrl>("freeze_frame_check")->setValue(gSavedSettings.getBOOL("UseFreezeFrame"));
childSetCommitCallback("freeze_frame_check", Impl::onCommitFreezeFrame, this);
- childSetValue("auto_snapshot_check", gSavedSettings.getBOOL("AutoSnapshot"));
+ getChild<LLUICtrl>("auto_snapshot_check")->setValue(gSavedSettings.getBOOL("AutoSnapshot"));
childSetCommitCallback("auto_snapshot_check", Impl::onClickAutoSnap, this);
childSetCommitCallback("postcard_size_combo", Impl::onCommitResolution, this);
diff --git a/indra/newview/llfloatersnapshot.h b/indra/newview/llfloatersnapshot.h
index 1333497bd2..c92d9efde5 100644
--- a/indra/newview/llfloatersnapshot.h
+++ b/indra/newview/llfloatersnapshot.h
@@ -2,31 +2,25 @@
* @file llfloatersnapshot.h
* @brief Snapshot preview window, allowing saving, e-mailing, etc.
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloatertelehub.cpp b/indra/newview/llfloatertelehub.cpp
index 816181643f..b845fd132d 100644
--- a/indra/newview/llfloatertelehub.cpp
+++ b/indra/newview/llfloatertelehub.cpp
@@ -3,31 +3,25 @@
* @author James Cook
* @brief LLFloaterTelehub class implementation
*
- * $LicenseInfo:firstyear=2005&license=viewergpl$
- *
- * Copyright (c) 2005-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -57,7 +51,6 @@ LLFloaterTelehub::LLFloaterTelehub(const LLSD& key)
mTelehubRot(),
mNumSpawn(0)
{
- //LLUICtrlFactory::getInstance()->buildFloater(sInstance, "floater_telehub.xml");
}
BOOL LLFloaterTelehub::postBuild()
@@ -112,19 +105,19 @@ void LLFloaterTelehub::refresh()
BOOL have_selection = (object != NULL);
BOOL all_volume = LLSelectMgr::getInstance()->selectionAllPCode( LL_PCODE_VOLUME );
- childSetEnabled("connect_btn", have_selection && all_volume);
+ getChildView("connect_btn")->setEnabled(have_selection && all_volume);
BOOL have_telehub = mTelehubObjectID.notNull();
- childSetEnabled("disconnect_btn", have_telehub);
+ getChildView("disconnect_btn")->setEnabled(have_telehub);
BOOL space_avail = (mNumSpawn < MAX_SPAWNPOINTS_PER_TELEHUB);
- childSetEnabled("add_spawn_point_btn", have_selection && all_volume && space_avail);
+ getChildView("add_spawn_point_btn")->setEnabled(have_selection && all_volume && space_avail);
LLScrollListCtrl* list = getChild<LLScrollListCtrl>("spawn_points_list");
if (list)
{
BOOL enable_remove = (list->getFirstSelected() != NULL);
- childSetEnabled("remove_spawn_point_btn", enable_remove);
+ getChildView("remove_spawn_point_btn")->setEnabled(enable_remove);
}
}
@@ -255,18 +248,18 @@ void LLFloaterTelehub::unpackTelehubInfo(LLMessageSystem* msg)
if (mTelehubObjectID.isNull())
{
- childSetVisible("status_text_connected", false);
- childSetVisible("status_text_not_connected", true);
- childSetVisible("help_text_connected", false);
- childSetVisible("help_text_not_connected", true);
+ getChildView("status_text_connected")->setVisible( false);
+ getChildView("status_text_not_connected")->setVisible( true);
+ getChildView("help_text_connected")->setVisible( false);
+ getChildView("help_text_not_connected")->setVisible( true);
}
else
{
- childSetTextArg("status_text_connected", "[OBJECT]", mTelehubObjectName);
- childSetVisible("status_text_connected", true);
- childSetVisible("status_text_not_connected", false);
- childSetVisible("help_text_connected", true);
- childSetVisible("help_text_not_connected", false);
+ getChild<LLUICtrl>("status_text_connected")->setTextArg("[OBJECT]", mTelehubObjectName);
+ getChildView("status_text_connected")->setVisible( true);
+ getChildView("status_text_not_connected")->setVisible( false);
+ getChildView("help_text_connected")->setVisible( true);
+ getChildView("help_text_not_connected")->setVisible( false);
}
LLScrollListCtrl* list = getChild<LLScrollListCtrl>("spawn_points_list");
diff --git a/indra/newview/llfloatertelehub.h b/indra/newview/llfloatertelehub.h
index 5b654585f1..9b9b11fb29 100644
--- a/indra/newview/llfloatertelehub.h
+++ b/indra/newview/llfloatertelehub.h
@@ -3,31 +3,25 @@
* @author James Cook
* @brief LLFloaterTelehub class definition
*
- * $LicenseInfo:firstyear=2005&license=viewergpl$
- *
- * Copyright (c) 2005-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloatertestinspectors.cpp b/indra/newview/llfloatertestinspectors.cpp
index 58d5197eaa..8a1582569b 100644
--- a/indra/newview/llfloatertestinspectors.cpp
+++ b/indra/newview/llfloatertestinspectors.cpp
@@ -1,31 +1,25 @@
/**
* @file llfloatertestinspectors.cpp
*
-* $LicenseInfo:firstyear=2009&license=viewergpl$
-*
-* Copyright (c) 2009, Linden Research, Inc.
-*
+* $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
-* The source code in this file ("Source Code") is provided by Linden Lab
-* to you under the terms of the GNU General Public License, version 2.0
-* ("GPL"), unless you have obtained a separate licensing agreement
-* ("Other License"), formally executed by you and Linden Lab. Terms of
-* the GPL can be found in doc/GPL-license.txt in this distribution, or
-* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+* 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.
*
-* There are special exceptions to the terms and conditions of the GPL as
-* it is applied to this Source Code. View the full text of the exception
-* in the file doc/FLOSS-exception.txt in this software distribution, or
-* online at
-* http://secondlifegrid.net/programs/open_source/licensing/flossexception
+* 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.
*
-* By copying, modifying or distributing this software, you acknowledge
-* that you have read and understood your obligations described above,
-* and agree to abide by those obligations.
+* 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
*
-* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
-* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
-* COMPLETENESS OR PERFORMANCE.
+* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
#include "llviewerprecompiledheaders.h"
diff --git a/indra/newview/llfloatertestinspectors.h b/indra/newview/llfloatertestinspectors.h
index 6555aad4e8..1724a2e076 100644
--- a/indra/newview/llfloatertestinspectors.h
+++ b/indra/newview/llfloatertestinspectors.h
@@ -1,31 +1,25 @@
/**
* @file llfloatertestinspectors.h
*
-* $LicenseInfo:firstyear=2009&license=viewergpl$
-*
-* Copyright (c) 2009, Linden Research, Inc.
-*
+* $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
-* The source code in this file ("Source Code") is provided by Linden Lab
-* to you under the terms of the GNU General Public License, version 2.0
-* ("GPL"), unless you have obtained a separate licensing agreement
-* ("Other License"), formally executed by you and Linden Lab. Terms of
-* the GPL can be found in doc/GPL-license.txt in this distribution, or
-* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+* 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.
*
-* There are special exceptions to the terms and conditions of the GPL as
-* it is applied to this Source Code. View the full text of the exception
-* in the file doc/FLOSS-exception.txt in this software distribution, or
-* online at
-* http://secondlifegrid.net/programs/open_source/licensing/flossexception
+* 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.
*
-* By copying, modifying or distributing this software, you acknowledge
-* that you have read and understood your obligations described above,
-* and agree to abide by those obligations.
+* 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
*
-* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
-* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
-* COMPLETENESS OR PERFORMANCE.
+* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
#ifndef LLFLOATERTESTINSPECTORS_H
diff --git a/indra/newview/llfloatertestlistview.cpp b/indra/newview/llfloatertestlistview.cpp
index 7171449738..97cf95baed 100644
--- a/indra/newview/llfloatertestlistview.cpp
+++ b/indra/newview/llfloatertestlistview.cpp
@@ -2,31 +2,25 @@
* @file llfloatertestlistview.cpp
* @brief Tests of programmatic manipulation of LLListView widgets
*
-* $LicenseInfo:firstyear=2009&license=viewergpl$
-*
-* Copyright (c) 2009, Linden Research, Inc.
-*
+* $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
-* The source code in this file ("Source Code") is provided by Linden Lab
-* to you under the terms of the GNU General Public License, version 2.0
-* ("GPL"), unless you have obtained a separate licensing agreement
-* ("Other License"), formally executed by you and Linden Lab. Terms of
-* the GPL can be found in doc/GPL-license.txt in this distribution, or
-* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+* 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.
*
-* There are special exceptions to the terms and conditions of the GPL as
-* it is applied to this Source Code. View the full text of the exception
-* in the file doc/FLOSS-exception.txt in this software distribution, or
-* online at
-* http://secondlifegrid.net/programs/open_source/licensing/flossexception
+* 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.
*
-* By copying, modifying or distributing this software, you acknowledge
-* that you have read and understood your obligations described above,
-* and agree to abide by those obligations.
+* 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
*
-* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
-* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
-* COMPLETENESS OR PERFORMANCE.
+* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
#include "llviewerprecompiledheaders.h"
diff --git a/indra/newview/llfloatertestlistview.h b/indra/newview/llfloatertestlistview.h
index 0c47c2ee31..0d4c7eb793 100644
--- a/indra/newview/llfloatertestlistview.h
+++ b/indra/newview/llfloatertestlistview.h
@@ -2,31 +2,25 @@
* @file llfloatertestlistview.h
* @brief Tests of programmatic manipulation of LLListView widgets
*
-* $LicenseInfo:firstyear=2009&license=viewergpl$
-*
-* Copyright (c) 2009, Linden Research, Inc.
-*
+* $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
-* The source code in this file ("Source Code") is provided by Linden Lab
-* to you under the terms of the GNU General Public License, version 2.0
-* ("GPL"), unless you have obtained a separate licensing agreement
-* ("Other License"), formally executed by you and Linden Lab. Terms of
-* the GPL can be found in doc/GPL-license.txt in this distribution, or
-* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+* 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.
*
-* There are special exceptions to the terms and conditions of the GPL as
-* it is applied to this Source Code. View the full text of the exception
-* in the file doc/FLOSS-exception.txt in this software distribution, or
-* online at
-* http://secondlifegrid.net/programs/open_source/licensing/flossexception
+* 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.
*
-* By copying, modifying or distributing this software, you acknowledge
-* that you have read and understood your obligations described above,
-* and agree to abide by those obligations.
+* 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
*
-* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
-* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
-* COMPLETENESS OR PERFORMANCE.
+* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
#ifndef LLFLOATERTESTLISTVIEW_H
diff --git a/indra/newview/llfloatertools.cpp b/indra/newview/llfloatertools.cpp
index a42f6ee00f..370bf05bf7 100644
--- a/indra/newview/llfloatertools.cpp
+++ b/indra/newview/llfloatertools.cpp
@@ -2,31 +2,25 @@
* @file llfloatertools.cpp
* @brief The edit tools, including move, position, land, etc.
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -228,14 +222,13 @@ BOOL LLFloaterTools::postBuild()
mTitleMedia = getChild<LLMediaCtrl>("title_media");
mCheckSelectIndividual = getChild<LLCheckBoxCtrl>("checkbox edit linked parts");
- childSetValue("checkbox edit linked parts",(BOOL)gSavedSettings.getBOOL("EditLinkedParts"));
+ getChild<LLUICtrl>("checkbox edit linked parts")->setValue((BOOL)gSavedSettings.getBOOL("EditLinkedParts"));
mCheckSnapToGrid = getChild<LLCheckBoxCtrl>("checkbox snap to grid");
- childSetValue("checkbox snap to grid",(BOOL)gSavedSettings.getBOOL("SnapEnabled"));
+ getChild<LLUICtrl>("checkbox snap to grid")->setValue((BOOL)gSavedSettings.getBOOL("SnapEnabled"));
mCheckStretchUniform = getChild<LLCheckBoxCtrl>("checkbox uniform");
- childSetValue("checkbox uniform",(BOOL)gSavedSettings.getBOOL("ScaleUniform"));
+ getChild<LLUICtrl>("checkbox uniform")->setValue((BOOL)gSavedSettings.getBOOL("ScaleUniform"));
mCheckStretchTexture = getChild<LLCheckBoxCtrl>("checkbox stretch textures");
- childSetValue("checkbox stretch textures",(BOOL)gSavedSettings.getBOOL("ScaleStretchTextures"));
- mTextGridMode = getChild<LLTextBox>("text ruler mode");
+ getChild<LLUICtrl>("checkbox stretch textures")->setValue((BOOL)gSavedSettings.getBOOL("ScaleStretchTextures"));
mComboGridMode = getChild<LLComboBox>("combobox grid mode");
mCheckStretchUniformLabel = getChild<LLTextBox>("checkbox uniform label");
@@ -255,21 +248,21 @@ BOOL LLFloaterTools::postBuild()
}
}
mCheckCopySelection = getChild<LLCheckBoxCtrl>("checkbox copy selection");
- childSetValue("checkbox copy selection",(BOOL)gSavedSettings.getBOOL("CreateToolCopySelection"));
+ getChild<LLUICtrl>("checkbox copy selection")->setValue((BOOL)gSavedSettings.getBOOL("CreateToolCopySelection"));
mCheckSticky = getChild<LLCheckBoxCtrl>("checkbox sticky");
- childSetValue("checkbox sticky",(BOOL)gSavedSettings.getBOOL("CreateToolKeepSelected"));
+ getChild<LLUICtrl>("checkbox sticky")->setValue((BOOL)gSavedSettings.getBOOL("CreateToolKeepSelected"));
mCheckCopyCenters = getChild<LLCheckBoxCtrl>("checkbox copy centers");
- childSetValue("checkbox copy centers",(BOOL)gSavedSettings.getBOOL("CreateToolCopyCenters"));
+ getChild<LLUICtrl>("checkbox copy centers")->setValue((BOOL)gSavedSettings.getBOOL("CreateToolCopyCenters"));
mCheckCopyRotates = getChild<LLCheckBoxCtrl>("checkbox copy rotates");
- childSetValue("checkbox copy rotates",(BOOL)gSavedSettings.getBOOL("CreateToolCopyRotates"));
+ getChild<LLUICtrl>("checkbox copy rotates")->setValue((BOOL)gSavedSettings.getBOOL("CreateToolCopyRotates"));
mRadioGroupLand = getChild<LLRadioGroup>("land_radio_group");
mBtnApplyToSelection = getChild<LLButton>("button apply to selection");
mSliderDozerSize = getChild<LLSlider>("slider brush size");
- childSetValue( "slider brush size", gSavedSettings.getF32("LandBrushSize"));
+ getChild<LLUICtrl>("slider brush size")->setValue(gSavedSettings.getF32("LandBrushSize"));
mSliderDozerForce = getChild<LLSlider>("slider force");
// the setting stores the actual force multiplier, but the slider is logarithmic, so we convert here
- childSetValue( "slider force", log10(gSavedSettings.getF32("LandBrushForce")));
+ getChild<LLUICtrl>("slider force")->setValue(log10(gSavedSettings.getF32("LandBrushForce")));
mTab = getChild<LLTabContainer>("Object Info Tabs");
if(mTab)
@@ -313,7 +306,6 @@ LLFloaterTools::LLFloaterTools(const LLSD& key)
mCheckSnapToGrid(NULL),
mBtnGridOptions(NULL),
mTitleMedia(NULL),
- mTextGridMode(NULL),
mComboGridMode(NULL),
mCheckStretchUniform(NULL),
mCheckStretchTexture(NULL),
@@ -358,7 +350,6 @@ LLFloaterTools::LLFloaterTools(const LLSD& key)
mFactoryMap["Contents"] = LLCallbackMap(createPanelContents, this);//LLPanelContents
mFactoryMap["land info panel"] = LLCallbackMap(createPanelLandInfo, this);//LLPanelLandInfo
- //Called from floater reg: LLUICtrlFactory::getInstance()->buildFloater(this,"floater_tools.xml",FALSE);
mCommitCallbackRegistrar.add("BuildTool.setTool", boost::bind(&LLFloaterTools::setTool,this, _2));
mCommitCallbackRegistrar.add("BuildTool.commitZoom", boost::bind(&commit_slider_zoom, _1));
mCommitCallbackRegistrar.add("BuildTool.commitRadioFocus", boost::bind(&commit_radio_group_focus, _1));
@@ -423,25 +414,25 @@ void LLFloaterTools::refresh()
LLLocale locale(LLLocale::USER_LOCALE);
std::string obj_count_string;
LLResMgr::getInstance()->getIntegerString(obj_count_string, LLSelectMgr::getInstance()->getSelection()->getRootObjectCount());
- childSetTextArg("obj_count", "[COUNT]", obj_count_string);
+ getChild<LLUICtrl>("obj_count")->setTextArg("[COUNT]", obj_count_string);
std::string prim_count_string;
LLResMgr::getInstance()->getIntegerString(prim_count_string, LLSelectMgr::getInstance()->getSelection()->getObjectCount());
- childSetTextArg("prim_count", "[COUNT]", prim_count_string);
+ getChild<LLUICtrl>("prim_count")->setTextArg("[COUNT]", prim_count_string);
// calculate selection rendering cost
if (sShowObjectCost)
{
std::string prim_cost_string;
LLResMgr::getInstance()->getIntegerString(prim_cost_string, calcRenderCost());
- childSetTextArg("RenderingCost", "[COUNT]", prim_cost_string);
+ getChild<LLUICtrl>("RenderingCost")->setTextArg("[COUNT]", prim_cost_string);
}
// disable the object and prim counts if nothing selected
bool have_selection = ! LLSelectMgr::getInstance()->getSelection()->isEmpty();
- childSetEnabled("obj_count", have_selection);
- childSetEnabled("prim_count", have_selection);
- childSetEnabled("RenderingCost", have_selection && sShowObjectCost);
+ getChildView("obj_count")->setEnabled(have_selection);
+ getChildView("prim_count")->setEnabled(have_selection);
+ getChildView("RenderingCost")->setEnabled(have_selection && sShowObjectCost);
// Refresh child tabs
mPanelPermissions->refresh();
@@ -509,8 +500,8 @@ void LLFloaterTools::updatePopup(LLCoordGL center, MASK mask)
mBtnFocus ->setToggleState( focus_visible );
mRadioGroupFocus->setVisible( focus_visible );
- childSetVisible("slider zoom", focus_visible);
- childSetEnabled("slider zoom", gCameraBtnZoom);
+ getChildView("slider zoom")->setVisible( focus_visible);
+ getChildView("slider zoom")->setEnabled(gCameraBtnZoom);
if (!gCameraBtnOrbit &&
!gCameraBtnPan &&
@@ -535,7 +526,7 @@ void LLFloaterTools::updatePopup(LLCoordGL center, MASK mask)
}
// multiply by correction factor because volume sliders go [0, 0.5]
- childSetValue( "slider zoom", gAgentCamera.getCameraZoomFraction() * 0.5f);
+ getChild<LLUICtrl>("slider zoom")->setValue(gAgentCamera.getCameraZoomFraction() * 0.5f);
// Move buttons
BOOL move_visible = (tool == LLToolGrab::getInstance());
@@ -573,7 +564,7 @@ void LLFloaterTools::updatePopup(LLCoordGL center, MASK mask)
mBtnEdit ->setToggleState( edit_visible );
mRadioGroupEdit->setVisible( edit_visible );
bool linked_parts = gSavedSettings.getBOOL("EditLinkedParts");
- childSetVisible("RenderingCost", !linked_parts && (edit_visible || focus_visible || move_visible) && sShowObjectCost);
+ getChildView("RenderingCost")->setVisible( !linked_parts && (edit_visible || focus_visible || move_visible) && sShowObjectCost);
if (mCheckSelectIndividual)
{
@@ -625,8 +616,6 @@ void LLFloaterTools::updatePopup(LLCoordGL center, MASK mask)
mComboGridMode->setCurrentByIndex(index);
}
- if (mTextGridMode) mTextGridMode->setVisible( edit_visible );
-
// Snap to grid disabled for grab tool - very confusing
if (mCheckSnapToGrid) mCheckSnapToGrid->setVisible( edit_visible /* || tool == LLToolGrab::getInstance() */ );
if (mBtnGridOptions) mBtnGridOptions->setVisible( edit_visible /* || tool == LLToolGrab::getInstance() */ );
@@ -718,17 +707,17 @@ void LLFloaterTools::updatePopup(LLCoordGL center, MASK mask)
if (mSliderDozerSize)
{
mSliderDozerSize ->setVisible( land_visible );
- childSetVisible("Bulldozer:", land_visible);
- childSetVisible("Dozer Size:", land_visible);
+ getChildView("Bulldozer:")->setVisible( land_visible);
+ getChildView("Dozer Size:")->setVisible( land_visible);
}
if (mSliderDozerForce)
{
mSliderDozerForce ->setVisible( land_visible );
- childSetVisible("Strength:", land_visible);
+ getChildView("Strength:")->setVisible( land_visible);
}
- childSetVisible("obj_count", !land_visible);
- childSetVisible("prim_count", !land_visible);
+ getChildView("obj_count")->setVisible( !land_visible);
+ getChildView("prim_count")->setVisible( !land_visible);
mTab->setVisible(!land_visible);
mPanelLandInfo->setVisible(land_visible);
}
@@ -1095,7 +1084,7 @@ void LLFloaterTools::getMediaState()
&&first_object->permModify()
))
{
- childSetEnabled("Add_Media", FALSE);
+ getChildView("Add_Media")->setEnabled(FALSE);
media_info->clear();
clearMediaSettings();
return;
@@ -1106,7 +1095,7 @@ void LLFloaterTools::getMediaState()
if(!has_media_capability)
{
- childSetEnabled("Add_Media", FALSE);
+ getChildView("Add_Media")->setEnabled(FALSE);
LL_WARNS("LLFloaterTools: media") << "Media not enabled (no capability) in this region!" << LL_ENDL;
clearMediaSettings();
return;
@@ -1198,7 +1187,7 @@ void LLFloaterTools::getMediaState()
// update UI depending on whether "object" (prim or face) has media
// and whether or not you are allowed to edit it.
- childSetEnabled("Add_Media", editable);
+ getChildView("Add_Media")->setEnabled(editable);
// IF all the faces have media (or all dont have media)
if ( LLFloaterMediaSettings::getInstance()->mIdenticalHasMediaInfo )
{
@@ -1225,10 +1214,10 @@ void LLFloaterTools::getMediaState()
mNeedMediaTitle = false;
}
- childSetEnabled("media_tex", bool_has_media && editable);
- childSetEnabled( "edit_media", bool_has_media && LLFloaterMediaSettings::getInstance()->mIdenticalHasMediaInfo && editable );
- childSetEnabled( "delete_media", bool_has_media && editable );
- childSetEnabled( "add_media", ( ! bool_has_media ) && editable );
+ getChildView("media_tex")->setEnabled(bool_has_media && editable);
+ getChildView("edit_media")->setEnabled(bool_has_media && LLFloaterMediaSettings::getInstance()->mIdenticalHasMediaInfo && editable );
+ getChildView("delete_media")->setEnabled(bool_has_media && editable );
+ getChildView("add_media")->setEnabled(( ! bool_has_media ) && editable );
// TODO: display a list of all media on the face - use 'identical' flag
}
else // not all face has media but at least one does.
@@ -1255,10 +1244,10 @@ void LLFloaterTools::getMediaState()
}
}
- childSetEnabled("media_tex", TRUE);
- childSetEnabled( "edit_media", LLFloaterMediaSettings::getInstance()->mIdenticalHasMediaInfo);
- childSetEnabled( "delete_media", TRUE);
- childSetEnabled( "add_media", FALSE );
+ getChildView("media_tex")->setEnabled(TRUE);
+ getChildView("edit_media")->setEnabled(LLFloaterMediaSettings::getInstance()->mIdenticalHasMediaInfo);
+ getChildView("delete_media")->setEnabled(TRUE);
+ getChildView("add_media")->setEnabled(FALSE );
}
media_info->setText(media_title);
diff --git a/indra/newview/llfloatertools.h b/indra/newview/llfloatertools.h
index 91431969bb..87c3d2ab47 100644
--- a/indra/newview/llfloatertools.h
+++ b/indra/newview/llfloatertools.h
@@ -2,31 +2,25 @@
* @file llfloatertools.h
* @brief The edit tools, including move, position, land, etc.
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -144,7 +138,6 @@ public:
LLCheckBoxCtrl* mCheckSnapToGrid;
LLButton* mBtnGridOptions;
- LLTextBox* mTextGridMode;
LLComboBox* mComboGridMode;
LLCheckBoxCtrl* mCheckStretchUniform;
LLCheckBoxCtrl* mCheckStretchTexture;
diff --git a/indra/newview/llfloatertopobjects.cpp b/indra/newview/llfloatertopobjects.cpp
index 84ea353dab..099b657c7c 100644
--- a/indra/newview/llfloatertopobjects.cpp
+++ b/indra/newview/llfloatertopobjects.cpp
@@ -2,31 +2,25 @@
* @file llfloatertopobjects.cpp
* @brief Shows top colliders, top scripts, etc.
*
- * $LicenseInfo:firstyear=2005&license=viewergpl$
- *
- * Copyright (c) 2005-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -70,7 +64,6 @@ void LLFloaterTopObjects::show()
}
sInstance = new LLFloaterTopObjects();
-// LLUICtrlFactory::getInstance()->buildFloater(sInstance, "floater_top_objects.xml");
sInstance->center();
}
*/
@@ -98,7 +91,7 @@ LLFloaterTopObjects::~LLFloaterTopObjects()
BOOL LLFloaterTopObjects::postBuild()
{
LLScrollListCtrl *objects_list = getChild<LLScrollListCtrl>("objects_list");
- childSetFocus("objects_list");
+ getChild<LLUICtrl>("objects_list")->setFocus(TRUE);
objects_list->setDoubleClickCallback(onDoubleClickObjectsList, this);
objects_list->setCommitOnSelectionChange(TRUE);
@@ -253,7 +246,7 @@ void LLFloaterTopObjects::handleReply(LLMessageSystem *msg, void** data)
LLUIString format = getString("top_scripts_text");
format.setArg("[COUNT]", llformat("%d", total_count));
format.setArg("[TIME]", llformat("%0.1f", mtotalScore));
- childSetValue("title_text", LLSD(format));
+ getChild<LLUICtrl>("title_text")->setValue(LLSD(format));
}
else
{
@@ -262,7 +255,7 @@ void LLFloaterTopObjects::handleReply(LLMessageSystem *msg, void** data)
list->setColumnLabel("mono_time", "");
LLUIString format = getString("top_colliders_text");
format.setArg("[COUNT]", llformat("%d", total_count));
- childSetValue("title_text", LLSD(format));
+ getChild<LLUICtrl>("title_text")->setValue(LLSD(format));
}
}
@@ -282,13 +275,13 @@ void LLFloaterTopObjects::updateSelectionInfo()
std::string object_id_string = object_id.asString();
- childSetValue("id_editor", LLSD(object_id_string));
+ getChild<LLUICtrl>("id_editor")->setValue(LLSD(object_id_string));
LLScrollListItem* sli = list->getFirstSelected();
llassert(sli);
if (sli)
{
- childSetValue("object_name_editor", sli->getColumn(1)->getValue().asString());
- childSetValue("owner_name_editor", sli->getColumn(2)->getValue().asString());
+ getChild<LLUICtrl>("object_name_editor")->setValue(sli->getColumn(1)->getValue().asString());
+ getChild<LLUICtrl>("owner_name_editor")->setValue(sli->getColumn(2)->getValue().asString());
}
}
@@ -312,7 +305,7 @@ void LLFloaterTopObjects::doToObjects(int action, bool all)
LLViewerRegion* region = gAgent.getRegion();
if (!region) return;
- LLCtrlListInterface *list = childGetListInterface("objects_list");
+ LLCtrlListInterface *list = getChild<LLUICtrl>("objects_list")->getListInterface();
if (!list || list->getItemCount() == 0) return;
uuid_vec_t::iterator id_itor;
@@ -457,14 +450,14 @@ void LLFloaterTopObjects::onRefresh()
void LLFloaterTopObjects::onGetByObjectName()
{
mFlags = STAT_FILTER_BY_OBJECT;
- mFilter = childGetText("object_name_editor");
+ mFilter = getChild<LLUICtrl>("object_name_editor")->getValue().asString();
onRefresh();
}
void LLFloaterTopObjects::onGetByOwnerName()
{
mFlags = STAT_FILTER_BY_OWNER;
- mFilter = childGetText("owner_name_editor");
+ mFilter = getChild<LLUICtrl>("owner_name_editor")->getValue().asString();
onRefresh();
}
diff --git a/indra/newview/llfloatertopobjects.h b/indra/newview/llfloatertopobjects.h
index 8fb89a3cc5..a608ca20f1 100644
--- a/indra/newview/llfloatertopobjects.h
+++ b/indra/newview/llfloatertopobjects.h
@@ -2,31 +2,25 @@
* @file llfloatertopobjects.h
* @brief Shows top colliders or top scripts
*
- * $LicenseInfo:firstyear=2005&license=viewergpl$
- *
- * Copyright (c) 2005-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloatertos.cpp b/indra/newview/llfloatertos.cpp
index 104827f4a3..c5df7e16e9 100644
--- a/indra/newview/llfloatertos.cpp
+++ b/indra/newview/llfloatertos.cpp
@@ -2,31 +2,25 @@
* @file llfloatertos.cpp
* @brief Terms of Service Agreement dialog
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -199,8 +193,8 @@ void LLFloaterTOS::draw()
void LLFloaterTOS::updateAgree(LLUICtrl*, void* userdata )
{
LLFloaterTOS* self = (LLFloaterTOS*) userdata;
- bool agree = self->childGetValue("agree_chk").asBoolean();
- self->childSetEnabled("Continue", agree);
+ bool agree = self->getChild<LLUICtrl>("agree_chk")->getValue().asBoolean();
+ self->getChildView("Continue")->setEnabled(agree);
}
// static
diff --git a/indra/newview/llfloatertos.h b/indra/newview/llfloatertos.h
index d985ccbab0..8921d11489 100644
--- a/indra/newview/llfloatertos.h
+++ b/indra/newview/llfloatertos.h
@@ -2,31 +2,25 @@
* @file llfloatertos.h
* @brief Terms of Service Agreement dialog
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloateruipreview.cpp b/indra/newview/llfloateruipreview.cpp
index 1b6ef0e97a..5dc8067648 100644
--- a/indra/newview/llfloateruipreview.cpp
+++ b/indra/newview/llfloateruipreview.cpp
@@ -2,31 +2,25 @@
* @file llfloateruipreview.cpp
* @brief Tool for previewing and editing floaters, plus localization tool integration
*
- * $LicenseInfo:firstyear=2008&license=viewergpl$
- *
- * Copyright (c) 2008-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2008&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -400,7 +394,6 @@ LLFloaterUIPreview::LLFloaterUIPreview(const LLSD& key)
mLastDisplayedX(0),
mLastDisplayedY(0)
{
- // called from floater reg: LLUICtrlFactory::getInstance()->buildFloater(this, "floater_ui_preview.xml");
}
// Destructor
@@ -475,7 +468,7 @@ BOOL LLFloaterUIPreview::postBuild()
// Set up overlap panel
mOverlapPanel = getChild<LLOverlapPanel>("overlap_panel");
- childSetVisible("overlap_scroll", mHighlightingOverlaps);
+ getChildView("overlap_scroll")->setVisible( mHighlightingOverlaps);
mDelim = gDirUtilp->getDirDelimiter(); // initialize delimiter to dir sep slash
@@ -838,7 +831,7 @@ void LLFloaterUIPreview::displayFloater(BOOL click, S32 ID, bool save)
if (save)
{
LLXMLNodePtr floater_write = new LLXMLNode();
- LLUICtrlFactory::getInstance()->buildFloater(*floaterp, path, floater_write); // just build it
+ (*floaterp)->buildFromFile(path, floater_write); // just build it
if (!floater_write->isNull())
{
@@ -852,7 +845,7 @@ void LLFloaterUIPreview::displayFloater(BOOL click, S32 ID, bool save)
}
else
{
- LLUICtrlFactory::getInstance()->buildFloater(*floaterp, path, NULL); // just build it
+ (*floaterp)->buildFromFile(path); // just build it
(*floaterp)->openFloater((*floaterp)->getKey());
(*floaterp)->setCanResize((*floaterp)->isResizable());
}
@@ -891,7 +884,7 @@ void LLFloaterUIPreview::displayFloater(BOOL click, S32 ID, bool save)
if (save)
{
LLXMLNodePtr panel_write = new LLXMLNode();
- LLUICtrlFactory::getInstance()->buildPanel(panel, path, panel_write); // build it
+ panel->buildFromFile(path, panel_write); // build it
if (!panel_write->isNull())
{
@@ -905,7 +898,7 @@ void LLFloaterUIPreview::displayFloater(BOOL click, S32 ID, bool save)
}
else
{
- LLUICtrlFactory::getInstance()->buildPanel(panel, path); // build it
+ panel->buildFromFile(path); // build it
LLRect new_size = panel->getRect(); // get its rectangle
panel->setOrigin(0,0); // 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
@@ -1699,7 +1692,7 @@ void LLFloaterUIPreview::onClickToggleOverlapping()
setRect(LLRect(getRect().mLeft,getRect().mTop,getRect().mRight + mOverlapPanel->getRect().getWidth(),getRect().mBottom));
setResizeLimits(width + mOverlapPanel->getRect().getWidth(), height);
}
- childSetVisible("overlap_scroll", mHighlightingOverlaps);
+ getChildView("overlap_scroll")->setVisible( mHighlightingOverlaps);
}
void LLFloaterUIPreview::findOverlapsInChildren(LLView* parent)
diff --git a/indra/newview/llfloateruipreview.h b/indra/newview/llfloateruipreview.h
index 2a31b2df59..910ab7ebc9 100644
--- a/indra/newview/llfloateruipreview.h
+++ b/indra/newview/llfloateruipreview.h
@@ -2,31 +2,25 @@
* @file llfloateruipreview.h
* @brief Tool for previewing and editing floaters
*
- * $LicenseInfo:firstyear=2008&license=viewergpl$
- *
- * Copyright (c) 2008-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2008&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloaterurldisplay.cpp b/indra/newview/llfloaterurldisplay.cpp
deleted file mode 100644
index 4b67cbb308..0000000000
--- a/indra/newview/llfloaterurldisplay.cpp
+++ /dev/null
@@ -1,109 +0,0 @@
-/**
- * @file llfloaterurldisplay.h
- * @brief Probably should be called LLFloaterTeleport, or LLFloaterLandmark
- * as it gives you a preview of a potential teleport location.
- *
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
- * Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
- * $/LicenseInfo$
- */
-
-#include "llviewerprecompiledheaders.h"
-
-#include "llregionhandle.h"
-#include "v3dmath.h"
-
-#include "llfloaterurldisplay.h"
-
-#include "llpanelplace.h"
-#include "lluictrlfactory.h"
-
-////////////////////////////////////////////////////////////////////////////
-// LLFloaterURLDisplay
-
-
-LLFloaterURLDisplay::LLFloaterURLDisplay(const LLSD& sd)
- : LLFloater(sd)
-{
- mFactoryMap["place_details_panel"] = LLCallbackMap(LLFloaterURLDisplay::createPlaceDetail, this);
-// LLUICtrlFactory::getInstance()->buildFloater(this, "floater_preview_url.xml");
-
- // If positioned at 0,0 the teleport button is behind the toolbar.
- LLRect r = getRect();
- if (r.mBottom == 0 && r.mLeft == 0)
- {
- // first use, center it
- center();
- }
- else
- {
- gFloaterView->adjustToFitScreen(this, FALSE);
- }
-}
-
-LLFloaterURLDisplay::~LLFloaterURLDisplay()
-{
-}
-
-void LLFloaterURLDisplay::displayParcelInfo(U64 region_handle, const LLVector3& pos_local)
-{
- mRegionHandle = region_handle;
- mRegionPosition = pos_local;
- LLVector3d pos_global = from_region_handle(region_handle);
- pos_global += (LLVector3d)pos_local;
-
- LLUUID region_id; // don't know this
- LLUUID landmark_asset_id; // don't know this either
- mPlacePanel->displayParcelInfo(pos_local, landmark_asset_id, region_id, pos_global);
-
- this->setVisible(true);
- this->setFrontmost(true);
-}
-
-void LLFloaterURLDisplay::setSnapshotDisplay(const LLUUID& snapshot_id)
-{
- mPlacePanel->setSnapshot(snapshot_id);
-}
-
-void LLFloaterURLDisplay::setName(const std::string& name)
-{ // Set the name and also clear description
- mPlacePanel->resetName(name);
-}
-
-void LLFloaterURLDisplay::setLocationString(const std::string& name)
-{
- mPlacePanel->setLocationString(name);
-}
-
-// static
-void* LLFloaterURLDisplay::createPlaceDetail(void* userdata)
-{
- LLFloaterURLDisplay *self = (LLFloaterURLDisplay*)userdata;
- self->mPlacePanel = new LLPanelPlace();
- LLUICtrlFactory::getInstance()->buildPanel(self->mPlacePanel, "panel_place.xml");
-
- return self->mPlacePanel;
-}
diff --git a/indra/newview/llfloaterurldisplay.h b/indra/newview/llfloaterurldisplay.h
deleted file mode 100644
index 22f5a95ad0..0000000000
--- a/indra/newview/llfloaterurldisplay.h
+++ /dev/null
@@ -1,64 +0,0 @@
-/**
- * @file llfloaterurldisplay.h
- * @brief LLFloaterURLDisplay class implementation
- *
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
- * Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
- * $/LicenseInfo$
- */
-
-#ifndef LL_LLFLOATERURLDISPLAY_H
-#define LL_LLFLOATERURLDISPLAY_H
-
-#include "llfloater.h"
-#include "v3math.h"
-
-class LLPanelPlace;
-class LLSD;
-class LLUUID;
-
-class LLFloaterURLDisplay : public LLFloater
-{
- friend class LLFloaterReg;
-public:
-
- void displayParcelInfo(U64 region_handle, const LLVector3& pos);
- void setSnapshotDisplay(const LLUUID& snapshot_id);
- void setName(const std::string& name);
- void setLocationString(const std::string& name);
-
- static void* createPlaceDetail(void* userdata);
-
-private:
- LLFloaterURLDisplay(const LLSD& sd);
- virtual ~LLFloaterURLDisplay();
-
- LLVector3 mRegionPosition;
- U64 mRegionHandle;
- LLPanelPlace* mPlacePanel;
-};
-
-#endif // LL_LLFLOATERURLDISPLAY_H
diff --git a/indra/newview/llfloaterurlentry.cpp b/indra/newview/llfloaterurlentry.cpp
index 0e802e9736..151cd2a1cd 100644
--- a/indra/newview/llfloaterurlentry.cpp
+++ b/indra/newview/llfloaterurlentry.cpp
@@ -2,31 +2,25 @@
* @file llfloaterurlentry.cpp
* @brief LLFloaterURLEntry class implementation
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -88,7 +82,7 @@ LLFloaterURLEntry::LLFloaterURLEntry(LLHandle<LLPanel> parent)
: LLFloater(LLSD()),
mPanelLandMediaHandle(parent)
{
- LLUICtrlFactory::getInstance()->buildFloater(this, "floater_url_entry.xml", NULL);
+ buildFromFile("floater_url_entry.xml");
}
//-----------------------------------------------------------------------------
@@ -111,7 +105,7 @@ BOOL LLFloaterURLEntry::postBuild()
// clear media list button
LLSD parcel_history = LLURLHistory::getURLHistory("parcel");
bool enable_clear_button = parcel_history.size() > 0 ? true : false;
- childSetEnabled( "clear_btn", enable_clear_button );
+ getChildView("clear_btn")->setEnabled(enable_clear_button );
// OK button
childSetAction("ok_btn", onBtnOK, this);
@@ -163,7 +157,7 @@ void LLFloaterURLEntry::headerFetchComplete(U32 status, const std::string& mime_
}
// Decrement the cursor
getWindow()->decBusyCount();
- childSetVisible("loading_label", false);
+ getChildView("loading_label")->setVisible( false);
closeFloater();
}
@@ -236,13 +230,13 @@ void LLFloaterURLEntry::onBtnOK( void* userdata )
}
// Grey the buttons until we get the header response
- self->childSetEnabled("ok_btn", false);
- self->childSetEnabled("cancel_btn", false);
- self->childSetEnabled("media_entry", false);
+ self->getChildView("ok_btn")->setEnabled(false);
+ self->getChildView("cancel_btn")->setEnabled(false);
+ self->getChildView("media_entry")->setEnabled(false);
// show progress bar here?
getWindow()->incBusyCount();
- self->childSetVisible("loading_label", true);
+ self->getChildView("loading_label")->setVisible( true);
}
// static
@@ -284,7 +278,7 @@ bool LLFloaterURLEntry::callback_clear_url_list(const LLSD& notification, const
LLURLHistory::clear("parcel");
// cleared the list so disable Clear button
- childSetEnabled( "clear_btn", false );
+ getChildView("clear_btn")->setEnabled(false );
}
return false;
}
diff --git a/indra/newview/llfloaterurlentry.h b/indra/newview/llfloaterurlentry.h
index 6dd9c8453c..dfb49fe5ac 100644
--- a/indra/newview/llfloaterurlentry.h
+++ b/indra/newview/llfloaterurlentry.h
@@ -2,31 +2,25 @@
* @file llfloaterurlentry.h
* @brief LLFloaterURLEntry class definition
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloatervoicedevicesettings.h b/indra/newview/llfloatervoicedevicesettings.h
deleted file mode 100644
index d67283d0a2..0000000000
--- a/indra/newview/llfloatervoicedevicesettings.h
+++ /dev/null
@@ -1,89 +0,0 @@
-/**
- * @file llpanelvoicedevicesettings.h
- * @author Richard Nelson
- * @brief Voice communication set-up wizard
- *
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
- * Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
- * $/LicenseInfo$
- */
-
-#ifndef LL_LLFLOATERVOICEDEVICESETTINGS_H
-#define LL_LLFLOATERVOICEDEVICESETTINGS_H
-
-#include "llfloater.h"
-
-class LLPanelVoiceDeviceSettings : public LLPanel
-{
-public:
- LLPanelVoiceDeviceSettings();
- ~LLPanelVoiceDeviceSettings();
-
- /*virtual*/ void draw();
- /*virtual*/ BOOL postBuild();
- void apply();
- void cancel();
- void refresh();
- void initialize();
- void cleanup();
-
- /*virtual*/ void handleVisibilityChange ( BOOL new_visibility );
-
-protected:
- static void onCommitInputDevice(LLUICtrl* ctrl, void* user_data);
- static void onCommitOutputDevice(LLUICtrl* ctrl, void* user_data);
-
- F32 mMicVolume;
- std::string mInputDevice;
- std::string mOutputDevice;
- class LLComboBox *mCtrlInputDevices;
- class LLComboBox *mCtrlOutputDevices;
- BOOL mDevicesUpdated;
-};
-
-class LLFloaterVoiceDeviceSettings : public LLFloater
-{
- friend class LLFloaterReg;
-
-public:
-
- /*virtual*/ BOOL postBuild();
- /*virtual*/ void onOpen(const LLSD& key);
- /*virtual*/ void onClose(bool app_settings);
- /*virtual*/ void draw();
- void apply();
- void cancel();
-private:
- LLFloaterVoiceDeviceSettings(const LLSD& seed);
-
-protected:
- static void* createPanelVoiceDeviceSettings(void* user_data);
-
-protected:
- LLPanelVoiceDeviceSettings* mDevicePanel;
-};
-
-#endif // LL_LLFLOATERVOICEDEVICESETTINGS_H
diff --git a/indra/newview/llfloatervoiceeffect.cpp b/indra/newview/llfloatervoiceeffect.cpp
index ca1f142760..2a3950f9b1 100644
--- a/indra/newview/llfloatervoiceeffect.cpp
+++ b/indra/newview/llfloatervoiceeffect.cpp
@@ -3,31 +3,25 @@
* @author Aimee
* @brief Selection and preview of voice effect.
*
- * $LicenseInfo:firstyear=2010&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2010&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -66,7 +60,7 @@ BOOL LLFloaterVoiceEffect::postBuild()
{
setDefaultBtn("record_btn");
getChild<LLButton>("record_btn")->setFocus(true);
- childSetTextArg("voice_morphing_link", "[URL]", LLTrans::getString("voice_morphing_url"));
+ getChild<LLUICtrl>("voice_morphing_link")->setTextArg("[URL]", LLTrans::getString("voice_morphing_url"));
mVoiceEffectList = getChild<LLScrollListCtrl>("voice_effect_list");
if (mVoiceEffectList)
@@ -199,7 +193,12 @@ void LLFloaterVoiceEffect::refreshEffectList()
if(sl_item)
{
LLFontGL::StyleFlags style = is_template_only ? LLFontGL::NORMAL : LLFontGL::BOLD;
- dynamic_cast<LLScrollListText*>(sl_item->getColumn(0))->setFontStyle(style);
+ LLScrollListText* slt = dynamic_cast<LLScrollListText*>(sl_item->getColumn(0));
+ llassert(slt);
+ if (slt)
+ {
+ slt->setFontStyle(style);
+ }
}
}
}
diff --git a/indra/newview/llfloatervoiceeffect.h b/indra/newview/llfloatervoiceeffect.h
index fe207a05c3..4d432c46cc 100644
--- a/indra/newview/llfloatervoiceeffect.h
+++ b/indra/newview/llfloatervoiceeffect.h
@@ -3,31 +3,25 @@
* @author Aimee
* @brief Selection and preview of voice effects.
*
- * $LicenseInfo:firstyear=2010&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2010&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloaterwater.cpp b/indra/newview/llfloaterwater.cpp
index 1bbee2625c..be4b144f41 100644
--- a/indra/newview/llfloaterwater.cpp
+++ b/indra/newview/llfloaterwater.cpp
@@ -2,31 +2,25 @@
* @file llfloaterwater.cpp
* @brief LLFloaterWater class definition
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -69,7 +63,6 @@ std::set<std::string> LLFloaterWater::sDefaultPresets;
LLFloaterWater::LLFloaterWater(const LLSD& key)
: LLFloater(key)
{
- //LLUICtrlFactory::getInstance()->buildFloater(this, "floater_water.xml");
}
LLFloaterWater::~LLFloaterWater()
@@ -210,7 +203,7 @@ void LLFloaterWater::syncMenu()
param_mgr->mFogColor = current_params.getVector4(param_mgr->mFogColor.mName, err);
LLColor4 col = param_mgr->getFogColor();
- childSetValue("WaterGlow", col.mV[3]);
+ getChild<LLUICtrl>("WaterGlow")->setValue(col.mV[3]);
col.mV[3] = 1.0f;
LLColorSwatchCtrl* colCtrl = getChild<LLColorSwatchCtrl>("WaterFogColor");
@@ -221,41 +214,41 @@ void LLFloaterWater::syncMenu()
log(current_params.getFloat(param_mgr->mFogDensity.mName, err)) /
log(param_mgr->mFogDensity.mBase);
param_mgr->setDensitySliderValue(param_mgr->mFogDensity.mExp);
- childSetValue("WaterFogDensity", param_mgr->mFogDensity.mExp);
+ getChild<LLUICtrl>("WaterFogDensity")->setValue(param_mgr->mFogDensity.mExp);
param_mgr->mUnderWaterFogMod.mX =
current_params.getFloat(param_mgr->mUnderWaterFogMod.mName, err);
- childSetValue("WaterUnderWaterFogMod", param_mgr->mUnderWaterFogMod.mX);
+ getChild<LLUICtrl>("WaterUnderWaterFogMod")->setValue(param_mgr->mUnderWaterFogMod.mX);
param_mgr->mNormalScale = current_params.getVector3(param_mgr->mNormalScale.mName, err);
- childSetValue("WaterNormalScaleX", param_mgr->mNormalScale.mX);
- childSetValue("WaterNormalScaleY", param_mgr->mNormalScale.mY);
- childSetValue("WaterNormalScaleZ", param_mgr->mNormalScale.mZ);
+ getChild<LLUICtrl>("WaterNormalScaleX")->setValue(param_mgr->mNormalScale.mX);
+ getChild<LLUICtrl>("WaterNormalScaleY")->setValue(param_mgr->mNormalScale.mY);
+ getChild<LLUICtrl>("WaterNormalScaleZ")->setValue(param_mgr->mNormalScale.mZ);
// Fresnel
param_mgr->mFresnelScale.mX = current_params.getFloat(param_mgr->mFresnelScale.mName, err);
- childSetValue("WaterFresnelScale", param_mgr->mFresnelScale.mX);
+ getChild<LLUICtrl>("WaterFresnelScale")->setValue(param_mgr->mFresnelScale.mX);
param_mgr->mFresnelOffset.mX = current_params.getFloat(param_mgr->mFresnelOffset.mName, err);
- childSetValue("WaterFresnelOffset", param_mgr->mFresnelOffset.mX);
+ getChild<LLUICtrl>("WaterFresnelOffset")->setValue(param_mgr->mFresnelOffset.mX);
// Scale Above/Below
param_mgr->mScaleAbove.mX = current_params.getFloat(param_mgr->mScaleAbove.mName, err);
- childSetValue("WaterScaleAbove", param_mgr->mScaleAbove.mX);
+ getChild<LLUICtrl>("WaterScaleAbove")->setValue(param_mgr->mScaleAbove.mX);
param_mgr->mScaleBelow.mX = current_params.getFloat(param_mgr->mScaleBelow.mName, err);
- childSetValue("WaterScaleBelow", param_mgr->mScaleBelow.mX);
+ getChild<LLUICtrl>("WaterScaleBelow")->setValue(param_mgr->mScaleBelow.mX);
// blur mult
param_mgr->mBlurMultiplier.mX = current_params.getFloat(param_mgr->mBlurMultiplier.mName, err);
- childSetValue("WaterBlurMult", param_mgr->mBlurMultiplier.mX);
+ getChild<LLUICtrl>("WaterBlurMult")->setValue(param_mgr->mBlurMultiplier.mX);
// wave directions
param_mgr->mWave1Dir = current_params.getVector2(param_mgr->mWave1Dir.mName, err);
- childSetValue("WaterWave1DirX", param_mgr->mWave1Dir.mX);
- childSetValue("WaterWave1DirY", param_mgr->mWave1Dir.mY);
+ getChild<LLUICtrl>("WaterWave1DirX")->setValue(param_mgr->mWave1Dir.mX);
+ getChild<LLUICtrl>("WaterWave1DirY")->setValue(param_mgr->mWave1Dir.mY);
param_mgr->mWave2Dir = current_params.getVector2(param_mgr->mWave2Dir.mName, err);
- childSetValue("WaterWave2DirX", param_mgr->mWave2Dir.mX);
- childSetValue("WaterWave2DirY", param_mgr->mWave2Dir.mY);
+ getChild<LLUICtrl>("WaterWave2DirX")->setValue(param_mgr->mWave2Dir.mX);
+ getChild<LLUICtrl>("WaterWave2DirY")->setValue(param_mgr->mWave2Dir.mY);
LLTextureCtrl* textCtrl = getChild<LLTextureCtrl>("WaterNormalMap");
textCtrl->setImageAssetID(param_mgr->getNormalMapID());
@@ -339,7 +332,7 @@ void LLFloaterWater::onColorControlRMoved(LLUICtrl* ctrl, WaterColorControl* col
std::string name = colorControl->mSliderName;
name.append("I");
- childSetValue(name, colorControl->mR);
+ getChild<LLUICtrl>(name)->setValue(colorControl->mR);
}
colorControl->update(LLWaterParamManager::instance()->mCurParams);
@@ -362,7 +355,7 @@ void LLFloaterWater::onColorControlGMoved(LLUICtrl* ctrl, WaterColorControl* col
std::string name = colorControl->mSliderName;
name.append("I");
- childSetValue(name, colorControl->mG);
+ getChild<LLUICtrl>(name)->setValue(colorControl->mG);
}
@@ -386,7 +379,7 @@ void LLFloaterWater::onColorControlBMoved(LLUICtrl* ctrl, WaterColorControl* col
std::string name = colorControl->mSliderName;
name.append("I");
- childSetValue(name, colorControl->mB);
+ getChild<LLUICtrl>(name)->setValue(colorControl->mB);
}
colorControl->update(LLWaterParamManager::instance()->mCurParams);
@@ -455,9 +448,9 @@ void LLFloaterWater::onColorControlIMoved(LLUICtrl* ctrl, WaterColorControl* col
}
// set the sliders to the new vals
- childSetValue(rName, colorControl->mR);
- childSetValue(gName, colorControl->mG);
- childSetValue(bName, colorControl->mB);
+ getChild<LLUICtrl>(rName)->setValue(colorControl->mR);
+ getChild<LLUICtrl>(gName)->setValue(colorControl->mG);
+ getChild<LLUICtrl>(bName)->setValue(colorControl->mB);
}
// now update the current parameters and send them to shaders
diff --git a/indra/newview/llfloaterwater.h b/indra/newview/llfloaterwater.h
index 0ea2436dbe..e3db91e80d 100644
--- a/indra/newview/llfloaterwater.h
+++ b/indra/newview/llfloaterwater.h
@@ -2,31 +2,25 @@
* @file llfloaterwindlight.h
* @brief LLFloaterWater class definition
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloaterwhitelistentry.cpp b/indra/newview/llfloaterwhitelistentry.cpp
index 705c8afd00..2a499f681b 100644
--- a/indra/newview/llfloaterwhitelistentry.cpp
+++ b/indra/newview/llfloaterwhitelistentry.cpp
@@ -2,31 +2,25 @@
* @file llfloaterwhitelistentry.cpp
* @brief LLFloaterWhistListEntry class implementation
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -47,7 +41,6 @@
LLFloaterWhiteListEntry::LLFloaterWhiteListEntry( const LLSD& key ) :
LLFloater(key)
{
-// LLUICtrlFactory::getInstance()->buildFloater(this, "floater_whitelist_entry.xml");
}
///////////////////////////////////////////////////////////////////////////////
diff --git a/indra/newview/llfloaterwhitelistentry.h b/indra/newview/llfloaterwhitelistentry.h
index 8ab5fb78b9..deab49c523 100644
--- a/indra/newview/llfloaterwhitelistentry.h
+++ b/indra/newview/llfloaterwhitelistentry.h
@@ -2,31 +2,25 @@
* @file llfloaterwhitelistentry.h
* @brief LLFloaterWhiteListEntry class definition
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloaterwindlight.cpp b/indra/newview/llfloaterwindlight.cpp
index c1b15c578c..ae98b2cf99 100644
--- a/indra/newview/llfloaterwindlight.cpp
+++ b/indra/newview/llfloaterwindlight.cpp
@@ -2,31 +2,25 @@
* @file llfloaterwindlight.cpp
* @brief LLFloaterWindLight class definition
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -72,7 +66,6 @@ static const F32 WL_SUN_AMBIENT_SLIDER_SCALE = 3.0f;
LLFloaterWindLight::LLFloaterWindLight(const LLSD& key)
: LLFloater(key)
{
- //LLUICtrlFactory::getInstance()->buildFloater(this, "floater_windlight_options.xml");
}
LLFloaterWindLight::~LLFloaterWindLight()
@@ -278,31 +271,31 @@ void LLFloaterWindLight::syncMenu()
// blue horizon
param_mgr->mBlueHorizon = currentParams.getVector(param_mgr->mBlueHorizon.mName, err);
- childSetValue("WLBlueHorizonR", param_mgr->mBlueHorizon.r / 2.0);
- childSetValue("WLBlueHorizonG", param_mgr->mBlueHorizon.g / 2.0);
- childSetValue("WLBlueHorizonB", param_mgr->mBlueHorizon.b / 2.0);
- childSetValue("WLBlueHorizonI",
+ getChild<LLUICtrl>("WLBlueHorizonR")->setValue(param_mgr->mBlueHorizon.r / 2.0);
+ getChild<LLUICtrl>("WLBlueHorizonG")->setValue(param_mgr->mBlueHorizon.g / 2.0);
+ getChild<LLUICtrl>("WLBlueHorizonB")->setValue(param_mgr->mBlueHorizon.b / 2.0);
+ getChild<LLUICtrl>("WLBlueHorizonI")->setValue(
std::max(param_mgr->mBlueHorizon.r / 2.0,
std::max(param_mgr->mBlueHorizon.g / 2.0,
param_mgr->mBlueHorizon.b / 2.0)));
// haze density, horizon, mult, and altitude
param_mgr->mHazeDensity = currentParams.getVector(param_mgr->mHazeDensity.mName, err);
- childSetValue("WLHazeDensity", param_mgr->mHazeDensity.r);
+ getChild<LLUICtrl>("WLHazeDensity")->setValue(param_mgr->mHazeDensity.r);
param_mgr->mHazeHorizon = currentParams.getVector(param_mgr->mHazeHorizon.mName, err);
- childSetValue("WLHazeHorizon", param_mgr->mHazeHorizon.r);
+ getChild<LLUICtrl>("WLHazeHorizon")->setValue(param_mgr->mHazeHorizon.r);
param_mgr->mDensityMult = currentParams.getVector(param_mgr->mDensityMult.mName, err);
- childSetValue("WLDensityMult", param_mgr->mDensityMult.x *
+ getChild<LLUICtrl>("WLDensityMult")->setValue(param_mgr->mDensityMult.x *
param_mgr->mDensityMult.mult);
param_mgr->mMaxAlt = currentParams.getVector(param_mgr->mMaxAlt.mName, err);
- childSetValue("WLMaxAltitude", param_mgr->mMaxAlt.x);
+ getChild<LLUICtrl>("WLMaxAltitude")->setValue(param_mgr->mMaxAlt.x);
// blue density
param_mgr->mBlueDensity = currentParams.getVector(param_mgr->mBlueDensity.mName, err);
- childSetValue("WLBlueDensityR", param_mgr->mBlueDensity.r / 2.0);
- childSetValue("WLBlueDensityG", param_mgr->mBlueDensity.g / 2.0);
- childSetValue("WLBlueDensityB", param_mgr->mBlueDensity.b / 2.0);
- childSetValue("WLBlueDensityI",
+ getChild<LLUICtrl>("WLBlueDensityR")->setValue(param_mgr->mBlueDensity.r / 2.0);
+ getChild<LLUICtrl>("WLBlueDensityG")->setValue(param_mgr->mBlueDensity.g / 2.0);
+ getChild<LLUICtrl>("WLBlueDensityB")->setValue(param_mgr->mBlueDensity.b / 2.0);
+ getChild<LLUICtrl>("WLBlueDensityI")->setValue(
std::max(param_mgr->mBlueDensity.r / 2.0,
std::max(param_mgr->mBlueDensity.g / 2.0, param_mgr->mBlueDensity.b / 2.0)));
@@ -310,93 +303,93 @@ void LLFloaterWindLight::syncMenu()
// sunlight
param_mgr->mSunlight = currentParams.getVector(param_mgr->mSunlight.mName, err);
- childSetValue("WLSunlightR", param_mgr->mSunlight.r / WL_SUN_AMBIENT_SLIDER_SCALE);
- childSetValue("WLSunlightG", param_mgr->mSunlight.g / WL_SUN_AMBIENT_SLIDER_SCALE);
- childSetValue("WLSunlightB", param_mgr->mSunlight.b / WL_SUN_AMBIENT_SLIDER_SCALE);
- childSetValue("WLSunlightI",
+ getChild<LLUICtrl>("WLSunlightR")->setValue(param_mgr->mSunlight.r / WL_SUN_AMBIENT_SLIDER_SCALE);
+ getChild<LLUICtrl>("WLSunlightG")->setValue(param_mgr->mSunlight.g / WL_SUN_AMBIENT_SLIDER_SCALE);
+ getChild<LLUICtrl>("WLSunlightB")->setValue(param_mgr->mSunlight.b / WL_SUN_AMBIENT_SLIDER_SCALE);
+ getChild<LLUICtrl>("WLSunlightI")->setValue(
std::max(param_mgr->mSunlight.r / WL_SUN_AMBIENT_SLIDER_SCALE,
std::max(param_mgr->mSunlight.g / WL_SUN_AMBIENT_SLIDER_SCALE, param_mgr->mSunlight.b / WL_SUN_AMBIENT_SLIDER_SCALE)));
// glow
param_mgr->mGlow = currentParams.getVector(param_mgr->mGlow.mName, err);
- childSetValue("WLGlowR", 2 - param_mgr->mGlow.r / 20.0f);
- childSetValue("WLGlowB", -param_mgr->mGlow.b / 5.0f);
+ getChild<LLUICtrl>("WLGlowR")->setValue(2 - param_mgr->mGlow.r / 20.0f);
+ getChild<LLUICtrl>("WLGlowB")->setValue(-param_mgr->mGlow.b / 5.0f);
// ambient
param_mgr->mAmbient = currentParams.getVector(param_mgr->mAmbient.mName, err);
- childSetValue("WLAmbientR", param_mgr->mAmbient.r / WL_SUN_AMBIENT_SLIDER_SCALE);
- childSetValue("WLAmbientG", param_mgr->mAmbient.g / WL_SUN_AMBIENT_SLIDER_SCALE);
- childSetValue("WLAmbientB", param_mgr->mAmbient.b / WL_SUN_AMBIENT_SLIDER_SCALE);
- childSetValue("WLAmbientI",
+ getChild<LLUICtrl>("WLAmbientR")->setValue(param_mgr->mAmbient.r / WL_SUN_AMBIENT_SLIDER_SCALE);
+ getChild<LLUICtrl>("WLAmbientG")->setValue(param_mgr->mAmbient.g / WL_SUN_AMBIENT_SLIDER_SCALE);
+ getChild<LLUICtrl>("WLAmbientB")->setValue(param_mgr->mAmbient.b / WL_SUN_AMBIENT_SLIDER_SCALE);
+ getChild<LLUICtrl>("WLAmbientI")->setValue(
std::max(param_mgr->mAmbient.r / WL_SUN_AMBIENT_SLIDER_SCALE,
std::max(param_mgr->mAmbient.g / WL_SUN_AMBIENT_SLIDER_SCALE, param_mgr->mAmbient.b / WL_SUN_AMBIENT_SLIDER_SCALE)));
- childSetValue("WLSunAngle", param_mgr->mCurParams.getFloat("sun_angle",err) / F_TWO_PI);
- childSetValue("WLEastAngle", param_mgr->mCurParams.getFloat("east_angle",err) / F_TWO_PI);
+ getChild<LLUICtrl>("WLSunAngle")->setValue(param_mgr->mCurParams.getFloat("sun_angle",err) / F_TWO_PI);
+ getChild<LLUICtrl>("WLEastAngle")->setValue(param_mgr->mCurParams.getFloat("east_angle",err) / F_TWO_PI);
// Clouds
// Cloud Color
param_mgr->mCloudColor = currentParams.getVector(param_mgr->mCloudColor.mName, err);
- childSetValue("WLCloudColorR", param_mgr->mCloudColor.r);
- childSetValue("WLCloudColorG", param_mgr->mCloudColor.g);
- childSetValue("WLCloudColorB", param_mgr->mCloudColor.b);
- childSetValue("WLCloudColorI",
+ getChild<LLUICtrl>("WLCloudColorR")->setValue(param_mgr->mCloudColor.r);
+ getChild<LLUICtrl>("WLCloudColorG")->setValue(param_mgr->mCloudColor.g);
+ getChild<LLUICtrl>("WLCloudColorB")->setValue(param_mgr->mCloudColor.b);
+ getChild<LLUICtrl>("WLCloudColorI")->setValue(
std::max(param_mgr->mCloudColor.r,
std::max(param_mgr->mCloudColor.g, param_mgr->mCloudColor.b)));
// Cloud
param_mgr->mCloudMain = currentParams.getVector(param_mgr->mCloudMain.mName, err);
- childSetValue("WLCloudX", param_mgr->mCloudMain.r);
- childSetValue("WLCloudY", param_mgr->mCloudMain.g);
- childSetValue("WLCloudDensity", param_mgr->mCloudMain.b);
+ getChild<LLUICtrl>("WLCloudX")->setValue(param_mgr->mCloudMain.r);
+ getChild<LLUICtrl>("WLCloudY")->setValue(param_mgr->mCloudMain.g);
+ getChild<LLUICtrl>("WLCloudDensity")->setValue(param_mgr->mCloudMain.b);
// Cloud Detail
param_mgr->mCloudDetail = currentParams.getVector(param_mgr->mCloudDetail.mName, err);
- childSetValue("WLCloudDetailX", param_mgr->mCloudDetail.r);
- childSetValue("WLCloudDetailY", param_mgr->mCloudDetail.g);
- childSetValue("WLCloudDetailDensity", param_mgr->mCloudDetail.b);
+ getChild<LLUICtrl>("WLCloudDetailX")->setValue(param_mgr->mCloudDetail.r);
+ getChild<LLUICtrl>("WLCloudDetailY")->setValue(param_mgr->mCloudDetail.g);
+ getChild<LLUICtrl>("WLCloudDetailDensity")->setValue(param_mgr->mCloudDetail.b);
// Cloud extras
param_mgr->mCloudCoverage = currentParams.getVector(param_mgr->mCloudCoverage.mName, err);
param_mgr->mCloudScale = currentParams.getVector(param_mgr->mCloudScale.mName, err);
- childSetValue("WLCloudCoverage", param_mgr->mCloudCoverage.x);
- childSetValue("WLCloudScale", param_mgr->mCloudScale.x);
+ getChild<LLUICtrl>("WLCloudCoverage")->setValue(param_mgr->mCloudCoverage.x);
+ getChild<LLUICtrl>("WLCloudScale")->setValue(param_mgr->mCloudScale.x);
// cloud scrolling
bool lockX = !param_mgr->mCurParams.getEnableCloudScrollX();
bool lockY = !param_mgr->mCurParams.getEnableCloudScrollY();
- childSetValue("WLCloudLockX", lockX);
- childSetValue("WLCloudLockY", lockY);
- childSetValue("DrawClassicClouds", gSavedSettings.getBOOL("SkyUseClassicClouds"));
+ getChild<LLUICtrl>("WLCloudLockX")->setValue(lockX);
+ getChild<LLUICtrl>("WLCloudLockY")->setValue(lockY);
+ getChild<LLUICtrl>("DrawClassicClouds")->setValue(gSavedSettings.getBOOL("SkyUseClassicClouds"));
// disable if locked, enable if not
if(lockX)
{
- childDisable("WLCloudScrollX");
+ getChildView("WLCloudScrollX")->setEnabled(FALSE);
} else {
- childEnable("WLCloudScrollX");
+ getChildView("WLCloudScrollX")->setEnabled(TRUE);
}
if(lockY)
{
- childDisable("WLCloudScrollY");
+ getChildView("WLCloudScrollY")->setEnabled(FALSE);
} else {
- childEnable("WLCloudScrollY");
+ getChildView("WLCloudScrollY")->setEnabled(TRUE);
}
// *HACK cloud scrolling is off my an additive of 10
- childSetValue("WLCloudScrollX", param_mgr->mCurParams.getCloudScrollX() - 10.0f);
- childSetValue("WLCloudScrollY", param_mgr->mCurParams.getCloudScrollY() - 10.0f);
+ getChild<LLUICtrl>("WLCloudScrollX")->setValue(param_mgr->mCurParams.getCloudScrollX() - 10.0f);
+ getChild<LLUICtrl>("WLCloudScrollY")->setValue(param_mgr->mCurParams.getCloudScrollY() - 10.0f);
param_mgr->mDistanceMult = currentParams.getVector(param_mgr->mDistanceMult.mName, err);
- childSetValue("WLDistanceMult", param_mgr->mDistanceMult.x);
+ getChild<LLUICtrl>("WLDistanceMult")->setValue(param_mgr->mDistanceMult.x);
// Tweak extras
param_mgr->mWLGamma = currentParams.getVector(param_mgr->mWLGamma.mName, err);
- childSetValue("WLGamma", param_mgr->mWLGamma.x);
+ getChild<LLUICtrl>("WLGamma")->setValue(param_mgr->mWLGamma.x);
- childSetValue("WLStarAlpha", param_mgr->mCurParams.getStarBrightness());
+ getChild<LLUICtrl>("WLStarAlpha")->setValue(param_mgr->mCurParams.getStarBrightness());
LLTabContainer* tab = getChild<LLTabContainer>("WindLight Tabs");
LLPanel* panel = getChild<LLPanel>("Scattering");
@@ -428,11 +421,11 @@ void LLFloaterWindLight::onColorControlRMoved(LLUICtrl* ctrl, WLColorControl* co
name.append("I");
if(colorControl->isSunOrAmbientColor) {
- childSetValue(name, colorControl->r / 3);
+ getChild<LLUICtrl>(name)->setValue(colorControl->r / 3);
} else if(colorControl->isBlueHorizonOrDensity) {
- childSetValue(name, colorControl->r / 2);
+ getChild<LLUICtrl>(name)->setValue(colorControl->r / 2);
} else {
- childSetValue(name, colorControl->r);
+ getChild<LLUICtrl>(name)->setValue(colorControl->r);
}
}
@@ -463,11 +456,11 @@ void LLFloaterWindLight::onColorControlGMoved(LLUICtrl* ctrl, WLColorControl* co
name.append("I");
if(colorControl->isSunOrAmbientColor) {
- childSetValue(name, colorControl->g / 3);
+ getChild<LLUICtrl>(name)->setValue(colorControl->g / 3);
} else if(colorControl->isBlueHorizonOrDensity) {
- childSetValue(name, colorControl->g / 2);
+ getChild<LLUICtrl>(name)->setValue(colorControl->g / 2);
} else {
- childSetValue(name, colorControl->g);
+ getChild<LLUICtrl>(name)->setValue(colorControl->g);
}
}
@@ -498,11 +491,11 @@ void LLFloaterWindLight::onColorControlBMoved(LLUICtrl* ctrl, WLColorControl* co
name.append("I");
if(colorControl->isSunOrAmbientColor) {
- childSetValue(name, colorControl->b / 3);
+ getChild<LLUICtrl>(name)->setValue(colorControl->b / 3);
} else if(colorControl->isBlueHorizonOrDensity) {
- childSetValue(name, colorControl->b / 2);
+ getChild<LLUICtrl>(name)->setValue(colorControl->b / 2);
} else {
- childSetValue(name, colorControl->b);
+ getChild<LLUICtrl>(name)->setValue(colorControl->b);
}
}
@@ -572,24 +565,24 @@ void LLFloaterWindLight::onColorControlIMoved(LLUICtrl* ctrl, WLColorControl* co
// divide sun color vals by three
if(colorControl->isSunOrAmbientColor)
{
- childSetValue(rName, colorControl->r/3);
- childSetValue(gName, colorControl->g/3);
- childSetValue(bName, colorControl->b/3);
+ getChild<LLUICtrl>(rName)->setValue(colorControl->r/3);
+ getChild<LLUICtrl>(gName)->setValue(colorControl->g/3);
+ getChild<LLUICtrl>(bName)->setValue(colorControl->b/3);
}
else if(colorControl->isBlueHorizonOrDensity)
{
- childSetValue(rName, colorControl->r/2);
- childSetValue(gName, colorControl->g/2);
- childSetValue(bName, colorControl->b/2);
+ getChild<LLUICtrl>(rName)->setValue(colorControl->r/2);
+ getChild<LLUICtrl>(gName)->setValue(colorControl->g/2);
+ getChild<LLUICtrl>(bName)->setValue(colorControl->b/2);
}
else
{
// set the sliders to the new vals
- childSetValue(rName, colorControl->r);
- childSetValue(gName, colorControl->g);
- childSetValue(bName, colorControl->b);
+ getChild<LLUICtrl>(rName)->setValue(colorControl->r);
+ getChild<LLUICtrl>(gName)->setValue(colorControl->g);
+ getChild<LLUICtrl>(bName)->setValue(colorControl->b);
}
}
diff --git a/indra/newview/llfloaterwindlight.h b/indra/newview/llfloaterwindlight.h
index ed9322c450..b43edc2c11 100644
--- a/indra/newview/llfloaterwindlight.h
+++ b/indra/newview/llfloaterwindlight.h
@@ -2,31 +2,25 @@
* @file llfloaterwindlight.h
* @brief LLFloaterWindLight class definition
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloaterwindowsize.cpp b/indra/newview/llfloaterwindowsize.cpp
index 5519be6f08..a70f2af11a 100644
--- a/indra/newview/llfloaterwindowsize.cpp
+++ b/indra/newview/llfloaterwindowsize.cpp
@@ -1,31 +1,25 @@
/**
* @file llfloaterwindowsize.cpp
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -86,7 +80,6 @@ public:
LLFloaterWindowSize::LLFloaterWindowSize(const LLSD& key)
: LLFloater(key)
{
- //LLUICtrlFactory::getInstance()->buildFloater(this, "floater_window_size.xml");
}
LLFloaterWindowSize::~LLFloaterWindowSize()
diff --git a/indra/newview/llfloaterwindowsize.h b/indra/newview/llfloaterwindowsize.h
index fd9d17323a..40f1a25bb3 100644
--- a/indra/newview/llfloaterwindowsize.h
+++ b/indra/newview/llfloaterwindowsize.h
@@ -1,31 +1,25 @@
/**
* @file llfloaterwindowsize.h
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfloaterworldmap.cpp b/indra/newview/llfloaterworldmap.cpp
index 152360a96e..7236894542 100644
--- a/indra/newview/llfloaterworldmap.cpp
+++ b/indra/newview/llfloaterworldmap.cpp
@@ -3,31 +3,25 @@
* @author James Cook, Tom Yedwab
* @brief LLFloaterWorldMap class implementation
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -56,7 +50,7 @@
#include "llinventorymodelbackgroundfetch.h"
#include "llinventoryobserver.h"
#include "lllandmarklist.h"
-#include "lllineeditor.h"
+#include "llsearcheditor.h"
#include "llnotificationsutil.h"
#include "llregionhandle.h"
#include "llscrolllistctrl.h"
@@ -205,7 +199,7 @@ LLFloaterWorldMap::LLFloaterWorldMap(const LLSD& key)
mFactoryMap["objects_mapview"] = LLCallbackMap(createWorldMapView, NULL);
- //Called from floater reg: LLUICtrlFactory::getInstance()->buildFloater(this, "floater_world_map.xml", FALSE);
+ mCommitCallbackRegistrar.add("WMap.Coordinates", boost::bind(&LLFloaterWorldMap::onCoordinatesCommit, this));
mCommitCallbackRegistrar.add("WMap.Location", boost::bind(&LLFloaterWorldMap::onLocationCommit, this));
mCommitCallbackRegistrar.add("WMap.AvatarCombo", boost::bind(&LLFloaterWorldMap::onAvatarComboCommit, this));
mCommitCallbackRegistrar.add("WMap.Landmark", boost::bind(&LLFloaterWorldMap::onLandmarkComboCommit, this));
@@ -216,6 +210,8 @@ LLFloaterWorldMap::LLFloaterWorldMap(const LLSD& key)
mCommitCallbackRegistrar.add("WMap.ShowAgent", boost::bind(&LLFloaterWorldMap::onShowAgentBtn, this));
mCommitCallbackRegistrar.add("WMap.Clear", boost::bind(&LLFloaterWorldMap::onClearBtn, this));
mCommitCallbackRegistrar.add("WMap.CopySLURL", boost::bind(&LLFloaterWorldMap::onCopySLURL, this));
+
+ gSavedSettings.getControl("PreferredMaturity")->getSignal()->connect(boost::bind(&LLFloaterWorldMap::onChangeMaturity, this));
}
// static
@@ -229,38 +225,30 @@ BOOL LLFloaterWorldMap::postBuild()
mPanel = getChild<LLPanel>("objects_mapview");
LLComboBox *avatar_combo = getChild<LLComboBox>("friend combo");
- if (avatar_combo)
- {
- avatar_combo->selectFirstItem();
- avatar_combo->setPrearrangeCallback( boost::bind(&LLFloaterWorldMap::onAvatarComboPrearrange, this) );
- avatar_combo->setTextEntryCallback( boost::bind(&LLFloaterWorldMap::onComboTextEntry, this) );
- }
-
- getChild<LLScrollListCtrl>("location")->setFocusChangedCallback(boost::bind(&LLFloaterWorldMap::onLocationFocusChanged, this, _1));
+ avatar_combo->selectFirstItem();
+ avatar_combo->setPrearrangeCallback( boost::bind(&LLFloaterWorldMap::onAvatarComboPrearrange, this) );
+ avatar_combo->setTextEntryCallback( boost::bind(&LLFloaterWorldMap::onComboTextEntry, this) );
- LLLineEditor *location_editor = getChild<LLLineEditor>("location");
- if (location_editor)
- {
- location_editor->setKeystrokeCallback( boost::bind(&LLFloaterWorldMap::onSearchTextEntry, this, _1), NULL );
- }
+ LLSearchEditor *location_editor = getChild<LLSearchEditor>("location");
+ location_editor->setFocusChangedCallback(boost::bind(&LLFloaterWorldMap::onLocationFocusChanged, this, _1));
+ location_editor->setKeystrokeCallback( boost::bind(&LLFloaterWorldMap::onSearchTextEntry, this));
getChild<LLScrollListCtrl>("search_results")->setDoubleClickCallback( boost::bind(&LLFloaterWorldMap::onClickTeleportBtn, this));
LLComboBox *landmark_combo = getChild<LLComboBox>( "landmark combo");
- if (landmark_combo)
- {
- landmark_combo->selectFirstItem();
- landmark_combo->setPrearrangeCallback( boost::bind(&LLFloaterWorldMap::onLandmarkComboPrearrange, this) );
- landmark_combo->setTextEntryCallback( boost::bind(&LLFloaterWorldMap::onComboTextEntry, this) );
- }
+ landmark_combo->selectFirstItem();
+ landmark_combo->setPrearrangeCallback( boost::bind(&LLFloaterWorldMap::onLandmarkComboPrearrange, this) );
+ landmark_combo->setTextEntryCallback( boost::bind(&LLFloaterWorldMap::onComboTextEntry, this) );
mCurZoomVal = log(LLWorldMapView::sMapScale)/log(2.f);
- childSetValue("zoom slider", LLWorldMapView::sMapScale);
+ getChild<LLUICtrl>("zoom slider")->setValue(LLWorldMapView::sMapScale);
setDefaultBtn(NULL);
mZoomTimer.stop();
+ onChangeMaturity();
+
return TRUE;
}
@@ -326,7 +314,7 @@ void LLFloaterWorldMap::onOpen(const LLSD& key)
const LLUUID landmark_folder_id = gInventory.findCategoryUUIDForType(LLFolderType::FT_LANDMARK);
LLInventoryModelBackgroundFetch::instance().start(landmark_folder_id);
- childSetFocus("location", TRUE);
+ getChild<LLUICtrl>("location")->setFocus( TRUE);
gFocusMgr.triggerFocusFlash();
buildAvatarIDList();
@@ -342,8 +330,6 @@ void LLFloaterWorldMap::onOpen(const LLSD& key)
}
}
-
-
// static
void LLFloaterWorldMap::reloadIcons(void*)
{
@@ -364,9 +350,9 @@ BOOL LLFloaterWorldMap::handleScrollWheel(S32 x, S32 y, S32 clicks)
{
if(mPanel->pointInView(x, y))
{
- F32 slider_value = (F32)childGetValue("zoom slider").asReal();
+ F32 slider_value = (F32)getChild<LLUICtrl>("zoom slider")->getValue().asReal();
slider_value += ((F32)clicks * -0.3333f);
- childSetValue("zoom slider", LLSD(slider_value));
+ getChild<LLUICtrl>("zoom slider")->setValue(LLSD(slider_value));
return TRUE;
}
}
@@ -388,53 +374,38 @@ void LLFloaterWorldMap::draw()
static LLUIColor map_track_color = LLUIColorTable::instance().getColor("MapTrackColor", LLColor4::white);
static LLUIColor map_track_disabled_color = LLUIColorTable::instance().getColor("MapTrackDisabledColor", LLColor4::white);
- // Hide/Show Mature Events controls
- childSetVisible("events_mature_icon", gAgent.canAccessMature());
- childSetVisible("events_mature_label", gAgent.canAccessMature());
- childSetVisible("event_mature_chk", gAgent.canAccessMature());
-
- childSetVisible("events_adult_icon", gAgent.canAccessMature());
- childSetVisible("events_adult_label", gAgent.canAccessMature());
- childSetVisible("event_adult_chk", gAgent.canAccessMature());
- bool adult_enabled = gAgent.canAccessAdult();
- if (!adult_enabled)
- {
- childSetValue("event_adult_chk", FALSE);
- }
- childSetEnabled("event_adult_chk", adult_enabled);
-
// On orientation island, users don't have a home location yet, so don't
// let them teleport "home". It dumps them in an often-crowed welcome
// area (infohub) and they get confused. JC
LLViewerRegion* regionp = gAgent.getRegion();
bool agent_on_prelude = (regionp && regionp->isPrelude());
bool enable_go_home = gAgent.isGodlike() || !agent_on_prelude;
- childSetEnabled("Go Home", enable_go_home);
+ getChildView("Go Home")->setEnabled(enable_go_home);
updateLocation();
LLTracker::ETrackingStatus tracking_status = LLTracker::getTrackingStatus();
if (LLTracker::TRACKING_AVATAR == tracking_status)
{
- childSetColor("avatar_icon", map_track_color);
+ getChild<LLUICtrl>("avatar_icon")->setColor( map_track_color);
}
else
{
- childSetColor("avatar_icon", map_track_disabled_color);
+ getChild<LLUICtrl>("avatar_icon")->setColor( map_track_disabled_color);
}
if (LLTracker::TRACKING_LANDMARK == tracking_status)
{
- childSetColor("landmark_icon", map_track_color);
+ getChild<LLUICtrl>("landmark_icon")->setColor( map_track_color);
}
else
{
- childSetColor("landmark_icon", map_track_disabled_color);
+ getChild<LLUICtrl>("landmark_icon")->setColor( map_track_disabled_color);
}
if (LLTracker::TRACKING_LOCATION == tracking_status)
{
- childSetColor("location_icon", map_track_color);
+ getChild<LLUICtrl>("location_icon")->setColor( map_track_color);
}
else
{
@@ -444,11 +415,11 @@ void LLFloaterWorldMap::draw()
double value = fmod(seconds, 2);
value = 0.5 + 0.5*cos(value * F_PI);
LLColor4 loading_color(0.0, F32(value/2), F32(value), 1.0);
- childSetColor("location_icon", loading_color);
+ getChild<LLUICtrl>("location_icon")->setColor( loading_color);
}
else
{
- childSetColor("location_icon", map_track_disabled_color);
+ getChild<LLUICtrl>("location_icon")->setColor( map_track_disabled_color);
}
}
@@ -458,16 +429,16 @@ void LLFloaterWorldMap::draw()
centerOnTarget(TRUE);
}
- childSetEnabled("Teleport", (BOOL)tracking_status);
-// childSetEnabled("Clear", (BOOL)tracking_status);
- childSetEnabled("Show Destination", (BOOL)tracking_status || LLWorldMap::getInstance()->isTracking());
- childSetEnabled("copy_slurl", (mSLURL.isValid()) );
+ getChildView("Teleport")->setEnabled((BOOL)tracking_status);
+// getChildView("Clear")->setEnabled((BOOL)tracking_status);
+ getChildView("Show Destination")->setEnabled((BOOL)tracking_status || LLWorldMap::getInstance()->isTracking());
+ getChildView("copy_slurl")->setEnabled((mSLURL.isValid()) );
setMouseOpaque(TRUE);
getDragHandle()->setMouseOpaque(TRUE);
//RN: snaps to zoom value because interpolation caused jitter in the text rendering
- if (!mZoomTimer.getStarted() && mCurZoomVal != (F32)childGetValue("zoom slider").asReal())
+ if (!mZoomTimer.getStarted() && mCurZoomVal != (F32)getChild<LLUICtrl>("zoom slider")->getValue().asReal())
{
mZoomTimer.start();
}
@@ -477,7 +448,7 @@ void LLFloaterWorldMap::draw()
interp = 1.f;
mZoomTimer.stop();
}
- mCurZoomVal = lerp(mCurZoomVal, (F32)childGetValue("zoom slider").asReal(), interp);
+ mCurZoomVal = lerp(mCurZoomVal, (F32)getChild<LLUICtrl>("zoom slider")->getValue().asReal(), interp);
F32 map_scale = 256.f*pow(2.f, mCurZoomVal);
LLWorldMapView::setScale( map_scale );
@@ -485,13 +456,13 @@ void LLFloaterWorldMap::draw()
// If above threshold level (i.e. low res) -> Disable all checkboxes
// If under threshold level (i.e. high res) -> Enable all checkboxes
bool enable = LLWorldMapView::showRegionInfo();
- childSetEnabled("people_chk", enable);
- childSetEnabled("infohub_chk", enable);
- childSetEnabled("telehub_chk", enable);
- childSetEnabled("land_for_sale_chk", enable);
- childSetEnabled("event_chk", enable);
- childSetEnabled("event_mature_chk", enable);
- childSetEnabled("event_adult_chk", enable);
+ getChildView("people_chk")->setEnabled(enable);
+ getChildView("infohub_chk")->setEnabled(enable);
+ getChildView("telehub_chk")->setEnabled(enable);
+ getChildView("land_for_sale_chk")->setEnabled(enable);
+ getChildView("event_chk")->setEnabled(enable);
+ getChildView("events_mature_chk")->setEnabled(enable);
+ getChildView("events_adult_chk")->setEnabled(enable);
LLFloater::draw();
}
@@ -515,7 +486,7 @@ void LLFloaterWorldMap::trackAvatar( const LLUUID& avatar_id, const std::string&
// convenience.
if(gAgent.isGodlike())
{
- childSetValue("spin z", LLSD(200.f));
+ getChild<LLUICtrl>("spin z")->setValue(LLSD(200.f));
}
// Don't re-request info if we already have it or we won't have it in time to teleport
if (mTrackedStatus != LLTracker::TRACKING_AVATAR || name != mTrackedAvatarName)
@@ -603,6 +574,10 @@ void LLFloaterWorldMap::trackLocation(const LLVector3d& pos_global)
S32 world_y = S32(pos_global.mdV[1] / 256);
LLWorldMapMessage::getInstance()->sendMapBlockRequest(world_x, world_y, world_x, world_y, true);
setDefaultBtn("");
+
+ // clicked on a non-region - turn off coord display
+ enableTeleportCoordsDisplay( false );
+
return;
}
if (sim_info->isDown())
@@ -613,6 +588,10 @@ void LLFloaterWorldMap::trackLocation(const LLVector3d& pos_global)
LLWorldMap::getInstance()->setTrackingInvalid();
LLTracker::stopTracking(NULL);
setDefaultBtn("");
+
+ // clicked on a down region - turn off coord display
+ enableTeleportCoordsDisplay( false );
+
return;
}
@@ -630,9 +609,40 @@ void LLFloaterWorldMap::trackLocation(const LLVector3d& pos_global)
LLTracker::trackLocation(pos_global, full_name, tooltip);
LLWorldMap::getInstance()->cancelTracking(); // The floater is taking over the tracking
+ LLVector3d coord_pos = LLTracker::getTrackedPositionGlobal();
+ updateTeleportCoordsDisplay( coord_pos );
+
+ // we have a valid region - turn on coord display
+ enableTeleportCoordsDisplay( true );
+
setDefaultBtn("Teleport");
}
+// enable/disable teleport destination coordinates
+void LLFloaterWorldMap::enableTeleportCoordsDisplay( bool enabled )
+{
+ childSetEnabled("teleport_coordinate_x", enabled );
+ childSetEnabled("teleport_coordinate_y", enabled );
+ childSetEnabled("teleport_coordinate_z", enabled );
+}
+
+// update display of teleport destination coordinates - pos is in global coordinates
+void LLFloaterWorldMap::updateTeleportCoordsDisplay( const LLVector3d& pos )
+{
+ // if we're going to update their value, we should also enable them
+ enableTeleportCoordsDisplay( true );
+
+ // convert global specified position to a local one
+ F32 region_local_x = (F32)fmod( pos.mdV[VX], (F64)REGION_WIDTH_METERS );
+ F32 region_local_y = (F32)fmod( pos.mdV[VY], (F64)REGION_WIDTH_METERS );
+ F32 region_local_z = (F32)fmod( pos.mdV[VZ], (F64)REGION_WIDTH_METERS );
+
+ // write in the values
+ childSetValue("teleport_coordinate_x", region_local_x );
+ childSetValue("teleport_coordinate_y", region_local_y );
+ childSetValue("teleport_coordinate_z", region_local_z );
+}
+
void LLFloaterWorldMap::updateLocation()
{
bool gotSimName;
@@ -657,7 +667,10 @@ void LLFloaterWorldMap::updateLocation()
mSetToUserPosition = FALSE;
// Fill out the location field
- childSetValue("location", agent_sim_name);
+ getChild<LLUICtrl>("location")->setValue(agent_sim_name);
+
+ // update the coordinate display with location of avatar in region
+ updateTeleportCoordsDisplay( agentPos );
// Figure out where user is
// Set the current SLURL
@@ -687,7 +700,11 @@ void LLFloaterWorldMap::updateLocation()
}
}
- childSetValue("location", sim_name);
+ getChild<LLUICtrl>("location")->setValue(sim_name);
+
+ // refresh coordinate display to reflect where user clicked.
+ LLVector3d coord_pos = LLTracker::getTrackedPositionGlobal();
+ updateTeleportCoordsDisplay( coord_pos );
// simNameFromPosGlobal can fail, so don't give the user an invalid SLURL
if ( gotSimName )
@@ -718,7 +735,7 @@ void LLFloaterWorldMap::trackURL(const std::string& region_name, S32 x_coord, S3
else
{
// fill in UI based on URL
- gFloaterWorldMap->childSetValue("location", region_name);
+ gFloaterWorldMap->getChild<LLUICtrl>("location")->setValue(region_name);
// Save local coords to highlight position after region global
// position is returned.
@@ -1003,7 +1020,7 @@ void LLFloaterWorldMap::onComboTextEntry()
LLTracker::clearFocus();
}
-void LLFloaterWorldMap::onSearchTextEntry( LLLineEditor* ctrl )
+void LLFloaterWorldMap::onSearchTextEntry( )
{
onComboTextEntry();
updateSearchEnabled();
@@ -1115,7 +1132,7 @@ void LLFloaterWorldMap::onLocationFocusChanged( LLFocusableElement* focus )
void LLFloaterWorldMap::updateSearchEnabled()
{
if (childHasKeyboardFocus("location") &&
- childGetValue("location").asString().length() > 0)
+ getChild<LLUICtrl>("location")->getValue().asString().length() > 0)
{
setDefaultBtn("DoSearch");
}
@@ -1136,14 +1153,14 @@ void LLFloaterWorldMap::onLocationCommit()
mCompletingRegionName = "";
mLastRegionName = "";
- std::string str = childGetValue("location").asString();
+ std::string str = getChild<LLUICtrl>("location")->getValue().asString();
// Trim any leading and trailing spaces in the search target
std::string saved_str = str;
LLStringUtil::trim( str );
if ( str != saved_str )
{ // Set the value in the UI if any spaces were removed
- childSetValue("location", str);
+ getChild<LLUICtrl>("location")->setValue(str);
}
LLStringUtil::toLower(str);
@@ -1160,6 +1177,22 @@ void LLFloaterWorldMap::onLocationCommit()
}
}
+void LLFloaterWorldMap::onCoordinatesCommit()
+{
+ if( mIsClosing )
+ {
+ return;
+ }
+
+ S32 x_coord = (S32)childGetValue("teleport_coordinate_x").asReal();
+ S32 y_coord = (S32)childGetValue("teleport_coordinate_y").asReal();
+ S32 z_coord = (S32)childGetValue("teleport_coordinate_z").asReal();
+
+ const std::string region_name = childGetValue("location").asString();
+
+ trackURL( region_name, x_coord, y_coord, z_coord );
+}
+
void LLFloaterWorldMap::onClearBtn()
{
mTrackedStatus = LLTracker::TRACKING_NOTHING;
@@ -1220,6 +1253,9 @@ void LLFloaterWorldMap::centerOnTarget(BOOL animate)
else if(LLWorldMap::getInstance()->isTracking())
{
pos_global = LLWorldMap::getInstance()->getTrackedPositionGlobal() - gAgentCamera.getCameraPositionGlobal();;
+
+
+
}
else
{
@@ -1264,7 +1300,7 @@ void LLFloaterWorldMap::teleport()
&& av_tracker.haveTrackingInfo() )
{
pos_global = av_tracker.getGlobalPos();
- pos_global.mdV[VZ] = childGetValue("spin z");
+ pos_global.mdV[VZ] = getChild<LLUICtrl>("spin z")->getValue();
}
else if ( LLTracker::TRACKING_LANDMARK == tracking_status)
{
@@ -1433,7 +1469,7 @@ void LLFloaterWorldMap::updateSims(bool found_null_sim)
if (!match.isUndefined())
{
list->selectByValue(match);
- childSetFocus("search_results");
+ getChild<LLUICtrl>("search_results")->setFocus(TRUE);
onCommitSearchResult();
}
@@ -1481,7 +1517,7 @@ void LLFloaterWorldMap::onCommitSearchResult()
pos_global.mdV[VY] += (F64)pos_local.mV[VY];
pos_global.mdV[VZ] = (F64)pos_local.mV[VZ];
- childSetValue("location", sim_name);
+ getChild<LLUICtrl>("location")->setValue(sim_name);
trackLocation(pos_global);
setDefaultBtn("Teleport");
break;
@@ -1490,3 +1526,27 @@ void LLFloaterWorldMap::onCommitSearchResult()
onShowTargetBtn();
}
+
+void LLFloaterWorldMap::onChangeMaturity()
+{
+ bool can_access_mature = gAgent.canAccessMature();
+ bool can_access_adult = gAgent.canAccessAdult();
+
+ getChildView("events_mature_icon")->setVisible( can_access_mature);
+ getChildView("events_mature_label")->setVisible( can_access_mature);
+ getChildView("events_mature_chk")->setVisible( can_access_mature);
+
+ getChildView("events_adult_icon")->setVisible( can_access_adult);
+ getChildView("events_adult_label")->setVisible( can_access_adult);
+ getChildView("events_adult_chk")->setVisible( can_access_adult);
+
+ // disable mature / adult events.
+ if (!can_access_mature)
+ {
+ gSavedSettings.setBOOL("ShowMatureEvents", FALSE);
+ }
+ if (!can_access_adult)
+ {
+ gSavedSettings.setBOOL("ShowAdultEvents", FALSE);
+ }
+}
diff --git a/indra/newview/llfloaterworldmap.h b/indra/newview/llfloaterworldmap.h
index 52809ff830..6327039b7f 100644
--- a/indra/newview/llfloaterworldmap.h
+++ b/indra/newview/llfloaterworldmap.h
@@ -2,31 +2,25 @@
* @file llfloaterworldmap.h
* @brief LLFloaterWorldMap class definition
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -112,7 +106,7 @@ public:
// teleport to the tracked item, if there is one
void teleport();
-
+ void onChangeMaturity();
protected:
void onGoHome();
@@ -123,7 +117,7 @@ protected:
void onAvatarComboCommit();
void onComboTextEntry( );
- void onSearchTextEntry( LLLineEditor* ctrl );
+ void onSearchTextEntry( );
void onClearBtn();
void onClickTeleportBtn();
@@ -149,6 +143,7 @@ protected:
void updateSearchEnabled();
void onLocationFocusChanged( LLFocusableElement* ctrl );
void onLocationCommit();
+ void onCoordinatesCommit();
void onCommitSearchResult();
void cacheLandmarkPosition();
@@ -160,6 +155,12 @@ private:
F32 mCurZoomVal;
LLFrameTimer mZoomTimer;
+ // update display of teleport destination coordinates - pos is in global coordinates
+ void updateTeleportCoordsDisplay( const LLVector3d& pos );
+
+ // enable/disable teleport destination coordinates
+ void enableTeleportCoordsDisplay( bool enabled );
+
LLDynamicArray<LLUUID> mLandmarkAssetIDList;
LLDynamicArray<LLUUID> mLandmarkItemIDList;
diff --git a/indra/newview/llfolderview.cpp b/indra/newview/llfolderview.cpp
index f241d18a21..387e300b74 100644
--- a/indra/newview/llfolderview.cpp
+++ b/indra/newview/llfolderview.cpp
@@ -2,31 +2,25 @@
* @file llfolderview.cpp
* @brief Implementation of the folder view collection of classes.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -62,6 +56,7 @@
#include "llviewerwindow.h"
#include "llvoavatar.h"
#include "llfloaterproperties.h"
+#include "llnotificationsutil.h"
// Linden library includes
#include "lldbstrings.h"
@@ -104,7 +99,6 @@ void copy_selected_item(void* user_data);
void open_selected_items(void* user_data);
void properties_selected_items(void* user_data);
void paste_items(void* user_data);
-void renamer_focus_lost( LLFocusableElement* handler, void* user_data );
//---------------------------------------------------------------------------
@@ -184,7 +178,6 @@ LLFolderView::LLFolderView(const Params& p)
mSourceID(p.task_id),
mRenameItem( NULL ),
mNeedsScroll( FALSE ),
- mEnableScroll( true ),
mUseLabelSuffix(p.use_label_suffix),
mPinningSelectedItem(FALSE),
mNeedsAutoSelect( FALSE ),
@@ -250,7 +243,7 @@ LLFolderView::LLFolderView(const Params& p)
text_p.name(std::string(p.name));
text_p.font(font);
text_p.visible(false);
- text_p.allow_html(true);
+ text_p.parse_urls(true);
text_p.wrap(true); // allow multiline text. See EXT-7564, EXT-7047
// set text padding the same as in People panel. EXT-7047, EXT-4837
text_p.h_pad(STATUS_TEXT_HPAD);
@@ -275,6 +268,8 @@ LLFolderView::LLFolderView(const Params& p)
// Destroys the object
LLFolderView::~LLFolderView( void )
{
+ closeRenamer();
+
// The release focus call can potentially call the
// scrollcontainer, which can potentially be called with a partly
// destroyed scollcontainer. Just null it out here, and no worries
@@ -290,8 +285,6 @@ LLFolderView::~LLFolderView( void )
LLView::deleteViewByHandle(mPopupMenuHandle);
- gViewerWindow->removePopup(mRenamer);
-
mAutoOpenItems.removeAllNodes();
clearSelection();
mItems.clear();
@@ -357,6 +350,10 @@ BOOL LLFolderView::addFolder( LLFolderViewFolder* folder)
{
mFolders.insert(mFolders.begin(), folder);
}
+ if (folder->numSelected())
+ {
+ recursiveIncrementNumDescendantsSelected(folder->numSelected());
+ }
folder->setShowLoadStatus(true);
folder->setOrigin(0, 0);
folder->reshape(getRect().getWidth(), 0);
@@ -699,29 +696,24 @@ BOOL LLFolderView::changeSelection(LLFolderViewItem* selection, BOOL selected)
return rv;
}
-S32 LLFolderView::extendSelection(LLFolderViewItem* selection, LLFolderViewItem* last_selected, LLDynamicArray<LLFolderViewItem*>& items)
+void LLFolderView::extendSelection(LLFolderViewItem* selection, LLFolderViewItem* last_selected, LLDynamicArray<LLFolderViewItem*>& items)
{
- S32 rv = 0;
-
// now store resulting selection
if (mAllowMultiSelect)
{
LLFolderViewItem *cur_selection = getCurSelectedItem();
- rv = LLFolderViewFolder::extendSelection(selection, cur_selection, items);
+ LLFolderViewFolder::extendSelection(selection, cur_selection, items);
for (S32 i = 0; i < items.count(); i++)
{
addToSelectionList(items[i]);
- rv++;
}
}
else
{
setSelection(selection, FALSE, FALSE);
- rv++;
}
mSignalSelectCallback = SIGNAL_KEYBOARD_FOCUS;
- return rv;
}
void LLFolderView::sanitizeSelection()
@@ -998,12 +990,7 @@ void LLFolderView::finishRenamingItem( void )
mRenameItem->rename( mRenamer->getText() );
}
- gViewerWindow->removePopup(mRenamer);
-
- if( mRenameItem )
- {
- setSelectionFromRoot( mRenameItem, TRUE );
- }
+ closeRenamer();
// List is re-sorted alphabeticly, so scroll to make sure the selected item is visible.
scrollToShowSelection();
@@ -1011,20 +998,26 @@ void LLFolderView::finishRenamingItem( void )
void LLFolderView::closeRenamer( void )
{
- // will commit current name (which could be same as original name)
- mRenamer->setFocus( FALSE );
- mRenamer->setVisible( FALSE );
- gViewerWindow->removePopup(mRenamer);
-
- if( mRenameItem )
+ if (mRenamer && mRenamer->getVisible())
{
- setSelectionFromRoot( mRenameItem, TRUE );
- mRenameItem = NULL;
+ // Triggers onRenamerLost() that actually closes the renamer.
+ gViewerWindow->removePopup(mRenamer);
}
}
void LLFolderView::removeSelectedItems( void )
{
+ if (mSelectedItems.empty()) return;
+ LLSD args;
+ args["QUESTION"] = LLTrans::getString(mSelectedItems.size() > 1 ? "DeleteItems" : "DeleteItem");
+ LLNotificationsUtil::add("DeleteItems", args, LLSD(), boost::bind(&LLFolderView::onItemsRemovalConfirmation, this, _1, _2));
+}
+
+void LLFolderView::onItemsRemovalConfirmation(const LLSD& notification, const LLSD& response)
+{
+ S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
+ if (option != 0) return; // canceled
+
if(getVisible() && getEnabled())
{
// just in case we're removing the renaming item.
@@ -1195,7 +1188,7 @@ void LLFolderView::propertiesSelectedItems( void )
void LLFolderView::changeType(LLInventoryModel *model, LLFolderType::EType new_folder_type)
{
- LLFolderBridge *folder_bridge = LLFolderBridge::sSelf;
+ LLFolderBridge *folder_bridge = LLFolderBridge::sSelf.get();
if (!folder_bridge) return;
LLViewerInventoryCategory *cat = folder_bridge->getCategory();
@@ -1444,8 +1437,7 @@ void LLFolderView::startRenamingSelectedItem( void )
mRenamer->setVisible( TRUE );
// set focus will fail unless item is visible
mRenamer->setFocus( TRUE );
- mRenamer->setTopLostCallback(boost::bind(&LLFolderView::onRenamerLost, this, _1));
- mRenamer->setFocusLostCallback(boost::bind(&LLFolderView::onRenamerLost, this, _1));
+ mRenamer->setTopLostCallback(boost::bind(&LLFolderView::onRenamerLost, this));
gViewerWindow->addPopup(mRenamer);
}
}
@@ -1868,18 +1860,24 @@ BOOL LLFolderView::handleRightMouseDown( S32 x, S32 y, MASK mask )
LLView::child_list_t::const_iterator menu_itor;
for (menu_itor = list->begin(); menu_itor != list->end(); ++menu_itor)
{
- (*menu_itor)->setVisible(TRUE);
+ (*menu_itor)->setVisible(FALSE);
+ (*menu_itor)->pushVisible(TRUE);
(*menu_itor)->setEnabled(TRUE);
}
// Successively filter out invalid options
- selected_items_t::iterator item_itor;
+
U32 flags = FIRST_SELECTED_ITEM;
- for (item_itor = mSelectedItems.begin(); item_itor != mSelectedItems.end(); ++item_itor)
+ for (selected_items_t::iterator item_itor = mSelectedItems.begin();
+ item_itor != mSelectedItems.end();
+ ++item_itor)
{
- (*item_itor)->buildContextMenu(*menu, flags);
+ LLFolderViewItem* selected_item = (*item_itor);
+ selected_item->buildContextMenu(*menu, flags);
flags = 0x0;
}
+
+ addNoOptions(menu);
menu->updateParent(LLMenuGL::sMenuContainer);
LLMenuGL::showPopup(this, menu, x, y);
@@ -1888,7 +1886,7 @@ BOOL LLFolderView::handleRightMouseDown( S32 x, S32 y, MASK mask )
}
else
{
- if(menu && menu->getVisible())
+ if (menu && menu->getVisible())
{
menu->setVisible(FALSE);
}
@@ -1897,6 +1895,37 @@ BOOL LLFolderView::handleRightMouseDown( S32 x, S32 y, MASK mask )
return handled;
}
+// Add "--no options--" if the menu is completely blank.
+BOOL LLFolderView::addNoOptions(LLMenuGL* menu) const
+{
+ const std::string nooptions_str = "--no options--";
+ LLView *nooptions_item = NULL;
+
+ const LLView::child_list_t *list = menu->getChildList();
+ for (LLView::child_list_t::const_iterator itor = list->begin();
+ itor != list->end();
+ ++itor)
+ {
+ LLView *menu_item = (*itor);
+ if (menu_item->getVisible())
+ {
+ return FALSE;
+ }
+ std::string name = menu_item->getName();
+ if (menu_item->getName() == nooptions_str)
+ {
+ nooptions_item = menu_item;
+ }
+ }
+ if (nooptions_item)
+ {
+ nooptions_item->setVisible(TRUE);
+ nooptions_item->setEnabled(FALSE);
+ return TRUE;
+ }
+ return FALSE;
+}
+
BOOL LLFolderView::handleHover( S32 x, S32 y, MASK mask )
{
return LLView::handleHover( x, y, mask );
@@ -1929,10 +1958,7 @@ BOOL LLFolderView::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,
void LLFolderView::deleteAllChildren()
{
- if(mRenamer == gFocusMgr.getTopCtrl())
- {
- gViewerWindow->removePopup(mRenamer);
- }
+ closeRenamer();
LLView::deleteViewByHandle(mPopupMenuHandle);
mPopupMenuHandle = LLHandle<LLView>();
mRenamer = NULL;
@@ -1943,7 +1969,13 @@ void LLFolderView::deleteAllChildren()
void LLFolderView::scrollToShowSelection()
{
- if (mEnableScroll && mSelectedItems.size())
+ // If items are filtered while background fetch is in progress
+ // scrollbar resets to the first filtered item. See EXT-3981.
+ // However we allow scrolling for folder views with mAutoSelectOverride
+ // (used in Places SP) as an exception because the selection in them
+ // is not reset during items filtering. See STORM-133.
+ if ( (!LLInventoryModelBackgroundFetch::instance().backgroundFetchActive() || mAutoSelectOverride)
+ && mSelectedItems.size() )
{
mNeedsScroll = TRUE;
}
@@ -2415,13 +2447,20 @@ S32 LLFolderView::notify(const LLSD& info)
/// Local function definitions
///----------------------------------------------------------------------------
-void LLFolderView::onRenamerLost( LLFocusableElement* renamer)
+void LLFolderView::onRenamerLost()
{
- mRenameItem = NULL;
- LLUICtrl* uictrl = dynamic_cast<LLUICtrl*>(renamer);
- if (uictrl)
+ if (mRenamer && mRenamer->getVisible())
+ {
+ mRenamer->setVisible(FALSE);
+
+ // will commit current name (which could be same as original name)
+ mRenamer->setFocus(FALSE);
+ }
+
+ if( mRenameItem )
{
- uictrl->setVisible(FALSE);
+ setSelectionFromRoot( mRenameItem, TRUE );
+ mRenameItem = NULL;
}
}
diff --git a/indra/newview/llfolderview.h b/indra/newview/llfolderview.h
index 55eb543f5f..66ab4ce5eb 100644
--- a/indra/newview/llfolderview.h
+++ b/indra/newview/llfolderview.h
@@ -2,31 +2,25 @@
* @file llfolderview.h
* @brief Definition of the folder view collection of classes.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -80,7 +74,6 @@ public:
virtual void doItem(LLFolderViewItem* item) = 0;
};
-
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Class LLFolderView
//
@@ -152,18 +145,18 @@ public:
// Record the selected item and pass it down the hierachy.
virtual BOOL setSelection(LLFolderViewItem* selection, BOOL openitem,
BOOL take_keyboard_focus);
-
+
// Used by menu callbacks
void setSelectionByID(const LLUUID& obj_id, BOOL take_keyboard_focus);
-
+
// Called once a frame to update the selection if mSelectThisID has been set
- void updateSelection();
-
+ void updateSelection();
+
// This method is used to toggle the selection of an item. Walks
// children, and keeps track of selected objects.
virtual BOOL changeSelection(LLFolderViewItem* selection, BOOL selected);
- virtual S32 extendSelection(LLFolderViewItem* selection, LLFolderViewItem* last_selected, LLDynamicArray<LLFolderViewItem*>& items);
+ virtual void extendSelection(LLFolderViewItem* selection, LLFolderViewItem* last_selected, LLDynamicArray<LLFolderViewItem*>& items);
virtual std::set<LLUUID> getSelectionList() const;
@@ -262,6 +255,8 @@ public:
BOOL needsAutoSelect() { return mNeedsAutoSelect && !mAutoSelectOverride; }
BOOL needsAutoRename() { return mNeedsAutoRename; }
void setNeedsAutoRename(BOOL val) { mNeedsAutoRename = val; }
+ void setPinningSelectedItem(BOOL val) { mPinningSelectedItem = val; }
+ void setAutoSelectOverride(BOOL val) { mAutoSelectOverride = val; }
void setCallbackRegistrar(LLUICtrl::CommitCallbackRegistry::ScopedRegistrar* registrar) { mCallbackRegistrar = registrar; }
@@ -272,7 +267,6 @@ public:
void dumpSelectionInformation();
virtual S32 notify(const LLSD& info) ;
- void setEnableScroll(bool enable_scroll) { mEnableScroll = enable_scroll; }
bool useLabelSuffix() { return mUseLabelSuffix; }
private:
@@ -282,7 +276,7 @@ protected:
LLScrollContainer* mScrollContainer; // NULL if this is not a child of a scroll container.
void commitRename( const LLSD& data );
- void onRenamerLost( LLFocusableElement* renamer);
+ void onRenamerLost();
void finishRenamingItem( void );
void closeRenamer( void );
@@ -290,6 +284,10 @@ protected:
bool selectFirstItem();
bool selectLastItem();
+ BOOL addNoOptions(LLMenuGL* menu) const;
+
+ void onItemsRemovalConfirmation(const LLSD& notification, const LLSD& response);
+
protected:
LLHandle<LLView> mPopupMenuHandle;
@@ -305,7 +303,6 @@ protected:
LLLineEditor* mRenamer;
BOOL mNeedsScroll;
- bool mEnableScroll;
BOOL mPinningSelectedItem;
LLRect mScrollConstraintRect;
BOOL mNeedsAutoSelect;
diff --git a/indra/newview/llfoldervieweventlistener.h b/indra/newview/llfoldervieweventlistener.h
index 82f8a10cf3..ade30d9266 100644
--- a/indra/newview/llfoldervieweventlistener.h
+++ b/indra/newview/llfoldervieweventlistener.h
@@ -1,31 +1,25 @@
/**
* @file llfoldervieweventlistener.h
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
#ifndef LLFOLDERVIEWEVENTLISTENER_H
diff --git a/indra/newview/llfolderviewitem.cpp b/indra/newview/llfolderviewitem.cpp
index 50b35bfc69..3c36248c1f 100644
--- a/indra/newview/llfolderviewitem.cpp
+++ b/indra/newview/llfolderviewitem.cpp
@@ -2,31 +2,25 @@
* @file llfolderviewitem.cpp
* @brief Items and folders that can appear in a hierarchical folder view
*
-* $LicenseInfo:firstyear=2001&license=viewergpl$
-*
-* Copyright (c) 2001-2009, Linden Research, Inc.
-*
+* $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
-* The source code in this file ("Source Code") is provided by Linden Lab
-* to you under the terms of the GNU General Public License, version 2.0
-* ("GPL"), unless you have obtained a separate licensing agreement
-* ("Other License"), formally executed by you and Linden Lab. Terms of
-* the GPL can be found in doc/GPL-license.txt in this distribution, or
-* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+* Copyright (C) 2010, Linden Research, Inc.
*
-* There are special exceptions to the terms and conditions of the GPL as
-* it is applied to this Source Code. View the full text of the exception
-* in the file doc/FLOSS-exception.txt in this software distribution, or
-* online at
-* http://secondlifegrid.net/programs/open_source/licensing/flossexception
+* 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.
*
-* By copying, modifying or distributing this software, you acknowledge
-* that you have read and understood your obligations described above,
-* and agree to abide by those obligations.
+* 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.
*
-* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
-* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
-* COMPLETENESS OR PERFORMANCE.
+* 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"
@@ -495,27 +489,34 @@ void LLFolderViewItem::dirtyFilter()
// together.
BOOL LLFolderViewItem::setSelection(LLFolderViewItem* selection, BOOL openitem, BOOL take_keyboard_focus)
{
- if( selection == this )
+ if (selection == this && !mIsSelected)
{
- mIsSelected = TRUE;
- if(mListener)
+ selectItem();
+ if (mListener)
{
mListener->selectItem();
}
}
- else
+ else if (mIsSelected) // Deselect everything else.
{
- mIsSelected = FALSE;
+ deselectItem();
}
return mIsSelected;
}
BOOL LLFolderViewItem::changeSelection(LLFolderViewItem* selection, BOOL selected)
{
- if(selection == this && mIsSelected != selected)
+ if (selection == this && mIsSelected != selected)
{
- mIsSelected = selected;
- if(mListener)
+ if (mIsSelected)
+ {
+ deselectItem();
+ }
+ else
+ {
+ selectItem();
+ }
+ if (mListener)
{
mListener->selectItem();
}
@@ -524,6 +525,33 @@ BOOL LLFolderViewItem::changeSelection(LLFolderViewItem* selection, BOOL selecte
return FALSE;
}
+void LLFolderViewItem::deselectItem(void)
+{
+ llassert(mIsSelected);
+
+ mIsSelected = FALSE;
+
+ // Update ancestors' count of selected descendents.
+ LLFolderViewFolder* parent_folder = getParentFolder();
+ if (parent_folder)
+ {
+ parent_folder->recursiveIncrementNumDescendantsSelected(-1);
+ }
+}
+
+void LLFolderViewItem::selectItem(void)
+{
+ llassert(!mIsSelected);
+
+ mIsSelected = TRUE;
+
+ // Update ancestors' count of selected descendents.
+ LLFolderViewFolder* parent_folder = getParentFolder();
+ if (parent_folder)
+ {
+ parent_folder->recursiveIncrementNumDescendantsSelected(1);
+ }
+}
BOOL LLFolderViewItem::isMovable()
{
@@ -1079,6 +1107,7 @@ void LLFolderViewItem::draw()
LLFolderViewFolder::LLFolderViewFolder( const LLFolderViewItem::Params& p ):
LLFolderViewItem( p ), // 0 = no create time
+ mNumDescendantsSelected(0),
mIsOpen(FALSE),
mExpanderHighlighted(FALSE),
mCurHeight(0.f),
@@ -1464,16 +1493,34 @@ BOOL LLFolderViewFolder::hasFilteredDescendants()
return mMostFilteredDescendantGeneration >= getRoot()->getFilter()->getCurrentGeneration();
}
+void LLFolderViewFolder::recursiveIncrementNumDescendantsSelected(S32 increment)
+{
+ LLFolderViewFolder* parent_folder = this;
+ do
+ {
+ parent_folder->mNumDescendantsSelected += increment;
+
+ // Make sure we don't have negative values.
+ llassert(parent_folder->mNumDescendantsSelected >= 0);
+
+ parent_folder = parent_folder->getParentFolder();
+ }
+ while(parent_folder);
+}
+
// Passes selection information on to children and record selection
// information if necessary.
BOOL LLFolderViewFolder::setSelection(LLFolderViewItem* selection, BOOL openitem,
- BOOL take_keyboard_focus)
+ BOOL take_keyboard_focus)
{
BOOL rv = FALSE;
- if( selection == this )
+ if (selection == this)
{
- mIsSelected = TRUE;
- if(mListener)
+ if (!isSelected())
+ {
+ selectItem();
+ }
+ if (mListener)
{
mListener->selectItem();
}
@@ -1481,7 +1528,10 @@ BOOL LLFolderViewFolder::setSelection(LLFolderViewItem* selection, BOOL openitem
}
else
{
- mIsSelected = FALSE;
+ if (isSelected())
+ {
+ deselectItem();
+ }
rv = FALSE;
}
BOOL child_selected = FALSE;
@@ -1513,21 +1563,31 @@ BOOL LLFolderViewFolder::setSelection(LLFolderViewItem* selection, BOOL openitem
return rv;
}
-// This method is used to change the selection of an item. If
-// selection is 'this', then note selection as true. Returns TRUE
-// if this or a child is now selected.
-BOOL LLFolderViewFolder::changeSelection(LLFolderViewItem* selection,
- BOOL selected)
+// This method is used to change the selection of an item.
+// Recursively traverse all children; if 'selection' is 'this' then change
+// the select status if necessary.
+// Returns TRUE if the selection state of this folder, or of a child, was changed.
+BOOL LLFolderViewFolder::changeSelection(LLFolderViewItem* selection, BOOL selected)
{
BOOL rv = FALSE;
if(selection == this)
{
- mIsSelected = selected;
- if(mListener && selected)
+ if (isSelected() != selected)
+ {
+ rv = TRUE;
+ if (selected)
+ {
+ selectItem();
+ }
+ else
+ {
+ deselectItem();
+ }
+ }
+ if (mListener && selected)
{
mListener->selectItem();
}
- rv = TRUE;
}
for (folders_t::iterator iter = mFolders.begin();
@@ -1551,16 +1611,14 @@ BOOL LLFolderViewFolder::changeSelection(LLFolderViewItem* selection,
return rv;
}
-S32 LLFolderViewFolder::extendSelection(LLFolderViewItem* selection, LLFolderViewItem* last_selected, LLDynamicArray<LLFolderViewItem*>& selected_items)
+void LLFolderViewFolder::extendSelection(LLFolderViewItem* selection, LLFolderViewItem* last_selected, LLDynamicArray<LLFolderViewItem*>& selected_items)
{
- S32 num_selected = 0;
-
// pass on to child folders first
for (folders_t::iterator iter = mFolders.begin();
iter != mFolders.end();)
{
folders_t::iterator fit = iter++;
- num_selected += (*fit)->extendSelection(selection, last_selected, selected_items);
+ (*fit)->extendSelection(selection, last_selected, selected_items);
}
// handle selection of our immediate children...
@@ -1653,7 +1711,6 @@ S32 LLFolderViewFolder::extendSelection(LLFolderViewItem* selection, LLFolderVie
if (item->changeSelection(item, TRUE))
{
selected_items.put(item);
- num_selected++;
}
}
}
@@ -1663,11 +1720,8 @@ S32 LLFolderViewFolder::extendSelection(LLFolderViewItem* selection, LLFolderVie
if (selection->changeSelection(selection, TRUE))
{
selected_items.put(selection);
- num_selected++;
}
}
-
- return num_selected;
}
void LLFolderViewFolder::destroyView()
@@ -1717,6 +1771,10 @@ void LLFolderViewFolder::removeView(LLFolderViewItem* item)
return;
}
// deselect without traversing hierarchy
+ if (item->isSelected())
+ {
+ item->deselectItem();
+ }
getRoot()->removeFromSelectionList(item);
extractItem(item);
delete item;
@@ -1732,16 +1790,24 @@ void LLFolderViewFolder::extractItem( LLFolderViewItem* item )
// This is an evil downcast. However, it's only doing
// pointer comparison to find if (which it should be ) the
// item is in the container, so it's pretty safe.
- LLFolderViewFolder* f = reinterpret_cast<LLFolderViewFolder*>(item);
+ LLFolderViewFolder* f = static_cast<LLFolderViewFolder*>(item);
folders_t::iterator ft;
ft = std::find(mFolders.begin(), mFolders.end(), f);
- if(ft != mFolders.end())
+ if (ft != mFolders.end())
{
+ if ((*ft)->numSelected())
+ {
+ recursiveIncrementNumDescendantsSelected(-(*ft)->numSelected());
+ }
mFolders.erase(ft);
}
}
else
{
+ if ((*it)->isSelected())
+ {
+ recursiveIncrementNumDescendantsSelected(-1);
+ }
mItems.erase(it);
}
//item has been removed, need to update filter
@@ -1905,6 +1971,10 @@ BOOL LLFolderViewFolder::isRemovable()
BOOL LLFolderViewFolder::addItem(LLFolderViewItem* item)
{
mItems.push_back(item);
+ if (item->isSelected())
+ {
+ recursiveIncrementNumDescendantsSelected(1);
+ }
item->setRect(LLRect(0, 0, getRect().getWidth(), 0));
item->setVisible(FALSE);
addChild( item );
@@ -1918,6 +1988,10 @@ BOOL LLFolderViewFolder::addItem(LLFolderViewItem* item)
BOOL LLFolderViewFolder::addFolder(LLFolderViewFolder* folder)
{
mFolders.push_back(folder);
+ if (folder->numSelected())
+ {
+ recursiveIncrementNumDescendantsSelected(folder->numSelected());
+ }
folder->setOrigin(0, 0);
folder->reshape(getRect().getWidth(), 0);
folder->setVisible(FALSE);
diff --git a/indra/newview/llfolderviewitem.h b/indra/newview/llfolderviewitem.h
index d6e4b2f556..ab9317afd9 100644
--- a/indra/newview/llfolderviewitem.h
+++ b/indra/newview/llfolderviewitem.h
@@ -2,31 +2,25 @@
* @file llfolderviewitem.h
* @brief Items and folders that can appear in a hierarchical folder view
*
-* $LicenseInfo:firstyear=2001&license=viewergpl$
-*
-* Copyright (c) 2001-2009, Linden Research, Inc.
-*
+* $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
-* The source code in this file ("Source Code") is provided by Linden Lab
-* to you under the terms of the GNU General Public License, version 2.0
-* ("GPL"), unless you have obtained a separate licensing agreement
-* ("Other License"), formally executed by you and Linden Lab. Terms of
-* the GPL can be found in doc/GPL-license.txt in this distribution, or
-* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+* Copyright (C) 2010, Linden Research, Inc.
*
-* There are special exceptions to the terms and conditions of the GPL as
-* it is applied to this Source Code. View the full text of the exception
-* in the file doc/FLOSS-exception.txt in this software distribution, or
-* online at
-* http://secondlifegrid.net/programs/open_source/licensing/flossexception
+* 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.
*
-* By copying, modifying or distributing this software, you acknowledge
-* that you have read and understood your obligations described above,
-* and agree to abide by those obligations.
+* 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.
*
-* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
-* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
-* COMPLETENESS OR PERFORMANCE.
+* 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 LLFOLDERVIEWITEM_H
@@ -114,7 +108,7 @@ public:
// layout constants
static const S32 LEFT_PAD = 5;
- // LEFT_INDENTATION is set via folder_indentation above
+ // LEFT_INDENTATION is set via folder_indentation above
static const S32 ICON_PAD = 2;
static const S32 ICON_WIDTH = 16;
static const S32 TEXT_PAD = 1;
@@ -127,6 +121,9 @@ public:
// Mostly for debugging printout purposes.
const std::string& getSearchableLabel() { return mSearchableLabel; }
+private:
+ BOOL mIsSelected;
+
protected:
friend class LLUICtrlFactory;
friend class LLFolderViewEventListener;
@@ -140,7 +137,6 @@ protected:
time_t mCreationDate;
LLFolderViewFolder* mParentFolder;
LLFolderViewEventListener* mListener;
- BOOL mIsSelected;
BOOL mIsCurSelection;
BOOL mSelectPending;
LLFontGL::StyleFlags mLabelStyle;
@@ -218,19 +214,23 @@ public:
virtual void dirtyFilter();
- // If the selection is 'this' then note that otherwise
- // ignore. Returns TRUE if this object was affected. If open is
- // TRUE, then folders are opened up along the way to the
- // selection.
- virtual BOOL setSelection(LLFolderViewItem* selection, BOOL openitem,
- BOOL take_keyboard_focus);
+ // If 'selection' is 'this' then note that otherwise ignore.
+ // Returns TRUE if this item ends up being selected.
+ virtual BOOL setSelection(LLFolderViewItem* selection, BOOL openitem, BOOL take_keyboard_focus);
- // This method is used to toggle the selection of an item. If
- // selection is 'this', then note selection, and return TRUE.
+ // This method is used to set the selection state of an item.
+ // If 'selection' is 'this' then note selection.
+ // Returns TRUE if the selection state of this item was changed.
virtual BOOL changeSelection(LLFolderViewItem* selection, BOOL selected);
// this method is used to group select items
- virtual S32 extendSelection(LLFolderViewItem* selection, LLFolderViewItem* last_selected, LLDynamicArray<LLFolderViewItem*>& items){ return FALSE; }
+ virtual void extendSelection(LLFolderViewItem* selection, LLFolderViewItem* last_selected, LLDynamicArray<LLFolderViewItem*>& items) { }
+
+ // this method is used to deselect this element
+ void deselectItem();
+
+ // this method is used to select this element
+ void selectItem();
// gets multiple-element selection
virtual std::set<LLUUID> getSelectionList() const;
@@ -244,7 +244,7 @@ public:
// destroys this item recursively
virtual void destroyView();
- BOOL isSelected() { return mIsSelected; }
+ BOOL isSelected() const { return mIsSelected; }
void setUnselected() { mIsSelected = FALSE; }
@@ -253,7 +253,7 @@ public:
BOOL getIsCurSelection() { return mIsCurSelection; }
BOOL hasVisibleChildren() { return mHasVisibleChildren; }
-
+
void setShowLoadStatus(bool status) { mShowLoadStatus = status; }
// Call through to the viewed object and return true if it can be
@@ -365,6 +365,13 @@ public:
UNKNOWN, TRASH, NOT_TRASH
} ETrash;
+private:
+ S32 mNumDescendantsSelected;
+
+public: // Accessed needed by LLFolderViewItem
+ void recursiveIncrementNumDescendantsSelected(S32 increment);
+ S32 numSelected(void) const { return mNumDescendantsSelected + (isSelected() ? 1 : 0); }
+
protected:
typedef std::list<LLFolderViewItem*> items_t;
typedef std::list<LLFolderViewFolder*> folders_t;
@@ -426,18 +433,19 @@ public:
virtual void dirtyFilter();
// Passes selection information on to children and record
- // selection information if necessary. Returns TRUE if this object
- // (or a child) was affected.
- virtual BOOL setSelection(LLFolderViewItem* selection, BOOL openitem,
- BOOL take_keyboard_focus);
-
- // This method is used to change the selection of an item. If
- // selection is 'this', then note selection as true. Returns TRUE
- // if this or a child is now selected.
+ // selection information if necessary.
+ // Returns TRUE if this object (or a child) ends up being selected.
+ // If 'openitem' is TRUE then folders are opened up along the way to the selection.
+ virtual BOOL setSelection(LLFolderViewItem* selection, BOOL openitem, BOOL take_keyboard_focus);
+
+ // This method is used to change the selection of an item.
+ // Recursively traverse all children; if 'selection' is 'this' then change
+ // the select status if necessary.
+ // Returns TRUE if the selection state of this folder, or of a child, was changed.
virtual BOOL changeSelection(LLFolderViewItem* selection, BOOL selected);
// this method is used to group select items
- virtual S32 extendSelection(LLFolderViewItem* selection, LLFolderViewItem* last_selected, LLDynamicArray<LLFolderViewItem*>& items);
+ virtual void extendSelection(LLFolderViewItem* selection, LLFolderViewItem* last_selected, LLDynamicArray<LLFolderViewItem*>& items);
// Returns true is this object and all of its children can be removed.
virtual BOOL isRemovable();
@@ -527,6 +535,7 @@ public:
time_t getCreationDate() const;
bool isTrash() const;
+ S32 getNumSelectedDescendants(void) const { return mNumDescendantsSelected; }
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/indra/newview/llfollowcam.cpp b/indra/newview/llfollowcam.cpp
index b9b4fbe14b..b670af1782 100644
--- a/indra/newview/llfollowcam.cpp
+++ b/indra/newview/llfollowcam.cpp
@@ -3,31 +3,25 @@
* @author Jeffrey Ventrella
* @brief LLFollowCam class implementation
*
- * $LicenseInfo:firstyear=2005&license=viewergpl$
- *
- * Copyright (c) 2005-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfollowcam.h b/indra/newview/llfollowcam.h
index e3d5d1c189..f4b7b2723a 100644
--- a/indra/newview/llfollowcam.h
+++ b/indra/newview/llfollowcam.h
@@ -3,31 +3,25 @@
* @author Jeffrey Ventrella
* @brief LLFollowCam class definition
*
- * $LicenseInfo:firstyear=2005&license=viewergpl$
- *
- * Copyright (c) 2005-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llfriendcard.cpp b/indra/newview/llfriendcard.cpp
index 7f28e09933..2f856abe8f 100644
--- a/indra/newview/llfriendcard.cpp
+++ b/indra/newview/llfriendcard.cpp
@@ -2,31 +2,25 @@
* @file llfriendcard.cpp
* @brief Implementation of classes to process Friends Cards
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -299,6 +293,17 @@ void LLFriendCardsManager::collectFriendsLists(folderid_buddies_map_t& folderBud
{
folderBuddiesMap.clear();
+ static bool syncronize_friends_folders = true;
+ if (syncronize_friends_folders)
+ {
+ // Checks whether "Friends" and "Friends/All" folders exist in "Calling Cards" folder,
+ // fetches their contents if needed and synchronizes it with buddies list.
+ // If the folders are not found they are created.
+ LLFriendCardsManager::instance().syncFriendCardsFolders();
+ syncronize_friends_folders = false;
+ }
+
+
LLInventoryModel::cat_array_t* listFolders;
LLInventoryModel::item_array_t* items;
diff --git a/indra/newview/llfriendcard.h b/indra/newview/llfriendcard.h
index 638a1eca84..b7f0bada14 100644
--- a/indra/newview/llfriendcard.h
+++ b/indra/newview/llfriendcard.h
@@ -2,31 +2,25 @@
* @file llfriendcard.h
* @brief Definition of classes to process Friends Cards
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llgesturemgr.cpp b/indra/newview/llgesturemgr.cpp
index 6ffd534a53..f658287fb1 100644
--- a/indra/newview/llgesturemgr.cpp
+++ b/indra/newview/llgesturemgr.cpp
@@ -2,31 +2,25 @@
* @file llgesturemgr.cpp
* @brief Manager for playing gestures on the viewer
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -1174,12 +1168,11 @@ void LLGestureMgr::notifyObservers()
{
lldebugs << "LLGestureMgr::notifyObservers" << llendl;
- std::vector<LLGestureManagerObserver*> observers = mObservers;
-
- std::vector<LLGestureManagerObserver*>::iterator it;
- for (it = observers.begin(); it != observers.end(); ++it)
+ for(std::vector<LLGestureManagerObserver*>::iterator iter = mObservers.begin();
+ iter != mObservers.end();
+ ++iter)
{
- LLGestureManagerObserver* observer = *it;
+ LLGestureManagerObserver* observer = (*iter);
observer->changed();
}
}
diff --git a/indra/newview/llgesturemgr.h b/indra/newview/llgesturemgr.h
index 5f2c3e2d61..b9935efeb3 100644
--- a/indra/newview/llgesturemgr.h
+++ b/indra/newview/llgesturemgr.h
@@ -2,31 +2,25 @@
* @file llgesturemgr.h
* @brief Manager for playing gestures on the viewer
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llgiveinventory.cpp b/indra/newview/llgiveinventory.cpp
index 6470e9d6fe..260e15c714 100644
--- a/indra/newview/llgiveinventory.cpp
+++ b/indra/newview/llgiveinventory.cpp
@@ -2,31 +2,25 @@
* @file llgiveinventory.cpp
* @brief LLGiveInventory class implementation
*
- * $LicenseInfo:firstyear=2010&license=viewergpl$
- *
- * Copyright (c) 2010, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2010&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
diff --git a/indra/newview/llgiveinventory.h b/indra/newview/llgiveinventory.h
index 86f0f2fe86..e1e221c75b 100644
--- a/indra/newview/llgiveinventory.h
+++ b/indra/newview/llgiveinventory.h
@@ -2,31 +2,25 @@
* @file llgiveinventory.cpp
* @brief LLGiveInventory class declaration
*
- * $LicenseInfo:firstyear=2010&license=viewergpl$
- *
- * Copyright (c) 2010, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2010&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
diff --git a/indra/newview/llglsandbox.cpp b/indra/newview/llglsandbox.cpp
index 2aba0b5c09..83846f5b61 100644
--- a/indra/newview/llglsandbox.cpp
+++ b/indra/newview/llglsandbox.cpp
@@ -2,31 +2,25 @@
* @file llglsandbox.cpp
* @brief GL functionality access
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llgroupactions.cpp b/indra/newview/llgroupactions.cpp
index 438159b2e6..c42b397252 100644
--- a/indra/newview/llgroupactions.cpp
+++ b/indra/newview/llgroupactions.cpp
@@ -2,31 +2,25 @@
* @file llgroupactions.cpp
* @brief Group-related actions (join, leave, new, delete, etc)
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llgroupactions.h b/indra/newview/llgroupactions.h
index 55cae4db0b..c52a25818b 100644
--- a/indra/newview/llgroupactions.h
+++ b/indra/newview/llgroupactions.h
@@ -2,31 +2,25 @@
* @file llgroupactions.h
* @brief Group-related actions (join, leave, new, delete, etc)
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llgroupiconctrl.cpp b/indra/newview/llgroupiconctrl.cpp
index 5760242bc8..2f9810775b 100644
--- a/indra/newview/llgroupiconctrl.cpp
+++ b/indra/newview/llgroupiconctrl.cpp
@@ -2,31 +2,25 @@
* @file llgroupiconctrl.cpp
* @brief LLGroupIconCtrl class implementation
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llgroupiconctrl.h b/indra/newview/llgroupiconctrl.h
index 7ac2ca0219..f42593c9e1 100644
--- a/indra/newview/llgroupiconctrl.h
+++ b/indra/newview/llgroupiconctrl.h
@@ -2,31 +2,25 @@
* @file llgroupiconctrl.h
* @brief LLGroupIconCtrl class declaration
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llgrouplist.cpp b/indra/newview/llgrouplist.cpp
index da5196df45..c3e6e1c2dc 100644
--- a/indra/newview/llgrouplist.cpp
+++ b/indra/newview/llgrouplist.cpp
@@ -2,31 +2,25 @@
* @file llgrouplist.cpp
* @brief List of the groups the agent belongs to.
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -212,8 +206,8 @@ void LLGroupList::addNewItem(const LLUUID& id, const std::string& name, const LL
item->setName(name, mNameFilter);
item->setGroupIconID(icon_id);
- item->childSetVisible("info_btn", false);
- item->childSetVisible("profile_btn", false);
+ item->getChildView("info_btn")->setVisible( false);
+ item->getChildView("profile_btn")->setVisible( false);
item->setGroupIconVisible(mShowIcons);
addItem(item, id, pos);
@@ -289,7 +283,7 @@ mGroupNameBox(NULL),
mInfoBtn(NULL),
mGroupID(LLUUID::null)
{
- LLUICtrlFactory::getInstance()->buildPanel(this, "panel_group_list_item.xml");
+ buildFromFile( "panel_group_list_item.xml");
// Remember group icon width including its padding from the name text box,
// so that we can hide and show the icon again later.
@@ -323,16 +317,16 @@ void LLGroupListItem::setValue( const LLSD& value )
{
if (!value.isMap()) return;
if (!value.has("selected")) return;
- childSetVisible("selected_icon", value["selected"]);
+ getChildView("selected_icon")->setVisible( value["selected"]);
}
void LLGroupListItem::onMouseEnter(S32 x, S32 y, MASK mask)
{
- childSetVisible("hovered_icon", true);
+ getChildView("hovered_icon")->setVisible( true);
if (mGroupID.notNull()) // don't show the info button for the "none" group
{
mInfoBtn->setVisible(true);
- childSetVisible("profile_btn", true);
+ getChildView("profile_btn")->setVisible( true);
}
LLPanel::onMouseEnter(x, y, mask);
@@ -340,9 +334,9 @@ void LLGroupListItem::onMouseEnter(S32 x, S32 y, MASK mask)
void LLGroupListItem::onMouseLeave(S32 x, S32 y, MASK mask)
{
- childSetVisible("hovered_icon", false);
+ getChildView("hovered_icon")->setVisible( false);
mInfoBtn->setVisible(false);
- childSetVisible("profile_btn", false);
+ getChildView("profile_btn")->setVisible( false);
LLPanel::onMouseLeave(x, y, mask);
}
diff --git a/indra/newview/llgrouplist.h b/indra/newview/llgrouplist.h
index 16f3fc05a3..d7051db891 100644
--- a/indra/newview/llgrouplist.h
+++ b/indra/newview/llgrouplist.h
@@ -2,31 +2,25 @@
* @file llgrouplist.h
* @brief List of the groups the agent belongs to.
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llgroupmgr.cpp b/indra/newview/llgroupmgr.cpp
index 996553ccf7..7546c070ea 100644
--- a/indra/newview/llgroupmgr.cpp
+++ b/indra/newview/llgroupmgr.cpp
@@ -2,31 +2,25 @@
* @file llgroupmgr.cpp
* @brief LLGroupMgr class implementation
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -903,7 +897,15 @@ void LLGroupMgr::processGroupMembersReply(LLMessageSystem* msg, void** data)
if (member_id.notNull())
{
- formatDateString(online_status); // reformat for sorting, e.g. 12/25/2008 -> 2008/12/25
+ if (online_status == "Online")
+ {
+ static std::string localized_online(LLTrans::getString("group_member_status_online"));
+ online_status = localized_online;
+ }
+ else
+ {
+ formatDateString(online_status); // reformat for sorting, e.g. 12/25/2008 -> 2008/12/25
+ }
//llinfos << "Member " << member_id << " has powers " << std::hex << agent_powers << std::dec << llendl;
LLGroupMemberData* newdata = new LLGroupMemberData(member_id,
@@ -1173,8 +1175,8 @@ void LLGroupMgr::processGroupRoleMembersReply(LLMessageSystem* msg, void** data)
}
else
{
- if (!rd) llwarns << "Received role data for unkown role " << role_id << " in group " << group_id << llendl;
- if (!md) llwarns << "Received role data for unkown member " << member_id << " in group " << group_id << llendl;
+ if (!rd) llwarns << "Received role data for unknown role " << role_id << " in group " << group_id << llendl;
+ if (!md) llwarns << "Received role data for unknown member " << member_id << " in group " << group_id << llendl;
}
}
}
diff --git a/indra/newview/llgroupmgr.h b/indra/newview/llgroupmgr.h
index 82df631b8c..faf0531c10 100644
--- a/indra/newview/llgroupmgr.h
+++ b/indra/newview/llgroupmgr.h
@@ -2,31 +2,25 @@
* @file llgroupmgr.h
* @brief Manager for aggregating all client knowledge for specific groups
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llhints.cpp b/indra/newview/llhints.cpp
new file mode 100644
index 0000000000..d837ed8205
--- /dev/null
+++ b/indra/newview/llhints.cpp
@@ -0,0 +1,381 @@
+/**
+ * @file llhints.cpp
+ * @brief Hint popups for displaying context sensitive help in a UI overlay
+ *
+ * $LicenseInfo:firstyear=2000&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" // must be first include
+
+#include "llhints.h"
+
+#include "llbutton.h"
+#include "lltextbox.h"
+#include "llviewerwindow.h"
+#include "llviewercontrol.h"
+#include "llsdparam.h"
+
+class LLHintPopup : public LLPanel
+{
+public:
+
+ typedef enum e_popup_direction
+ {
+ LEFT,
+ TOP,
+ RIGHT,
+ BOTTOM,
+ TOP_RIGHT
+ } EPopupDirection;
+
+ struct PopupDirections : public LLInitParam::TypeValuesHelper<LLHintPopup::EPopupDirection, PopupDirections>
+ {
+ static void declareValues()
+ {
+ declare("left", LLHintPopup::LEFT);
+ declare("right", LLHintPopup::RIGHT);
+ declare("top", LLHintPopup::TOP);
+ declare("bottom", LLHintPopup::BOTTOM);
+ declare("top_right", LLHintPopup::TOP_RIGHT);
+ }
+ };
+
+ struct TargetParams : public LLInitParam::Block<TargetParams>
+ {
+ Mandatory<std::string> target;
+ Mandatory<EPopupDirection, PopupDirections> direction;
+
+ TargetParams()
+ : target("target"),
+ direction("direction")
+ {}
+ };
+
+ struct Params : public LLInitParam::Block<Params, LLPanel::Params>
+ {
+ Mandatory<LLNotificationPtr> notification;
+ Optional<TargetParams> target_params;
+ Optional<S32> distance;
+ Optional<LLUIImage*> left_arrow,
+ up_arrow,
+ right_arrow,
+ down_arrow,
+ lower_left_arrow;
+
+ Optional<S32> left_arrow_offset,
+ up_arrow_offset,
+ right_arrow_offset,
+ down_arrow_offset;
+ Optional<F32> fade_in_time,
+ fade_out_time;
+
+ Params()
+ : distance("distance"),
+ left_arrow("left_arrow"),
+ up_arrow("up_arrow"),
+ right_arrow("right_arrow"),
+ down_arrow("down_arrow"),
+ lower_left_arrow("lower_left_arrow"),
+ left_arrow_offset("left_arrow_offset"),
+ up_arrow_offset("up_arrow_offset"),
+ right_arrow_offset("right_arrow_offset"),
+ down_arrow_offset("down_arrow_offset"),
+ fade_in_time("fade_in_time"),
+ fade_out_time("fade_out_time")
+ {}
+ };
+
+ LLHintPopup(const Params&);
+
+ /*virtual*/ BOOL postBuild();
+
+ void onClickClose() { hide(); LLNotifications::instance().cancel(mNotification); }
+ void draw();
+ void hide() { if(!mHidden) {mHidden = true; mFadeTimer.reset();} }
+
+private:
+ LLNotificationPtr mNotification;
+ std::string mTarget;
+ EPopupDirection mDirection;
+ S32 mDistance;
+ LLUIImagePtr mArrowLeft,
+ mArrowUp,
+ mArrowRight,
+ mArrowDown,
+ mArrowDownAndLeft;
+ S32 mArrowLeftOffset,
+ mArrowUpOffset,
+ mArrowRightOffset,
+ mArrowDownOffset;
+ LLFrameTimer mFadeTimer;
+ F32 mFadeInTime,
+ mFadeOutTime;
+ bool mHidden;
+};
+
+static LLDefaultChildRegistry::Register<LLHintPopup> r("hint_popup");
+
+
+LLHintPopup::LLHintPopup(const LLHintPopup::Params& p)
+: mNotification(p.notification),
+ mDirection(TOP),
+ mDistance(p.distance),
+ mArrowLeft(p.left_arrow),
+ mArrowUp(p.up_arrow),
+ mArrowRight(p.right_arrow),
+ mArrowDown(p.down_arrow),
+ mArrowDownAndLeft(p.lower_left_arrow),
+ mArrowLeftOffset(p.left_arrow_offset),
+ mArrowUpOffset(p.up_arrow_offset),
+ mArrowRightOffset(p.right_arrow_offset),
+ mArrowDownOffset(p.down_arrow_offset),
+ mHidden(false),
+ mFadeInTime(p.fade_in_time),
+ mFadeOutTime(p.fade_out_time),
+ LLPanel(p)
+{
+ if (p.target_params.isProvided())
+ {
+ mDirection = p.target_params.direction;
+ mTarget = p.target_params.target;
+ }
+ buildFromFile( "panel_hint.xml", NULL, p);
+}
+
+BOOL LLHintPopup::postBuild()
+{
+ LLTextBox& hint_text = getChildRef<LLTextBox>("hint_text");
+ hint_text.setText(mNotification->getMessage());
+
+ getChild<LLButton>("close")->setClickedCallback(boost::bind(&LLHintPopup::onClickClose, this));
+ getChild<LLTextBox>("hint_title")->setText(mNotification->getLabel());
+
+ LLRect text_bounds = hint_text.getTextBoundingRect();
+ S32 delta_height = text_bounds.getHeight() - hint_text.getRect().getHeight();
+ reshape(getRect().getWidth(), getRect().getHeight() + delta_height);
+ return TRUE;
+}
+
+void LLHintPopup::draw()
+{
+ F32 alpha = 1.f;
+ if (mHidden)
+ {
+ alpha = clamp_rescale(mFadeTimer.getElapsedTimeF32(), 0.f, mFadeOutTime, 1.f, 0.f);
+ if (alpha == 0.f)
+ {
+ die();
+ return;
+ }
+ }
+ else
+ {
+ alpha = clamp_rescale(mFadeTimer.getElapsedTimeF32(), 0.f, mFadeInTime, 0.f, 1.f);
+ }
+
+ { LLViewDrawContext context(alpha);
+
+ if (mTarget.empty())
+ {
+ // just draw contents, no arrow, in default position
+ LLPanel::draw();
+ }
+ else
+ {
+ LLView* targetp = LLHints::getHintTarget(mTarget).get();
+ if (!targetp)
+ {
+ // target widget is no longer valid, go away
+ die();
+ }
+ else if (!targetp->isInVisibleChain())
+ {
+ // if target is invisible, don't draw, but keep alive in case widget comes back
+ }
+ else
+ {
+ LLRect target_rect;
+ targetp->localRectToOtherView(targetp->getLocalRect(), &target_rect, getParent());
+
+ LLRect my_local_rect = getLocalRect();
+ LLRect my_rect;
+ LLRect arrow_rect;
+ LLUIImagePtr arrow_imagep;
+
+ switch(mDirection)
+ {
+ case LEFT:
+ my_rect.setCenterAndSize( target_rect.mLeft - (my_local_rect.getWidth() / 2 + mDistance),
+ target_rect.getCenterY(),
+ my_local_rect.getWidth(),
+ my_local_rect.getHeight());
+ if (mArrowRight)
+ {
+ arrow_rect.setCenterAndSize(my_local_rect.mRight + mArrowRight->getWidth() / 2 + mArrowRightOffset,
+ my_local_rect.getCenterY(),
+ mArrowRight->getWidth(),
+ mArrowRight->getHeight());
+ arrow_imagep = mArrowRight;
+ }
+ break;
+ case TOP:
+ my_rect.setCenterAndSize( target_rect.getCenterX(),
+ target_rect.mTop + (my_local_rect.getHeight() / 2 + mDistance),
+ my_local_rect.getWidth(),
+ my_local_rect.getHeight());
+ if (mArrowDown)
+ {
+ arrow_rect.setCenterAndSize(my_local_rect.getCenterX(),
+ my_local_rect.mBottom - mArrowDown->getHeight() / 2 + mArrowDownOffset,
+ mArrowDown->getWidth(),
+ mArrowDown->getHeight());
+ arrow_imagep = mArrowDown;
+ }
+ break;
+ case RIGHT:
+ my_rect.setCenterAndSize( target_rect.mRight + (my_local_rect.getWidth() / 2 + mDistance),
+ target_rect.getCenterY(),
+ my_local_rect.getWidth(),
+ my_local_rect.getHeight());
+ if (mArrowLeft)
+ {
+ arrow_rect.setCenterAndSize(my_local_rect.mLeft - mArrowLeft->getWidth() / 2 + mArrowLeftOffset,
+ my_local_rect.getCenterY(),
+ mArrowLeft->getWidth(),
+ mArrowLeft->getHeight());
+ arrow_imagep = mArrowLeft;
+ }
+ break;
+ case BOTTOM:
+ my_rect.setCenterAndSize( target_rect.getCenterX(),
+ target_rect.mBottom - (my_local_rect.getHeight() / 2 + mDistance),
+ my_local_rect.getWidth(),
+ my_local_rect.getHeight());
+ if (mArrowUp)
+ {
+ arrow_rect.setCenterAndSize(my_local_rect.getCenterX(),
+ my_local_rect.mTop + mArrowUp->getHeight() / 2 + mArrowUpOffset,
+ mArrowUp->getWidth(),
+ mArrowUp->getHeight());
+ arrow_imagep = mArrowUp;
+ }
+ break;
+ case TOP_RIGHT:
+ my_rect.setCenterAndSize( target_rect.mRight + (my_local_rect.getWidth() / 2),
+ target_rect.mTop + (my_local_rect.getHeight() / 2 + mDistance),
+ my_local_rect.getWidth(),
+ my_local_rect.getHeight());
+ if (mArrowDownAndLeft)
+ {
+ arrow_rect.setCenterAndSize(my_local_rect.mLeft + mArrowDownAndLeft->getWidth() / 2 + mArrowLeftOffset,
+ my_local_rect.mBottom - mArrowDownAndLeft->getHeight() / 2 + mArrowDownOffset,
+ mArrowDownAndLeft->getWidth(),
+ mArrowDownAndLeft->getHeight());
+ arrow_imagep = mArrowDownAndLeft;
+ }
+ }
+ setShape(my_rect);
+ LLPanel::draw();
+
+ if (arrow_imagep) arrow_imagep->draw(arrow_rect, LLColor4(1.f, 1.f, 1.f, alpha));
+ }
+ }
+ }
+}
+
+
+LLRegistry<std::string, LLHandle<LLView> > LLHints::sTargetRegistry;
+std::map<LLNotificationPtr, class LLHintPopup*> LLHints::sHints;
+
+//static
+void LLHints::show(LLNotificationPtr hint)
+{
+ LLHintPopup::Params p(LLUICtrlFactory::getDefaultParams<LLHintPopup>());
+
+ LLParamSDParser parser;
+ parser.readSD(hint->getPayload(), p, true);
+ p.notification = hint;
+
+ if (p.validateBlock())
+ {
+ LLHintPopup* popup = new LLHintPopup(p);
+
+ sHints[hint] = popup;
+
+ LLView* hint_holder = gViewerWindow->getHintHolder();
+ if (hint_holder)
+ {
+ hint_holder->addChild(popup);
+ popup->centerWithin(hint_holder->getLocalRect());
+ }
+ }
+}
+
+//static
+void LLHints::hide(LLNotificationPtr hint)
+{
+ hint_map_t::iterator found_it = sHints.find(hint);
+ if (found_it != sHints.end())
+ {
+ found_it->second->hide();
+ sHints.erase(found_it);
+ }
+}
+
+//static
+void LLHints::registerHintTarget(const std::string& name, LLHandle<LLView> target)
+{
+ sTargetRegistry.defaultRegistrar().replace(name, target);
+}
+
+//static
+LLHandle<LLView> LLHints::getHintTarget(const std::string& name)
+{
+ LLHandle<LLView>* handlep = sTargetRegistry.getValue(name);
+ if (handlep)
+ {
+ return *handlep;
+ }
+ else
+ {
+ return LLHandle<LLView>();
+ }
+}
+
+//static
+void LLHints::initClass()
+{
+ sRegister.reference();
+
+ LLControlVariablePtr control = gSavedSettings.getControl("EnableUIHints");
+ control->getSignal()->connect(boost::bind(&showHints, _2));
+ gViewerWindow->getHintHolder()->setVisible(control->getValue().asBoolean());
+
+}
+
+//staic
+void LLHints::showHints(const LLSD& show)
+{
+ bool visible = show.asBoolean();
+ gViewerWindow->getHintHolder()->setVisible(visible);
+}
diff --git a/indra/newview/llhints.h b/indra/newview/llhints.h
new file mode 100644
index 0000000000..ebffe561b9
--- /dev/null
+++ b/indra/newview/llhints.h
@@ -0,0 +1,50 @@
+/**
+ * @file llhints.h
+ * @brief Hint popups for displaying context sensitive help in a UI overlay
+ *
+ * $LicenseInfo:firstyear=2000&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_LLHINTS_H
+#define LL_LLHINTS_H
+
+#include "llpanel.h"
+#include "llnotifications.h"
+
+
+class LLHints : public LLInitClass<LLHints>
+{
+public:
+ static void show(LLNotificationPtr hint);
+ static void hide(LLNotificationPtr hint);
+ static void registerHintTarget(const std::string& name, LLHandle<LLView> target);
+ static LLHandle<LLView> getHintTarget(const std::string& name);
+ static void initClass();
+private:
+ static LLRegistry<std::string, LLHandle<LLView> > sTargetRegistry;
+ typedef std::map<LLNotificationPtr, class LLHintPopup*> hint_map_t;
+ static hint_map_t sHints;
+ static void showHints(const LLSD& show);
+};
+
+
+#endif
diff --git a/indra/newview/llhomelocationresponder.cpp b/indra/newview/llhomelocationresponder.cpp
index df478a0a04..4850d18d99 100644
--- a/indra/newview/llhomelocationresponder.cpp
+++ b/indra/newview/llhomelocationresponder.cpp
@@ -3,31 +3,25 @@
* @author Meadhbh Hamrick
* @brief Processes responses to the HomeLocation CapReq
*
- * $LicenseInfo:firstyear=2008&license=viewergpl$
- *
- * Copyright (c) 2008-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2008&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llhomelocationresponder.h b/indra/newview/llhomelocationresponder.h
index 3a1d8ebfed..d640b9c894 100644
--- a/indra/newview/llhomelocationresponder.h
+++ b/indra/newview/llhomelocationresponder.h
@@ -3,31 +3,25 @@
* @author Meadhbh Hamrick
* @brief Processes responses to the HomeLocation CapReq
*
- * $LicenseInfo:firstyear=2008&license=viewergpl$
- *
- * Copyright (c) 2008-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2008&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llhudeffect.cpp b/indra/newview/llhudeffect.cpp
index bfd62805a1..159ec6c803 100644
--- a/indra/newview/llhudeffect.cpp
+++ b/indra/newview/llhudeffect.cpp
@@ -2,31 +2,25 @@
* @file llhudeffect.cpp
* @brief LLHUDEffect class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llhudeffect.h b/indra/newview/llhudeffect.h
index 781e57fa6a..7c825e3f3d 100644
--- a/indra/newview/llhudeffect.h
+++ b/indra/newview/llhudeffect.h
@@ -2,31 +2,25 @@
* @file llhudeffect.h
* @brief LLHUDEffect class definition
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llhudeffectbeam.cpp b/indra/newview/llhudeffectbeam.cpp
index 43a8dd1d81..37b7b2e75d 100644
--- a/indra/newview/llhudeffectbeam.cpp
+++ b/indra/newview/llhudeffectbeam.cpp
@@ -2,31 +2,25 @@
* @file llhudeffectbeam.cpp
* @brief LLHUDEffectBeam class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -311,6 +305,11 @@ void LLHUDEffectBeam::render()
}
}
+void LLHUDEffectBeam::renderForTimer()
+{
+ render();
+}
+
void LLHUDEffectBeam::setupParticle(const S32 i)
{
LLVector3d start_pos_global;
diff --git a/indra/newview/llhudeffectbeam.h b/indra/newview/llhudeffectbeam.h
index 7365894461..fdee5178af 100644
--- a/indra/newview/llhudeffectbeam.h
+++ b/indra/newview/llhudeffectbeam.h
@@ -2,31 +2,25 @@
* @file llhudeffectbeam.h
* @brief LLHUDEffectBeam class definition
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -58,6 +52,7 @@ protected:
~LLHUDEffectBeam();
/*virtual*/ void render();
+ /*virtual*/ void renderForTimer();
/*virtual*/ void packData(LLMessageSystem *mesgsys);
/*virtual*/ void unpackData(LLMessageSystem *mesgsys, S32 blocknum);
private:
diff --git a/indra/newview/llhudeffectlookat.cpp b/indra/newview/llhudeffectlookat.cpp
index 3be0fcbc5f..8cf7d23f88 100644
--- a/indra/newview/llhudeffectlookat.cpp
+++ b/indra/newview/llhudeffectlookat.cpp
@@ -2,31 +2,25 @@
* @file llhudeffectlookat.cpp
* @brief LLHUDEffectLookAt class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llhudeffectlookat.h b/indra/newview/llhudeffectlookat.h
index 922c718f67..fd057715b6 100644
--- a/indra/newview/llhudeffectlookat.h
+++ b/indra/newview/llhudeffectlookat.h
@@ -2,31 +2,25 @@
* @file llhudeffectlookat.h
* @brief LLHUDEffectLookAt class definition
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llhudeffectpointat.cpp b/indra/newview/llhudeffectpointat.cpp
index 01dfb50b10..bfb0f150b3 100644
--- a/indra/newview/llhudeffectpointat.cpp
+++ b/indra/newview/llhudeffectpointat.cpp
@@ -2,31 +2,25 @@
* @file llhudeffectpointat.cpp
* @brief LLHUDEffectPointAt class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llhudeffectpointat.h b/indra/newview/llhudeffectpointat.h
index 278c69fe2b..6200b68cbc 100644
--- a/indra/newview/llhudeffectpointat.h
+++ b/indra/newview/llhudeffectpointat.h
@@ -2,31 +2,25 @@
* @file llhudeffectpointat.h
* @brief LLHUDEffectPointAt class definition
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llhudeffecttrail.cpp b/indra/newview/llhudeffecttrail.cpp
index 786491211d..39b526c1b5 100644
--- a/indra/newview/llhudeffecttrail.cpp
+++ b/indra/newview/llhudeffecttrail.cpp
@@ -2,31 +2,25 @@
* @file llhudeffecttrail.cpp
* @brief LLHUDEffectSpiral class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -286,3 +280,8 @@ void LLHUDEffectSpiral::render()
return;
}
}
+
+void LLHUDEffectSpiral::renderForTimer()
+{
+ render();
+}
diff --git a/indra/newview/llhudeffecttrail.h b/indra/newview/llhudeffecttrail.h
index 60836c2532..6f5a328c63 100644
--- a/indra/newview/llhudeffecttrail.h
+++ b/indra/newview/llhudeffecttrail.h
@@ -2,31 +2,25 @@
* @file llhudeffecttrail.h
* @brief LLHUDEffectSpiral class definition
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -68,6 +62,7 @@ protected:
~LLHUDEffectSpiral();
/*virtual*/ void render();
+ /*virtual*/ void renderForTimer();
/*virtual*/ void packData(LLMessageSystem *mesgsys);
/*virtual*/ void unpackData(LLMessageSystem *mesgsys, S32 blocknum);
private:
diff --git a/indra/newview/llhudicon.cpp b/indra/newview/llhudicon.cpp
index 28b0e7356a..aea8c5928b 100644
--- a/indra/newview/llhudicon.cpp
+++ b/indra/newview/llhudicon.cpp
@@ -2,31 +2,25 @@
* @file llhudicon.cpp
* @brief LLHUDIcon class implementation
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llhudicon.h b/indra/newview/llhudicon.h
index 770e3bbcd0..7712ebac1a 100644
--- a/indra/newview/llhudicon.h
+++ b/indra/newview/llhudicon.h
@@ -2,31 +2,25 @@
* @file llhudicon.h
* @brief LLHUDIcon class definition
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llhudmanager.cpp b/indra/newview/llhudmanager.cpp
index bdb8dadfb4..5f3178b955 100644
--- a/indra/newview/llhudmanager.cpp
+++ b/indra/newview/llhudmanager.cpp
@@ -2,31 +2,25 @@
* @file llhudmanager.cpp
* @brief LLHUDManager class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llhudmanager.h b/indra/newview/llhudmanager.h
index b2b4ffb559..09e79acbfc 100644
--- a/indra/newview/llhudmanager.h
+++ b/indra/newview/llhudmanager.h
@@ -2,31 +2,25 @@
* @file llhudmanager.h
* @brief LLHUDManager class definition
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llhudobject.cpp b/indra/newview/llhudobject.cpp
index 2b73ed1dcd..3e814a0773 100644
--- a/indra/newview/llhudobject.cpp
+++ b/indra/newview/llhudobject.cpp
@@ -2,31 +2,25 @@
* @file llhudobject.cpp
* @brief LLHUDObject class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -311,6 +305,27 @@ void LLHUDObject::renderAllForSelect()
}
// static
+void LLHUDObject::renderAllForTimer()
+{
+ LLHUDObject *hud_objp;
+
+ hud_object_list_t::iterator object_it;
+ for (object_it = sHUDObjects.begin(); object_it != sHUDObjects.end(); )
+ {
+ hud_object_list_t::iterator cur_it = object_it++;
+ hud_objp = (*cur_it);
+ if (hud_objp->getNumRefs() == 1)
+ {
+ sHUDObjects.erase(cur_it);
+ }
+ else if (hud_objp->isVisible())
+ {
+ hud_objp->renderForTimer();
+ }
+ }
+}
+
+// static
void LLHUDObject::sortObjects()
{
sHUDObjects.sort(hud_object_further_away());
diff --git a/indra/newview/llhudobject.h b/indra/newview/llhudobject.h
index d304ac41af..97145b9a84 100644
--- a/indra/newview/llhudobject.h
+++ b/indra/newview/llhudobject.h
@@ -2,31 +2,25 @@
* @file llhudobject.h
* @brief LLHUDObject class definition
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -75,6 +69,7 @@ public:
static void updateAll();
static void renderAll();
static void renderAllForSelect();
+ static void renderAllForTimer();
static void cleanupHUDObjects();
@@ -106,6 +101,7 @@ protected:
virtual void render() = 0;
virtual void renderForSelect() {};
+ virtual void renderForTimer() {};
protected:
U8 mType;
diff --git a/indra/newview/llhudrender.cpp b/indra/newview/llhudrender.cpp
index 47fe641680..1156e764a1 100644
--- a/indra/newview/llhudrender.cpp
+++ b/indra/newview/llhudrender.cpp
@@ -2,31 +2,25 @@
* @file llhudrender.cpp
* @brief LLHUDRender class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llhudrender.h b/indra/newview/llhudrender.h
index 93de89f7b0..b541cd5036 100644
--- a/indra/newview/llhudrender.h
+++ b/indra/newview/llhudrender.h
@@ -2,31 +2,25 @@
* @file llhudrender.h
* @brief LLHUDRender class definition
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llhudtext.cpp b/indra/newview/llhudtext.cpp
index 8d1d27444b..96638018c4 100644
--- a/indra/newview/llhudtext.cpp
+++ b/indra/newview/llhudtext.cpp
@@ -3,31 +3,25 @@
* @file llhudtext.cpp
* @brief LLHUDText class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llhudtext.h b/indra/newview/llhudtext.h
index dc14a8c764..4f4ee55a61 100644
--- a/indra/newview/llhudtext.h
+++ b/indra/newview/llhudtext.h
@@ -2,31 +2,25 @@
* @file llhudtext.h
* @brief LLHUDText class definition
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llhudview.cpp b/indra/newview/llhudview.cpp
index 261d9f1df7..9a63e99357 100644
--- a/indra/newview/llhudview.cpp
+++ b/indra/newview/llhudview.cpp
@@ -2,31 +2,25 @@
* @file llhudview.cpp
* @brief 2D HUD overlay
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -56,7 +50,7 @@ const S32 HUD_ARROW_SIZE = 32;
LLHUDView::LLHUDView(const LLRect& r)
{
- LLUICtrlFactory::getInstance()->buildPanel(this, "panel_hud.xml");
+ buildFromFile( "panel_hud.xml");
setShape(r, true);
}
diff --git a/indra/newview/llhudview.h b/indra/newview/llhudview.h
index 0946e2c5c8..6689554706 100644
--- a/indra/newview/llhudview.h
+++ b/indra/newview/llhudview.h
@@ -2,31 +2,25 @@
* @file llhudview.h
* @brief 2D HUD overlay
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llimfloater.cpp b/indra/newview/llimfloater.cpp
index 967f38bfd2..56d3ed1c4d 100644
--- a/indra/newview/llimfloater.cpp
+++ b/indra/newview/llimfloater.cpp
@@ -2,31 +2,25 @@
* @file llimfloater.cpp
* @brief LLIMFloater class definition
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -257,14 +251,14 @@ BOOL LLIMFloater::postBuild()
}
mControlPanel->setSessionId(mSessionID);
- mControlPanel->setVisible(gSavedSettings.getBOOL("IMShowControlPanel"));
+ mControlPanel->getParent()->setVisible(gSavedSettings.getBOOL("IMShowControlPanel"));
LLButton* slide_left = getChild<LLButton>("slide_left_btn");
- slide_left->setVisible(mControlPanel->getVisible());
+ slide_left->setVisible(mControlPanel->getParent()->getVisible());
slide_left->setClickedCallback(boost::bind(&LLIMFloater::onSlide, this));
LLButton* slide_right = getChild<LLButton>("slide_right_btn");
- slide_right->setVisible(!mControlPanel->getVisible());
+ slide_right->setVisible(!mControlPanel->getParent()->getVisible());
slide_right->setClickedCallback(boost::bind(&LLIMFloater::onSlide, this));
mInputEditor = getChild<LLLineEditor>("chat_editor");
@@ -363,12 +357,12 @@ void* LLIMFloater::createPanelAdHocControl(void* userdata)
void LLIMFloater::onSlide()
{
- mControlPanel->setVisible(!mControlPanel->getVisible());
+ mControlPanel->getParent()->setVisible(!mControlPanel->getParent()->getVisible());
- gSavedSettings.setBOOL("IMShowControlPanel", mControlPanel->getVisible());
+ gSavedSettings.setBOOL("IMShowControlPanel", mControlPanel->getParent()->getVisible());
- getChild<LLButton>("slide_left_btn")->setVisible(mControlPanel->getVisible());
- getChild<LLButton>("slide_right_btn")->setVisible(!mControlPanel->getVisible());
+ getChild<LLButton>("slide_left_btn")->setVisible(mControlPanel->getParent()->getVisible());
+ getChild<LLButton>("slide_right_btn")->setVisible(!mControlPanel->getParent()->getVisible());
LLLayoutStack* stack = getChild<LLLayoutStack>("im_panels");
if (stack) stack->setAnimate(true);
diff --git a/indra/newview/llimfloater.h b/indra/newview/llimfloater.h
index f1e68a2b3d..e604623b1b 100644
--- a/indra/newview/llimfloater.h
+++ b/indra/newview/llimfloater.h
@@ -2,31 +2,25 @@
* @file llimfloater.h
* @brief LLIMFloater class definition
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llimfloatercontainer.cpp b/indra/newview/llimfloatercontainer.cpp
index 9eb11a6ac4..33cb3a54a7 100644
--- a/indra/newview/llimfloatercontainer.cpp
+++ b/indra/newview/llimfloatercontainer.cpp
@@ -2,31 +2,25 @@
* @file llimfloatercontainer.cpp
* @brief Multifloater containing active IM sessions in separate tab container tabs
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -100,9 +94,9 @@ void LLIMFloaterContainer::addFloater(LLFloater* floaterp,
if(gAgent.isInGroup(session_id, TRUE))
{
- LLGroupIconCtrl::Params icon_params = LLUICtrlFactory::instance().getDefaultParams<LLGroupIconCtrl>();
+ LLGroupIconCtrl::Params icon_params;
icon_params.group_id = session_id;
- icon = LLUICtrlFactory::instance().createWidget<LLGroupIconCtrl>(icon_params);
+ icon = LLUICtrlFactory::instance().create<LLGroupIconCtrl>(icon_params);
mSessions[session_id] = floaterp;
floaterp->mCloseSignal.connect(boost::bind(&LLIMFloaterContainer::onCloseFloater, this, session_id));
@@ -111,9 +105,9 @@ void LLIMFloaterContainer::addFloater(LLFloater* floaterp,
{
LLUUID avatar_id = LLIMModel::getInstance()->getOtherParticipantID(session_id);
- LLAvatarIconCtrl::Params icon_params = LLUICtrlFactory::instance().getDefaultParams<LLAvatarIconCtrl>();
+ LLAvatarIconCtrl::Params icon_params;
icon_params.avatar_id = avatar_id;
- icon = LLUICtrlFactory::instance().createWidget<LLAvatarIconCtrl>(icon_params);
+ icon = LLUICtrlFactory::instance().create<LLAvatarIconCtrl>(icon_params);
mSessions[session_id] = floaterp;
floaterp->mCloseSignal.connect(boost::bind(&LLIMFloaterContainer::onCloseFloater, this, session_id));
diff --git a/indra/newview/llimfloatercontainer.h b/indra/newview/llimfloatercontainer.h
index f6cdc25ebd..53dfcd78ff 100644
--- a/indra/newview/llimfloatercontainer.h
+++ b/indra/newview/llimfloatercontainer.h
@@ -2,31 +2,25 @@
* @file llimfloatercontainer.h
* @brief Multifloater containing active IM sessions in separate tab container tabs
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llimhandler.cpp b/indra/newview/llimhandler.cpp
index 1cbd273e96..cd71da7393 100644
--- a/indra/newview/llimhandler.cpp
+++ b/indra/newview/llimhandler.cpp
@@ -2,31 +2,25 @@
* @file llimhandler.cpp
* @brief Notification Handler Class for IM notifications
*
- * $LicenseInfo:firstyear=2000&license=viewergpl$
- *
- * Copyright (c) 2000-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2000&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -121,7 +115,7 @@ bool LLIMHandler::processNotification(const LLSD& notify)
{
mChannel->killToastByNotificationID(notification->getID());
}
- return true;
+ return false;
}
//--------------------------------------------------------------------------
diff --git a/indra/newview/llimpanel.cpp b/indra/newview/llimpanel.cpp
index 0e3b78df7f..b3b0c93b99 100644
--- a/indra/newview/llimpanel.cpp
+++ b/indra/newview/llimpanel.cpp
@@ -2,31 +2,25 @@
* @file llimpanel.cpp
* @brief LLIMPanel class definition
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -174,7 +168,7 @@ LLFloaterIMPanel::LLFloaterIMPanel(const std::string& session_label,
LLUICtrlFactory::getInstance()->buildFloater(this, xml_filename, NULL);
setTitle(mSessionLabel);
- mInputEditor->setMaxTextLength(1023);
+ mInputEditor->setMaxTextLength(DB_IM_MSG_STR_LEN);
// enable line history support for instant message bar
mInputEditor->setEnableLineHistory(TRUE);
diff --git a/indra/newview/llimpanel.h b/indra/newview/llimpanel.h
index abbf1e68ab..c5930b56f7 100644
--- a/indra/newview/llimpanel.h
+++ b/indra/newview/llimpanel.h
@@ -2,31 +2,25 @@
* @file llimpanel.h
* @brief LLIMPanel class definition
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llimview.cpp b/indra/newview/llimview.cpp
index ddfcd68e38..494b5d1e56 100644
--- a/indra/newview/llimview.cpp
+++ b/indra/newview/llimview.cpp
@@ -2,31 +2,25 @@
* @file LLIMMgr.cpp
* @brief Container for Instant Messaging
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -75,7 +69,6 @@ const static std::string IM_TEXT("message");
const static std::string IM_FROM("from");
const static std::string IM_FROM_ID("from_id");
-const static std::string NO_SESSION("(IM Session Doesn't Exist)");
const static std::string ADHOC_NAME_SUFFIX(" Conference");
const static std::string NEARBY_P2P_BY_OTHER("nearby_P2P_by_other");
@@ -253,6 +246,27 @@ LLIMModel::LLIMSession::LLIMSession(const LLUUID& session_id, const std::string&
LLLogChat::loadAllHistory(mHistoryFileName, chat_history);
addMessagesFromHistory(chat_history);
}
+
+ // Localizing name of ad-hoc session. STORM-153
+ // Changing name should happen here- after the history file was created, so that
+ // history files have consistent (English) names in different locales.
+ if (isAdHocSessionType() && IM_SESSION_INVITE == type)
+ {
+ // Name here has a form of "<Avatar's name> Conference"
+ // Lets update it to localize the "Conference" word. See EXT-8429.
+ S32 separator_index = mName.rfind(" ");
+ std::string name = mName.substr(0, separator_index);
+ ++separator_index;
+ std::string conference_word = mName.substr(separator_index, mName.length());
+
+ // additional check that session name is what we expected
+ if ("Conference" == conference_word)
+ {
+ LLStringUtil::format_map_t args;
+ args["[AGENT_NAME]"] = name;
+ LLTrans::findString(mName, "conference-title-incoming", args);
+ }
+ }
}
void LLIMModel::LLIMSession::onVoiceChannelStateChanged(const LLVoiceChannel::EState& old_state, const LLVoiceChannel::EState& new_state, const LLVoiceChannel::EDirection& direction)
@@ -608,7 +622,10 @@ bool LLIMModel::newSession(const LLUUID& session_id, const std::string& name, co
LLIMSession* session = new LLIMSession(session_id, name, type, other_participant_id, ids, voice);
mId2SessionMap[session_id] = session;
- LLIMMgr::getInstance()->notifyObserverSessionAdded(session_id, name, other_participant_id);
+ // When notifying observer, name of session is used instead of "name", because they may not be the
+ // same if it is an adhoc session (in this case name is localized in LLIMSession constructor).
+ std::string session_name = LLIMModel::getInstance()->getName(session_id);
+ LLIMMgr::getInstance()->notifyObserverSessionAdded(session_id, session_name, other_participant_id);
return true;
@@ -778,14 +795,14 @@ LLIMModel::LLIMSession* LLIMModel::addMessageSilently(const LLUUID& session_id,
}
-const std::string& LLIMModel::getName(const LLUUID& session_id) const
+const std::string LLIMModel::getName(const LLUUID& session_id) const
{
LLIMSession* session = findIMSession(session_id);
if (!session)
{
llwarns << "session " << session_id << "does not exist " << llendl;
- return NO_SESSION;
+ return LLTrans::getString("no_session_message");
}
return session->mName;
@@ -1002,19 +1019,6 @@ void LLIMModel::sendMessage(const std::string& utf8_text,
if (is_not_group_id)
{
-
-#if 0
- //use this code to add only online members
- LLIMSpeakerMgr* speaker_mgr = LLIMModel::getInstance()->getSpeakerManager(im_session_id);
- LLSpeakerMgr::speaker_list_t speaker_list;
- speaker_mgr->getSpeakerList(&speaker_list, true);
- for(LLSpeakerMgr::speaker_list_t::iterator it = speaker_list.begin(); it != speaker_list.end(); it++)
- {
- const LLPointer<LLSpeaker>& speakerp = *it;
-
- LLRecentPeople::instance().add(speakerp->mID);
- }
-#else
LLIMModel::LLIMSession* session = LLIMModel::getInstance()->findIMSession(im_session_id);
if( session == 0)//??? shouldn't really happen
{
@@ -1022,15 +1026,27 @@ void LLIMModel::sendMessage(const std::string& utf8_text,
}
else
{
- for(uuid_vec_t::iterator it = session->mInitialTargetIDs.begin();
- it!=session->mInitialTargetIDs.end();++it)
+ // IM_SESSION_INVITE means that this is an Ad-hoc incoming chat
+ // (it can be also Group chat but it is checked above)
+ // In this case mInitialTargetIDs contains Ad-hoc session ID and it should not be added
+ // to Recent People to prevent showing of an item with (???)(???). See EXT-8246.
+ // Concrete participants will be added into this list once they sent message in chat.
+ if (IM_SESSION_INVITE == dialog) return;
+
+ // Add only online members to recent (EXT-8658)
+ LLIMSpeakerMgr* speaker_mgr = LLIMModel::getInstance()->getSpeakerManager(im_session_id);
+ LLSpeakerMgr::speaker_list_t speaker_list;
+ if(speaker_mgr != NULL)
{
- const LLUUID id = *it;
+ speaker_mgr->getSpeakerList(&speaker_list, true);
+ }
+ for(LLSpeakerMgr::speaker_list_t::iterator it = speaker_list.begin(); it != speaker_list.end(); it++)
+ {
+ const LLPointer<LLSpeaker>& speakerp = *it;
- LLRecentPeople::instance().add(id);
+ LLRecentPeople::instance().add(speakerp->mID);
}
}
-#endif
}
@@ -1701,12 +1717,12 @@ void LLOutgoingCallDialog::show(const LLSD& key)
old_caller_name = LLTextUtil::formatPhoneNumber(old_caller_name);
}
- childSetTextArg("leaving", "[CURRENT_CHAT]", old_caller_name);
+ getChild<LLUICtrl>("leaving")->setTextArg("[CURRENT_CHAT]", old_caller_name);
show_oldchannel = true;
}
else
{
- childSetTextArg("leaving", "[CURRENT_CHAT]", getString("localchat"));
+ getChild<LLUICtrl>("leaving")->setTextArg("[CURRENT_CHAT]", getString("localchat"));
}
if (!mPayload["disconnected_channel_name"].asString().empty())
@@ -1716,16 +1732,16 @@ void LLOutgoingCallDialog::show(const LLSD& key)
{
channel_name = LLTextUtil::formatPhoneNumber(channel_name);
}
- childSetTextArg("nearby", "[VOICE_CHANNEL_NAME]", channel_name);
+ getChild<LLUICtrl>("nearby")->setTextArg("[VOICE_CHANNEL_NAME]", channel_name);
// skipping "You will now be reconnected to nearby" in notification when call is ended by disabling voice,
// so no reconnection to nearby chat happens (EXT-4397)
bool voice_works = LLVoiceClient::getInstance()->voiceEnabled() && LLVoiceClient::getInstance()->isVoiceWorking();
std::string reconnect_nearby = voice_works ? LLTrans::getString("reconnect_nearby") : std::string();
- childSetTextArg("nearby", "[RECONNECT_NEARBY]", reconnect_nearby);
+ getChild<LLUICtrl>("nearby")->setTextArg("[RECONNECT_NEARBY]", reconnect_nearby);
const std::string& nearby_str = mPayload["ended_by_agent"] ? NEARBY_P2P_BY_AGENT : NEARBY_P2P_BY_OTHER;
- childSetTextArg(nearby_str, "[RECONNECT_NEARBY]", reconnect_nearby);
+ getChild<LLUICtrl>(nearby_str)->setTextArg("[RECONNECT_NEARBY]", reconnect_nearby);
}
std::string callee_name = mPayload["session_name"].asString();
@@ -1745,8 +1761,8 @@ void LLOutgoingCallDialog::show(const LLSD& key)
setTitle(callee_name);
LLSD callee_id = mPayload["other_user_id"];
- childSetTextArg("calling", "[CALLEE_NAME]", callee_name);
- childSetTextArg("connecting", "[CALLEE_NAME]", callee_name);
+ getChild<LLUICtrl>("calling")->setTextArg("[CALLEE_NAME]", callee_name);
+ getChild<LLUICtrl>("connecting")->setTextArg("[CALLEE_NAME]", callee_name);
// for outgoing group calls callee_id == group id == session id
setIcon(callee_id, callee_id);
@@ -1898,8 +1914,6 @@ BOOL LLIncomingCallDialog::postBuild()
// check to see if this is an Avaline call
bool is_avatar = LLVoiceClient::getInstance()->isParticipantAvatar(session_id);
- childSetVisible("Start IM", is_avatar); // no IM for avaline
-
if (caller_name == "anonymous")
{
caller_name = getString("anonymous");
@@ -1931,6 +1945,10 @@ BOOL LLIncomingCallDialog::postBuild()
mLifetimeTimer.stop();
}
+ //it's not possible to connect to existing Ad-Hoc/Group chat through incoming ad-hoc call
+ //and no IM for avaline
+ getChildView("Start IM")->setVisible( is_avatar && notify_box_type != "VoiceInviteAdHoc" && notify_box_type != "VoiceInviteGroup");
+
setCanDrag(FALSE);
return TRUE;
@@ -1953,12 +1971,12 @@ void LLIncomingCallDialog::onOpen(const LLSD& key)
if (voice && !voice->getSessionName().empty())
{
args["[CURRENT_CHAT]"] = voice->getSessionName();
- childSetText("question", getString(key["question_type"].asString(), args));
+ getChild<LLUICtrl>("question")->setValue(getString(key["question_type"].asString(), args));
}
else
{
args["[CURRENT_CHAT]"] = getString("localchat");
- childSetText("question", getString(key["question_type"].asString(), args));
+ getChild<LLUICtrl>("question")->setValue(getString(key["question_type"].asString(), args));
}
}
@@ -3063,7 +3081,9 @@ public:
std::string saved;
if(offline == IM_OFFLINE)
{
- saved = llformat("(Saved %s) ", formatted_time(timestamp).c_str());
+ LLStringUtil::format_map_t args;
+ args["[LONG_TIMESTAMP]"] = formatted_time(timestamp);
+ saved = LLTrans::getString("Saved_message", args);
}
std::string buffer = saved + message;
diff --git a/indra/newview/llimview.h b/indra/newview/llimview.h
index ffa8a16797..ba8c7ae489 100644
--- a/indra/newview/llimview.h
+++ b/indra/newview/llimview.h
@@ -2,31 +2,25 @@
* @file LLIMMgr.h
* @brief Container for Instant Messaging
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -233,9 +227,10 @@ public:
* Get a session's name.
* For a P2P chat - it's an avatar's name,
* For a group chat - it's a group's name
- * For an ad-hoc chat - is received from the server and is in a from of "<Avatar's name> conference"
+ * For an incoming ad-hoc chat - is received from the server and is in a from of "<Avatar's name> Conference"
+ * It is updated in LLIMModel::LLIMSession's constructor to localize the "Conference".
*/
- const std::string& getName(const LLUUID& session_id) const;
+ const std::string getName(const LLUUID& session_id) const;
/**
* Get number of unread messages in a session with session_id
diff --git a/indra/newview/llinspect.cpp b/indra/newview/llinspect.cpp
index 81cfce53b1..14382e82d7 100644
--- a/indra/newview/llinspect.cpp
+++ b/indra/newview/llinspect.cpp
@@ -1,31 +1,25 @@
/**
* @file llinspect.cpp
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
#include "llviewerprecompiledheaders.h"
diff --git a/indra/newview/llinspect.h b/indra/newview/llinspect.h
index 6d994a8d7c..1f6aafc7bd 100644
--- a/indra/newview/llinspect.h
+++ b/indra/newview/llinspect.h
@@ -1,31 +1,25 @@
/**
* @file llinspect.h
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llinspectavatar.cpp b/indra/newview/llinspectavatar.cpp
index d9fdc876db..b367d68b02 100644
--- a/indra/newview/llinspectavatar.cpp
+++ b/indra/newview/llinspectavatar.cpp
@@ -1,31 +1,25 @@
/**
* @file llinspectavatar.cpp
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -371,7 +365,7 @@ void LLInspectAvatar::requestUpdate()
//remove avatar id from cache to get fresh info
LLAvatarIconIDCache::getInstance()->remove(mAvatarID);
- childSetValue("avatar_icon", LLSD(mAvatarID) );
+ getChild<LLUICtrl>("avatar_icon")->setValue(LLSD(mAvatarID) );
gCacheName->get(mAvatarID, FALSE,
boost::bind(&LLInspectAvatar::nameUpdatedCallback,
@@ -621,7 +615,7 @@ void LLInspectAvatar::nameUpdatedCallback(
if (id == mAvatarID)
{
mAvatarName = first + " " + last;
- childSetValue("user_name", LLSD(mAvatarName) );
+ getChild<LLUICtrl>("user_name")->setValue(LLSD(mAvatarName) );
}
}
diff --git a/indra/newview/llinspectavatar.h b/indra/newview/llinspectavatar.h
index 179ad1ffe1..4329504b62 100644
--- a/indra/newview/llinspectavatar.h
+++ b/indra/newview/llinspectavatar.h
@@ -1,31 +1,25 @@
/**
* @file llinspectavatar.h
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llinspectgroup.cpp b/indra/newview/llinspectgroup.cpp
index 7fd7b69021..214b135bc1 100644
--- a/indra/newview/llinspectgroup.cpp
+++ b/indra/newview/llinspectgroup.cpp
@@ -1,31 +1,25 @@
/**
* @file llinspectgroup.cpp
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -239,7 +233,7 @@ void LLInspectGroup::nameUpdatedCallback(
if (id == mGroupID)
{
// group names are returned as a first name
- childSetValue("group_name", LLSD(first) );
+ getChild<LLUICtrl>("group_name")->setValue(LLSD(first) );
}
// Otherwise possibly a request for an older inspector, ignore it
diff --git a/indra/newview/llinspectgroup.h b/indra/newview/llinspectgroup.h
index dfd5cbcd55..8b135a465e 100644
--- a/indra/newview/llinspectgroup.h
+++ b/indra/newview/llinspectgroup.h
@@ -1,31 +1,25 @@
/**
* @file llinspectgroup.h
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llinspectobject.cpp b/indra/newview/llinspectobject.cpp
index a2b5ffbac4..532ffca4be 100644
--- a/indra/newview/llinspectobject.cpp
+++ b/indra/newview/llinspectobject.cpp
@@ -1,31 +1,25 @@
/**
* @file llinspectobject.cpp
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -161,8 +155,7 @@ BOOL LLInspectObject::postBuild(void)
// Hide floater when name links clicked
LLTextBox* textbox = getChild<LLTextBox>("object_creator");
- textbox->mURLClickSignal.connect(
- boost::bind(&LLInspectObject::closeFloater, this, false) );
+ textbox->setURLClickedCallback(boost::bind(&LLInspectObject::closeFloater, this, false) );
// Hook up functionality
getChild<LLUICtrl>("buy_btn")->setCommitCallback(
diff --git a/indra/newview/llinspectobject.h b/indra/newview/llinspectobject.h
index aa45f401c0..9362139458 100644
--- a/indra/newview/llinspectobject.h
+++ b/indra/newview/llinspectobject.h
@@ -1,31 +1,25 @@
/**
* @file llinspectobject.h
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llinspectremoteobject.cpp b/indra/newview/llinspectremoteobject.cpp
index 97ff771658..e956b3b8de 100644
--- a/indra/newview/llinspectremoteobject.cpp
+++ b/indra/newview/llinspectremoteobject.cpp
@@ -1,31 +1,25 @@
/**
* @file llinspectremoteobject.cpp
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -128,7 +122,16 @@ void LLInspectRemoteObject::onOpen(const LLSD& data)
update();
// Position the inspector relative to the mouse cursor
- LLUI::positionViewNearMouse(this);
+ // Similar to how tooltips are positioned
+ // See LLToolTipMgr::createToolTip
+ if (data.has("pos"))
+ {
+ LLUI::positionViewNearMouse(this, data["pos"]["x"].asInteger(), data["pos"]["y"].asInteger());
+ }
+ else
+ {
+ LLUI::positionViewNearMouse(this);
+ }
}
void LLInspectRemoteObject::onClickMap()
diff --git a/indra/newview/llinspectremoteobject.h b/indra/newview/llinspectremoteobject.h
index e756f1caf4..173efd1c0c 100644
--- a/indra/newview/llinspectremoteobject.h
+++ b/indra/newview/llinspectremoteobject.h
@@ -1,31 +1,25 @@
/**
* @file llinspectremoteobject.h
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llinspecttoast.cpp b/indra/newview/llinspecttoast.cpp
index 3ca8fa2f56..58b3f0309f 100644
--- a/indra/newview/llinspecttoast.cpp
+++ b/indra/newview/llinspecttoast.cpp
@@ -2,31 +2,25 @@
* @file llinspecttoast.cpp
* @brief Toast inspector implementation.
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -55,7 +49,7 @@ public:
private:
void onToastDestroy(LLToast * toast);
-private:
+ boost::signals2::scoped_connection mConnection;
LLPanel* mPanel;
LLScreenChannel* mScreenChannel;
};
@@ -88,7 +82,7 @@ void LLInspectToast::onOpen(const LLSD& notification_id)
llwarns << "Could not get requested toast from screen channel." << llendl;
return;
}
- toast->setOnToastDestroyedCallback(boost::bind(&LLInspectToast::onToastDestroy, this, _1));
+ mConnection = toast->setOnToastDestroyedCallback(boost::bind(&LLInspectToast::onToastDestroy, this, _1));
LLPanel * panel = toast->getPanel();
panel->setVisible(TRUE);
diff --git a/indra/newview/llinspecttoast.h b/indra/newview/llinspecttoast.h
index ff547154b8..441dffdfde 100644
--- a/indra/newview/llinspecttoast.h
+++ b/indra/newview/llinspecttoast.h
@@ -1,31 +1,25 @@
/**
* @file llinspecttoast.h
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llinventoryactions.h b/indra/newview/llinventoryactions.h
index 79247e3abb..96e9f42ca4 100644
--- a/indra/newview/llinventoryactions.h
+++ b/indra/newview/llinventoryactions.h
@@ -3,31 +3,25 @@
* @brief inventory callback functions
* class definition
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llinventorybridge.cpp b/indra/newview/llinventorybridge.cpp
index afaeddaaeb..569dfc08e2 100644
--- a/indra/newview/llinventorybridge.cpp
+++ b/indra/newview/llinventorybridge.cpp
@@ -2,31 +2,25 @@
* @file llinventorybridge.cpp
* @brief Implementation of the Inventory-Folder-View-Bridge classes.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -34,19 +28,20 @@
#include "llinventorybridge.h"
// external projects
-#include "lltransfersourceasset.h"
+#include "lltransfersourceasset.h"
#include "llagent.h"
#include "llagentcamera.h"
#include "llagentwearables.h"
#include "llappearancemgr.h"
-#include "llavataractions.h"
+#include "llattachmentsmgr.h"
+#include "llavataractions.h"
#include "llfloateropenobject.h"
#include "llfloaterreg.h"
#include "llfloaterworldmap.h"
#include "llfriendcard.h"
#include "llgesturemgr.h"
-#include "llgiveinventory.h"
+#include "llgiveinventory.h"
#include "llimfloater.h"
#include "llimview.h"
#include "llinventoryclipboard.h"
@@ -72,7 +67,6 @@
#include "llviewerwindow.h"
#include "llvoavatarself.h"
#include "llwearablelist.h"
-#include "llpaneloutfitsinventory.h"
typedef std::pair<LLUUID, LLUUID> two_uuids_t;
typedef std::list<two_uuids_t> two_uuids_list_t;
@@ -107,7 +101,7 @@ void dec_busy_count()
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_replace_attachment_rez(const LLSD& notification, const LLSD& response);
+bool confirm_attachment_rez(const LLSD& notification, const LLSD& response);
void teleport_via_landmark(const LLUUID& asset_id);
// +=================================================+
@@ -445,7 +439,8 @@ BOOL LLInvFVBridge::isClipboardPasteableAsLink() const
void hide_context_entries(LLMenuGL& menu,
const menuentry_vec_t &entries_to_show,
- const menuentry_vec_t &disabled_entries)
+ const menuentry_vec_t &disabled_entries,
+ BOOL append) // If append is TRUE, then new enabled entries
{
const LLView::child_list_t *list = menu.getChildList();
@@ -453,13 +448,15 @@ void hide_context_entries(LLMenuGL& menu,
// if the first element is a separator, it will not be shown.
BOOL is_previous_entry_separator = TRUE;
- LLView::child_list_t::const_iterator itor;
- for (itor = list->begin(); itor != list->end(); ++itor)
+ for (LLView::child_list_t::const_iterator itor = list->begin();
+ itor != list->end();
+ ++itor)
{
- std::string name = (*itor)->getName();
+ LLView *menu_item = (*itor);
+ std::string name = menu_item->getName();
// descend into split menus:
- LLMenuItemBranchGL* branchp = dynamic_cast<LLMenuItemBranchGL*>(*itor);
+ LLMenuItemBranchGL* branchp = dynamic_cast<LLMenuItemBranchGL*>(menu_item);
if ((name == "More") && branchp)
{
hide_context_entries(*branchp->getBranch(), entries_to_show, disabled_entries);
@@ -480,7 +477,7 @@ void hide_context_entries(LLMenuGL& menu,
// between two separators).
if (found)
{
- const BOOL is_entry_separator = (dynamic_cast<LLMenuItemSeparatorGL *>(*itor) != NULL);
+ const BOOL is_entry_separator = (dynamic_cast<LLMenuItemSeparatorGL *>(menu_item) != NULL);
if (is_entry_separator && is_previous_entry_separator)
found = false;
is_previous_entry_separator = is_entry_separator;
@@ -488,16 +485,27 @@ void hide_context_entries(LLMenuGL& menu,
if (!found)
{
- (*itor)->setVisible(FALSE);
+ if (!menu_item->getLastVisible())
+ {
+ menu_item->setVisible(FALSE);
+ }
+ menu_item->setEnabled(FALSE);
}
else
{
- (*itor)->setVisible(TRUE);
+ menu_item->setVisible(TRUE);
+ // A bit of a hack so we can remember that some UI element explicitly set this to be visible
+ // so that some other UI element from multi-select doesn't later set this invisible.
+ menu_item->pushVisible(TRUE);
+ if (append)
+ {
+ menu_item->setEnabled(TRUE);
+ }
for (itor2 = disabled_entries.begin(); itor2 != disabled_entries.end(); ++itor2)
{
if (*itor2 == name)
{
- (*itor)->setEnabled(FALSE);
+ menu_item->setEnabled(FALSE);
}
}
}
@@ -511,17 +519,6 @@ void LLInvFVBridge::getClipboardEntries(bool show_asset_id,
{
const LLInventoryObject *obj = getInventoryObject();
- bool is_sidepanel = isInOutfitsSidePanel();
- if (is_sidepanel)
- {
- // Sidepanel includes restricted menu.
- if (obj && obj->getIsLinkType() && !get_is_item_worn(mUUID))
- {
- items.push_back(std::string("Remove Link"));
- }
- return;
- }
-
if (obj)
{
if (obj->getIsLinkType())
@@ -948,18 +945,10 @@ void LLInvFVBridge::purgeItem(LLInventoryModel *model, const LLUUID &uuid)
}
}
-BOOL LLInvFVBridge::isInOutfitsSidePanel() const
-{
- LLInventoryPanel *my_panel = dynamic_cast<LLInventoryPanel*>(mInventoryPanel.get());
- LLPanelOutfitsInventory *outfit_panel =
- dynamic_cast<LLPanelOutfitsInventory*>(LLSideTray::getInstance()->getPanel("panel_outfits_inventory"));
- if (!outfit_panel)
- return FALSE;
- return outfit_panel->isTabPanel(my_panel);
-}
-
BOOL LLInvFVBridge::canShare() const
{
+ if (!isAgentInventory()) return FALSE;
+
const LLInventoryModel* model = getInventoryModel();
if (!model) return FALSE;
@@ -971,9 +960,10 @@ BOOL LLInvFVBridge::canShare() const
return (BOOL)LLGiveInventory::isInventoryGiveAcceptable(item);
}
- // All categories can be given.
- const LLViewerInventoryCategory* cat = model->getCategory(mUUID);
- return (cat != NULL);
+ // Categories can be given.
+ if (model->getCategory(mUUID)) return TRUE;
+
+ return FALSE;
}
// +=================================================+
@@ -1275,6 +1265,12 @@ BOOL LLItemBridge::isItemRenameable() const
{
return FALSE;
}
+
+ if (!item->isFinished()) // EXT-8662
+ {
+ return FALSE;
+ }
+
return (item->getPermissions().allowModifyBy(gAgent.getID()));
}
return FALSE;
@@ -1452,7 +1448,7 @@ bool LLItemBridge::isRemoveAction(std::string action) const
// | LLFolderBridge |
// +=================================================+
-LLFolderBridge* LLFolderBridge::sSelf=NULL;
+LLHandle<LLFolderBridge> LLFolderBridge::sSelf;
// Can be moved to another folder
BOOL LLFolderBridge::isItemMovable() const
@@ -1632,85 +1628,71 @@ BOOL LLFolderBridge::isClipboardPasteableAsLink() const
BOOL LLFolderBridge::dragCategoryIntoFolder(LLInventoryCategory* inv_cat,
BOOL drop)
{
- // This should never happen, but if an inventory item is incorrectly parented,
- // the UI will get confused and pass in a NULL.
- if(!inv_cat) return FALSE;
LLInventoryModel* model = getInventoryModel();
- if(!model) return FALSE;
+ if (!inv_cat) return FALSE; // shouldn't happen, but in case item is incorrectly parented in which case inv_cat will be NULL
+ if (!model) return FALSE;
if (!isAgentAvatarValid()) return FALSE;
+ if (!isAgentInventory()) return FALSE; // cannot drag categories into library
- // cannot drag categories into library
- if(!isAgentInventory())
- {
- return FALSE;
- }
// check to make sure source is agent inventory, and is represented there.
LLToolDragAndDrop::ESource source = LLToolDragAndDrop::getInstance()->getSource();
- BOOL is_agent_inventory = (model->getCategory(inv_cat->getUUID()) != NULL)
+ const BOOL is_agent_inventory = (model->getCategory(inv_cat->getUUID()) != NULL)
&& (LLToolDragAndDrop::SOURCE_AGENT == source);
BOOL accept = FALSE;
- S32 i;
- LLInventoryModel::cat_array_t descendent_categories;
- LLInventoryModel::item_array_t descendent_items;
- if(is_agent_inventory)
+ if (is_agent_inventory)
{
- const LLUUID& cat_id = inv_cat->getUUID();
+ const LLUUID &cat_id = inv_cat->getUUID();
+ const LLUUID &trash_id = model->findCategoryUUIDForType(LLFolderType::FT_TRASH, false);
+ const LLUUID &current_outfit_id = model->findCategoryUUIDForType(LLFolderType::FT_CURRENT_OUTFIT, false);
+
+ const BOOL move_is_into_trash = (mUUID == trash_id) || model->isObjectDescendentOf(mUUID, trash_id);
+ const BOOL move_is_into_outfit = getCategory() && (getCategory()->getPreferredType() == LLFolderType::FT_OUTFIT);
+ const BOOL move_is_into_current_outfit = (mUUID == current_outfit_id);
- // Is the destination the trash?
- const LLUUID trash_id = model->findCategoryUUIDForType(LLFolderType::FT_TRASH);
- BOOL move_is_into_trash = (mUUID == trash_id)
- || model->isObjectDescendentOf(mUUID, trash_id);
- BOOL is_movable = (!LLFolderType::lookupIsProtectedType(inv_cat->getPreferredType()));
- const LLUUID current_outfit_id = model->findCategoryUUIDForType(LLFolderType::FT_CURRENT_OUTFIT);
- BOOL move_is_into_current_outfit = (mUUID == current_outfit_id);
- BOOL move_is_into_outfit = (getCategory() && getCategory()->getPreferredType()==LLFolderType::FT_OUTFIT);
- if (move_is_into_current_outfit || move_is_into_outfit)
- {
- // BAP - restrictions?
- is_movable = true;
- }
+ //--------------------------------------------------------------------------------
+ // Determine if folder can be moved.
+ //
+ BOOL is_movable = TRUE;
+ if (LLFolderType::lookupIsProtectedType(inv_cat->getPreferredType()))
+ is_movable = FALSE;
+ if (move_is_into_outfit)
+ is_movable = FALSE;
if (mUUID == gInventory.findCategoryUUIDForType(LLFolderType::FT_FAVORITE))
+ is_movable = FALSE;
+ LLInventoryModel::cat_array_t descendent_categories;
+ LLInventoryModel::item_array_t descendent_items;
+ gInventory.collectDescendents(cat_id, descendent_categories, descendent_items, FALSE);
+ for (S32 i=0; i < descendent_categories.count(); ++i)
{
- is_movable = FALSE; // It's generally movable but not into Favorites folder. EXT-1604
+ LLInventoryCategory* category = descendent_categories[i];
+ if(LLFolderType::lookupIsProtectedType(category->getPreferredType()))
+ {
+ // Can't move "special folders" (e.g. Textures Folder).
+ is_movable = FALSE;
+ break;
+ }
}
-
- if( is_movable )
+ if (move_is_into_trash)
{
- gInventory.collectDescendents( cat_id, descendent_categories, descendent_items, FALSE );
-
- for( i = 0; i < descendent_categories.count(); i++ )
+ for (S32 i=0; i < descendent_items.count(); ++i)
{
- LLInventoryCategory* category = descendent_categories[i];
- if(LLFolderType::lookupIsProtectedType(category->getPreferredType()))
+ LLInventoryItem* item = descendent_items[i];
+ if (get_is_item_worn(item->getUUID()))
{
- // ...can't move "special folders" like Textures
is_movable = FALSE;
- break;
- }
- }
-
- if( is_movable )
- {
- if( move_is_into_trash )
- {
- for( i = 0; i < descendent_items.count(); i++ )
- {
- LLInventoryItem* item = descendent_items[i];
- if (get_is_item_worn(item->getUUID()))
- {
- is_movable = FALSE;
- break; // It's generally movable, but not into the trash!
- }
- }
+ break; // It's generally movable, but not into the trash.
}
}
}
+ //
+ //--------------------------------------------------------------------------------
+
accept = is_movable
&& (mUUID != cat_id) // Can't move a folder into itself
&& (mUUID != inv_cat->getParentUUID()) // Avoid moves that would change nothing
@@ -1720,7 +1702,7 @@ BOOL LLFolderBridge::dragCategoryIntoFolder(LLInventoryCategory* inv_cat,
// Look for any gestures and deactivate them
if (move_is_into_trash)
{
- for (i = 0; i < descendent_items.count(); i++)
+ for (S32 i=0; i < descendent_items.count(); i++)
{
LLInventoryItem* item = descendent_items[i];
if (item->getType() == LLAssetType::AT_GESTURE
@@ -2081,7 +2063,7 @@ void LLInventoryCopyAndWearObserver::changed(U32 mask)
mContentsCount)
{
gInventory.removeObserver(this);
- LLAppearanceMgr::instance().wearInventoryCategory(category, FALSE, TRUE);
+ LLAppearanceMgr::instance().wearInventoryCategory(category, FALSE, FALSE);
delete this;
}
}
@@ -2410,8 +2392,11 @@ void LLFolderBridge::pasteLinkFromClipboard()
void LLFolderBridge::staticFolderOptionsMenu()
{
- if (!sSelf) return;
- sSelf->folderOptionsMenu();
+ LLFolderBridge* selfp = sSelf.get();
+ if (selfp)
+ {
+ selfp->folderOptionsMenu();
+ }
}
void LLFolderBridge::folderOptionsMenu()
@@ -2424,23 +2409,19 @@ void LLFolderBridge::folderOptionsMenu()
const LLInventoryCategory* category = model->getCategory(mUUID);
if(!category) return;
+ const LLUUID trash_id = model->findCategoryUUIDForType(LLFolderType::FT_TRASH);
+ if (trash_id == mUUID) return;
+ if (isItemInTrash()) return;
+ if (!isAgentInventory()) return;
+
LLFolderType::EType type = category->getPreferredType();
const bool is_system_folder = LLFolderType::lookupIsProtectedType(type);
// BAP change once we're no longer treating regular categories as ensembles.
const bool is_ensemble = (type == LLFolderType::FT_NONE ||
LLFolderType::lookupIsEnsembleType(type));
- // calling card related functionality for folders.
-
- const bool is_sidepanel = isInOutfitsSidePanel();
- if (is_sidepanel)
- {
- mItems.push_back("Rename");
- addDeleteContextMenuOptions(mItems, disabled_items);
- }
-
// Only enable calling-card related options for non-system folders.
- if (!is_sidepanel && !is_system_folder)
+ if (!is_system_folder)
{
LLIsType is_callingcard(LLAssetType::AT_CALLINGCARD);
if (mCallingCards || checkFolderForContentsOfType(model, is_callingcard))
@@ -2469,10 +2450,7 @@ void LLFolderBridge::folderOptionsMenu()
checkFolderForContentsOfType(model, is_object) ||
checkFolderForContentsOfType(model, is_gesture) )
{
- if (!is_sidepanel)
- {
- mItems.push_back(std::string("Folder Wearables Separator"));
- }
+ mItems.push_back(std::string("Folder Wearables Separator"));
// Only enable add/replace outfit for non-system folders.
if (!is_system_folder)
@@ -2493,13 +2471,21 @@ void LLFolderBridge::folderOptionsMenu()
{
disabled_items.push_back(std::string("Remove From Outfit"));
}
+ if (!LLAppearanceMgr::instance().getCanReplaceCOF(mUUID))
+ {
+ disabled_items.push_back(std::string("Replace Outfit"));
+ }
mItems.push_back(std::string("Outfit Separator"));
}
- hide_context_entries(*mMenu, mItems, disabled_items);
+ LLMenuGL* menup = dynamic_cast<LLMenuGL*>(mMenu.get());
+ if (menup)
+ {
+ hide_context_entries(*menup, mItems, disabled_items, TRUE);
- // Reposition the menu, in case we're adding items to an existing menu.
- mMenu->needsArrange();
- mMenu->arrangeAndClear();
+ // Reposition the menu, in case we're adding items to an existing menu.
+ menup->needsArrange();
+ menup->arrangeAndClear();
+ }
}
BOOL LLFolderBridge::checkFolderForContentsOfType(LLInventoryModel* model, LLInventoryCollectFunctor& is_type)
@@ -2541,6 +2527,10 @@ void LLFolderBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
mDisabledItems.push_back(std::string("New Body Parts"));
}
+ // clear out old menu and folder pointers
+ mMenu.markDead();
+ sSelf.markDead();
+
if(trash_id == mUUID)
{
// This is the trash.
@@ -2616,36 +2606,6 @@ void LLFolderBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
{
mWearables=TRUE;
}
-
- mMenu = &menu;
- sSelf = this;
-
-
- uuid_vec_t folders;
- LLViewerInventoryCategory* category = (LLViewerInventoryCategory*)model->getCategory(mUUID);
- if (category)
- {
- folders.push_back(category->getUUID());
- }
- LLRightClickInventoryFetchDescendentsObserver* fetch = new LLRightClickInventoryFetchDescendentsObserver(folders, FALSE);
- fetch->startFetch();
- inc_busy_count();
- if(fetch->isFinished())
- {
- // everything is already here - call done.
- fetch->done();
- }
- else
- {
- // it's all on it's way - add an observer, and the inventory
- // will call done for us when everything is here.
- gInventory.addObserver(fetch);
- }
- }
- else
- {
- mItems.push_back(std::string("--no options--"));
- mDisabledItems.push_back(std::string("--no options--"));
}
// Preemptively disable system folder removal if more than one item selected.
@@ -2661,6 +2621,30 @@ void LLFolderBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
}
hide_context_entries(menu, mItems, mDisabledItems);
+
+ // Add menu items that are dependent on the contents of the folder.
+ uuid_vec_t folders;
+ LLViewerInventoryCategory* category = (LLViewerInventoryCategory*)model->getCategory(mUUID);
+ if (category)
+ {
+ folders.push_back(category->getUUID());
+ }
+
+ mMenu = menu.getHandle();
+ sSelf = getHandle();
+ LLRightClickInventoryFetchDescendentsObserver* fetch = new LLRightClickInventoryFetchDescendentsObserver(folders, FALSE);
+ fetch->startFetch();
+ inc_busy_count();
+ if(fetch->isFinished())
+ {
+ // everything is already here - call done.
+ fetch->done();
+ }
+ else
+ {
+ // it's all on its way - add an observer, and the inventory will call done for us when everything is here.
+ gInventory.addObserver(fetch);
+ }
}
BOOL LLFolderBridge::hasChildren() const
@@ -2872,27 +2856,102 @@ bool move_task_inventory_callback(const LLSD& notification, const LLSD& response
return false;
}
-BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item,
- BOOL drop)
+// Returns true if the item can be moved to Current Outfit or any outfit folder.
+static BOOL can_move_to_outfit(LLInventoryItem* inv_item, BOOL move_is_into_current_outfit)
{
- LLInventoryModel* model = getInventoryModel();
- if(!model || !inv_item) return FALSE;
+ if ((inv_item->getInventoryType() != LLInventoryType::IT_WEARABLE) &&
+ (inv_item->getInventoryType() != LLInventoryType::IT_GESTURE) &&
+ (inv_item->getInventoryType() != LLInventoryType::IT_OBJECT))
+ {
+ return FALSE;
+ }
- // cannot drag into library
- if(!isAgentInventory())
+ if (move_is_into_current_outfit && get_is_item_worn(inv_item->getUUID()))
{
return FALSE;
}
+ return TRUE;
+}
+
+void LLFolderBridge::dropToFavorites(LLInventoryItem* inv_item)
+{
+ // use callback to rearrange favorite landmarks after adding
+ // to have new one placed before target (on which it was dropped). See EXT-4312.
+ LLPointer<AddFavoriteLandmarkCallback> cb = new AddFavoriteLandmarkCallback();
+ LLInventoryPanel* panel = dynamic_cast<LLInventoryPanel*>(mInventoryPanel.get());
+ LLFolderViewItem* drag_over_item = panel ? panel->getRootFolder()->getDraggingOverItem() : NULL;
+ if (drag_over_item && drag_over_item->getListener())
+ {
+ cb.get()->setTargetLandmarkId(drag_over_item->getListener()->getUUID());
+ }
+
+ copy_inventory_item(
+ gAgent.getID(),
+ inv_item->getPermissions().getOwner(),
+ inv_item->getUUID(),
+ mUUID,
+ std::string(),
+ cb);
+}
+
+void LLFolderBridge::dropToOutfit(LLInventoryItem* inv_item, BOOL move_is_into_current_outfit)
+{
+ // BAP - should skip if dup.
+ if (move_is_into_current_outfit)
+ {
+ LLAppearanceMgr::instance().wearItemOnAvatar(inv_item->getUUID(), true, true);
+ }
+ else
+ {
+ LLPointer<LLInventoryCallback> cb = NULL;
+ link_inventory_item(
+ gAgent.getID(),
+ inv_item->getLinkedUUID(),
+ mUUID,
+ inv_item->getName(),
+ inv_item->getDescription(),
+ LLAssetType::AT_LINK,
+ cb);
+ }
+}
+
+// This is used both for testing whether an item can be dropped
+// into the folder, as well as performing the actual drop, depending
+// if drop == TRUE.
+BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item,
+ BOOL drop)
+{
+ LLInventoryModel* model = getInventoryModel();
+
+ if(!model || !inv_item) return FALSE;
+ if(!isAgentInventory()) return FALSE; // cannot drag into library
if (!isAgentAvatarValid()) return FALSE;
+ const LLUUID &current_outfit_id = model->findCategoryUUIDForType(LLFolderType::FT_CURRENT_OUTFIT, false);
+ const LLUUID &favorites_id = model->findCategoryUUIDForType(LLFolderType::FT_FAVORITE, false);
+
+ const BOOL move_is_into_current_outfit = (mUUID == current_outfit_id);
+ const BOOL move_is_into_outfit = (getCategory() && getCategory()->getPreferredType()==LLFolderType::FT_OUTFIT);
+
LLToolDragAndDrop::ESource source = LLToolDragAndDrop::getInstance()->getSource();
BOOL accept = FALSE;
LLViewerObject* object = NULL;
if(LLToolDragAndDrop::SOURCE_AGENT == source)
{
+ const LLUUID &trash_id = model->findCategoryUUIDForType(LLFolderType::FT_TRASH, false);
+
+ const BOOL move_is_into_trash = (mUUID == trash_id) || model->isObjectDescendentOf(mUUID, trash_id);
+ const BOOL move_is_outof_current_outfit = LLAppearanceMgr::instance().getIsInCOF(inv_item->getUUID());
+ const BOOL folder_allows_reorder = (mUUID == favorites_id);
+
+ //--------------------------------------------------------------------------------
+ // Determine if item can be moved.
+ //
+
BOOL is_movable = TRUE;
- switch( inv_item->getActualType() )
+
+ switch (inv_item->getActualType())
{
case LLAssetType::AT_CATEGORY:
is_movable = !LLFolderType::lookupIsProtectedType(((LLInventoryCategory*)inv_item)->getPreferredType());
@@ -2900,41 +2959,43 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item,
default:
break;
}
-
- const LLUUID trash_id = model->findCategoryUUIDForType(LLFolderType::FT_TRASH);
- const BOOL move_is_into_trash = (mUUID == trash_id) || model->isObjectDescendentOf(mUUID, trash_id);
- const LLUUID current_outfit_id = model->findCategoryUUIDForType(LLFolderType::FT_CURRENT_OUTFIT);
- const BOOL move_is_into_current_outfit = (mUUID == current_outfit_id);
- const BOOL move_is_into_outfit = (getCategory() && getCategory()->getPreferredType()==LLFolderType::FT_OUTFIT);
- const BOOL move_is_outof_current_outfit = LLAppearanceMgr::instance().getIsInCOF(inv_item->getUUID());
-
// Can't explicitly drag things out of the COF.
if (move_is_outof_current_outfit)
{
is_movable = FALSE;
}
-
- if(is_movable && move_is_into_trash)
+ if (move_is_into_trash)
{
- is_movable = inv_item->getIsLinkType() || !get_is_item_worn(inv_item->getUUID());
+ is_movable &= inv_item->getIsLinkType() || !get_is_item_worn(inv_item->getUUID());
}
-
- if ( is_movable )
+ if (is_movable)
{
// Don't allow creating duplicates in the Calling Card/Friends
// subfolders, see bug EXT-1599. Check is item direct descendent
// of target folder and forbid item's movement if it so.
// Note: isItemDirectDescendentOfCategory checks if
// passed category is in the Calling Card/Friends folder
- is_movable = ! LLFriendCardsManager::instance()
- .isObjDirectDescendentOfCategory (inv_item, getCategory());
+ is_movable &= !LLFriendCardsManager::instance().isObjDirectDescendentOfCategory(inv_item, getCategory());
+ }
+
+ //
+ //--------------------------------------------------------------------------------
+
+ //--------------------------------------------------------------------------------
+ // Determine if item can be moved & dropped
+ //
+
+ accept = TRUE;
+
+ if (!is_movable)
+ accept = FALSE;
+ if ((mUUID == inv_item->getParentUUID()) && !folder_allows_reorder)
+ accept = FALSE;
+ if (move_is_into_current_outfit || move_is_into_outfit)
+ {
+ accept = can_move_to_outfit(inv_item, move_is_into_current_outfit);
}
- const LLUUID& favorites_id = model->findCategoryUUIDForType(LLFolderType::FT_FAVORITE);
- const BOOL folder_allows_reorder = (mUUID == favorites_id);
-
- // we can move item inside a folder only if this folder is Favorites. See EXT-719
- accept = is_movable && ((mUUID != inv_item->getParentUUID()) || folder_allows_reorder);
if(accept && drop)
{
if (inv_item->getType() == LLAssetType::AT_GESTURE
@@ -2942,10 +3003,8 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item,
{
LLGestureMgr::instance().deactivateGesture(inv_item->getUUID());
}
- // If an item is being dragged between windows, unselect
- // everything in the active window so that we don't follow
- // the selection to its new location (which is very
- // annoying).
+ // If an item is being dragged between windows, unselect everything in the active window
+ // so that we don't follow the selection to its new location (which is very annoying).
LLInventoryPanel *active_panel = LLInventoryPanel::getActiveInventoryPanel(FALSE);
if (active_panel)
{
@@ -2956,7 +3015,12 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item,
}
}
- // if dragging from/into favorites folder only reorder items
+ //--------------------------------------------------------------------------------
+ // Destination folder logic
+ //
+
+ // REORDER
+ // (only reorder the item)
if ((mUUID == inv_item->getParentUUID()) && folder_allows_reorder)
{
LLInventoryPanel* panel = dynamic_cast<LLInventoryPanel*>(mInventoryPanel.get());
@@ -2968,58 +3032,36 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item,
gInventory.rearrangeFavoriteLandmarks(srcItemId, destItemId);
}
}
- else if (favorites_id == mUUID) // if target is the favorites folder we use copy
- {
- // use callback to rearrange favorite landmarks after adding
- // to have new one placed before target (on which it was dropped). See EXT-4312.
- LLPointer<AddFavoriteLandmarkCallback> cb = new AddFavoriteLandmarkCallback();
- LLInventoryPanel* panel = dynamic_cast<LLInventoryPanel*>(mInventoryPanel.get());
- LLFolderViewItem* drag_over_item = panel ? panel->getRootFolder()->getDraggingOverItem() : NULL;
- if (drag_over_item && drag_over_item->getListener())
- {
- cb.get()->setTargetLandmarkId(drag_over_item->getListener()->getUUID());
- }
- copy_inventory_item(
- gAgent.getID(),
- inv_item->getPermissions().getOwner(),
- inv_item->getUUID(),
- mUUID,
- std::string(),
- cb);
+ // FAVORITES folder
+ // (copy the item)
+ else if (favorites_id == mUUID)
+ {
+ dropToFavorites(inv_item);
}
+ // CURRENT OUTFIT or OUTFIT folder
+ // (link the item)
else if (move_is_into_current_outfit || move_is_into_outfit)
{
- // BAP - should skip if dup.
- if (move_is_into_current_outfit)
- {
- LLAppearanceMgr::instance().addCOFItemLink(inv_item);
- }
- else
- {
- LLPointer<LLInventoryCallback> cb = NULL;
- link_inventory_item(
- gAgent.getID(),
- inv_item->getLinkedUUID(),
- mUUID,
- inv_item->getName(),
- inv_item->getDescription(),
- LLAssetType::AT_LINK,
- cb);
- }
+ dropToOutfit(inv_item, move_is_into_current_outfit);
}
+ // NORMAL or TRASH folder
+ // (move the item, restamp if into trash)
else
{
- // restamp if the move is into the trash.
LLInvFVBridge::changeItemParent(
model,
(LLViewerInventoryItem*)inv_item,
mUUID,
move_is_into_trash);
}
+
+ //
+ //--------------------------------------------------------------------------------
+
}
}
- else if(LLToolDragAndDrop::SOURCE_WORLD == source)
+ else if (LLToolDragAndDrop::SOURCE_WORLD == source)
{
// Make sure the object exists. If we allowed dragging from
// anonymous objects, it would be possible to bypass
@@ -3037,7 +3079,7 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item,
BOOL is_move = FALSE;
if((perm.allowCopyBy(gAgent.getID(), gAgent.getGroupID())
&& perm.allowTransferTo(gAgent.getID())))
-// || gAgent.isGodlike())
+ // || gAgent.isGodlike())
{
accept = TRUE;
@@ -3050,6 +3092,15 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item,
is_move = TRUE;
accept = TRUE;
}
+
+ // Don't allow placing an original item into Current Outfit or an outfit folder
+ // because they must contain only links to wearable items.
+ // *TODO: Probably we should create a link to an item if it was dragged to outfit or COF.
+ if(move_is_into_current_outfit || move_is_into_outfit)
+ {
+ accept = FALSE;
+ }
+
if(drop && accept)
{
LLMoveInv* move_inv = new LLMoveInv;
@@ -3089,15 +3140,36 @@ BOOL LLFolderBridge::dragItemIntoFolder(LLInventoryItem* inv_item,
if(item && item->isFinished())
{
accept = TRUE;
- if(drop)
+
+ if (move_is_into_current_outfit || move_is_into_outfit)
{
- copy_inventory_item(
- gAgent.getID(),
- inv_item->getPermissions().getOwner(),
- inv_item->getUUID(),
- mUUID,
- std::string(),
- LLPointer<LLInventoryCallback>(NULL));
+ accept = can_move_to_outfit(inv_item, move_is_into_current_outfit);
+ }
+
+ if (accept && drop)
+ {
+ // FAVORITES folder
+ // (copy the item)
+ if (favorites_id == mUUID)
+ {
+ dropToFavorites(inv_item);
+ }
+ // CURRENT OUTFIT or OUTFIT folder
+ // (link the item)
+ else if (move_is_into_current_outfit || move_is_into_outfit)
+ {
+ dropToOutfit(inv_item, move_is_into_current_outfit);
+ }
+ else
+ {
+ copy_inventory_item(
+ gAgent.getID(),
+ inv_item->getPermissions().getOwner(),
+ inv_item->getUUID(),
+ mUUID,
+ std::string(),
+ LLPointer<LLInventoryCallback>(NULL));
+ }
}
}
}
@@ -3763,13 +3835,9 @@ void LLGestureBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
{
disabled_items.push_back(std::string("Share"));
}
- bool is_sidepanel = isInOutfitsSidePanel();
- if (!is_sidepanel)
- {
- addOpenRightClickMenuOption(items);
- items.push_back(std::string("Properties"));
- }
+ addOpenRightClickMenuOption(items);
+ items.push_back(std::string("Properties"));
getClipboardEntries(true, items, disabled_items, flags);
@@ -3921,7 +3989,7 @@ void LLObjectBridge::performAction(LLInventoryModel* model, std::string action)
item = (LLViewerInventoryItem*)gInventory.getItem(object_id);
if(item && gInventory.isObjectDescendentOf(object_id, gInventory.getRootFolderID()))
{
- rez_attachment(item, NULL);
+ rez_attachment(item, NULL, true); // Replace if "Wear"ing.
}
else if(item && item->isFinished())
{
@@ -3937,23 +4005,16 @@ void LLObjectBridge::performAction(LLInventoryModel* model, std::string action)
}
gFocusMgr.setKeyboardFocus(NULL);
}
+ else if ("wear_add" == action)
+ {
+ LLAppearanceMgr::instance().wearItemOnAvatar(mUUID, true, false); // Don't replace if adding.
+ }
else if (isRemoveAction(action))
{
LLInventoryItem* item = gInventory.getItem(mUUID);
if(item)
{
- gMessageSystem->newMessageFast(_PREHASH_DetachAttachmentIntoInv);
- gMessageSystem->nextBlockFast(_PREHASH_ObjectData);
- gMessageSystem->addUUIDFast(_PREHASH_AgentID, gAgent.getID());
- gMessageSystem->addUUIDFast(_PREHASH_ItemID, item->getLinkedUUID());
- gMessageSystem->sendReliable( gAgent.getRegion()->getHost());
-
- // this object might have been selected, so let the selection manager know it's gone now
- LLViewerObject *found_obj = gObjectList.findObject(item->getLinkedUUID());
- if (found_obj)
- {
- LLSelectMgr::getInstance()->remove(found_obj);
- }
+ LLVOAvatarSelf::detachAttachmentIntoInventory(item->getLinkedUUID());
}
}
else LLItemBridge::performAction(model, action);
@@ -3970,23 +4031,37 @@ std::string LLObjectBridge::getLabelSuffix() const
{
if (get_is_item_worn(mUUID))
{
+ if (!isAgentAvatarValid()) // Error condition, can't figure out attach point
+ {
+ return LLItemBridge::getLabelSuffix() + LLTrans::getString("worn");
+ }
std::string attachment_point_name = gAgentAvatarp->getAttachedPointName(mUUID);
-
+ if (attachment_point_name == LLStringUtil::null) // Error condition, invalid attach point
+ {
+ attachment_point_name = "Invalid Attachment";
+ }
// e.g. "(worn on ...)" / "(attached to ...)"
LLStringUtil::format_map_t args;
args["[ATTACHMENT_POINT]"] = LLTrans::getString(attachment_point_name);
+
return LLItemBridge::getLabelSuffix() + LLTrans::getString("WornOnAttachmentPoint", args);
}
- else
- {
- return LLItemBridge::getLabelSuffix();
- }
+ return LLItemBridge::getLabelSuffix();
}
-void rez_attachment(LLViewerInventoryItem* item, LLViewerJointAttachment* attachment)
+void rez_attachment(LLViewerInventoryItem* item, LLViewerJointAttachment* attachment, bool replace)
{
- LLSD payload;
- payload["item_id"] = item->getLinkedUUID(); // Wear the base object in case this is a link.
+ const LLUUID& item_id = item->getLinkedUUID();
+
+ // Check for duplicate request.
+ if (isAgentAvatarValid() &&
+ (gAgentAvatarp->attachmentWasRequested(item_id) ||
+ gAgentAvatarp->isWearingAttachment(item_id)))
+ {
+ llwarns << "duplicate attachment request, ignoring" << llendl;
+ return;
+ }
+ gAgentAvatarp->addAttachmentRequest(item_id);
S32 attach_pt = 0;
if (isAgentAvatarValid() && attachment)
@@ -4002,21 +4077,23 @@ void rez_attachment(LLViewerInventoryItem* item, LLViewerJointAttachment* attach
}
}
+ LLSD payload;
+ payload["item_id"] = item_id; // Wear the base object in case this is a link.
payload["attachment_point"] = attach_pt;
+ payload["is_add"] = !replace;
-#if !ENABLE_MULTIATTACHMENTS
- if (attachment && attachment->getNumObjects() > 0)
+ if (replace &&
+ (attachment && attachment->getNumObjects() > 0))
{
- LLNotificationsUtil::add("ReplaceAttachment", LLSD(), payload, confirm_replace_attachment_rez);
+ LLNotificationsUtil::add("ReplaceAttachment", LLSD(), payload, confirm_attachment_rez);
}
else
-#endif
{
LLNotifications::instance().forceResponse(LLNotification::Params("ReplaceAttachment").payload(payload), 0/*YES*/);
}
}
-bool confirm_replace_attachment_rez(const LLSD& notification, const LLSD& response)
+bool confirm_attachment_rez(const LLSD& notification, const LLSD& response)
{
if (!gAgentAvatarp->canAttachMoreObjects())
{
@@ -4029,32 +4106,46 @@ bool confirm_replace_attachment_rez(const LLSD& notification, const LLSD& respon
S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
if (option == 0/*YES*/)
{
- LLViewerInventoryItem* itemp = gInventory.getItem(notification["payload"]["item_id"].asUUID());
+ LLUUID item_id = notification["payload"]["item_id"].asUUID();
+ LLViewerInventoryItem* itemp = gInventory.getItem(item_id);
if (itemp)
{
- LLMessageSystem* msg = gMessageSystem;
- msg->newMessageFast(_PREHASH_RezSingleAttachmentFromInv);
- msg->nextBlockFast(_PREHASH_AgentData);
- msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID());
- msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID());
- msg->nextBlockFast(_PREHASH_ObjectData);
- msg->addUUIDFast(_PREHASH_ItemID, itemp->getUUID());
- msg->addUUIDFast(_PREHASH_OwnerID, itemp->getPermissions().getOwner());
+ /*
+ {
+ U8 attachment_pt = notification["payload"]["attachment_point"].asInteger();
+
+ LLMessageSystem* msg = gMessageSystem;
+ msg->newMessageFast(_PREHASH_RezSingleAttachmentFromInv);
+ msg->nextBlockFast(_PREHASH_AgentData);
+ msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID());
+ msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID());
+ msg->nextBlockFast(_PREHASH_ObjectData);
+ msg->addUUIDFast(_PREHASH_ItemID, itemp->getUUID());
+ msg->addUUIDFast(_PREHASH_OwnerID, itemp->getPermissions().getOwner());
+ msg->addU8Fast(_PREHASH_AttachmentPt, attachment_pt);
+ pack_permissions_slam(msg, itemp->getFlags(), itemp->getPermissions());
+ msg->addStringFast(_PREHASH_Name, itemp->getName());
+ msg->addStringFast(_PREHASH_Description, itemp->getDescription());
+ msg->sendReliable(gAgent.getRegion()->getHost());
+ return false;
+ }
+ */
+
+ // Queue up attachments to be sent in next idle tick, this way the
+ // attachments are batched up all into one message versus each attachment
+ // being sent in its own separate attachments message.
U8 attachment_pt = notification["payload"]["attachment_point"].asInteger();
-#if ENABLE_MULTIATTACHMENTS
- attachment_pt |= ATTACHMENT_ADD;
-#endif
- msg->addU8Fast(_PREHASH_AttachmentPt, attachment_pt);
- pack_permissions_slam(msg, itemp->getFlags(), itemp->getPermissions());
- msg->addStringFast(_PREHASH_Name, itemp->getName());
- msg->addStringFast(_PREHASH_Description, itemp->getDescription());
- msg->sendReliable(gAgent.getRegion()->getHost());
+ BOOL is_add = notification["payload"]["is_add"].asBoolean();
+
+ LLAttachmentsMgr::instance().addAttachment(item_id,
+ attachment_pt,
+ is_add);
}
}
return false;
}
-static LLNotificationFunctorRegistration confirm_replace_attachment_rez_reg("ReplaceAttachment", confirm_replace_attachment_rez);
+static LLNotificationFunctorRegistration confirm_replace_attachment_rez_reg("ReplaceAttachment", confirm_attachment_rez);
void LLObjectBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
{
@@ -4071,12 +4162,8 @@ void LLObjectBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
{
disabled_items.push_back(std::string("Share"));
}
- bool is_sidepanel = isInOutfitsSidePanel();
- if (!is_sidepanel)
- {
- items.push_back(std::string("Properties"));
- }
+ items.push_back(std::string("Properties"));
getClipboardEntries(true, items, disabled_items, flags);
@@ -4089,13 +4176,14 @@ void LLObjectBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
if( get_is_item_worn( mUUID ) )
{
- items.push_back(std::string("Attach Separator"));
+ items.push_back(std::string("Wearable And Object Separator"));
items.push_back(std::string("Detach From Yourself"));
}
else if (!isItemInTrash() && !isLinkedObjectInTrash() && !isLinkedObjectMissing() && !isCOFFolder())
{
- items.push_back(std::string("Attach Separator"));
- items.push_back(std::string("Object Wear"));
+ items.push_back(std::string("Wearable And Object Separator"));
+ items.push_back(std::string("Wearable And Object Wear"));
+ items.push_back(std::string("Wearable Add"));
items.push_back(std::string("Attach To"));
items.push_back(std::string("Attach To HUD"));
// commented out for DEV-32347
@@ -4103,7 +4191,8 @@ void LLObjectBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
if (!gAgentAvatarp->canAttachMoreObjects())
{
- disabled_items.push_back(std::string("Object Wear"));
+ disabled_items.push_back(std::string("Wearable And Object Wear"));
+ disabled_items.push_back(std::string("Wearable Add"));
disabled_items.push_back(std::string("Attach To"));
disabled_items.push_back(std::string("Attach To HUD"));
}
@@ -4132,7 +4221,7 @@ void LLObjectBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
}
LLSD cbparams;
cbparams["index"] = curiter->first;
- cbparams["label"] = attachment->getName();
+ cbparams["label"] = p.name;
p.on_click.function_name = "Inventory.AttachObject";
p.on_click.parameter = LLSD(attachment->getName());
p.on_enable.function_name = "Attachment.Label";
@@ -4306,19 +4395,7 @@ void remove_inventory_category_from_avatar_step2( BOOL proceed, LLUUID category_
LLViewerInventoryItem *obj_item = obj_item_array.get(i);
if (get_is_item_worn(obj_item->getUUID()))
{
- gMessageSystem->newMessageFast(_PREHASH_DetachAttachmentIntoInv);
- gMessageSystem->nextBlockFast(_PREHASH_ObjectData );
- gMessageSystem->addUUIDFast(_PREHASH_AgentID, gAgent.getID() );
- gMessageSystem->addUUIDFast(_PREHASH_ItemID, obj_item->getLinkedUUID() );
-
- gMessageSystem->sendReliable( gAgent.getRegion()->getHost() );
-
- // this object might have been selected, so let the selection manager know it's gone now
- LLViewerObject *found_obj = gObjectList.findObject( obj_item->getLinkedUUID());
- if (found_obj)
- {
- LLSelectMgr::getInstance()->remove(found_obj);
- }
+ LLVOAvatarSelf::detachAttachmentIntoInventory(obj_item->getLinkedUUID());
}
}
}
@@ -4425,30 +4502,27 @@ void LLWearableBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
{
can_open = FALSE;
}
-
items.push_back(std::string("Share"));
if (!canShare())
{
disabled_items.push_back(std::string("Share"));
}
- bool is_sidepanel = isInOutfitsSidePanel();
- if (can_open && !is_sidepanel)
+ if (can_open)
{
addOpenRightClickMenuOption(items);
}
-
- if (!is_sidepanel)
+ else
{
- items.push_back(std::string("Properties"));
+ disabled_items.push_back(std::string("Open"));
+ disabled_items.push_back(std::string("Open Original"));
}
+ items.push_back(std::string("Properties"));
+
getClipboardEntries(true, items, disabled_items, flags);
- if (!is_sidepanel)
- {
- items.push_back(std::string("Wearable Separator"));
- }
+ items.push_back(std::string("Wearable And Object Separator"));
items.push_back(std::string("Wearable Edit"));
@@ -4459,7 +4533,7 @@ void LLWearableBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
// Don't allow items to be worn if their baseobj is in the trash.
if (isLinkedObjectInTrash() || isLinkedObjectMissing() || isCOFFolder())
{
- disabled_items.push_back(std::string("Wearable Wear"));
+ disabled_items.push_back(std::string("Wearable And Object Wear"));
disabled_items.push_back(std::string("Wearable Add"));
disabled_items.push_back(std::string("Wearable Edit"));
}
@@ -4475,12 +4549,12 @@ void LLWearableBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
case LLAssetType::AT_BODYPART:
if (get_is_item_worn(item->getUUID()))
{
- disabled_items.push_back(std::string("Wearable Wear"));
+ disabled_items.push_back(std::string("Wearable And Object Wear"));
disabled_items.push_back(std::string("Wearable Add"));
}
else
{
- items.push_back(std::string("Wearable Wear"));
+ items.push_back(std::string("Wearable And Object Wear"));
items.push_back(std::string("Wearable Add"));
disabled_items.push_back(std::string("Take Off"));
disabled_items.push_back(std::string("Wearable Edit"));
@@ -4519,13 +4593,7 @@ void LLWearableBridge::onWearOnAvatar(void* user_data)
void LLWearableBridge::wearOnAvatar()
{
- // Don't wear anything until initial wearables are loaded, can
- // destroy clothing items.
- if (!gAgentWearables.areWearablesLoaded())
- {
- LLNotificationsUtil::add("CanNotChangeAppearanceUntilLoaded");
- return;
- }
+ // TODO: investigate wearables may not be loaded at this point EXT-8231
LLViewerInventoryItem* item = getItem();
if(item)
@@ -4536,13 +4604,7 @@ void LLWearableBridge::wearOnAvatar()
void LLWearableBridge::wearAddOnAvatar()
{
- // Don't wear anything until initial wearables are loaded, can
- // destroy clothing items.
- if (!gAgentWearables.areWearablesLoaded())
- {
- LLNotificationsUtil::add("CanNotChangeAppearanceUntilLoaded");
- return;
- }
+ // TODO: investigate wearables may not be loaded at this point EXT-8231
LLViewerInventoryItem* item = getItem();
if(item)
@@ -5100,13 +5162,7 @@ BOOL LLWearableBridgeAction::isAgentInventory() const
void LLWearableBridgeAction::wearOnAvatar()
{
- // Don't wear anything until initial wearables are loaded, can
- // destroy clothing items.
- if (!gAgentWearables.areWearablesLoaded())
- {
- LLNotificationsUtil::add("CanNotChangeAppearanceUntilLoaded");
- return;
- }
+ // TODO: investigate wearables may not be loaded at this point EXT-8231
LLViewerInventoryItem* item = getItem();
if(item)
diff --git a/indra/newview/llinventorybridge.h b/indra/newview/llinventorybridge.h
index 64d0f8d254..5ac328dcef 100644
--- a/indra/newview/llinventorybridge.h
+++ b/indra/newview/llinventorybridge.h
@@ -2,31 +2,25 @@
* @file llinventorybridge.h
* @brief Implementation of the Inventory-Folder-View-Bridge classes.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -74,7 +68,6 @@ public:
U32 flags = 0x00);
virtual ~LLInvFVBridge() {}
- BOOL isInOutfitsSidePanel() const; // allow context menus to be customized for side panel
BOOL canShare() const;
//--------------------------------------------------------------------
@@ -231,8 +224,8 @@ public:
const LLUUID& uuid) :
LLInvFVBridge(inventory, root, uuid),
mCallingCards(FALSE),
- mWearables(FALSE),
- mMenu(NULL) {}
+ mWearables(FALSE)
+ {}
BOOL dragItemIntoFolder(LLInventoryItem* inv_item, BOOL drop);
BOOL dragCategoryIntoFolder(LLInventoryCategory* inv_category, BOOL drop);
@@ -273,6 +266,7 @@ public:
static void createWearable(LLFolderBridge* bridge, LLWearableType::EType type);
LLViewerInventoryCategory* getCategory() const;
+ LLHandle<LLFolderBridge> getHandle() { mHandle.bind(this); return mHandle; }
protected:
//--------------------------------------------------------------------
@@ -301,21 +295,24 @@ protected:
menuentry_vec_t getMenuItems() { return mItems; } // returns a copy of current menu items
+ void dropToFavorites(LLInventoryItem* inv_item);
+ void dropToOutfit(LLInventoryItem* inv_item, BOOL move_is_into_current_outfit);
//--------------------------------------------------------------------
// Messy hacks for handling folder options
//--------------------------------------------------------------------
public:
- static LLFolderBridge* sSelf;
+ static LLHandle<LLFolderBridge> sSelf;
static void staticFolderOptionsMenu();
void folderOptionsMenu();
private:
- BOOL mCallingCards;
- BOOL mWearables;
- LLMenuGL* mMenu;
- menuentry_vec_t mItems;
- menuentry_vec_t mDisabledItems;
+ BOOL mCallingCards;
+ BOOL mWearables;
+ LLHandle<LLView> mMenu;
+ menuentry_vec_t mItems;
+ menuentry_vec_t mDisabledItems;
+ LLRootHandle<LLFolderBridge> mHandle;
};
class LLTextureBridge : public LLItemBridge
@@ -593,7 +590,8 @@ public:
};
void rez_attachment(LLViewerInventoryItem* item,
- LLViewerJointAttachment* attachment);
+ LLViewerJointAttachment* attachment,
+ bool replace = false);
// Move items from an in-world object's "Contents" folder to a specified
// folder in agent inventory.
@@ -604,8 +602,12 @@ BOOL move_inv_category_world_to_agent(const LLUUID& object_id,
void* user_data = NULL);
// Utility function to hide all entries except those in the list
+// Can be called multiple times on the same menu (e.g. if multiple items
+// are selected). If "append" is false, then only common enabled items
+// are set as enabled.
void hide_context_entries(LLMenuGL& menu,
const menuentry_vec_t &entries_to_show,
- const menuentry_vec_t &disabled_entries);
+ const menuentry_vec_t &disabled_entries,
+ BOOL append = FALSE);
#endif // LL_LLINVENTORYBRIDGE_H
diff --git a/indra/newview/llinventoryclipboard.cpp b/indra/newview/llinventoryclipboard.cpp
index 71a5e12332..53da34f448 100644
--- a/indra/newview/llinventoryclipboard.cpp
+++ b/indra/newview/llinventoryclipboard.cpp
@@ -2,31 +2,25 @@
* @file llinventoryclipboard.cpp
* @brief LLInventoryClipboard class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llinventoryclipboard.h b/indra/newview/llinventoryclipboard.h
index 7e221d650c..b9f1451e5c 100644
--- a/indra/newview/llinventoryclipboard.h
+++ b/indra/newview/llinventoryclipboard.h
@@ -2,31 +2,25 @@
* @file llinventoryclipboard.h
* @brief LLInventoryClipboard class header file
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llinventoryfilter.cpp b/indra/newview/llinventoryfilter.cpp
index 6e829f2dc2..ef4774a06d 100644
--- a/indra/newview/llinventoryfilter.cpp
+++ b/indra/newview/llinventoryfilter.cpp
@@ -3,31 +3,25 @@
* @brief Support for filtering your inventory to only display a subset of the
* available items.
*
-* $LicenseInfo:firstyear=2005&license=viewergpl$
-*
-* Copyright (c) 2005-2009, Linden Research, Inc.
-*
+* $LicenseInfo:firstyear=2005&license=viewerlgpl$
* Second Life Viewer Source Code
-* The source code in this file ("Source Code") is provided by Linden Lab
-* to you under the terms of the GNU General Public License, version 2.0
-* ("GPL"), unless you have obtained a separate licensing agreement
-* ("Other License"), formally executed by you and Linden Lab. Terms of
-* the GPL can be found in doc/GPL-license.txt in this distribution, or
-* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+* 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.
*
-* There are special exceptions to the terms and conditions of the GPL as
-* it is applied to this Source Code. View the full text of the exception
-* in the file doc/FLOSS-exception.txt in this software distribution, or
-* online at
-* http://secondlifegrid.net/programs/open_source/licensing/flossexception
+* 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.
*
-* By copying, modifying or distributing this software, you acknowledge
-* that you have read and understood your obligations described above,
-* and agree to abide by those obligations.
+* 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
*
-* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
-* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
-* COMPLETENESS OR PERFORMANCE.
+* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
#include "llviewerprecompiledheaders.h"
@@ -57,7 +51,7 @@ LLInventoryFilter::FilterOps::FilterOps() :
mPermissions(PERM_NONE),
mFilterTypes(FILTERTYPE_OBJECT),
mFilterUUID(LLUUID::null),
- mIncludeLinks(TRUE)
+ mFilterLinks(FILTERLINK_INCLUDE_LINKS)
{
}
@@ -104,8 +98,10 @@ BOOL LLInventoryFilter::check(const LLFolderViewItem* item)
const BOOL passed_filtertype = checkAgainstFilterType(item);
const BOOL passed_permissions = checkAgainstPermissions(item);
+ const BOOL passed_filterlink = checkAgainstFilterLinks(item);
const BOOL passed = (passed_filtertype &&
- passed_permissions &&
+ passed_permissions &&
+ passed_filterlink &&
(mFilterSubString.size() == 0 || mSubStringMatchOffset != std::string::npos));
return passed;
@@ -229,6 +225,23 @@ BOOL LLInventoryFilter::checkAgainstPermissions(const LLFolderViewItem* item) co
return (perm & mFilterOps.mPermissions) == mFilterOps.mPermissions;
}
+BOOL LLInventoryFilter::checkAgainstFilterLinks(const LLFolderViewItem* item) const
+{
+ const LLFolderViewEventListener* listener = item->getListener();
+ if (!listener) return TRUE;
+
+ const LLUUID object_id = listener->getUUID();
+ const LLInventoryObject *object = gInventory.getObject(object_id);
+ if (!object) return TRUE;
+
+ const BOOL is_link = object->getIsLinkType();
+ if (is_link && (mFilterOps.mFilterLinks == FILTERLINK_EXCLUDE_LINKS))
+ return FALSE;
+ if (!is_link && (mFilterOps.mFilterLinks == FILTERLINK_ONLY_LINKS))
+ return FALSE;
+ return TRUE;
+}
+
const std::string& LLInventoryFilter::getFilterSubString(BOOL trim) const
{
return mFilterSubString;
@@ -246,6 +259,7 @@ BOOL LLInventoryFilter::isNotDefault() const
|| mFilterOps.mFilterCategoryTypes != mDefaultFilterOps.mFilterCategoryTypes
|| mFilterOps.mFilterWearableTypes != mDefaultFilterOps.mFilterWearableTypes
|| mFilterOps.mFilterTypes != FILTERTYPE_OBJECT
+ || mFilterOps.mFilterLinks != FILTERLINK_INCLUDE_LINKS
|| mFilterSubString.size()
|| mFilterOps.mPermissions != mDefaultFilterOps.mPermissions
|| mFilterOps.mMinDate != mDefaultFilterOps.mMinDate
@@ -259,6 +273,7 @@ BOOL LLInventoryFilter::isActive() const
|| mFilterOps.mFilterCategoryTypes != 0xffffffffffffffffULL
|| mFilterOps.mFilterWearableTypes != 0xffffffffffffffffULL
|| mFilterOps.mFilterTypes != FILTERTYPE_OBJECT
+ || mFilterOps.mFilterLinks != FILTERLINK_INCLUDE_LINKS
|| mFilterSubString.size()
|| mFilterOps.mPermissions != PERM_NONE
|| mFilterOps.mMinDate != time_min()
@@ -410,6 +425,11 @@ void LLInventoryFilter::setFilterSubString(const std::string& string)
mFilterOps.mFilterUUID == LLUUID::null;
setModified(FILTER_RESTART);
}
+
+ // Cancel out filter links once the search string is modified
+ {
+ mFilterOps.mFilterLinks = FILTERLINK_INCLUDE_LINKS;
+ }
}
}
@@ -508,16 +528,17 @@ void LLInventoryFilter::setHoursAgo(U32 hours)
mFilterOps.mFilterTypes |= FILTERTYPE_DATE;
}
-void LLInventoryFilter::setIncludeLinks(BOOL include_links)
+void LLInventoryFilter::setFilterLinks(U64 filter_links)
{
- if (mFilterOps.mIncludeLinks != include_links)
+ if (mFilterOps.mFilterLinks != filter_links)
{
- if (!mFilterOps.mIncludeLinks)
- setModified(FILTER_LESS_RESTRICTIVE);
- else
+ if (mFilterOps.mFilterLinks == FILTERLINK_EXCLUDE_LINKS ||
+ mFilterOps.mFilterLinks == FILTERLINK_ONLY_LINKS)
setModified(FILTER_MORE_RESTRICTIVE);
+ else
+ setModified(FILTER_LESS_RESTRICTIVE);
}
- mFilterOps.mIncludeLinks = include_links;
+ mFilterOps.mFilterLinks = filter_links;
}
void LLInventoryFilter::setShowFolderState(EFolderShow state)
@@ -895,9 +916,9 @@ U32 LLInventoryFilter::getHoursAgo() const
{
return mFilterOps.mHoursAgo;
}
-BOOL LLInventoryFilter::getIncludeLinks() const
+U64 LLInventoryFilter::getFilterLinks() const
{
- return mFilterOps.mIncludeLinks;
+ return mFilterOps.mFilterLinks;
}
LLInventoryFilter::EFolderShow LLInventoryFilter::getShowFolderState() const
{
diff --git a/indra/newview/llinventoryfilter.h b/indra/newview/llinventoryfilter.h
index f740a6b333..f488b2ed1b 100644
--- a/indra/newview/llinventoryfilter.h
+++ b/indra/newview/llinventoryfilter.h
@@ -3,31 +3,25 @@
* @brief Support for filtering your inventory to only display a subset of the
* available items.
*
-* $LicenseInfo:firstyear=2005&license=viewergpl$
-*
-* Copyright (c) 2005-2009, Linden Research, Inc.
-*
+* $LicenseInfo:firstyear=2005&license=viewerlgpl$
* Second Life Viewer Source Code
-* The source code in this file ("Source Code") is provided by Linden Lab
-* to you under the terms of the GNU General Public License, version 2.0
-* ("GPL"), unless you have obtained a separate licensing agreement
-* ("Other License"), formally executed by you and Linden Lab. Terms of
-* the GPL can be found in doc/GPL-license.txt in this distribution, or
-* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+* Copyright (C) 2010, Linden Research, Inc.
*
-* There are special exceptions to the terms and conditions of the GPL as
-* it is applied to this Source Code. View the full text of the exception
-* in the file doc/FLOSS-exception.txt in this software distribution, or
-* online at
-* http://secondlifegrid.net/programs/open_source/licensing/flossexception
+* 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.
*
-* By copying, modifying or distributing this software, you acknowledge
-* that you have read and understood your obligations described above,
-* and agree to abide by those obligations.
+* 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.
*
-* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
-* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
-* COMPLETENESS OR PERFORMANCE.
+* 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 LLINVENTORYFILTER_H
@@ -56,8 +50,7 @@ public:
FILTER_MORE_RESTRICTIVE // if you didn't pass the previous filter, you definitely won't pass this one
};
- enum EFilterType
- {
+ enum EFilterType {
FILTERTYPE_NONE = 0,
FILTERTYPE_OBJECT = 0x1 << 0, // normal default search-by-object-type
FILTERTYPE_CATEGORY = 0x1 << 1, // search by folder type
@@ -66,6 +59,13 @@ public:
FILTERTYPE_WEARABLE = 0x1 << 4 // search by wearable type
};
+ enum EFilterLink
+ {
+ FILTERLINK_INCLUDE_LINKS, // show links too
+ FILTERLINK_EXCLUDE_LINKS, // don't show links
+ FILTERLINK_ONLY_LINKS // only show links
+ };
+
// REFACTOR: Change this to an enum.
static const U32 SO_DATE = 1;
static const U32 SO_FOLDERS_BY_NAME = 2;
@@ -100,8 +100,8 @@ public:
void setHoursAgo(U32 hours);
U32 getHoursAgo() const;
- void setIncludeLinks(BOOL include_links);
- BOOL getIncludeLinks() const;
+ void setFilterLinks(U64 filter_link);
+ U64 getFilterLinks() const;
// +-------------------------------------------------------------------+
// + Execution And Results
@@ -109,6 +109,8 @@ public:
BOOL check(const LLFolderViewItem* item);
BOOL checkAgainstFilterType(const LLFolderViewItem* item) const;
BOOL checkAgainstPermissions(const LLFolderViewItem* item) const;
+ BOOL checkAgainstFilterLinks(const LLFolderViewItem* item) const;
+
std::string::size_type getStringMatchOffset() const;
// +-------------------------------------------------------------------+
@@ -179,7 +181,7 @@ private:
U32 mHoursAgo;
EFolderShow mShowFolderState;
PermissionMask mPermissions;
- BOOL mIncludeLinks;
+ U64 mFilterLinks;
};
U32 mOrder;
diff --git a/indra/newview/llinventoryfunctions.cpp b/indra/newview/llinventoryfunctions.cpp
index 37088064c6..f3d9639dee 100644
--- a/indra/newview/llinventoryfunctions.cpp
+++ b/indra/newview/llinventoryfunctions.cpp
@@ -2,31 +2,25 @@
* @file llinventoryfunctions.cpp
* @brief Implementation of the inventory view and associated stuff.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -221,7 +215,13 @@ BOOL get_is_item_worn(const LLUUID& id)
const LLViewerInventoryItem* item = gInventory.getItem(id);
if (!item)
return FALSE;
-
+
+ // Consider the item as worn if it has links in COF.
+ if (LLAppearanceMgr::instance().isLinkInCOF(id))
+ {
+ return TRUE;
+ }
+
switch(item->getType())
{
case LLAssetType::AT_OBJECT:
@@ -245,6 +245,69 @@ BOOL get_is_item_worn(const LLUUID& id)
return FALSE;
}
+BOOL get_can_item_be_worn(const LLUUID& id)
+{
+ const LLViewerInventoryItem* item = gInventory.getItem(id);
+ if (!item)
+ return FALSE;
+
+ if (LLAppearanceMgr::isLinkInCOF(item->getLinkedUUID()))
+ {
+ // an item having links in COF (i.e. a worn item)
+ return FALSE;
+ }
+
+ if (gInventory.isObjectDescendentOf(id, LLAppearanceMgr::instance().getCOF()))
+ {
+ // a non-link object in COF (should not normally happen)
+ return FALSE;
+ }
+
+ const LLUUID trash_id = gInventory.findCategoryUUIDForType(
+ LLFolderType::FT_TRASH);
+
+ // item can't be worn if base obj in trash, see EXT-7015
+ if (gInventory.isObjectDescendentOf(item->getLinkedUUID(),
+ trash_id))
+ {
+ return false;
+ }
+
+ switch(item->getType())
+ {
+ case LLAssetType::AT_OBJECT:
+ {
+ if (isAgentAvatarValid() && gAgentAvatarp->isWearingAttachment(item->getLinkedUUID()))
+ {
+ // Already being worn
+ return FALSE;
+ }
+ else
+ {
+ // Not being worn yet.
+ return TRUE;
+ }
+ break;
+ }
+ case LLAssetType::AT_BODYPART:
+ case LLAssetType::AT_CLOTHING:
+ if(gAgentWearables.isWearingItem(item->getLinkedUUID()))
+ {
+ // Already being worn
+ return FALSE;
+ }
+ else
+ {
+ // Not being worn yet.
+ return TRUE;
+ }
+ break;
+ default:
+ break;
+ }
+ return FALSE;
+}
+
BOOL get_is_item_removable(const LLInventoryModel* model, const LLUUID& id)
{
if (!model)
@@ -282,7 +345,9 @@ BOOL get_is_item_removable(const LLInventoryModel* model, const LLUUID& id)
BOOL get_is_category_removable(const LLInventoryModel* model, const LLUUID& id)
{
- // This function doesn't check the folder's children.
+ // NOTE: This function doesn't check the folder's children.
+ // See LLFolderBridge::isItemRemovable for a function that does
+ // consider the children.
if (!model)
{
@@ -296,17 +361,29 @@ BOOL get_is_category_removable(const LLInventoryModel* model, const LLUUID& id)
if (!isAgentAvatarValid()) return FALSE;
- LLInventoryCategory* category = model->getCategory(id);
+ const LLInventoryCategory* category = model->getCategory(id);
if (!category)
{
return FALSE;
}
- if (LLFolderType::lookupIsProtectedType(category->getPreferredType()))
+ const LLFolderType::EType folder_type = category->getPreferredType();
+
+ if (LLFolderType::lookupIsProtectedType(folder_type))
{
return FALSE;
}
+ // Can't delete the outfit that is currently being worn.
+ if (folder_type == LLFolderType::FT_OUTFIT)
+ {
+ const LLViewerInventoryItem *base_outfit_link = LLAppearanceMgr::instance().getBaseOutfitLink();
+ if (base_outfit_link && (category == base_outfit_link->getLinkedCategory()))
+ {
+ return FALSE;
+ }
+ }
+
return TRUE;
}
@@ -378,13 +455,12 @@ void show_item_original(const LLUUID& item_uuid)
LLPanelMainInventory* main_inventory = floater_inventory->getMainInventoryPanel();
main_inventory->onFilterEdit("");
- }
- if(floater_inventory->getVisible())
- {
- floater_inventory_visible = true;
+ if(floater_inventory->getVisible())
+ {
+ floater_inventory_visible = true;
+ }
}
-
}
if(sidepanel_inventory && !floater_inventory_visible)
{
@@ -453,6 +529,19 @@ bool LLIsNotType::operator()(LLInventoryCategory* cat, LLInventoryItem* item)
return TRUE;
}
+bool LLIsOfAssetType::operator()(LLInventoryCategory* cat, LLInventoryItem* item)
+{
+ if(mType == LLAssetType::AT_CATEGORY)
+ {
+ if(cat) return TRUE;
+ }
+ if(item)
+ {
+ if(item->getActualType() == mType) return TRUE;
+ }
+ return FALSE;
+}
+
bool LLIsTypeWithPermissions::operator()(LLInventoryCategory* cat, LLInventoryItem* item)
{
if(mType == LLAssetType::AT_CATEGORY)
diff --git a/indra/newview/llinventoryfunctions.h b/indra/newview/llinventoryfunctions.h
index 6619a50d28..cfe1747fd4 100644
--- a/indra/newview/llinventoryfunctions.h
+++ b/indra/newview/llinventoryfunctions.h
@@ -3,31 +3,25 @@
* @brief Miscellaneous inventory-related functions and classes
* class definition
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -46,6 +40,9 @@
// Is this item or its baseitem is worn, attached, etc...
BOOL get_is_item_worn(const LLUUID& id);
+// Could this item be worn (correct type + not already being worn)
+BOOL get_can_item_be_worn(const LLUUID& id);
+
BOOL get_is_item_removable(const LLInventoryModel* model, const LLUUID& id);
BOOL get_is_category_removable(const LLInventoryModel* model, const LLUUID& id);
@@ -171,6 +168,25 @@ protected:
LLAssetType::EType mType;
};
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+// Class LLIsOfAssetType
+//
+// Implementation of a LLInventoryCollectFunctor which returns TRUE if
+// the item or category is of asset type passed in during construction.
+// Link types are treated as links, not as the types they point to.
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+class LLIsOfAssetType : public LLInventoryCollectFunctor
+{
+public:
+ LLIsOfAssetType(LLAssetType::EType type) : mType(type) {}
+ virtual ~LLIsOfAssetType() {}
+ virtual bool operator()(LLInventoryCategory* cat,
+ LLInventoryItem* item);
+protected:
+ LLAssetType::EType mType;
+};
+
class LLIsTypeWithPermissions : public LLInventoryCollectFunctor
{
public:
@@ -268,9 +284,7 @@ public:
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-// Class LLFindNonLinksByMask
-//
-//
+// Class LLFindByMask
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
class LLFindByMask : public LLInventoryCollectFunctor
{
@@ -281,6 +295,7 @@ public:
virtual bool operator()(LLInventoryCategory* cat, LLInventoryItem* item)
{
+ //converting an inventory type to a bitmap filter mask
if(item && (mFilterMask & (1LL << item->getInventoryType())) )
{
return true;
@@ -379,6 +394,19 @@ public:
}
};
+/* Filters out items of a particular asset type */
+class LLIsTypeActual : public LLIsType
+{
+public:
+ LLIsTypeActual(LLAssetType::EType type) : LLIsType(type) {}
+ virtual ~LLIsTypeActual() {}
+ virtual bool operator()(LLInventoryCategory* cat, LLInventoryItem* item)
+ {
+ if (item && item->getIsLinkType()) return false;
+ return LLIsType::operator()(cat, item);
+ }
+};
+
// Collect non-removable folders and items.
class LLFindNonRemovableObjects : public LLInventoryCollectFunctor
{
diff --git a/indra/newview/llinventoryicon.cpp b/indra/newview/llinventoryicon.cpp
index 3090371a73..7216d61e7f 100644
--- a/indra/newview/llinventoryicon.cpp
+++ b/indra/newview/llinventoryicon.cpp
@@ -2,31 +2,25 @@
* @file llinventoryicon.cpp
* @brief Implementation of the inventory icon.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -91,6 +85,8 @@ LLIconDictionary::LLIconDictionary()
addEntry(LLInventoryIcon::ICONNAME_LINKITEM, new IconEntry("Inv_LinkItem"));
addEntry(LLInventoryIcon::ICONNAME_LINKFOLDER, new IconEntry("Inv_LinkItem"));
+ addEntry(LLInventoryIcon::ICONNAME_INVALID, new IconEntry("Inv_Invalid"));
+
addEntry(LLInventoryIcon::ICONNAME_NONE, new IconEntry("NONE"));
}
@@ -117,6 +113,7 @@ const std::string& LLInventoryIcon::getIconName(LLAssetType::EType asset_type,
if (item_is_multi)
{
idx = ICONNAME_OBJECT_MULTI;
+ return getIconName(idx);
}
switch(asset_type)
diff --git a/indra/newview/llinventoryicon.h b/indra/newview/llinventoryicon.h
index 6e29012c4c..9a2cc08095 100644
--- a/indra/newview/llinventoryicon.h
+++ b/indra/newview/llinventoryicon.h
@@ -3,31 +3,25 @@
* @brief Miscellaneous inventory-related functions and classes
* class definition
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -79,8 +73,8 @@ public:
ICONNAME_LINKITEM,
ICONNAME_LINKFOLDER,
+ ICONNAME_INVALID,
ICONNAME_COUNT,
-
ICONNAME_NONE = -1
};
diff --git a/indra/newview/llinventoryitemslist.cpp b/indra/newview/llinventoryitemslist.cpp
index 14de5442d6..348d7ebcec 100644
--- a/indra/newview/llinventoryitemslist.cpp
+++ b/indra/newview/llinventoryitemslist.cpp
@@ -3,33 +3,26 @@
* @brief A list of inventory items represented by LLFlatListView.
*
* Class LLInventoryItemsList implements a flat list of inventory items.
- * Class LLPanelInventoryListItem displays inventory item as an element
- * of LLInventoryItemsList.
- *
- * $LicenseInfo:firstyear=2010&license=viewergpl$
- *
- * Copyright (c) 2010, Linden Research, Inc.
*
+ * $LicenseInfo:firstyear=2010&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -40,341 +33,12 @@
// llcommon
#include "llcommonutils.h"
-// llui
-#include "lliconctrl.h"
-#include "lltextutil.h"
+#include "lltrans.h"
#include "llcallbacklist.h"
-#include "llinventoryfunctions.h"
+#include "llinventorylistitem.h"
#include "llinventorymodel.h"
-#include "lltrans.h"
-
-////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////
-
-static const S32 WIDGET_SPACING = 3;
-
-LLPanelInventoryListItemBase* LLPanelInventoryListItemBase::create(LLViewerInventoryItem* item)
-{
- LLPanelInventoryListItemBase* list_item = NULL;
- if (item)
- {
- list_item = new LLPanelInventoryListItemBase(item);
- list_item->init();
- }
- return list_item;
-}
-
-void LLPanelInventoryListItemBase::draw()
-{
- if (getNeedsRefresh())
- {
- if (mItem)
- {
- updateItem(mItem->getName());
- }
- setNeedsRefresh(false);
- }
- LLPanel::draw();
-}
-
-// virtual
-void LLPanelInventoryListItemBase::updateItem(const std::string& name,
- const LLStyle::Params& input_params)
-{
- setIconImage(mIconImage);
- setTitle(name, mHighlightedText, input_params);
-}
-
-void LLPanelInventoryListItemBase::addWidgetToLeftSide(const std::string& name, bool show_widget/* = true*/)
-{
- LLUICtrl* ctrl = findChild<LLUICtrl>(name);
- if(ctrl)
- {
- addWidgetToLeftSide(ctrl, show_widget);
- }
-}
-
-void LLPanelInventoryListItemBase::addWidgetToLeftSide(LLUICtrl* ctrl, bool show_widget/* = true*/)
-{
- mLeftSideWidgets.push_back(ctrl);
- setShowWidget(ctrl, show_widget);
-}
-
-void LLPanelInventoryListItemBase::addWidgetToRightSide(const std::string& name, bool show_widget/* = true*/)
-{
- LLUICtrl* ctrl = findChild<LLUICtrl>(name);
- if(ctrl)
- {
- addWidgetToRightSide(ctrl, show_widget);
- }
-}
-
-void LLPanelInventoryListItemBase::addWidgetToRightSide(LLUICtrl* ctrl, bool show_widget/* = true*/)
-{
- mRightSideWidgets.push_back(ctrl);
- setShowWidget(ctrl, show_widget);
-}
-
-void LLPanelInventoryListItemBase::setShowWidget(const std::string& name, bool show)
-{
- LLUICtrl* widget = findChild<LLUICtrl>(name);
- if(widget)
- {
- setShowWidget(widget, show);
- }
-}
-
-void LLPanelInventoryListItemBase::setShowWidget(LLUICtrl* ctrl, bool show)
-{
- // Enable state determines whether widget may become visible in setWidgetsVisible()
- ctrl->setEnabled(show);
-}
-
-BOOL LLPanelInventoryListItemBase::postBuild()
-{
- setIconCtrl(getChild<LLIconCtrl>("item_icon"));
- setTitleCtrl(getChild<LLTextBox>("item_name"));
-
- if (mItem)
- {
- mIconImage = LLInventoryIcon::getIcon(mItem->getType(), mItem->getInventoryType(), mItem->getFlags(), FALSE);
- updateItem(mItem->getName());
- }
-
- setNeedsRefresh(true);
-
- setWidgetsVisible(false);
- reshapeWidgets();
-
- return TRUE;
-}
-
-void LLPanelInventoryListItemBase::setValue(const LLSD& value)
-{
- if (!value.isMap()) return;
- if (!value.has("selected")) return;
- childSetVisible("selected_icon", value["selected"]);
-}
-
-void LLPanelInventoryListItemBase::onMouseEnter(S32 x, S32 y, MASK mask)
-{
- childSetVisible("hovered_icon", true);
- LLPanel::onMouseEnter(x, y, mask);
-}
-
-void LLPanelInventoryListItemBase::onMouseLeave(S32 x, S32 y, MASK mask)
-{
- childSetVisible("hovered_icon", false);
- LLPanel::onMouseLeave(x, y, mask);
-}
-
-const std::string& LLPanelInventoryListItemBase::getItemName() const
-{
- if (!mItem)
- {
- return LLStringUtil::null;
- }
- return mItem->getName();
-}
-
-LLAssetType::EType LLPanelInventoryListItemBase::getType() const
-{
- if (!mItem)
- {
- return LLAssetType::AT_NONE;
- }
- return mItem->getType();
-}
-
-LLWearableType::EType LLPanelInventoryListItemBase::getWearableType() const
-{
- if (!mItem)
- {
- return LLWearableType::WT_NONE;
- }
- return mItem->getWearableType();
-}
-
-const std::string& LLPanelInventoryListItemBase::getDescription() const
-{
- if (!mItem)
- {
- return LLStringUtil::null;
- }
- return mItem->getDescription();
-}
-
-S32 LLPanelInventoryListItemBase::notify(const LLSD& info)
-{
- S32 rv = 0;
- if(info.has("match_filter"))
- {
- mHighlightedText = info["match_filter"].asString();
-
- std::string test(mTitleCtrl->getText());
- LLStringUtil::toUpper(test);
-
- if(mHighlightedText.empty() || std::string::npos != test.find(mHighlightedText))
- {
- rv = 0; // substring is found
- }
- else
- {
- rv = -1;
- }
-
- setNeedsRefresh(true);
- }
- else
- {
- rv = LLPanel::notify(info);
- }
- return rv;
-}
-
-LLPanelInventoryListItemBase::LLPanelInventoryListItemBase(LLViewerInventoryItem* item)
-: LLPanel()
-, mItem(item)
-, mIconCtrl(NULL)
-, mTitleCtrl(NULL)
-, mWidgetSpacing(WIDGET_SPACING)
-, mLeftWidgetsWidth(0)
-, mRightWidgetsWidth(0)
-, mNeedsRefresh(false)
-{
-}
-
-void LLPanelInventoryListItemBase::init()
-{
- LLUICtrlFactory::getInstance()->buildPanel(this, "panel_inventory_item.xml");
-}
-
-class WidgetVisibilityChanger
-{
-public:
- WidgetVisibilityChanger(bool visible) : mVisible(visible){}
- void operator()(LLUICtrl* widget)
- {
- // Disabled widgets never become visible. see LLPanelInventoryListItemBase::setShowWidget()
- widget->setVisible(mVisible && widget->getEnabled());
- }
-private:
- bool mVisible;
-};
-
-void LLPanelInventoryListItemBase::setWidgetsVisible(bool visible)
-{
- std::for_each(mLeftSideWidgets.begin(), mLeftSideWidgets.end(), WidgetVisibilityChanger(visible));
- std::for_each(mRightSideWidgets.begin(), mRightSideWidgets.end(), WidgetVisibilityChanger(visible));
-}
-
-void LLPanelInventoryListItemBase::reshapeWidgets()
-{
- // disabled reshape left for now to reserve space for 'delete' button in LLPanelClothingListItem
- /*reshapeLeftWidgets();*/
- reshapeRightWidgets();
- reshapeMiddleWidgets();
-}
-
-void LLPanelInventoryListItemBase::setIconImage(const LLUIImagePtr& image)
-{
- if(image)
- {
- mIconImage = image;
- mIconCtrl->setImage(mIconImage);
- }
-}
-
-void LLPanelInventoryListItemBase::setTitle(const std::string& title,
- const std::string& highlit_text,
- const LLStyle::Params& input_params)
-{
- mTitleCtrl->setToolTip(title);
-
- LLTextUtil::textboxSetHighlightedVal(
- mTitleCtrl,
- input_params,
- title,
- highlit_text);
-}
-
-BOOL LLPanelInventoryListItemBase::handleToolTip( S32 x, S32 y, MASK mask)
-{
- LLRect text_box_rect = mTitleCtrl->getRect();
- if (text_box_rect.pointInRect(x, y) &&
- mTitleCtrl->getTextPixelWidth() <= text_box_rect.getWidth())
- {
- return FALSE;
- }
- return LLPanel::handleToolTip(x, y, mask);
-}
-
-void LLPanelInventoryListItemBase::reshapeLeftWidgets()
-{
- S32 widget_left = 0;
- mLeftWidgetsWidth = 0;
-
- widget_array_t::const_iterator it = mLeftSideWidgets.begin();
- const widget_array_t::const_iterator it_end = mLeftSideWidgets.end();
- for( ; it_end != it; ++it)
- {
- LLUICtrl* widget = *it;
- if(!widget->getVisible())
- {
- continue;
- }
- LLRect widget_rect(widget->getRect());
- widget_rect.setLeftTopAndSize(widget_left, widget_rect.mTop, widget_rect.getWidth(), widget_rect.getHeight());
- widget->setShape(widget_rect);
-
- widget_left += widget_rect.getWidth() + getWidgetSpacing();
- mLeftWidgetsWidth = widget_rect.mRight;
- }
-}
-
-void LLPanelInventoryListItemBase::reshapeRightWidgets()
-{
- S32 widget_right = getLocalRect().getWidth();
- S32 widget_left = widget_right;
-
- widget_array_t::const_reverse_iterator it = mRightSideWidgets.rbegin();
- const widget_array_t::const_reverse_iterator it_end = mRightSideWidgets.rend();
- for( ; it_end != it; ++it)
- {
- LLUICtrl* widget = *it;
- if(!widget->getVisible())
- {
- continue;
- }
- LLRect widget_rect(widget->getRect());
- widget_left = widget_right - widget_rect.getWidth();
- widget_rect.setLeftTopAndSize(widget_left, widget_rect.mTop, widget_rect.getWidth(), widget_rect.getHeight());
- widget->setShape(widget_rect);
-
- widget_right = widget_left - getWidgetSpacing();
- }
- mRightWidgetsWidth = getLocalRect().getWidth() - widget_left;
-}
-
-void LLPanelInventoryListItemBase::reshapeMiddleWidgets()
-{
- LLRect icon_rect(mIconCtrl->getRect());
- icon_rect.setLeftTopAndSize(mLeftWidgetsWidth + getWidgetSpacing(), icon_rect.mTop,
- icon_rect.getWidth(), icon_rect.getHeight());
- mIconCtrl->setShape(icon_rect);
-
- S32 name_left = icon_rect.mRight + getWidgetSpacing();
- S32 name_right = getLocalRect().getWidth() - mRightWidgetsWidth - getWidgetSpacing();
- LLRect name_rect(mTitleCtrl->getRect());
- name_rect.set(name_left, name_rect.mTop, name_right, name_rect.mBottom);
- mTitleCtrl->setShape(name_rect);
-}
-
-////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////
-////////////////////////////////////////////////////////////////////////////////
+#include "llviewerinventory.h"
LLInventoryItemsList::Params::Params()
{}
@@ -416,6 +80,37 @@ boost::signals2::connection LLInventoryItemsList::setRefreshCompleteCallback(con
return mRefreshCompleteSignal.connect(cb);
}
+bool LLInventoryItemsList::selectItemByValue(const LLSD& value, bool select)
+{
+ if (!LLFlatListView::selectItemByValue(value, select) && !value.isUndefined())
+ {
+ mSelectTheseIDs.push_back(value);
+ return false;
+ }
+ return true;
+}
+
+void LLInventoryItemsList::updateSelection()
+{
+ if(mSelectTheseIDs.empty()) return;
+
+ std::vector<LLSD> cur;
+ getValues(cur);
+
+ for(std::vector<LLSD>::const_iterator cur_id_it = cur.begin(); cur_id_it != cur.end() && !mSelectTheseIDs.empty(); ++cur_id_it)
+ {
+ uuid_vec_t::iterator select_ids_it = std::find(mSelectTheseIDs.begin(), mSelectTheseIDs.end(), *cur_id_it);
+ if(select_ids_it != mSelectTheseIDs.end())
+ {
+ selectItemByUUID(*select_ids_it);
+ mSelectTheseIDs.erase(select_ids_it);
+ }
+ }
+
+ scrollToShowFirstSelectedItem();
+ mSelectTheseIDs.clear();
+}
+
void LLInventoryItemsList::doIdle()
{
if (!mNeedsRefresh) return;
@@ -438,9 +133,12 @@ void LLInventoryItemsList::idle(void* user_data)
}
}
+LLFastTimer::DeclareTimer FTM_INVENTORY_ITEMS_REFRESH("Inventory List Refresh");
+
void LLInventoryItemsList::refresh()
{
- static const unsigned ADD_LIMIT = 50;
+ LLFastTimer _(FTM_INVENTORY_ITEMS_REFRESH);
+ static const unsigned ADD_LIMIT = 20;
uuid_vec_t added_items;
uuid_vec_t removed_items;
@@ -471,7 +169,8 @@ void LLInventoryItemsList::refresh()
it = removed_items.begin();
for( ; removed_items.end() != it; ++it)
{
- removeItemByUUID(*it);
+ // don't filter items right away
+ removeItemByUUID(*it, false);
}
// Filter, rearrange and notify parent about shape changes
@@ -480,6 +179,12 @@ void LLInventoryItemsList::refresh()
bool needs_refresh = add_limit_exceeded;
setNeedsRefresh(needs_refresh);
setForceRefresh(needs_refresh);
+
+ // After list building completed, select items that had been requested to select before list was build
+ if(!needs_refresh)
+ {
+ updateSelection();
+ }
}
void LLInventoryItemsList::computeDifference(
diff --git a/indra/newview/llinventoryitemslist.h b/indra/newview/llinventoryitemslist.h
index 5dc0bfe3de..86e11dff17 100644
--- a/indra/newview/llinventoryitemslist.h
+++ b/indra/newview/llinventoryitemslist.h
@@ -3,33 +3,26 @@
* @brief A list of inventory items represented by LLFlatListView.
*
* Class LLInventoryItemsList implements a flat list of inventory items.
- * Class LLPanelInventoryListItem displays inventory item as an element
- * of LLInventoryItemsList.
- *
- * $LicenseInfo:firstyear=2010&license=viewergpl$
- *
- * Copyright (c) 2010, Linden Research, Inc.
*
+ * $LicenseInfo:firstyear=2010&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -38,191 +31,14 @@
#include "lldarray.h"
-#include "llpanel.h"
-
// newview
#include "llflatlistview.h"
-#include "llviewerinventory.h"
-class LLIconCtrl;
-class LLTextBox;
class LLViewerInventoryItem;
-/**
- * @class LLPanelInventoryListItemBase
- *
- * Base class for Inventory flat list item. Panel consists of inventory icon
- * and inventory item name.
- * This class is able to display widgets(buttons) on left(before icon) and right(after text-box) sides
- * of panel.
- *
- * How to use (see LLPanelClothingListItem for example):
- * - implement init() to build panel from xml
- * - create new xml file, fill it with widgets you want to dynamically show/hide/reshape on left/right sides
- * - redefine postBuild()(call base implementation) and add needed widgets to needed sides,
- *
- */
-class LLPanelInventoryListItemBase : public LLPanel
-{
-public:
- static LLPanelInventoryListItemBase* create(LLViewerInventoryItem* item);
-
- virtual void draw();
-
- /**
- * Let item know it need to be refreshed in next draw()
- */
- void setNeedsRefresh(bool needs_refresh){ mNeedsRefresh = needs_refresh; }
-
- bool getNeedsRefresh(){ return mNeedsRefresh; }
-
- /**
- * Add widget to left side
- */
- void addWidgetToLeftSide(const std::string& name, bool show_widget = true);
- void addWidgetToLeftSide(LLUICtrl* ctrl, bool show_widget = true);
-
- /**
- * Add widget to right side, widget is supposed to be child of calling panel
- */
- void addWidgetToRightSide(const std::string& name, bool show_widget = true);
- void addWidgetToRightSide(LLUICtrl* ctrl, bool show_widget = true);
-
- /**
- * Mark widgets as visible. Only visible widgets take part in reshaping children
- */
- void setShowWidget(const std::string& name, bool show);
- void setShowWidget(LLUICtrl* ctrl, bool show);
-
- /**
- * Set spacing between widgets during reshape
- */
- void setWidgetSpacing(S32 spacing) { mWidgetSpacing = spacing; }
-
- S32 getWidgetSpacing() { return mWidgetSpacing; }
-
- /**
- * Inheritors need to call base implementation of postBuild()
- */
- /*virtual*/ BOOL postBuild();
-
- /**
- * Handles item selection
- */
- /*virtual*/ void setValue(const LLSD& value);
-
- /**
- * Handles filter request
- */
- /*virtual*/ S32 notify(const LLSD& info);
-
- /* Highlights item */
- /*virtual*/ void onMouseEnter(S32 x, S32 y, MASK mask);
- /* Removes item highlight */
- /*virtual*/ void onMouseLeave(S32 x, S32 y, MASK mask);
-
- /** Get the name of a corresponding inventory item */
- const std::string& getItemName() const;
-
- /** Get the asset type of a corresponding inventory item */
- LLAssetType::EType getType() const;
-
- /** Get the wearable type of a corresponding inventory item */
- LLWearableType::EType getWearableType() const;
-
- /** Get the description of a corresponding inventory item */
- const std::string& getDescription() const;
-
- /** Get the associated inventory item */
- LLViewerInventoryItem* getItem() const { return mItem; }
-
- virtual ~LLPanelInventoryListItemBase(){}
-
-protected:
-
- LLPanelInventoryListItemBase(LLViewerInventoryItem* item);
-
- typedef std::vector<LLUICtrl*> widget_array_t;
-
- /**
- * Use it from a factory function to build panel, do not build panel in constructor
- */
- virtual void init();
-
- /**
- * Called after inventory item was updated, update panel widgets to reflect inventory changes.
- */
- virtual void updateItem(const std::string& name,
- const LLStyle::Params& input_params = LLStyle::Params());
-
- /** setter for mIconCtrl */
- void setIconCtrl(LLIconCtrl* icon) { mIconCtrl = icon; }
- /** setter for MTitleCtrl */
- void setTitleCtrl(LLTextBox* tb) { mTitleCtrl = tb; }
-
- void setLeftWidgetsWidth(S32 width) { mLeftWidgetsWidth = width; }
- void setRightWidgetsWidth(S32 width) { mRightWidgetsWidth = width; }
-
- /**
- * Set all widgets from both side visible/invisible. Only enabled widgets
- * (see setShowWidget()) can become visible
- */
- virtual void setWidgetsVisible(bool visible);
-
- /**
- * Reshape all child widgets - icon, text-box and side widgets
- */
- virtual void reshapeWidgets();
-
- /** set wearable type icon image */
- void setIconImage(const LLUIImagePtr& image);
-
- /** Set item title - inventory item name usually */
- virtual void setTitle(const std::string& title,
- const std::string& highlit_text,
- const LLStyle::Params& input_params = LLStyle::Params());
-
- /**
- * Show tool tip if item name text size > panel size
- */
- virtual BOOL handleToolTip( S32 x, S32 y, MASK mask);
-
- LLViewerInventoryItem* mItem;
-
-private:
-
- /** reshape left side widgets
- * Deprecated for now. Disabled reshape left for now to reserve space for 'delete'
- * button in LLPanelClothingListItem according to Neal's comment (https://codereview.productengine.com/secondlife/r/325/)
- */
- void reshapeLeftWidgets();
-
- /** reshape right side widgets */
- void reshapeRightWidgets();
-
- /** reshape remaining widgets */
- void reshapeMiddleWidgets();
-
-
- LLIconCtrl* mIconCtrl;
- LLTextBox* mTitleCtrl;
-
- LLUIImagePtr mIconImage;
- std::string mHighlightedText;
-
- widget_array_t mLeftSideWidgets;
- widget_array_t mRightSideWidgets;
- S32 mWidgetSpacing;
-
- S32 mLeftWidgetsWidth;
- S32 mRightWidgetsWidth;
- bool mNeedsRefresh;
-};
-
-//////////////////////////////////////////////////////////////////////////
-
class LLInventoryItemsList : public LLFlatListViewEx
{
+ LOG_CLASS(LLInventoryItemsList);
public:
struct Params : public LLInitParam::Block<Params, LLFlatListViewEx::Params>
{
@@ -248,6 +64,10 @@ public:
*/
void setForceRefresh(bool force_refresh){ mForceRefresh = force_refresh; }
+ virtual bool selectItemByValue(const LLSD& value, bool select = true);
+
+ void updateSelection();
+
/**
* Idle routine used to refresh the list regardless of the current list
* visibility, unlike draw() which is called only for the visible list.
@@ -284,6 +104,9 @@ protected:
private:
uuid_vec_t mIDs; // IDs of items that were added in refreshList().
// Will be used in refresh() to determine added and removed ids
+
+ uuid_vec_t mSelectTheseIDs; // IDs that will be selected if list is not loaded till now
+
bool mNeedsRefresh;
bool mForceRefresh;
diff --git a/indra/newview/llinventorylistitem.cpp b/indra/newview/llinventorylistitem.cpp
new file mode 100644
index 0000000000..225d0288a9
--- /dev/null
+++ b/indra/newview/llinventorylistitem.cpp
@@ -0,0 +1,462 @@
+/**
+ * @file llinventorylistitem.cpp
+ * @brief Inventory list item panel.
+ *
+ * Class LLPanelInventoryListItemBase displays inventory item as an element
+ * of LLInventoryItemsList.
+ *
+ * $LicenseInfo:firstyear=2010&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 "llinventorylistitem.h"
+
+// llui
+#include "lliconctrl.h"
+#include "lltextbox.h"
+#include "lltextutil.h"
+
+// newview
+#include "llinventorymodel.h"
+#include "llviewerinventory.h"
+
+static LLWidgetNameRegistry::StaticRegistrar sRegisterPanelInventoryListItemBaseParams(&typeid(LLPanelInventoryListItemBase::Params), "inventory_list_item");
+
+static const S32 WIDGET_SPACING = 3;
+
+LLPanelInventoryListItemBase::Params::Params()
+: default_style("default_style"),
+ worn_style("worn_style"),
+ hover_image("hover_image"),
+ selected_image("selected_image"),
+ separator_image("separator_image"),
+ item_icon("item_icon"),
+ item_name("item_name")
+{};
+
+LLPanelInventoryListItemBase* LLPanelInventoryListItemBase::create(LLViewerInventoryItem* item)
+{
+ LLPanelInventoryListItemBase* list_item = NULL;
+ if (item)
+ {
+ const LLPanelInventoryListItemBase::Params& params = LLUICtrlFactory::getDefaultParams<LLPanelInventoryListItemBase>();
+ list_item = new LLPanelInventoryListItemBase(item, params);
+ list_item->initFromParams(params);
+ list_item->postBuild();
+ }
+ return list_item;
+}
+
+void LLPanelInventoryListItemBase::draw()
+{
+ if (getNeedsRefresh())
+ {
+ LLViewerInventoryItem* inv_item = getItem();
+ if (inv_item)
+ {
+ updateItem(inv_item->getName());
+ }
+ setNeedsRefresh(false);
+ }
+
+ if (mHovered && mHoverImage)
+ {
+ mHoverImage->draw(getLocalRect());
+ }
+
+ if (mSelected && mSelectedImage)
+ {
+ mSelectedImage->draw(getLocalRect());
+ }
+
+ if (mSeparatorVisible && mSeparatorImage)
+ {
+ // place under bottom of listitem, using image height
+ // item_pad in list using the item should be >= image height
+ // to avoid cropping of top of the next item.
+ LLRect separator_rect = getLocalRect();
+ separator_rect.mTop = separator_rect.mBottom;
+ separator_rect.mBottom -= mSeparatorImage->getHeight();
+ mSeparatorImage->draw(separator_rect);
+ }
+
+ LLPanel::draw();
+}
+
+// virtual
+void LLPanelInventoryListItemBase::updateItem(const std::string& name,
+ EItemState item_state)
+{
+ setIconImage(mIconImage);
+ setTitle(name, mHighlightedText, item_state);
+}
+
+void LLPanelInventoryListItemBase::addWidgetToLeftSide(const std::string& name, bool show_widget/* = true*/)
+{
+ LLUICtrl* ctrl = findChild<LLUICtrl>(name);
+ if(ctrl)
+ {
+ addWidgetToLeftSide(ctrl, show_widget);
+ }
+}
+
+void LLPanelInventoryListItemBase::addWidgetToLeftSide(LLUICtrl* ctrl, bool show_widget/* = true*/)
+{
+ mLeftSideWidgets.push_back(ctrl);
+ setShowWidget(ctrl, show_widget);
+}
+
+void LLPanelInventoryListItemBase::addWidgetToRightSide(const std::string& name, bool show_widget/* = true*/)
+{
+ LLUICtrl* ctrl = findChild<LLUICtrl>(name);
+ if(ctrl)
+ {
+ addWidgetToRightSide(ctrl, show_widget);
+ }
+}
+
+void LLPanelInventoryListItemBase::addWidgetToRightSide(LLUICtrl* ctrl, bool show_widget/* = true*/)
+{
+ mRightSideWidgets.push_back(ctrl);
+ setShowWidget(ctrl, show_widget);
+}
+
+void LLPanelInventoryListItemBase::setShowWidget(const std::string& name, bool show)
+{
+ LLUICtrl* widget = findChild<LLUICtrl>(name);
+ if(widget)
+ {
+ setShowWidget(widget, show);
+ }
+}
+
+void LLPanelInventoryListItemBase::setShowWidget(LLUICtrl* ctrl, bool show)
+{
+ // Enable state determines whether widget may become visible in setWidgetsVisible()
+ ctrl->setEnabled(show);
+}
+
+BOOL LLPanelInventoryListItemBase::postBuild()
+{
+ LLViewerInventoryItem* inv_item = getItem();
+ if (inv_item)
+ {
+ mIconImage = LLInventoryIcon::getIcon(inv_item->getType(), inv_item->getInventoryType(), inv_item->getFlags(), FALSE);
+ updateItem(inv_item->getName());
+ }
+
+ setNeedsRefresh(true);
+
+ setWidgetsVisible(false);
+ reshapeWidgets();
+
+ return TRUE;
+}
+
+void LLPanelInventoryListItemBase::setValue(const LLSD& value)
+{
+ if (!value.isMap()) return;
+ if (!value.has("selected")) return;
+ mSelected = value["selected"];
+}
+
+void LLPanelInventoryListItemBase::onMouseEnter(S32 x, S32 y, MASK mask)
+{
+ mHovered = true;
+ LLPanel::onMouseEnter(x, y, mask);
+}
+
+void LLPanelInventoryListItemBase::onMouseLeave(S32 x, S32 y, MASK mask)
+{
+ mHovered = false;
+ LLPanel::onMouseLeave(x, y, mask);
+}
+
+const std::string& LLPanelInventoryListItemBase::getItemName() const
+{
+ LLViewerInventoryItem* inv_item = getItem();
+ if (NULL == inv_item)
+ {
+ return LLStringUtil::null;
+ }
+ return inv_item->getName();
+}
+
+LLAssetType::EType LLPanelInventoryListItemBase::getType() const
+{
+ LLViewerInventoryItem* inv_item = getItem();
+ if (NULL == inv_item)
+ {
+ return LLAssetType::AT_NONE;
+ }
+ return inv_item->getType();
+}
+
+LLWearableType::EType LLPanelInventoryListItemBase::getWearableType() const
+{
+ LLViewerInventoryItem* inv_item = getItem();
+ if (NULL == inv_item)
+ {
+ return LLWearableType::WT_NONE;
+ }
+ return inv_item->getWearableType();
+}
+
+const std::string& LLPanelInventoryListItemBase::getDescription() const
+{
+ LLViewerInventoryItem* inv_item = getItem();
+ if (NULL == inv_item)
+ {
+ return LLStringUtil::null;
+ }
+ return inv_item->getDescription();
+}
+
+time_t LLPanelInventoryListItemBase::getCreationDate() const
+{
+ LLViewerInventoryItem* inv_item = getItem();
+ if (NULL == inv_item)
+ {
+ return 0;
+ }
+
+ return inv_item->getCreationDate();
+}
+
+LLViewerInventoryItem* LLPanelInventoryListItemBase::getItem() const
+{
+ return gInventory.getItem(mInventoryItemUUID);
+}
+
+S32 LLPanelInventoryListItemBase::notify(const LLSD& info)
+{
+ S32 rv = 0;
+ if(info.has("match_filter"))
+ {
+ mHighlightedText = info["match_filter"].asString();
+
+ std::string test(mTitleCtrl->getText());
+ LLStringUtil::toUpper(test);
+
+ if(mHighlightedText.empty() || std::string::npos != test.find(mHighlightedText))
+ {
+ rv = 0; // substring is found
+ }
+ else
+ {
+ rv = -1;
+ }
+
+ setNeedsRefresh(true);
+ }
+ else
+ {
+ rv = LLPanel::notify(info);
+ }
+ return rv;
+}
+
+LLPanelInventoryListItemBase::LLPanelInventoryListItemBase(LLViewerInventoryItem* item, const LLPanelInventoryListItemBase::Params& params)
+: LLPanel(params),
+ mInventoryItemUUID(item ? item->getUUID() : LLUUID::null),
+ mIconCtrl(NULL),
+ mTitleCtrl(NULL),
+ mWidgetSpacing(WIDGET_SPACING),
+ mLeftWidgetsWidth(0),
+ mRightWidgetsWidth(0),
+ mNeedsRefresh(false),
+ mHovered(false),
+ mSelected(false),
+ mSeparatorVisible(false),
+ mHoverImage(params.hover_image),
+ mSelectedImage(params.selected_image),
+ mSeparatorImage(params.separator_image)
+{
+ LLIconCtrl::Params icon_params(params.item_icon);
+ applyXUILayout(icon_params, this);
+
+ mIconCtrl = LLUICtrlFactory::create<LLIconCtrl>(icon_params);
+ if (mIconCtrl)
+ {
+ addChild(mIconCtrl);
+ }
+ else
+ {
+ LLIconCtrl::Params icon_params;
+ icon_params.name = "item_icon";
+ mIconCtrl = LLUICtrlFactory::create<LLIconCtrl>(icon_params);
+ }
+
+ LLTextBox::Params text_params(params.item_name);
+ applyXUILayout(text_params, this);
+
+ mTitleCtrl = LLUICtrlFactory::create<LLTextBox>(text_params);
+ if (mTitleCtrl)
+ {
+ addChild(mTitleCtrl);
+ }
+ else
+ {
+ LLTextBox::Params text_aprams;
+ text_params.name = "item_title";
+ mTitleCtrl = LLUICtrlFactory::create<LLTextBox>(text_params);
+ }
+}
+
+class WidgetVisibilityChanger
+{
+public:
+ WidgetVisibilityChanger(bool visible) : mVisible(visible){}
+ void operator()(LLUICtrl* widget)
+ {
+ // Disabled widgets never become visible. see LLPanelInventoryListItemBase::setShowWidget()
+ widget->setVisible(mVisible && widget->getEnabled());
+ }
+private:
+ bool mVisible;
+};
+
+void LLPanelInventoryListItemBase::setWidgetsVisible(bool visible)
+{
+ std::for_each(mLeftSideWidgets.begin(), mLeftSideWidgets.end(), WidgetVisibilityChanger(visible));
+ std::for_each(mRightSideWidgets.begin(), mRightSideWidgets.end(), WidgetVisibilityChanger(visible));
+}
+
+void LLPanelInventoryListItemBase::reshapeWidgets()
+{
+ // disabled reshape left for now to reserve space for 'delete' button in LLPanelClothingListItem
+ /*reshapeLeftWidgets();*/
+ reshapeRightWidgets();
+ reshapeMiddleWidgets();
+}
+
+void LLPanelInventoryListItemBase::setIconImage(const LLUIImagePtr& image)
+{
+ if(image)
+ {
+ mIconImage = image;
+ mIconCtrl->setImage(mIconImage);
+ }
+}
+
+void LLPanelInventoryListItemBase::setTitle(const std::string& title,
+ const std::string& highlit_text,
+ EItemState item_state)
+{
+ mTitleCtrl->setToolTip(title);
+
+ LLStyle::Params style_params;
+
+ const LLPanelInventoryListItemBase::Params& params = LLUICtrlFactory::getDefaultParams<LLPanelInventoryListItemBase>();
+
+ switch(item_state)
+ {
+ case IS_DEFAULT:
+ style_params = params.default_style();
+ break;
+ case IS_WORN:
+ style_params = params.worn_style();
+ break;
+ default:;
+ }
+
+ LLTextUtil::textboxSetHighlightedVal(
+ mTitleCtrl,
+ style_params,
+ title,
+ highlit_text);
+}
+
+BOOL LLPanelInventoryListItemBase::handleToolTip( S32 x, S32 y, MASK mask)
+{
+ LLRect text_box_rect = mTitleCtrl->getRect();
+ if (text_box_rect.pointInRect(x, y) &&
+ mTitleCtrl->getTextPixelWidth() <= text_box_rect.getWidth())
+ {
+ return FALSE;
+ }
+ return LLPanel::handleToolTip(x, y, mask);
+}
+
+void LLPanelInventoryListItemBase::reshapeLeftWidgets()
+{
+ S32 widget_left = 0;
+ mLeftWidgetsWidth = 0;
+
+ widget_array_t::const_iterator it = mLeftSideWidgets.begin();
+ const widget_array_t::const_iterator it_end = mLeftSideWidgets.end();
+ for( ; it_end != it; ++it)
+ {
+ LLUICtrl* widget = *it;
+ if(!widget->getVisible())
+ {
+ continue;
+ }
+ LLRect widget_rect(widget->getRect());
+ widget_rect.setLeftTopAndSize(widget_left, widget_rect.mTop, widget_rect.getWidth(), widget_rect.getHeight());
+ widget->setShape(widget_rect);
+
+ widget_left += widget_rect.getWidth() + getWidgetSpacing();
+ mLeftWidgetsWidth = widget_rect.mRight;
+ }
+}
+
+void LLPanelInventoryListItemBase::reshapeRightWidgets()
+{
+ S32 widget_right = getLocalRect().getWidth();
+ S32 widget_left = widget_right;
+
+ widget_array_t::const_reverse_iterator it = mRightSideWidgets.rbegin();
+ const widget_array_t::const_reverse_iterator it_end = mRightSideWidgets.rend();
+ for( ; it_end != it; ++it)
+ {
+ LLUICtrl* widget = *it;
+ if(!widget->getVisible())
+ {
+ continue;
+ }
+ LLRect widget_rect(widget->getRect());
+ widget_left = widget_right - widget_rect.getWidth();
+ widget_rect.setLeftTopAndSize(widget_left, widget_rect.mTop, widget_rect.getWidth(), widget_rect.getHeight());
+ widget->setShape(widget_rect);
+
+ widget_right = widget_left - getWidgetSpacing();
+ }
+ mRightWidgetsWidth = getLocalRect().getWidth() - widget_left;
+}
+
+void LLPanelInventoryListItemBase::reshapeMiddleWidgets()
+{
+ LLRect icon_rect(mIconCtrl->getRect());
+ icon_rect.setLeftTopAndSize(mLeftWidgetsWidth + getWidgetSpacing(), icon_rect.mTop,
+ icon_rect.getWidth(), icon_rect.getHeight());
+ mIconCtrl->setShape(icon_rect);
+
+ S32 name_left = icon_rect.mRight + getWidgetSpacing();
+ S32 name_right = getLocalRect().getWidth() - mRightWidgetsWidth - getWidgetSpacing();
+ LLRect name_rect(mTitleCtrl->getRect());
+ name_rect.set(name_left, name_rect.mTop, name_right, name_rect.mBottom);
+ mTitleCtrl->setShape(name_rect);
+}
+
+// EOF
diff --git a/indra/newview/llinventorylistitem.h b/indra/newview/llinventorylistitem.h
new file mode 100644
index 0000000000..b1ef6c74ee
--- /dev/null
+++ b/indra/newview/llinventorylistitem.h
@@ -0,0 +1,238 @@
+/**
+ * @file llinventorylistitem.h
+ * @brief Inventory list item panel.
+ *
+ * Class LLPanelInventoryListItemBase displays inventory item as an element
+ * of LLInventoryItemsList.
+ *
+ * $LicenseInfo:firstyear=2010&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_LLINVENTORYLISTITEM_H
+#define LL_LLINVENTORYLISTITEM_H
+
+// llcommon
+#include "llassettype.h"
+
+// llui
+#include "llpanel.h"
+#include "llstyle.h"
+#include "lliconctrl.h"
+#include "lltextbox.h"
+
+// newview
+#include "llwearabletype.h"
+
+class LLViewerInventoryItem;
+
+/**
+ * @class LLPanelInventoryListItemBase
+ *
+ * Base class for Inventory flat list item. Panel consists of inventory icon
+ * and inventory item name.
+ * This class is able to display widgets(buttons) on left(before icon) and right(after text-box) sides
+ * of panel.
+ *
+ * How to use (see LLPanelClothingListItem for example):
+ * - implement init() to build panel from xml
+ * - create new xml file, fill it with widgets you want to dynamically show/hide/reshape on left/right sides
+ * - redefine postBuild()(call base implementation) and add needed widgets to needed sides,
+ *
+ */
+class LLPanelInventoryListItemBase : public LLPanel
+{
+public:
+ struct Params : public LLInitParam::Block<Params, LLPanel::Params>
+ {
+ Optional<LLStyle::Params> default_style,
+ worn_style;
+ Optional<LLUIImage*> hover_image,
+ selected_image,
+ separator_image;
+ Optional<LLIconCtrl::Params> item_icon;
+ Optional<LLTextBox::Params> item_name;
+ Params();
+ };
+
+ typedef enum e_item_state {
+ IS_DEFAULT,
+ IS_WORN,
+ } EItemState;
+
+ static LLPanelInventoryListItemBase* create(LLViewerInventoryItem* item);
+
+ virtual void draw();
+
+ /**
+ * Let item know it need to be refreshed in next draw()
+ */
+ void setNeedsRefresh(bool needs_refresh){ mNeedsRefresh = needs_refresh; }
+
+ bool getNeedsRefresh(){ return mNeedsRefresh; }
+
+ /**
+ * Add widget to left side
+ */
+ void addWidgetToLeftSide(const std::string& name, bool show_widget = true);
+ void addWidgetToLeftSide(LLUICtrl* ctrl, bool show_widget = true);
+
+ /**
+ * Add widget to right side, widget is supposed to be child of calling panel
+ */
+ void addWidgetToRightSide(const std::string& name, bool show_widget = true);
+ void addWidgetToRightSide(LLUICtrl* ctrl, bool show_widget = true);
+
+ /**
+ * Mark widgets as visible. Only visible widgets take part in reshaping children
+ */
+ void setShowWidget(const std::string& name, bool show);
+ void setShowWidget(LLUICtrl* ctrl, bool show);
+
+ /**
+ * Set spacing between widgets during reshape
+ */
+ void setWidgetSpacing(S32 spacing) { mWidgetSpacing = spacing; }
+
+ S32 getWidgetSpacing() { return mWidgetSpacing; }
+
+ /**
+ * Inheritors need to call base implementation of postBuild()
+ */
+ /*virtual*/ BOOL postBuild();
+
+ /**
+ * Handles item selection
+ */
+ /*virtual*/ void setValue(const LLSD& value);
+
+ /**
+ * Handles filter request
+ */
+ /*virtual*/ S32 notify(const LLSD& info);
+
+ /* Highlights item */
+ /*virtual*/ void onMouseEnter(S32 x, S32 y, MASK mask);
+ /* Removes item highlight */
+ /*virtual*/ void onMouseLeave(S32 x, S32 y, MASK mask);
+
+ /** Get the name of a corresponding inventory item */
+ const std::string& getItemName() const;
+
+ /** Get the asset type of a corresponding inventory item */
+ LLAssetType::EType getType() const;
+
+ /** Get the wearable type of a corresponding inventory item */
+ LLWearableType::EType getWearableType() const;
+
+ /** Get the description of a corresponding inventory item */
+ const std::string& getDescription() const;
+
+ /** Get the creation date of a corresponding inventory item */
+ time_t getCreationDate() const;
+
+ /** Get the associated inventory item */
+ LLViewerInventoryItem* getItem() const;
+
+ void setSeparatorVisible(bool visible) { mSeparatorVisible = visible; }
+
+ virtual ~LLPanelInventoryListItemBase(){}
+
+protected:
+
+ LLPanelInventoryListItemBase(LLViewerInventoryItem* item, const Params& params);
+
+ typedef std::vector<LLUICtrl*> widget_array_t;
+
+ /**
+ * Called after inventory item was updated, update panel widgets to reflect inventory changes.
+ */
+ virtual void updateItem(const std::string& name,
+ EItemState item_state = IS_DEFAULT);
+
+ void setLeftWidgetsWidth(S32 width) { mLeftWidgetsWidth = width; }
+ void setRightWidgetsWidth(S32 width) { mRightWidgetsWidth = width; }
+
+ /**
+ * Set all widgets from both side visible/invisible. Only enabled widgets
+ * (see setShowWidget()) can become visible
+ */
+ virtual void setWidgetsVisible(bool visible);
+
+ /**
+ * Reshape all child widgets - icon, text-box and side widgets
+ */
+ virtual void reshapeWidgets();
+
+ /** set wearable type icon image */
+ void setIconImage(const LLUIImagePtr& image);
+
+ /** Set item title - inventory item name usually */
+ void setTitle(const std::string& title,
+ const std::string& highlit_text,
+ EItemState item_state = IS_DEFAULT);
+
+ /**
+ * Show tool tip if item name text size > panel size
+ */
+ virtual BOOL handleToolTip( S32 x, S32 y, MASK mask);
+
+ const LLUUID mInventoryItemUUID;
+
+private:
+
+ /** reshape left side widgets
+ * Deprecated for now. Disabled reshape left for now to reserve space for 'delete'
+ * button in LLPanelClothingListItem according to Neal's comment (https://codereview.productengine.com/secondlife/r/325/)
+ */
+ void reshapeLeftWidgets();
+
+ /** reshape right side widgets */
+ void reshapeRightWidgets();
+
+ /** reshape remaining widgets */
+ void reshapeMiddleWidgets();
+
+
+ LLIconCtrl* mIconCtrl;
+ LLTextBox* mTitleCtrl;
+
+ LLUIImagePtr mIconImage;
+ LLUIImagePtr mHoverImage;
+ LLUIImagePtr mSelectedImage;
+ LLUIImagePtr mSeparatorImage;
+
+ bool mHovered;
+ bool mSelected;
+ bool mSeparatorVisible;
+
+ std::string mHighlightedText;
+
+ widget_array_t mLeftSideWidgets;
+ widget_array_t mRightSideWidgets;
+ S32 mWidgetSpacing;
+
+ S32 mLeftWidgetsWidth;
+ S32 mRightWidgetsWidth;
+ bool mNeedsRefresh;
+};
+
+#endif //LL_LLINVENTORYLISTITEM_H
diff --git a/indra/newview/llinventorymodel.cpp b/indra/newview/llinventorymodel.cpp
index b9e9f0fc0b..53835f0166 100644
--- a/indra/newview/llinventorymodel.cpp
+++ b/indra/newview/llinventorymodel.cpp
@@ -2,31 +2,25 @@
* @file llinventorymodel.cpp
* @brief Implementation of the inventory model used to track agent inventory.
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -294,6 +288,30 @@ void LLInventoryModel::getDirectDescendentsOf(const LLUUID& cat_id,
items = get_ptr_in_map(mParentChildItemTree, cat_id);
}
+LLMD5 LLInventoryModel::hashDirectDescendentNames(const LLUUID& cat_id) const
+{
+ LLInventoryModel::cat_array_t* cat_array;
+ LLInventoryModel::item_array_t* item_array;
+ getDirectDescendentsOf(cat_id,cat_array,item_array);
+ LLMD5 item_name_hash;
+ if (!item_array)
+ {
+ item_name_hash.finalize();
+ return item_name_hash;
+ }
+ for (LLInventoryModel::item_array_t::const_iterator iter = item_array->begin();
+ iter != item_array->end();
+ iter++)
+ {
+ const LLViewerInventoryItem *item = (*iter);
+ if (!item)
+ continue;
+ item_name_hash.update(item->getName());
+ }
+ item_name_hash.finalize();
+ return item_name_hash;
+}
+
// SJB: Added version to lock the arrays to catch potential logic bugs
void LLInventoryModel::lockDirectDescendentArrays(const LLUUID& cat_id,
cat_array_t*& categories,
@@ -483,7 +501,7 @@ void LLInventoryModel::collectDescendentsIf(const LLUUID& id,
for(S32 i = 0; i < count; ++i)
{
item = item_array->get(i);
- if (item->getActualType() == LLAssetType::AT_LINK_FOLDER)
+ if (item && item->getActualType() == LLAssetType::AT_LINK_FOLDER)
{
LLViewerInventoryCategory *linked_cat = item->getLinkedCategory();
if (linked_cat && linked_cat->getPreferredType() != LLFolderType::FT_OUTFIT)
@@ -1254,6 +1272,9 @@ void LLInventoryModel::addCategory(LLViewerInventoryCategory* category)
//llinfos << "LLInventoryModel::addCategory()" << llendl;
if(category)
{
+ // try to localize default names first. See EXT-8319, EXT-7051.
+ category->localizeName();
+
// Insert category uniquely into the map
mCategoryMap[category->getUUID()] = category; // LLPointer will deref and delete the old one
//mInventory[category->getUUID()] = category;
@@ -1660,6 +1681,17 @@ bool LLInventoryModel::loadSkeleton(
}
}
+ // Invalidate all categories that failed fetching descendents for whatever
+ // reason (e.g. one of the descendents was a broken link).
+ for (cat_set_t::iterator invalid_cat_it = invalid_categories.begin();
+ invalid_cat_it != invalid_categories.end();
+ invalid_cat_it++)
+ {
+ 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;
+ }
+
// At this point, we need to set the known descendents for each
// category which successfully cached so that we do not
// needlessly fetch descendents for categories which we have.
@@ -1682,17 +1714,6 @@ bool LLInventoryModel::loadSkeleton(
}
}
- // Invalidate all categories that failed fetching descendents for whatever
- // reason (e.g. one of the descendents was a broken link).
- for (cat_set_t::iterator invalid_cat_it = invalid_categories.begin();
- invalid_cat_it != invalid_categories.end();
- invalid_cat_it++)
- {
- 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;
- }
-
if(remove_inventory_file)
{
// clean up the gunzipped file.
diff --git a/indra/newview/llinventorymodel.h b/indra/newview/llinventorymodel.h
index 7b56d0bdd1..f6728fd575 100644
--- a/indra/newview/llinventorymodel.h
+++ b/indra/newview/llinventorymodel.h
@@ -2,31 +2,25 @@
* @file llinventorymodel.h
* @brief LLInventoryModel class header file
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -41,6 +35,7 @@
#include "lluuid.h"
#include "llpermissionsflags.h"
#include "llstring.h"
+#include "llmd5.h"
#include <map>
#include <set>
#include <string>
@@ -194,6 +189,9 @@ public:
void getDirectDescendentsOf(const LLUUID& cat_id,
cat_array_t*& categories,
item_array_t*& items) const;
+
+ // Compute a hash of direct descendent names (for detecting child name changes)
+ LLMD5 hashDirectDescendentNames(const LLUUID& cat_id) const;
// Starting with the object specified, add its descendents to the
// array provided, but do not add the inventory object specified
diff --git a/indra/newview/llinventorymodelbackgroundfetch.cpp b/indra/newview/llinventorymodelbackgroundfetch.cpp
index ce44e37017..eab8f187a7 100644
--- a/indra/newview/llinventorymodelbackgroundfetch.cpp
+++ b/indra/newview/llinventorymodelbackgroundfetch.cpp
@@ -2,31 +2,25 @@
* @file llinventorymodel.cpp
* @brief Implementation of the inventory model used to track agent inventory.
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llinventorymodelbackgroundfetch.h b/indra/newview/llinventorymodelbackgroundfetch.h
index 04f96586d7..c35c785ceb 100644
--- a/indra/newview/llinventorymodelbackgroundfetch.h
+++ b/indra/newview/llinventorymodelbackgroundfetch.h
@@ -2,31 +2,25 @@
* @file llinventorymodelbackgroundfetch.h
* @brief LLInventoryModelBackgroundFetch class header file
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llinventoryobserver.cpp b/indra/newview/llinventoryobserver.cpp
index bd6877d9d3..91ff8c7867 100644
--- a/indra/newview/llinventoryobserver.cpp
+++ b/indra/newview/llinventoryobserver.cpp
@@ -2,31 +2,25 @@
* @file llinventoryobserver.cpp
* @brief Implementation of the inventory observers used to track agent inventory.
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -676,7 +670,9 @@ void LLInventoryCategoriesObserver::changed(U32 mask)
iter != mCategoryMap.end();
++iter)
{
- LLViewerInventoryCategory* category = gInventory.getCategory((*iter).first);
+ const LLUUID& cat_id = (*iter).first;
+
+ LLViewerInventoryCategory* category = gInventory.getCategory(cat_id);
if (!category)
continue;
@@ -691,7 +687,7 @@ void LLInventoryCategoriesObserver::changed(U32 mask)
// Check number of known descendents to find out whether it has changed.
LLInventoryModel::cat_array_t* cats;
LLInventoryModel::item_array_t* items;
- gInventory.getDirectDescendentsOf((*iter).first, cats, items);
+ gInventory.getDirectDescendentsOf(cat_id, cats, items);
if (!cats || !items)
{
llwarns << "Category '" << category->getName() << "' descendents corrupted, fetch failed." << llendl;
@@ -703,20 +699,39 @@ void LLInventoryCategoriesObserver::changed(U32 mask)
continue;
}
-
+
const S32 current_num_known_descendents = cats->count() + items->count();
- LLCategoryData cat_data = (*iter).second;
+ LLCategoryData& cat_data = (*iter).second;
+
+ bool cat_changed = false;
// If category version or descendents count has changed
- // update category data in mCategoryMap and fire a callback.
+ // update category data in mCategoryMap
if (version != cat_data.mVersion || current_num_known_descendents != cat_data.mDescendentsCount)
{
cat_data.mVersion = version;
cat_data.mDescendentsCount = current_num_known_descendents;
+ cat_changed = true;
+ }
- cat_data.mCallback();
+ // If any item names have changed, update the name hash
+ // Only need to check if (a) name hash has not previously been
+ // computed, or (b) a name has changed.
+ if (!cat_data.mIsNameHashInitialized || (mask & LLInventoryObserver::LABEL))
+ {
+ LLMD5 item_name_hash = gInventory.hashDirectDescendentNames(cat_id);
+ if (cat_data.mItemNameHash != item_name_hash)
+ {
+ cat_data.mIsNameHashInitialized = true;
+ cat_data.mItemNameHash = item_name_hash;
+ cat_changed = true;
+ }
}
+
+ // If anything has changed above, fire the callback.
+ if (cat_changed)
+ cat_data.mCallback();
}
}
@@ -758,7 +773,8 @@ bool LLInventoryCategoriesObserver::addCategory(const LLUUID& cat_id, callback_t
if (can_be_added)
{
- mCategoryMap.insert(category_map_value_t(cat_id, LLCategoryData(cb, version, current_num_known_descendents)));
+ mCategoryMap.insert(category_map_value_t(
+ cat_id,LLCategoryData(cat_id, cb, version, current_num_known_descendents)));
}
return can_be_added;
@@ -768,3 +784,15 @@ void LLInventoryCategoriesObserver::removeCategory(const LLUUID& cat_id)
{
mCategoryMap.erase(cat_id);
}
+
+LLInventoryCategoriesObserver::LLCategoryData::LLCategoryData(
+ const LLUUID& cat_id, callback_t cb, S32 version, S32 num_descendents)
+
+ : mCatID(cat_id)
+ , mCallback(cb)
+ , mVersion(version)
+ , mDescendentsCount(num_descendents)
+ , mIsNameHashInitialized(false)
+{
+ mItemNameHash.finalize();
+}
diff --git a/indra/newview/llinventoryobserver.h b/indra/newview/llinventoryobserver.h
index 4a88a65bf8..f2a2049a51 100644
--- a/indra/newview/llinventoryobserver.h
+++ b/indra/newview/llinventoryobserver.h
@@ -2,31 +2,25 @@
* @file llinventoryobserver.h
* @brief LLInventoryObserver class header file
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -34,6 +28,7 @@
#define LL_LLINVENTORYOBSERVERS_H
#include "lluuid.h"
+#include "llmd5.h"
#include <string>
#include <vector>
@@ -294,15 +289,14 @@ public:
protected:
struct LLCategoryData
{
- LLCategoryData(callback_t cb, S32 version, S32 num_descendents)
- : mCallback(cb)
- , mVersion(version)
- , mDescendentsCount(num_descendents)
- {}
+ LLCategoryData(const LLUUID& cat_id, callback_t cb, S32 version, S32 num_descendents);
callback_t mCallback;
S32 mVersion;
S32 mDescendentsCount;
+ LLMD5 mItemNameHash;
+ bool mIsNameHashInitialized;
+ LLUUID mCatID;
};
typedef std::map<LLUUID, LLCategoryData> category_map_t;
diff --git a/indra/newview/llinventorypanel.cpp b/indra/newview/llinventorypanel.cpp
index 72d35af3b7..50adae09c0 100644
--- a/indra/newview/llinventorypanel.cpp
+++ b/indra/newview/llinventorypanel.cpp
@@ -2,31 +2,25 @@
* @file llinventorypanel.cpp
* @brief Implementation of the inventory panel and associated stuff.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -175,6 +169,9 @@ void LLInventoryPanel::initFromParams(const LLInventoryPanel::Params& params)
setSortOrder(gSavedSettings.getU32(DEFAULT_SORT_ORDER));
}
mFolderRoot->setSortOrder(getFilter()->getSortOrder());
+
+ // Initialize base class params.
+ LLPanel::initFromParams(params);
}
LLInventoryPanel::~LLInventoryPanel()
@@ -256,9 +253,9 @@ void LLInventoryPanel::setHoursAgo(U32 hours)
getFilter()->setHoursAgo(hours);
}
-void LLInventoryPanel::setIncludeLinks(BOOL include_links)
+void LLInventoryPanel::setFilterLinks(U64 filter_links)
{
- getFilter()->setIncludeLinks(include_links);
+ getFilter()->setFilterLinks(filter_links);
}
void LLInventoryPanel::setShowFolderState(LLInventoryFilter::EFolderShow show)
@@ -706,21 +703,6 @@ BOOL LLInventoryPanel::handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,
return handled;
}
-// virtual
-void LLInventoryPanel::onMouseEnter(S32 x, S32 y, MASK mask)
-{
- LLPanel::onMouseEnter(x, y, mask);
- // don't auto-scroll a list when cursor is over Inventory. See EXT-3981.
- mFolderRoot->setEnableScroll(false);
-}
-
-// virtual
-void LLInventoryPanel::onMouseLeave(S32 x, S32 y, MASK mask)
-{
- LLPanel::onMouseLeave(x, y, mask);
- mFolderRoot->setEnableScroll(true);
-}
-
void LLInventoryPanel::onFocusLost()
{
// inventory no longer handles cut/copy/paste/delete
@@ -790,7 +772,7 @@ void LLInventoryPanel::doToSelected(const LLSD& userdata)
void LLInventoryPanel::doCreate(const LLSD& userdata)
{
- menu_create_inventory_item(mFolderRoot, LLFolderBridge::sSelf, userdata);
+ menu_create_inventory_item(mFolderRoot, LLFolderBridge::sSelf.get(), userdata);
}
bool LLInventoryPanel::beginIMSession()
@@ -934,6 +916,8 @@ BOOL is_inventorysp_active()
// static
LLInventoryPanel* LLInventoryPanel::getActiveInventoryPanel(BOOL auto_open)
{
+ S32 z_min = S32_MAX;
+ LLInventoryPanel* res = NULL;
// A. If the inventory side panel is open, use that preferably.
if (is_inventorysp_active())
{
@@ -943,11 +927,26 @@ LLInventoryPanel* LLInventoryPanel::getActiveInventoryPanel(BOOL auto_open)
return inventorySP->getActivePanel();
}
}
+ // or if it is in floater undocked from sidetray get it and remember z order of floater to later compare it
+ // with other inventory floaters order.
+ else if (!LLSideTray::getInstance()->isTabAttached("sidebar_inventory"))
+ {
+ LLSidepanelInventory *inventorySP =
+ dynamic_cast<LLSidepanelInventory *>(LLSideTray::getInstance()->getPanel("sidepanel_inventory"));
+ LLFloater* inv_floater = LLFloaterReg::findInstance("side_bar_tab", LLSD("sidebar_inventory"));
+ if (inventorySP && inv_floater)
+ {
+ res = inventorySP->getActivePanel();
+ z_min = gFloaterView->getZOrder(inv_floater);
+ }
+ else
+ {
+ llwarns << "Inventory tab is detached from sidetray, but either panel or floater were not found!" << llendl;
+ }
+ }
// B. Iterate through the inventory floaters and return whichever is on top.
LLFloaterReg::const_instance_list_t& inst_list = LLFloaterReg::getFloaterList("inventory");
- S32 z_min = S32_MAX;
- LLInventoryPanel* res = NULL;
for (LLFloaterReg::const_instance_list_t::const_iterator iter = inst_list.begin(); iter != inst_list.end(); ++iter)
{
LLFloaterInventory* iv = dynamic_cast<LLFloaterInventory*>(*iter);
diff --git a/indra/newview/llinventorypanel.h b/indra/newview/llinventorypanel.h
index 84603e8b4f..6545fc0d5e 100644
--- a/indra/newview/llinventorypanel.h
+++ b/indra/newview/llinventorypanel.h
@@ -3,31 +3,25 @@
* @brief LLInventoryPanel
* class definition
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -121,10 +115,6 @@ public:
void* cargo_data,
EAcceptance* accept,
std::string& tooltip_msg);
-
- void onMouseEnter(S32 x, S32 y, MASK mask);
- void onMouseLeave(S32 x, S32 y, MASK mask);
-
// LLUICtrl methods
/*virtual*/ void onFocusLost();
/*virtual*/ void onFocusReceived();
@@ -145,7 +135,7 @@ public:
void setSinceLogoff(BOOL sl);
void setHoursAgo(U32 hours);
BOOL getSinceLogoff();
- void setIncludeLinks(BOOL include_links);
+ void setFilterLinks(U64 filter_links);
void setShowFolderState(LLInventoryFilter::EFolderShow show);
LLInventoryFilter::EFolderShow getShowFolderState();
diff --git a/indra/newview/lljoystickbutton.cpp b/indra/newview/lljoystickbutton.cpp
index c2a1923dfe..3d1f186bba 100644
--- a/indra/newview/lljoystickbutton.cpp
+++ b/indra/newview/lljoystickbutton.cpp
@@ -2,31 +2,25 @@
* @file lljoystickbutton.cpp
* @brief LLJoystick class implementation
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lljoystickbutton.h b/indra/newview/lljoystickbutton.h
index 1dd30036ab..93e2e7128b 100644
--- a/indra/newview/lljoystickbutton.h
+++ b/indra/newview/lljoystickbutton.h
@@ -2,31 +2,25 @@
* @file lljoystickbutton.h
* @brief LLJoystick class definition
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lllandmarkactions.cpp b/indra/newview/lllandmarkactions.cpp
index 539ca97a93..f2aec20611 100644
--- a/indra/newview/lllandmarkactions.cpp
+++ b/indra/newview/lllandmarkactions.cpp
@@ -2,31 +2,25 @@
* @file lllandmarkactions.cpp
* @brief LLLandmarkActions class implementation
*
-* $LicenseInfo:firstyear=2001&license=viewergpl$
-*
-* Copyright (c) 2001-2009, Linden Research, Inc.
-*
+* $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
-* The source code in this file ("Source Code") is provided by Linden Lab
-* to you under the terms of the GNU General Public License, version 2.0
-* ("GPL"), unless you have obtained a separate licensing agreement
-* ("Other License"), formally executed by you and Linden Lab. Terms of
-* the GPL can be found in doc/GPL-license.txt in this distribution, or
-* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+* 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.
*
-* There are special exceptions to the terms and conditions of the GPL as
-* it is applied to this Source Code. View the full text of the exception
-* in the file doc/FLOSS-exception.txt in this software distribution, or
-* online at
-* http://secondlifegrid.net/programs/open_source/licensing/flossexception
+* 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.
*
-* By copying, modifying or distributing this software, you acknowledge
-* that you have read and understood your obligations described above,
-* and agree to abide by those obligations.
+* 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
*
-* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
-* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
-* COMPLETENESS OR PERFORMANCE.
+* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lllandmarkactions.h b/indra/newview/lllandmarkactions.h
index 987caf0936..870d92811e 100644
--- a/indra/newview/lllandmarkactions.h
+++ b/indra/newview/lllandmarkactions.h
@@ -2,31 +2,25 @@
* @file lllandmarkactions.h
* @brief LLLandmark class declaration
*
- * $LicenseInfo:firstyear=2000&license=viewergpl$
- *
- * Copyright (c) 2000-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2000&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lllandmarklist.cpp b/indra/newview/lllandmarklist.cpp
index ce84474c05..dd402de394 100644
--- a/indra/newview/lllandmarklist.cpp
+++ b/indra/newview/lllandmarklist.cpp
@@ -2,31 +2,25 @@
* @file lllandmarklist.cpp
* @brief Landmark asset list class
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -165,6 +159,11 @@ void LLLandmarkList::processGetAssetReply(
}
+BOOL LLLandmarkList::isAssetInLoadedCallbackMap(const LLUUID& asset_uuid)
+{
+ return mLoadedCallbackMap.find(asset_uuid) != mLoadedCallbackMap.end();
+}
+
BOOL LLLandmarkList::assetExists(const LLUUID& asset_uuid)
{
return mList.count(asset_uuid) != 0 || mBadList.count(asset_uuid) != 0;
diff --git a/indra/newview/lllandmarklist.h b/indra/newview/lllandmarklist.h
index d9c3267142..3356f866ce 100644
--- a/indra/newview/lllandmarklist.h
+++ b/indra/newview/lllandmarklist.h
@@ -2,31 +2,25 @@
* @file lllandmarklist.h
* @brief Landmark asset list class
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -65,6 +59,10 @@ public:
S32 status,
LLExtStat ext_status );
+ // Returns TRUE if loading the landmark with given asset_uuid has been requested
+ // but is not complete yet.
+ BOOL isAssetInLoadedCallbackMap(const LLUUID& asset_uuid);
+
protected:
void onRegionHandle(const LLUUID& landmark_id);
void makeCallbacks(const LLUUID& landmark_id);
diff --git a/indra/newview/lllightconstants.h b/indra/newview/lllightconstants.h
index 2a3dacfb75..216fd4ded5 100644
--- a/indra/newview/lllightconstants.h
+++ b/indra/newview/lllightconstants.h
@@ -2,31 +2,25 @@
* @file lllightconstants.h
* @brief Constants for light functions
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lllistbrowser.cpp b/indra/newview/lllistbrowser.cpp
index edd8e9818f..956f457730 100644
--- a/indra/newview/lllistbrowser.cpp
+++ b/indra/newview/lllistbrowser.cpp
@@ -3,31 +3,25 @@
* @brief UI widget showing a search filter, list view, icon action buttons,
* and verb action buttons, as usually embedded in the side tray.
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
#include "llviewerprecompiledheaders.h"
diff --git a/indra/newview/lllistbrowser.h b/indra/newview/lllistbrowser.h
index bc9498c514..22e8755f08 100644
--- a/indra/newview/lllistbrowser.h
+++ b/indra/newview/lllistbrowser.h
@@ -3,31 +3,25 @@
* @brief UI widget showing a search filter, list view, icon action buttons,
* and verb action buttons, as usually embedded in the side tray.
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
#ifndef LLLISTBROWSER_H
diff --git a/indra/newview/lllistcontextmenu.cpp b/indra/newview/lllistcontextmenu.cpp
index 50e969f6bc..ea744072d2 100644
--- a/indra/newview/lllistcontextmenu.cpp
+++ b/indra/newview/lllistcontextmenu.cpp
@@ -2,31 +2,25 @@
* @file lllistcontextmenu.cpp
* @brief Base class of misc lists' context menus
*
- * $LicenseInfo:firstyear=2010&license=viewergpl$
- *
- * Copyright (c) 2010, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2010&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lllistcontextmenu.h b/indra/newview/lllistcontextmenu.h
index 09540a833f..5dedc30b0c 100644
--- a/indra/newview/lllistcontextmenu.h
+++ b/indra/newview/lllistcontextmenu.h
@@ -2,31 +2,25 @@
* @file lllistcontextmenu.h
* @brief Base class of misc lists' context menus
*
- * $LicenseInfo:firstyear=2010&license=viewergpl$
- *
- * Copyright (c) 2010, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2010&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lllistview.cpp b/indra/newview/lllistview.cpp
index f4f3b1df78..8fc3ad63bd 100644
--- a/indra/newview/lllistview.cpp
+++ b/indra/newview/lllistview.cpp
@@ -3,31 +3,25 @@
* @brief UI widget containing a scrollable, possibly hierarchical list of
* folders (LLListViewFolder) and items (LLListViewItem).
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
#include "llviewerprecompiledheaders.h"
diff --git a/indra/newview/lllistview.h b/indra/newview/lllistview.h
index 501c0c9e1f..4303672b9f 100644
--- a/indra/newview/lllistview.h
+++ b/indra/newview/lllistview.h
@@ -3,31 +3,25 @@
* @brief UI widget containing a scrollable, possibly hierarchical list of
* folders (LLListViewFolder) and items (LLListViewItem).
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
#ifndef LLLISTVIEW_H
diff --git a/indra/newview/lllocaltextureobject.cpp b/indra/newview/lllocaltextureobject.cpp
index 116d9bc446..07ec0fab95 100644
--- a/indra/newview/lllocaltextureobject.cpp
+++ b/indra/newview/lllocaltextureobject.cpp
@@ -1,31 +1,25 @@
/**
* @file lllocaltextureobject.cpp
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lllocaltextureobject.h b/indra/newview/lllocaltextureobject.h
index c8b8aa924b..b9bfc5472f 100644
--- a/indra/newview/lllocaltextureobject.h
+++ b/indra/newview/lllocaltextureobject.h
@@ -2,31 +2,25 @@
* @file lllocaltextureobject.h
* @brief LLLocalTextureObject class header file
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lllocationhistory.cpp b/indra/newview/lllocationhistory.cpp
index 7906d9b20f..5138c5e620 100644
--- a/indra/newview/lllocationhistory.cpp
+++ b/indra/newview/lllocationhistory.cpp
@@ -2,31 +2,25 @@
* @file lllocationhistory.cpp
* @brief Typed locations history
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lllocationhistory.h b/indra/newview/lllocationhistory.h
index fb71fbaa0f..188fbf1f9b 100644
--- a/indra/newview/lllocationhistory.h
+++ b/indra/newview/lllocationhistory.h
@@ -2,31 +2,25 @@
* @file llocationhistory.h
* @brief Typed locations history
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lllocationinputctrl.cpp b/indra/newview/lllocationinputctrl.cpp
index 53a11eff04..d714cae872 100644
--- a/indra/newview/lllocationinputctrl.cpp
+++ b/indra/newview/lllocationinputctrl.cpp
@@ -2,31 +2,25 @@
* @file lllocationinputctrl.cpp
* @brief Combobox-like location input control
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -231,7 +225,7 @@ LLLocationInputCtrl::LLLocationInputCtrl(const LLLocationInputCtrl::Params& p)
params.rect(text_entry_rect);
params.default_text(LLStringUtil::null);
params.max_length_bytes(p.max_chars);
- params.keystroke_callback(boost::bind(&LLComboBox::onTextEntry, this, _1));
+ params.keystroke_callback(boost::bind(&LLLocationInputCtrl::onTextEntry, this, _1));
params.commit_on_focus_lost(false);
params.follows.flags(FOLLOWS_ALL);
mTextEntry = LLUICtrlFactory::create<LLURLLineEditor>(params);
@@ -484,13 +478,16 @@ void LLLocationInputCtrl::onTextEntry(LLLineEditor* line_editor)
KEY key = gKeyboard->currentKey();
MASK mask = gKeyboard->currentMask(TRUE);
+ // Typing? (moving cursor should not affect showing the list)
+ bool typing = mask != MASK_CONTROL && key != KEY_LEFT && key != KEY_RIGHT && key != KEY_HOME && key != KEY_END;
+ bool pasting = mask == MASK_CONTROL && key == 'V';
+
if (line_editor->getText().empty())
{
prearrangeList(); // resets filter
hideList();
}
- // Typing? (moving cursor should not affect showing the list)
- else if (mask != MASK_CONTROL && key != KEY_LEFT && key != KEY_RIGHT && key != KEY_HOME && key != KEY_END)
+ else if (typing || pasting)
{
prearrangeList(line_editor->getText());
if (mList->getItemCount() != 0)
@@ -966,7 +963,12 @@ void LLLocationInputCtrl::focusTextEntry()
// if the "select_on_focus" parameter is true it places the cursor
// at the beginning (after selecting text), thus screwing up updateSelection().
if (mTextEntry)
+ {
gFocusMgr.setKeyboardFocus(mTextEntry);
+
+ // Enable the text entry to handle accelerator keys (EXT-8104).
+ LLEditMenuHandler::gEditMenuHandler = mTextEntry;
+ }
}
void LLLocationInputCtrl::enableAddLandmarkButton(bool val)
@@ -1044,7 +1046,7 @@ void LLLocationInputCtrl::changeLocationPresentation()
//needs unescaped one
LLSLURL slurl;
LLAgentUI::buildSLURL(slurl, false);
- mTextEntry->setText(slurl.getSLURLString());
+ mTextEntry->setText(LLURI::unescape(slurl.getSLURLString()));
mTextEntry->selectAll();
mMaturityButton->setVisible(FALSE);
diff --git a/indra/newview/lllocationinputctrl.h b/indra/newview/lllocationinputctrl.h
index fc7adf60b0..6368bf5cf2 100644
--- a/indra/newview/lllocationinputctrl.h
+++ b/indra/newview/lllocationinputctrl.h
@@ -2,31 +2,25 @@
* @file lllocationinputctrl.h
* @brief Combobox-like location input control
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lllogchat.cpp b/indra/newview/lllogchat.cpp
index be8b2363ad..f5f4feeab3 100644
--- a/indra/newview/lllogchat.cpp
+++ b/indra/newview/lllogchat.cpp
@@ -2,31 +2,25 @@
* @file lllogchat.cpp
* @brief LLLogChat class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lllogchat.h b/indra/newview/lllogchat.h
index 4290e4bbc0..e544bb2d45 100644
--- a/indra/newview/lllogchat.h
+++ b/indra/newview/lllogchat.h
@@ -2,31 +2,25 @@
* @file lllogchat.h
* @brief LLFloaterChat class definition
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llloginhandler.cpp b/indra/newview/llloginhandler.cpp
index 4e0a7594ba..48be251611 100644
--- a/indra/newview/llloginhandler.cpp
+++ b/indra/newview/llloginhandler.cpp
@@ -3,31 +3,25 @@
* @brief Handles filling in the login panel information from a SLURL
* such as secondlife:///app/login?first=Bob&last=Dobbs
*
- * $LicenseInfo:firstyear=2008&license=viewergpl$
- *
- * Copyright (c) 2008-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2008&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
#include "llviewerprecompiledheaders.h"
diff --git a/indra/newview/llloginhandler.h b/indra/newview/llloginhandler.h
index c15b998c91..1f2eacd094 100644
--- a/indra/newview/llloginhandler.h
+++ b/indra/newview/llloginhandler.h
@@ -3,31 +3,25 @@
* @brief Handles filling in the login panel information from a SLURL
* such as secondlife:///app/login?first=Bob&last=Dobbs
*
- * $LicenseInfo:firstyear=2008&license=viewergpl$
- *
- * Copyright (c) 2008-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2008&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
#ifndef LLLOGINHANDLER_H
diff --git a/indra/newview/lllogininstance.cpp b/indra/newview/lllogininstance.cpp
index 71604291e1..3def135fb4 100644
--- a/indra/newview/lllogininstance.cpp
+++ b/indra/newview/lllogininstance.cpp
@@ -2,31 +2,25 @@
* @file lllogininstance.cpp
* @brief Viewer's host for a login connection.
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -53,11 +47,13 @@
#include "llfloaterreg.h"
#include "llnotifications.h"
#include "llwindow.h"
+#include "llviewerwindow.h"
#if LL_LINUX || LL_SOLARIS
#include "lltrans.h"
#endif
#include "llsecapi.h"
#include "llstartup.h"
+#include "llmachineid.h"
static const char * const TOS_REPLY_PUMP = "lllogininstance_tos_callback";
static const char * const TOS_LISTENER_NAME = "lllogininstance_tos";
@@ -107,6 +103,7 @@ void LLLoginInstance::reconnect()
std::vector<std::string> uris;
LLGridManager::getInstance()->getLoginURIs(uris);
mLoginModule->connect(uris.front(), mRequestData);
+ gViewerWindow->setShowProgress(true);
}
void LLLoginInstance::disconnect()
@@ -165,20 +162,24 @@ void LLLoginInstance::constructAuthParams(LLPointer<LLCredential> user_credentia
// (re)initialize the request params with creds.
LLSD request_params = user_credential->getLoginParams();
- char hashed_mac_string[MD5HEX_STR_SIZE]; /* Flawfinder: ignore */
- LLMD5 hashed_mac;
- unsigned char MACAddress[MAC_ADDRESS_BYTES];
- LLUUID::getNodeID(MACAddress);
- hashed_mac.update( MACAddress, MAC_ADDRESS_BYTES );
- hashed_mac.finalize();
- hashed_mac.hex_digest(hashed_mac_string);
+ 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;
+ }
+ }
+ 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_mac_string;
+ request_params["mac"] = hashed_unique_id_string;
request_params["version"] = gCurrentVersion; // Includes channel name
request_params["channel"] = gSavedSettings.getString("VersionChannelName");
request_params["id0"] = mSerialNumber;
@@ -240,6 +241,7 @@ void LLLoginInstance::handleLoginFailure(const LLSD& event)
LLSD data(LLSD::emptyMap());
data["message"] = message_response;
data["reply_pump"] = TOS_REPLY_PUMP;
+ gViewerWindow->setShowProgress(FALSE);
LLFloaterReg::showInstance("message_tos", data);
LLEventPumps::instance().obtain(TOS_REPLY_PUMP)
.listen(TOS_LISTENER_NAME,
@@ -260,6 +262,7 @@ void LLLoginInstance::handleLoginFailure(const LLSD& event)
data["certificate"] = response["certificate"];
}
+ gViewerWindow->setShowProgress(FALSE);
LLFloaterReg::showInstance("message_critical", data);
LLEventPumps::instance().obtain(TOS_REPLY_PUMP)
.listen(TOS_LISTENER_NAME,
@@ -403,6 +406,8 @@ void LLLoginInstance::updateApp(bool mandatory, const std::string& auth_msg)
{
mNotifications->add(notification_name, args, payload,
boost::bind(&LLLoginInstance::updateDialogCallback, this, _1, _2));
+
+ gViewerWindow->setShowProgress(false);
}
}
diff --git a/indra/newview/lllogininstance.h b/indra/newview/lllogininstance.h
index 44271bb75e..159e05046c 100644
--- a/indra/newview/lllogininstance.h
+++ b/indra/newview/lllogininstance.h
@@ -2,31 +2,25 @@
* @file lllogininstance.h
* @brief A host for the viewer's login connection.
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lllookshistorypanel.h b/indra/newview/lllookshistorypanel.h
index 986c9a1c4d..965b4d8416 100644
--- a/indra/newview/lllookshistorypanel.h
+++ b/indra/newview/lllookshistorypanel.h
@@ -3,30 +3,25 @@
* @brief Teleport history represented by a scrolling list
* class definition
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llmachineid.cpp b/indra/newview/llmachineid.cpp
index 53243e9807..778693876e 100644
--- a/indra/newview/llmachineid.cpp
+++ b/indra/newview/llmachineid.cpp
@@ -2,31 +2,25 @@
* @file llmachineid.cpp
* @brief retrieves unique machine ids
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2010, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llmachineid.h b/indra/newview/llmachineid.h
index 8160309b47..6ef8c36fdb 100644
--- a/indra/newview/llmachineid.h
+++ b/indra/newview/llmachineid.h
@@ -2,31 +2,25 @@
* @file llmachineid.h
* @brief retrieves unique machine ids
*
- * $LicenseInfo:firstyear=2010&license=viewergpl$
- *
- * Copyright (c) 2010, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2010&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llmanip.cpp b/indra/newview/llmanip.cpp
index 957e88960d..85e0043651 100644
--- a/indra/newview/llmanip.cpp
+++ b/indra/newview/llmanip.cpp
@@ -2,31 +2,25 @@
* @file llmanip.cpp
* @brief LLManip class implementation
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -435,12 +429,12 @@ void LLManip::renderXYZ(const LLVector3 &vec)
S32 vertical_offset = window_center_y - VERTICAL_OFFSET;
- glPushMatrix();
+ gGL.pushMatrix();
{
LLUIImagePtr imagep = LLUI::getUIImage("Rounded_Square");
gViewerWindow->setup2DRender();
const LLVector2& display_scale = gViewerWindow->getDisplayScale();
- glScalef(display_scale.mV[VX], display_scale.mV[VY], 1.f);
+ gGL.scalef(display_scale.mV[VX], display_scale.mV[VY], 1.f);
gGL.color4f(0.f, 0.f, 0.f, 0.7f);
imagep->draw(
@@ -450,7 +444,7 @@ void LLManip::renderXYZ(const LLVector3 &vec)
PAD * 2 + 10,
LLColor4(0.f, 0.f, 0.f, 0.7f) );
}
- glPopMatrix();
+ gGL.popMatrix();
gViewerWindow->setup3DRender();
diff --git a/indra/newview/llmanip.h b/indra/newview/llmanip.h
index cdf6a36575..6263e4244f 100644
--- a/indra/newview/llmanip.h
+++ b/indra/newview/llmanip.h
@@ -2,31 +2,25 @@
* @file llmanip.h
* @brief LLManip class definition
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llmaniprotate.cpp b/indra/newview/llmaniprotate.cpp
index 6747bcb9c9..43a16f8ed8 100644
--- a/indra/newview/llmaniprotate.cpp
+++ b/indra/newview/llmaniprotate.cpp
@@ -2,31 +2,25 @@
* @file llmaniprotate.cpp
* @brief LLManipRotate class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llmaniprotate.h b/indra/newview/llmaniprotate.h
index bb97f5cc28..e8f1c24c58 100644
--- a/indra/newview/llmaniprotate.h
+++ b/indra/newview/llmaniprotate.h
@@ -2,31 +2,25 @@
* @file llmaniprotate.h
* @brief LLManipRotate class definition
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llmanipscale.cpp b/indra/newview/llmanipscale.cpp
index 63643a7fc6..060677f9f3 100644
--- a/indra/newview/llmanipscale.cpp
+++ b/indra/newview/llmanipscale.cpp
@@ -2,31 +2,25 @@
* @file llmanipscale.cpp
* @brief LLManipScale class implementation
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llmanipscale.h b/indra/newview/llmanipscale.h
index 1de0459891..5559f557c0 100644
--- a/indra/newview/llmanipscale.h
+++ b/indra/newview/llmanipscale.h
@@ -2,31 +2,25 @@
* @file llmanipscale.h
* @brief LLManipScale class definition
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llmaniptranslate.cpp b/indra/newview/llmaniptranslate.cpp
index 5f0c5e1795..5eb3b789f2 100644
--- a/indra/newview/llmaniptranslate.cpp
+++ b/indra/newview/llmaniptranslate.cpp
@@ -2,31 +2,25 @@
* @file llmaniptranslate.cpp
* @brief LLManipTranslate class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llmaniptranslate.h b/indra/newview/llmaniptranslate.h
index d20b86b2f4..37567c7bd1 100644
--- a/indra/newview/llmaniptranslate.h
+++ b/indra/newview/llmaniptranslate.h
@@ -2,31 +2,25 @@
* @file llmaniptranslate.h
* @brief LLManipTranslate class definition
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llmediactrl.cpp b/indra/newview/llmediactrl.cpp
index 7a4ed74c4c..e84c9152b1 100644
--- a/indra/newview/llmediactrl.cpp
+++ b/indra/newview/llmediactrl.cpp
@@ -2,31 +2,25 @@
* @file LLMediaCtrl.cpp
* @brief Web browser UI control
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -44,7 +38,6 @@
#include "llviewermedia.h"
#include "llviewertexture.h"
#include "llviewerwindow.h"
-#include "llnotificationsutil.h"
#include "llweb.h"
#include "llrender.h"
#include "llpluginclassmedia.h"
@@ -54,6 +47,13 @@
// linden library includes
#include "llfocusmgr.h"
+#include "llsdutil.h"
+#include "lllayoutstack.h"
+#include "lliconctrl.h"
+#include "lltextbox.h"
+#include "llbutton.h"
+#include "llcheckboxctrl.h"
+#include "llnotifications.h"
extern BOOL gRestoreGL;
@@ -67,19 +67,22 @@ LLMediaCtrl::Params::Params()
decouple_texture_size("decouple_texture_size", false),
texture_width("texture_width", 1024),
texture_height("texture_height", 1024),
- caret_color("caret_color")
+ caret_color("caret_color"),
+ initial_mime_type("initial_mime_type"),
+ media_id("media_id"),
+ trusted_content("trusted_content", false)
{
tab_stop(false);
}
LLMediaCtrl::LLMediaCtrl( const Params& p) :
LLPanel( p ),
+ LLInstanceTracker<LLMediaCtrl, LLUUID>(LLUUID::generateNewID()),
mTextureDepthBytes( 4 ),
mBorder(NULL),
mFrequentUpdates( true ),
mForceUpdate( false ),
mHomePageUrl( "" ),
- mTrusted(false),
mIgnoreUIScale( true ),
mAlwaysRefresh( false ),
mMediaSource( 0 ),
@@ -92,7 +95,9 @@ LLMediaCtrl::LLMediaCtrl( const Params& p) :
mDecoupleTextureSize ( false ),
mTextureWidth ( 1024 ),
mTextureHeight ( 1024 ),
- mClearCache(false)
+ mClearCache(false),
+ mHomePageMimeType(p.initial_mime_type),
+ mTrusted(p.trusted_content)
{
{
LLColor4 color = p.caret_color().get();
@@ -101,7 +106,7 @@ LLMediaCtrl::LLMediaCtrl( const Params& p) :
setIgnoreUIScale(p.ignore_ui_scale);
- setHomePageUrl(p.start_url);
+ setHomePageUrl(p.start_url, p.initial_mime_type);
setBorderVisible(p.border_visible);
@@ -165,19 +170,10 @@ void LLMediaCtrl::setTakeFocusOnClick( bool take_focus )
}
////////////////////////////////////////////////////////////////////////////////
-void LLMediaCtrl::setTrusted( bool valIn )
-{
- if(mMediaSource)
- {
- mMediaSource->setTrustedBrowser(valIn);
- }
- mTrusted = valIn;
-}
-
-////////////////////////////////////////////////////////////////////////////////
//
BOOL LLMediaCtrl::handleHover( S32 x, S32 y, MASK mask )
{
+ if (LLPanel::handleHover(x, y, mask)) return TRUE;
convertInputCoords(x, y);
if (mMediaSource)
@@ -193,6 +189,7 @@ BOOL LLMediaCtrl::handleHover( S32 x, S32 y, MASK mask )
//
BOOL LLMediaCtrl::handleScrollWheel( S32 x, S32 y, S32 clicks )
{
+ if (LLPanel::handleScrollWheel(x, y, clicks)) return TRUE;
if (mMediaSource && mMediaSource->hasMedia())
mMediaSource->getMediaPlugin()->scrollEvent(0, clicks, gKeyboard->currentMask(TRUE));
@@ -203,6 +200,7 @@ BOOL LLMediaCtrl::handleScrollWheel( S32 x, S32 y, S32 clicks )
//
BOOL LLMediaCtrl::handleMouseUp( S32 x, S32 y, MASK mask )
{
+ if (LLPanel::handleMouseUp(x, y, mask)) return TRUE;
convertInputCoords(x, y);
if (mMediaSource)
@@ -227,6 +225,7 @@ BOOL LLMediaCtrl::handleMouseUp( S32 x, S32 y, MASK mask )
//
BOOL LLMediaCtrl::handleMouseDown( S32 x, S32 y, MASK mask )
{
+ if (LLPanel::handleMouseDown(x, y, mask)) return TRUE;
convertInputCoords(x, y);
if (mMediaSource)
@@ -246,6 +245,7 @@ BOOL LLMediaCtrl::handleMouseDown( S32 x, S32 y, MASK mask )
//
BOOL LLMediaCtrl::handleRightMouseUp( S32 x, S32 y, MASK mask )
{
+ if (LLPanel::handleRightMouseUp(x, y, mask)) return TRUE;
convertInputCoords(x, y);
if (mMediaSource)
@@ -270,6 +270,7 @@ BOOL LLMediaCtrl::handleRightMouseUp( S32 x, S32 y, MASK mask )
//
BOOL LLMediaCtrl::handleRightMouseDown( S32 x, S32 y, MASK mask )
{
+ if (LLPanel::handleRightMouseDown(x, y, mask)) return TRUE;
convertInputCoords(x, y);
if (mMediaSource)
@@ -289,6 +290,7 @@ BOOL LLMediaCtrl::handleRightMouseDown( S32 x, S32 y, MASK mask )
//
BOOL LLMediaCtrl::handleDoubleClick( S32 x, S32 y, MASK mask )
{
+ if (LLPanel::handleDoubleClick(x, y, mask)) return TRUE;
convertInputCoords(x, y);
if (mMediaSource)
@@ -343,6 +345,85 @@ void LLMediaCtrl::onFocusLost()
//
BOOL LLMediaCtrl::postBuild ()
{
+ LLLayoutStack::Params layout_p;
+ layout_p.name = "notification_stack";
+ layout_p.rect = LLRect(0,getLocalRect().mTop,getLocalRect().mRight, 30);
+ layout_p.follows.flags = FOLLOWS_ALL;
+ layout_p.mouse_opaque = false;
+ layout_p.orientation = "vertical";
+
+ LLLayoutStack* stackp = LLUICtrlFactory::create<LLLayoutStack>(layout_p);
+ addChild(stackp);
+
+ LLLayoutPanel::Params panel_p;
+ panel_p.rect = LLRect(0, 30, 800, 0);
+ panel_p.min_height = 30;
+ panel_p.name = "notification_area";
+ panel_p.visible = false;
+ panel_p.user_resize = false;
+ panel_p.background_visible = true;
+ panel_p.bg_alpha_image.name = "Yellow_Gradient";
+ panel_p.auto_resize = false;
+ LLLayoutPanel* notification_panel = LLUICtrlFactory::create<LLLayoutPanel>(panel_p);
+ stackp->addChild(notification_panel);
+
+ panel_p = LLUICtrlFactory::getDefaultParams<LLLayoutPanel>();
+ panel_p.auto_resize = true;
+ panel_p.mouse_opaque = false;
+ LLLayoutPanel* dummy_panel = LLUICtrlFactory::create<LLLayoutPanel>(panel_p);
+ stackp->addChild(dummy_panel);
+
+ layout_p = LLUICtrlFactory::getDefaultParams<LLLayoutStack>();
+ layout_p.rect = LLRect(0, 30, 800, 0);
+ layout_p.follows.flags = FOLLOWS_ALL;
+ layout_p.orientation = "horizontal";
+ stackp = LLUICtrlFactory::create<LLLayoutStack>(layout_p);
+ notification_panel->addChild(stackp);
+
+ panel_p = LLUICtrlFactory::getDefaultParams<LLLayoutPanel>();
+ panel_p.rect.height = 30;
+ LLLayoutPanel* panel = LLUICtrlFactory::create<LLLayoutPanel>(panel_p);
+ stackp->addChild(panel);
+
+ LLIconCtrl::Params icon_p;
+ icon_p.name = "notification_icon";
+ icon_p.rect = LLRect(5, 23, 21, 8);
+ panel->addChild(LLUICtrlFactory::create<LLIconCtrl>(icon_p));
+
+ LLTextBox::Params text_p;
+ text_p.rect = LLRect(31, 20, 430, 0);
+ text_p.text_color = LLColor4::black;
+ text_p.font = LLFontGL::getFontSansSerif();
+ text_p.font.style = "BOLD";
+ text_p.name = "notification_text";
+ text_p.use_ellipses = true;
+ panel->addChild(LLUICtrlFactory::create<LLTextBox>(text_p));
+
+ panel_p = LLUICtrlFactory::getDefaultParams<LLLayoutPanel>();
+ panel_p.auto_resize = false;
+ panel_p.user_resize = false;
+ panel_p.name="form_elements";
+ panel_p.rect = LLRect(0, 30, 130, 0);
+ LLLayoutPanel* form_elements_panel = LLUICtrlFactory::create<LLLayoutPanel>(panel_p);
+ stackp->addChild(form_elements_panel);
+
+ panel_p = LLUICtrlFactory::getDefaultParams<LLLayoutPanel>();
+ panel_p.auto_resize = false;
+ panel_p.user_resize = false;
+ panel_p.rect = LLRect(0, 30, 25, 0);
+ LLLayoutPanel* close_panel = LLUICtrlFactory::create<LLLayoutPanel>(panel_p);
+ stackp->addChild(close_panel);
+
+ LLButton::Params button_p;
+ button_p.name = "close_notification";
+ button_p.rect = LLRect(5, 23, 21, 7);
+ button_p.image_color=LLUIColorTable::instance().getColor("DkGray_66");
+ button_p.image_unselected.name="Icon_Close_Foreground";
+ button_p.image_selected.name="Icon_Close_Press";
+ button_p.click_callback.function = boost::bind(&LLMediaCtrl::onCloseNotification, this);
+
+ close_panel->addChild(LLUICtrlFactory::create<LLButton>(button_p));
+
setVisibleCallback(boost::bind(&LLMediaCtrl::onVisibilityChange, this, _2));
return TRUE;
}
@@ -351,6 +432,7 @@ BOOL LLMediaCtrl::postBuild ()
//
BOOL LLMediaCtrl::handleKeyHere( KEY key, MASK mask )
{
+ if (LLPanel::handleKeyHere(key, mask)) return TRUE;
BOOL result = FALSE;
if (mMediaSource)
@@ -376,6 +458,7 @@ void LLMediaCtrl::handleVisibilityChange ( BOOL new_visibility )
//
BOOL LLMediaCtrl::handleUnicodeCharHere(llwchar uni_char)
{
+ if (LLPanel::handleUnicodeCharHere(uni_char)) return TRUE;
BOOL result = FALSE;
if (mMediaSource)
@@ -567,12 +650,21 @@ void LLMediaCtrl::navigateHome()
////////////////////////////////////////////////////////////////////////////////
//
-void LLMediaCtrl::setHomePageUrl( const std::string urlIn )
+void LLMediaCtrl::setHomePageUrl( const std::string& urlIn, const std::string& mime_type )
{
mHomePageUrl = urlIn;
if (mMediaSource)
{
- mMediaSource->setHomeURL(mHomePageUrl);
+ mMediaSource->setHomeURL(mHomePageUrl, mime_type);
+ }
+}
+
+void LLMediaCtrl::setTarget(const std::string& target)
+{
+ mTarget = target;
+ if (mMediaSource)
+ {
+ mMediaSource->setTarget(mTarget);
}
}
@@ -616,7 +708,8 @@ bool LLMediaCtrl::ensureMediaSourceExists()
if ( mMediaSource )
{
mMediaSource->setUsedInUI(true);
- mMediaSource->setHomeURL(mHomePageUrl);
+ mMediaSource->setHomeURL(mHomePageUrl, mHomePageMimeType);
+ mMediaSource->setTarget(mTarget);
mMediaSource->setVisible( getVisible() );
mMediaSource->addObserver( this );
mMediaSource->setBackgroundColor( getBackgroundColor() );
@@ -828,6 +921,10 @@ void LLMediaCtrl::draw()
if ( mBorder && mBorder->getVisible() )
mBorder->setKeyboardFocusHighlight( gFocusMgr.childHasKeyboardFocus( this ) );
+ if (mCurNotification && !mCurNotification->isActive())
+ {
+ hideNotification();
+ }
LLPanel::draw();
@@ -894,6 +991,7 @@ void LLMediaCtrl::handleMediaEvent(LLPluginClassMedia* self, EMediaEvent event)
case MEDIA_EVENT_NAVIGATE_BEGIN:
{
LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_NAVIGATE_BEGIN, url is " << self->getNavigateURI() << LL_ENDL;
+ hideNotification();
};
break;
@@ -928,9 +1026,27 @@ void LLMediaCtrl::handleMediaEvent(LLPluginClassMedia* self, EMediaEvent event)
case MEDIA_EVENT_CLICK_LINK_HREF:
{
LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_CLICK_LINK_HREF, target is \"" << self->getClickTarget() << "\", uri is " << self->getClickURL() << LL_ENDL;
+ // retrieve the event parameters
+ std::string url = self->getClickURL();
+ std::string target = self->getClickTarget();
+ std::string uuid = self->getClickUUID();
+
+ LLNotification::Params notify_params;
+ notify_params.name = "PopupAttempt";
+ notify_params.payload = LLSD().with("target", target).with("url", url).with("uuid", uuid).with("media_id", getKey());
+ notify_params.functor.function = boost::bind(&LLMediaCtrl::onPopup, this, _1, _2);
+
+ if (mTrusted)
+ {
+ LLNotifications::instance().forceResponse(notify_params, 0);
+ }
+ else
+ {
+ LLNotifications::instance().add(notify_params);
+ }
+ break;
};
- break;
-
+
case MEDIA_EVENT_CLICK_LINK_NOFOLLOW:
{
LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_CLICK_LINK_NOFOLLOW, uri is " << self->getClickURL() << LL_ENDL;
@@ -954,6 +1070,24 @@ void LLMediaCtrl::handleMediaEvent(LLPluginClassMedia* self, EMediaEvent event)
LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_NAME_CHANGED" << LL_ENDL;
};
break;
+
+ case MEDIA_EVENT_CLOSE_REQUEST:
+ {
+ LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_CLOSE_REQUEST" << LL_ENDL;
+ }
+ break;
+
+ case MEDIA_EVENT_PICK_FILE_REQUEST:
+ {
+ LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_PICK_FILE_REQUEST" << LL_ENDL;
+ }
+ break;
+
+ case MEDIA_EVENT_GEOMETRY_CHANGE:
+ {
+ LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_GEOMETRY_CHANGE, uuid is " << self->getClickUUID() << LL_ENDL;
+ }
+ break;
};
// chain all events to any potential observers of this object.
@@ -967,3 +1101,113 @@ std::string LLMediaCtrl::getCurrentNavUrl()
return mCurrentNavUrl;
}
+void LLMediaCtrl::onPopup(const LLSD& notification, const LLSD& response)
+{
+ if (response["open"])
+ {
+ LLWeb::loadURL(notification["payload"]["url"], notification["payload"]["target"], notification["payload"]["uuid"]);
+ }
+ else
+ {
+ // Make sure the opening instance knows its window open request was denied, so it can clean things up.
+ LLViewerMedia::proxyWindowClosed(notification["payload"]["uuid"]);
+ }
+
+}
+
+void LLMediaCtrl::onCloseNotification()
+{
+ LLNotifications::instance().cancel(mCurNotification);
+}
+
+void LLMediaCtrl::onClickIgnore(LLUICtrl* ctrl)
+{
+ bool check = ctrl->getValue().asBoolean();
+ if (mCurNotification && mCurNotification->getForm()->getIgnoreType() == LLNotificationForm::IGNORE_SHOW_AGAIN)
+ {
+ // question was "show again" so invert value to get "ignore"
+ check = !check;
+ }
+ mCurNotification->setIgnored(check);
+}
+
+void LLMediaCtrl::onClickNotificationButton(const std::string& name)
+{
+ if (!mCurNotification) return;
+
+ LLSD response = mCurNotification->getResponseTemplate();
+ response[name] = true;
+
+ mCurNotification->respond(response);
+}
+
+void LLMediaCtrl::showNotification(LLNotificationPtr notify)
+{
+ mCurNotification = notify;
+
+ // add popup here
+ LLSD payload = notify->getPayload();
+
+ LLNotificationFormPtr formp = notify->getForm();
+ LLLayoutPanel& panel = getChildRef<LLLayoutPanel>("notification_area");
+ panel.setVisible(true);
+ panel.getChild<LLUICtrl>("notification_icon")->setValue(notify->getIcon());
+ panel.getChild<LLUICtrl>("notification_text")->setValue(notify->getMessage());
+ panel.getChild<LLUICtrl>("notification_text")->setToolTip(notify->getMessage());
+ LLNotificationForm::EIgnoreType ignore_type = formp->getIgnoreType();
+ LLLayoutPanel& form_elements = panel.getChildRef<LLLayoutPanel>("form_elements");
+ form_elements.deleteAllChildren();
+
+ const S32 FORM_PADDING_HORIZONTAL = 10;
+ const S32 FORM_PADDING_VERTICAL = 3;
+ S32 cur_x = FORM_PADDING_HORIZONTAL;
+
+ if (ignore_type != LLNotificationForm::IGNORE_NO)
+ {
+ LLCheckBoxCtrl::Params checkbox_p;
+ checkbox_p.name = "ignore_check";
+ checkbox_p.rect = LLRect(cur_x, form_elements.getRect().getHeight() - FORM_PADDING_VERTICAL, cur_x, FORM_PADDING_VERTICAL);
+ checkbox_p.label = formp->getIgnoreMessage();
+ checkbox_p.label_text.text_color = LLColor4::black;
+ checkbox_p.commit_callback.function = boost::bind(&LLMediaCtrl::onClickIgnore, this, _1);
+ checkbox_p.initial_value = formp->getIgnored();
+
+ LLCheckBoxCtrl* check = LLUICtrlFactory::create<LLCheckBoxCtrl>(checkbox_p);
+ check->setRect(check->getBoundingRect());
+ form_elements.addChild(check);
+ cur_x = check->getRect().mRight + FORM_PADDING_HORIZONTAL;
+ }
+
+ for (S32 i = 0; i < formp->getNumElements(); i++)
+ {
+ LLSD form_element = formp->getElement(i);
+ if (form_element["type"].asString() == "button")
+ {
+ LLButton::Params button_p;
+ button_p.name = form_element["name"];
+ button_p.label = form_element["text"];
+ button_p.rect = LLRect(cur_x, form_elements.getRect().getHeight() - FORM_PADDING_VERTICAL, cur_x, FORM_PADDING_VERTICAL);
+ button_p.click_callback.function = boost::bind(&LLMediaCtrl::onClickNotificationButton, this, form_element["name"].asString());
+ button_p.auto_resize = true;
+
+ LLButton* button = LLUICtrlFactory::create<LLButton>(button_p);
+ button->autoResize();
+ form_elements.addChild(button);
+
+ cur_x = button->getRect().mRight + FORM_PADDING_HORIZONTAL;
+ }
+ }
+
+
+ form_elements.reshape(cur_x, form_elements.getRect().getHeight());
+
+ //LLWeb::loadURL(payload["url"], payload["target"]);
+}
+
+void LLMediaCtrl::hideNotification()
+{
+ LLLayoutPanel& panel = getChildRef<LLLayoutPanel>("notification_area");
+ panel.setVisible(FALSE);
+
+ mCurNotification.reset();
+}
diff --git a/indra/newview/llmediactrl.h b/indra/newview/llmediactrl.h
index 310492fe02..65dfbbff78 100644
--- a/indra/newview/llmediactrl.h
+++ b/indra/newview/llmediactrl.h
@@ -2,31 +2,25 @@
* @file llmediactrl.h
* @brief Web browser UI control
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -46,7 +40,8 @@ class LLUICtrlFactory;
class LLMediaCtrl :
public LLPanel,
public LLViewerMediaObserver,
- public LLViewerMediaEventEmitter
+ public LLViewerMediaEventEmitter,
+ public LLInstanceTracker<LLMediaCtrl, LLUUID>
{
LOG_CLASS(LLMediaCtrl);
public:
@@ -57,12 +52,16 @@ public:
Optional<bool> border_visible,
ignore_ui_scale,
hide_loading,
- decouple_texture_size;
+ decouple_texture_size,
+ trusted_content;
Optional<S32> texture_width,
texture_height;
Optional<LLUIColor> caret_color;
+
+ Optional<std::string> initial_mime_type;
+ Optional<std::string> media_id;
Params();
};
@@ -107,11 +106,11 @@ public:
// Javascript or some other mechanism. However, we need the search
// floater and login page to handle these URLs. Those are safe
// because we control the page content. See DEV-9530. JC.
- void setTrusted( bool valIn );
-
- void setHomePageUrl( const std::string urlIn );
+ void setHomePageUrl( const std::string& urlIn, const std::string& mime_type = LLStringUtil::null );
std::string getHomePageUrl();
+ void setTarget(const std::string& target);
+
// set/clear URL to visit when a 404 page is reached
void set404RedirectUrl( std::string redirect_url );
void clr404RedirectUrl();
@@ -144,6 +143,8 @@ public:
void setTextureSize(S32 width, S32 height);
+ void showNotification(boost::shared_ptr<class LLNotification> notify);
+ void hideNotification();
// over-rides
virtual BOOL handleKeyHere( KEY key, MASK mask);
@@ -165,15 +166,21 @@ public:
private:
void onVisibilityChange ( const LLSD& new_visibility );
+ void onPopup(const LLSD& notification, const LLSD& response);
+ void onCloseNotification();
+ void onClickNotificationButton(const std::string& name);
+ void onClickIgnore(LLUICtrl* ctrl);
const S32 mTextureDepthBytes;
LLUUID mMediaTextureID;
LLViewBorder* mBorder;
bool mFrequentUpdates;
bool mForceUpdate;
- bool mTrusted;
+ const bool mTrusted;
std::string mHomePageUrl;
+ std::string mHomePageMimeType;
std::string mCurrentNavUrl;
+ std::string mTarget;
bool mIgnoreUIScale;
bool mAlwaysRefresh;
viewer_media_t mMediaSource;
@@ -186,6 +193,7 @@ public:
S32 mTextureWidth;
S32 mTextureHeight;
bool mClearCache;
+ boost::shared_ptr<class LLNotification> mCurNotification;
};
#endif // LL_LLMediaCtrl_H
diff --git a/indra/newview/llmediadataclient.cpp b/indra/newview/llmediadataclient.cpp
index b8da368bd7..31038b4aac 100755..100644
--- a/indra/newview/llmediadataclient.cpp
+++ b/indra/newview/llmediadataclient.cpp
@@ -2,31 +2,25 @@
* @file llmediadataclient.cpp
* @brief class for queueing up requests for media data
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -58,6 +52,32 @@
// - Any request that gets a 503 still goes through the retry logic
//
+/***************************************************************************************************************
+ What's up with this queueing code?
+
+ First, a bit of background:
+
+ Media on a prim was added into the system in the Viewer 2.0 timeframe. In order to avoid changing the
+ network format of objects, an unused field in the object (the "MediaURL" string) was repurposed to
+ indicate that the object had media data, and also hold a sequence number and the UUID of the agent
+ who last updated the data. The actual media data for objects is accessed via the "ObjectMedia" capability.
+ Due to concerns about sim performance, requests to this capability are rate-limited to 5 requests every
+ 5 seconds per agent.
+
+ The initial implementation of LLMediaDataClient used a single queue to manage requests to the "ObjectMedia" cap.
+ Requests to the cap were queued so that objects closer to the avatar were loaded in first, since they were most
+ likely to be the ones the media performance manager would load.
+
+ This worked in some cases, but we found that it was possible for a scripted object that constantly updated its
+ media data to starve other objects, since the same queue contained both requests to load previously unseen media
+ data and requests to fetch media data in response to object updates.
+
+ The solution for this we came up with was to have two queues. The sorted queue contains requests to fetch media
+ data for objects that don't have it yet, and the round-robin queue contains requests to update media data for
+ objects that have already completed their initial load. When both queues are non-empty, the code ping-pongs
+ between them so that updates can't completely block initial load-in.
+**************************************************************************************************************/
+
//
// Forward decls
//
@@ -71,6 +91,54 @@ const U32 LLMediaDataClient::MAX_ROUND_ROBIN_QUEUE_SIZE = 10000;
std::ostream& operator<<(std::ostream &s, const LLMediaDataClient::request_queue_t &q);
std::ostream& operator<<(std::ostream &s, const LLMediaDataClient::Request &q);
+template <typename T>
+static typename T::iterator find_matching_request(T &c, const LLMediaDataClient::Request *request, LLMediaDataClient::Request::Type match_type)
+{
+ for(typename T::iterator iter = c.begin(); iter != c.end(); ++iter)
+ {
+ if(request->isMatch(*iter, match_type))
+ {
+ return iter;
+ }
+ }
+
+ return c.end();
+}
+
+template <typename T>
+static typename T::iterator find_matching_request(T &c, const LLUUID &id, LLMediaDataClient::Request::Type match_type)
+{
+ for(typename T::iterator iter = c.begin(); iter != c.end(); ++iter)
+ {
+ if(((*iter)->getID() == id) && ((match_type == LLMediaDataClient::Request::ANY) || (match_type == (*iter)->getType())))
+ {
+ return iter;
+ }
+ }
+
+ return c.end();
+}
+
+// NOTE: remove_matching_requests will not work correctly for containers where deleting an element may invalidate iterators
+// to other elements in the container (such as std::vector).
+// If the implementation is changed to use a container with this property, this will need to be revisited.
+template <typename T>
+static void remove_matching_requests(T &c, const LLUUID &id, LLMediaDataClient::Request::Type match_type)
+{
+ for(typename T::iterator iter = c.begin(); iter != c.end();)
+ {
+ typename T::value_type i = *iter;
+ typename T::iterator next = iter;
+ next++;
+ if((i->getID() == id) && ((match_type == LLMediaDataClient::Request::ANY) || (match_type == i->getType())))
+ {
+ i->markDead();
+ c.erase(iter);
+ }
+ iter = next;
+ }
+}
+
//////////////////////////////////////////////////////////////////////////////////////
//
// LLMediaDataClient
@@ -87,117 +155,36 @@ LLMediaDataClient::LLMediaDataClient(F32 queue_timer_delay,
mMaxNumRetries(max_retries),
mMaxSortedQueueSize(max_sorted_queue_size),
mMaxRoundRobinQueueSize(max_round_robin_queue_size),
- mQueueTimerIsRunning(false),
- mCurrentQueueIsTheSortedQueue(true)
+ mQueueTimerIsRunning(false)
{
}
LLMediaDataClient::~LLMediaDataClient()
{
stopQueueTimer();
-
- // This should clear the queue, and hopefully call all the destructors.
- LL_DEBUGS("LLMediaDataClient") << "~LLMediaDataClient destructor: queue: " <<
- (isEmpty() ? "<empty> " : "<not empty> ") << LL_ENDL;
-
- mSortedQueue.clear();
- mRoundRobinQueue.clear();
}
bool LLMediaDataClient::isEmpty() const
{
- return mSortedQueue.empty() && mRoundRobinQueue.empty();
+ return mQueue.empty();
}
bool LLMediaDataClient::isInQueue(const LLMediaDataClientObject::ptr_t &object)
{
- return (LLMediaDataClient::findOrRemove(mSortedQueue, object, false/*remove*/, LLMediaDataClient::Request::ANY).notNull()
- || (LLMediaDataClient::findOrRemove(mRoundRobinQueue, object, false/*remove*/, LLMediaDataClient::Request::ANY).notNull()));
-}
-
-bool LLMediaDataClient::removeFromQueue(const LLMediaDataClientObject::ptr_t &object)
-{
- bool removedFromSortedQueue = LLMediaDataClient::findOrRemove(mSortedQueue, object, true/*remove*/, LLMediaDataClient::Request::ANY).notNull();
- bool removedFromRoundRobinQueue = LLMediaDataClient::findOrRemove(mRoundRobinQueue, object, true/*remove*/, LLMediaDataClient::Request::ANY).notNull();
- return removedFromSortedQueue || removedFromRoundRobinQueue;
-}
-
-//static
-LLMediaDataClient::request_ptr_t LLMediaDataClient::findOrRemove(request_queue_t &queue, const LLMediaDataClientObject::ptr_t &obj, bool remove, LLMediaDataClient::Request::Type type)
-{
- request_ptr_t result;
- request_queue_t::iterator iter = queue.begin();
- request_queue_t::iterator end = queue.end();
- while (iter != end)
- {
- if (obj->getID() == (*iter)->getObject()->getID() && (type == LLMediaDataClient::Request::ANY || type == (*iter)->getType()))
- {
- result = *iter;
- if (remove) queue.erase(iter);
- break;
- }
- iter++;
- }
- return result;
-}
-
-void LLMediaDataClient::request(const LLMediaDataClientObject::ptr_t &object, const LLSD &payload)
-{
- if (object.isNull() || ! object->hasMedia()) return;
+ if(find_matching_request(mQueue, object->getID()) != mQueue.end())
+ return true;
- // Push the object on the queue
- enqueue(new Request(getCapabilityName(), payload, object, this));
+ if(find_matching_request(mUnQueuedRequests, object->getID()) != mUnQueuedRequests.end())
+ return true;
+
+ return false;
}
-void LLMediaDataClient::enqueue(const Request *request)
+void LLMediaDataClient::removeFromQueue(const LLMediaDataClientObject::ptr_t &object)
{
- if (request->isNew())
- {
- // Add to sorted queue
- if (LLMediaDataClient::findOrRemove(mSortedQueue, request->getObject(), true/*remove*/, request->getType()).notNull())
- {
- LL_DEBUGS("LLMediaDataClient") << "REMOVING OLD request for " << *request << " ALREADY THERE!" << LL_ENDL;
- }
-
- LL_DEBUGS("LLMediaDataClient") << "Queuing SORTED request for " << *request << LL_ENDL;
-
- // Sadly, we have to const-cast because items put into the queue are not const
- mSortedQueue.push_back(const_cast<LLMediaDataClient::Request*>(request));
-
- LL_DEBUGS("LLMediaDataClientQueue") << "SORTED queue:" << mSortedQueue << LL_ENDL;
- }
- else {
- if (mRoundRobinQueue.size() > mMaxRoundRobinQueueSize)
- {
- LL_INFOS_ONCE("LLMediaDataClient") << "RR QUEUE MAXED OUT!!!" << LL_ENDL;
- LL_DEBUGS("LLMediaDataClient") << "Not queuing " << *request << LL_ENDL;
- return;
- }
-
- // ROUND ROBIN: if it is there, and it is a GET request, leave it. If not, put at front!
- request_ptr_t existing_request;
- if (request->getType() == Request::GET)
- {
- existing_request = LLMediaDataClient::findOrRemove(mRoundRobinQueue, request->getObject(), false/*remove*/, request->getType());
- }
- if (existing_request.isNull())
- {
- LL_DEBUGS("LLMediaDataClient") << "Queuing RR request for " << *request << LL_ENDL;
- // Push the request on the pending queue
- // Sadly, we have to const-cast because items put into the queue are not const
- mRoundRobinQueue.push_front(const_cast<LLMediaDataClient::Request*>(request));
-
- LL_DEBUGS("LLMediaDataClientQueue") << "RR queue:" << mRoundRobinQueue << LL_ENDL;
- }
- else
- {
- LL_DEBUGS("LLMediaDataClient") << "ALREADY THERE: NOT Queuing request for " << *request << LL_ENDL;
-
- existing_request->markSent(false);
- }
- }
- // Start the timer if not already running
- startQueueTimer();
+ LL_DEBUGS("LLMediaDataClient") << "removing requests matching ID " << object->getID() << LL_ENDL;
+ remove_matching_requests(mQueue, object->getID());
+ remove_matching_requests(mUnQueuedRequests, object->getID());
}
void LLMediaDataClient::startQueueTimer()
@@ -209,7 +196,7 @@ void LLMediaDataClient::startQueueTimer()
new QueueTimer(mQueueTimerDelay, this);
}
else {
- LL_DEBUGS("LLMediaDataClient") << "not starting queue timer (it's already running, right???)" << LL_ENDL;
+ LL_DEBUGS("LLMediaDataClient") << "queue timer is already running" << LL_ENDL;
}
}
@@ -220,179 +207,138 @@ void LLMediaDataClient::stopQueueTimer()
bool LLMediaDataClient::processQueueTimer()
{
- sortQueue();
-
- if(!isEmpty())
- {
- LL_DEBUGS("LLMediaDataClient") << "QueueTimer::tick() started, SORTED queue size is: " << mSortedQueue.size()
- << ", RR queue size is: " << mRoundRobinQueue.size() << LL_ENDL;
- LL_DEBUGS("LLMediaDataClientQueue") << "QueueTimer::tick() started, SORTED queue is: " << mSortedQueue << LL_ENDL;
- LL_DEBUGS("LLMediaDataClientQueue") << "QueueTimer::tick() started, RR queue is: " << mRoundRobinQueue << LL_ENDL;
- }
-
+ if(isEmpty())
+ return true;
+
+ LL_DEBUGS("LLMediaDataClient") << "QueueTimer::tick() started, queue size is: " << mQueue.size() << LL_ENDL;
+ LL_DEBUGS("LLMediaDataClientQueue") << "QueueTimer::tick() started, SORTED queue is: " << mQueue << LL_ENDL;
+
serviceQueue();
- LL_DEBUGS("LLMediaDataClient") << "QueueTimer::tick() finished, SORTED queue size is: " << mSortedQueue.size()
- << ", RR queue size is: " << mRoundRobinQueue.size() << LL_ENDL;
- LL_DEBUGS("LLMediaDataClientQueue") << "QueueTimer::tick() finished, SORTED queue is: " << mSortedQueue << LL_ENDL;
- LL_DEBUGS("LLMediaDataClientQueue") << "QueueTimer::tick() finished, RR queue is: " << mRoundRobinQueue << LL_ENDL;
+ LL_DEBUGS("LLMediaDataClient") << "QueueTimer::tick() finished, queue size is: " << mQueue.size() << LL_ENDL;
+ LL_DEBUGS("LLMediaDataClientQueue") << "QueueTimer::tick() finished, SORTED queue is: " << mQueue << LL_ENDL;
return isEmpty();
}
-void LLMediaDataClient::sortQueue()
+LLMediaDataClient::request_ptr_t LLMediaDataClient::dequeue()
{
- if(!mSortedQueue.empty())
+ request_ptr_t request;
+ request_queue_t *queue_p = getQueue();
+
+ if (queue_p->empty())
{
- // Score all items first
- request_queue_t::iterator iter = mSortedQueue.begin();
- request_queue_t::iterator end = mSortedQueue.end();
- while (iter != end)
+ LL_DEBUGS("LLMediaDataClient") << "queue empty: " << (*queue_p) << LL_ENDL;
+ }
+ else
+ {
+ request = queue_p->front();
+
+ if(canServiceRequest(request))
{
- (*iter)->updateScore();
- iter++;
+ // We will be returning this request, so remove it from the queue.
+ queue_p->pop_front();
}
-
- // Re-sort the list...
- // NOTE: should this be a stable_sort? If so we need to change to using a vector.
- mSortedQueue.sort(LLMediaDataClient::compareRequests);
-
- // ...then cull items over the max
- U32 size = mSortedQueue.size();
- if (size > mMaxSortedQueueSize)
+ else
{
- U32 num_to_cull = (size - mMaxSortedQueueSize);
- LL_INFOS_ONCE("LLMediaDataClient") << "sorted queue MAXED OUT! Culling "
- << num_to_cull << " items" << LL_ENDL;
- while (num_to_cull-- > 0)
- {
- mSortedQueue.pop_back();
- }
+ // Don't return this request -- it's not ready to be serviced.
+ request = NULL;
}
}
+
+ return request;
}
-// static
-bool LLMediaDataClient::compareRequests(const request_ptr_t &o1, const request_ptr_t &o2)
+void LLMediaDataClient::pushBack(request_ptr_t request)
{
- if (o2.isNull()) return true;
- if (o1.isNull()) return false;
- return ( o1->getScore() > o2->getScore() );
+ request_queue_t *queue_p = getQueue();
+ queue_p->push_front(request);
+}
+
+void LLMediaDataClient::trackRequest(request_ptr_t request)
+{
+ request_set_t::iterator iter = mUnQueuedRequests.find(request);
+
+ if(iter != mUnQueuedRequests.end())
+ {
+ LL_WARNS("LLMediaDataClient") << "Tracking already tracked request: " << *request << LL_ENDL;
+ }
+ else
+ {
+ mUnQueuedRequests.insert(request);
+ }
+}
+
+void LLMediaDataClient::stopTrackingRequest(request_ptr_t request)
+{
+ request_set_t::iterator iter = mUnQueuedRequests.find(request);
+
+ if (iter != mUnQueuedRequests.end())
+ {
+ mUnQueuedRequests.erase(iter);
+ }
+ else
+ {
+ LL_WARNS("LLMediaDataClient") << "Removing an untracked request: " << *request << LL_ENDL;
+ }
}
void LLMediaDataClient::serviceQueue()
{
- request_queue_t *queue_p = getCurrentQueue();
+ // Peel one off of the items from the queue and execute it
+ request_ptr_t request;
- // quick retry loop for cases where we shouldn't wait for the next timer tick
- while(true)
+ do
{
- if (queue_p->empty())
+ request = dequeue();
+
+ if(request.isNull())
{
- LL_DEBUGS("LLMediaDataClient") << "queue empty: " << (*queue_p) << LL_ENDL;
- break;
+ // Queue is empty.
+ return;
}
-
- // Peel one off of the items from the queue, and execute request
- request_ptr_t request = queue_p->front();
- llassert(!request.isNull());
- const LLMediaDataClientObject *object = (request.isNull()) ? NULL : request->getObject();
- llassert(NULL != object);
-
- // Check for conditions that would make us just pop and rapidly loop through
- // the queue.
- if(request.isNull() ||
- request->isMarkedSent() ||
- NULL == object ||
- object->isDead() ||
- !object->hasMedia())
+
+ if(request->isDead())
{
- if (request.isNull())
- {
- LL_WARNS("LLMediaDataClient") << "Skipping NULL request" << LL_ENDL;
- }
- else {
- LL_INFOS("LLMediaDataClient") << "Skipping : " << *request << " "
- << ((request->isMarkedSent()) ? " request is marked sent" :
- ((NULL == object) ? " object is NULL " :
- ((object->isDead()) ? "object is dead" :
- ((!object->hasMedia()) ? "object has no media!" : "BADNESS!")))) << LL_ENDL;
- }
- queue_p->pop_front();
- continue; // jump back to the start of the quick retry loop
+ LL_INFOS("LLMediaDataClient") << "Skipping dead request " << *request << LL_ENDL;
+ continue;
}
+
+ } while(false);
- // Next, ask if this is "interesting enough" to fetch. If not, just stop
- // and wait for the next timer go-round. Only do this for the sorted
- // queue.
- if (mCurrentQueueIsTheSortedQueue && !object->isInterestingEnough())
- {
- LL_DEBUGS("LLMediaDataClient") << "Not fetching " << *request << ": not interesting enough" << LL_ENDL;
- break;
- }
+ // try to send the HTTP message to the cap url
+ std::string url = request->getCapability();
+ if (!url.empty())
+ {
+ const LLSD &sd_payload = request->getPayload();
+ LL_INFOS("LLMediaDataClient") << "Sending request for " << *request << LL_ENDL;
- // Finally, try to send the HTTP message to the cap url
- std::string url = request->getCapability();
- bool maybe_retry = false;
- if (!url.empty())
- {
- const LLSD &sd_payload = request->getPayload();
- LL_INFOS("LLMediaDataClient") << "Sending request for " << *request << LL_ENDL;
-
- // Call the subclass for creating the responder
- LLHTTPClient::post(url, sd_payload, createResponder(request));
- }
- else {
- LL_INFOS("LLMediaDataClient") << "NOT Sending request for " << *request << ": empty cap url!" << LL_ENDL;
- maybe_retry = true;
- }
-
- bool exceeded_retries = request->getRetryCount() > mMaxNumRetries;
- if (maybe_retry && ! exceeded_retries) // Try N times before giving up
+ // Add this request to the non-queued tracking list
+ trackRequest(request);
+
+ // and make the post
+ LLHTTPClient::post(url, sd_payload, request->createResponder());
+ }
+ else
+ {
+ // Cap url doesn't exist.
+
+ if(request->getRetryCount() < mMaxNumRetries)
{
- // We got an empty cap, but in that case we will retry again next
- // timer fire.
+ LL_WARNS("LLMediaDataClient") << "Could not send request " << *request << " (empty cap url), will retry." << LL_ENDL;
+ // Put this request back at the head of its queue, and retry next time the queue timer fires.
request->incRetryCount();
+ pushBack(request);
}
- else {
- if (exceeded_retries)
- {
- LL_WARNS("LLMediaDataClient") << "Could not send request " << *request << " for "
- << mMaxNumRetries << " tries...popping object id " << object->getID() << LL_ENDL;
- // XXX Should we bring up a warning dialog??
- }
-
- queue_p->pop_front();
-
- if (! mCurrentQueueIsTheSortedQueue) {
- // Round robin
- request->markSent(true);
- mRoundRobinQueue.push_back(request);
- }
+ else
+ {
+ // This request has exceeded its maxumim retry count. It will be dropped.
+ LL_WARNS("LLMediaDataClient") << "Could not send request " << *request << " for " << mMaxNumRetries << " tries, dropping request." << LL_ENDL;
}
-
- // end of quick loop -- any cases where we want to loop will use 'continue' to jump back to the start.
- break;
- }
-
- swapCurrentQueue();
-}
-void LLMediaDataClient::swapCurrentQueue()
-{
- // Swap
- mCurrentQueueIsTheSortedQueue = !mCurrentQueueIsTheSortedQueue;
- // If its empty, swap back
- if (getCurrentQueue()->empty())
- {
- mCurrentQueueIsTheSortedQueue = !mCurrentQueueIsTheSortedQueue;
}
}
-LLMediaDataClient::request_queue_t *LLMediaDataClient::getCurrentQueue()
-{
- return (mCurrentQueueIsTheSortedQueue) ? &mSortedQueue : &mRoundRobinQueue;
-}
// dump the queue
std::ostream& operator<<(std::ostream &s, const LLMediaDataClient::request_queue_t &q)
@@ -402,7 +348,7 @@ std::ostream& operator<<(std::ostream &s, const LLMediaDataClient::request_queue
LLMediaDataClient::request_queue_t::const_iterator end = q.end();
while (iter != end)
{
- s << "\t" << i << "]: " << (*iter)->getObject()->getID().asString() << "(" << (*iter)->getObject()->getMediaInterest() << ")";
+ s << "\t" << i << "]: " << (*iter)->getID().asString() << "(" << (*iter)->getObject()->getMediaInterest() << ")";
iter++;
i++;
}
@@ -422,18 +368,24 @@ LLMediaDataClient::QueueTimer::QueueTimer(F32 time, LLMediaDataClient *mdc)
mMDC->setIsRunning(true);
}
-LLMediaDataClient::QueueTimer::~QueueTimer()
-{
- LL_DEBUGS("LLMediaDataClient") << "~QueueTimer" << LL_ENDL;
- mMDC->setIsRunning(false);
- mMDC = NULL;
-}
-
// virtual
BOOL LLMediaDataClient::QueueTimer::tick()
{
- if (mMDC.isNull()) return TRUE;
- return mMDC->processQueueTimer();
+ BOOL result = TRUE;
+
+ if (!mMDC.isNull())
+ {
+ result = mMDC->processQueueTimer();
+
+ if(result)
+ {
+ // This timer won't fire again.
+ mMDC->setIsRunning(false);
+ mMDC = NULL;
+ }
+ }
+
+ return result;
}
@@ -443,29 +395,30 @@ BOOL LLMediaDataClient::QueueTimer::tick()
//
//////////////////////////////////////////////////////////////////////////////////////
-LLMediaDataClient::Responder::RetryTimer::RetryTimer(F32 time, Responder *mdr)
-: LLEventTimer(time), mResponder(mdr)
+LLMediaDataClient::RetryTimer::RetryTimer(F32 time, request_ptr_t request)
+: LLEventTimer(time), mRequest(request)
{
+ mRequest->startTracking();
}
-// virtual
-LLMediaDataClient::Responder::RetryTimer::~RetryTimer()
+// virtual
+BOOL LLMediaDataClient::RetryTimer::tick()
{
- LL_DEBUGS("LLMediaDataClient") << "~RetryTimer" << *(mResponder->getRequest()) << LL_ENDL;
-
- // XXX This is weird: Instead of doing the work in tick() (which re-schedules
- // a timer, which might be risky), do it here, in the destructor. Yes, it is very odd.
- // Instead of retrying, we just put the request back onto the queue
- LL_INFOS("LLMediaDataClient") << "RetryTimer fired for: " << *(mResponder->getRequest()) << " retrying" << LL_ENDL;
- mResponder->getRequest()->reEnqueue();
+ mRequest->stopTracking();
+
+ if(mRequest->isDead())
+ {
+ LL_INFOS("LLMediaDataClient") << "RetryTimer fired for dead request: " << *mRequest << ", aborting." << LL_ENDL;
+ }
+ else
+ {
+ LL_INFOS("LLMediaDataClient") << "RetryTimer fired for: " << *mRequest << ", retrying." << LL_ENDL;
+ mRequest->reEnqueue();
+ }
- // Release the ref to the responder.
- mResponder = NULL;
-}
+ // Release the ref to the request.
+ mRequest = NULL;
-// virtual
-BOOL LLMediaDataClient::Responder::RetryTimer::tick()
-{
// Don't fire again
return TRUE;
}
@@ -478,56 +431,37 @@ BOOL LLMediaDataClient::Responder::RetryTimer::tick()
//////////////////////////////////////////////////////////////////////////////////////
/*static*/U32 LLMediaDataClient::Request::sNum = 0;
-LLMediaDataClient::Request::Request(const char *cap_name,
- const LLSD& sd_payload,
+LLMediaDataClient::Request::Request(Type in_type,
LLMediaDataClientObject *obj,
- LLMediaDataClient *mdc)
-: mCapName(cap_name),
- mPayload(sd_payload),
+ LLMediaDataClient *mdc,
+ S32 face)
+: mType(in_type),
mObject(obj),
mNum(++sNum),
mRetryCount(0),
mMDC(mdc),
- mMarkedSent(false),
- mScore((F64)0.0)
+ mScore((F64)0.0),
+ mFace(face)
{
+ mObjectID = mObject->getID();
}
-LLMediaDataClient::Request::~Request()
+const char *LLMediaDataClient::Request::getCapName() const
{
- LL_DEBUGS("LLMediaDataClient") << "~Request" << (*this) << LL_ENDL;
- mMDC = NULL;
- mObject = NULL;
+ if(mMDC)
+ return mMDC->getCapabilityName();
+
+ return "";
}
-
std::string LLMediaDataClient::Request::getCapability() const
{
- return getObject()->getCapabilityUrl(getCapName());
-}
-
-// Helper function to get the "type" of request, which just pokes around to
-// discover it.
-LLMediaDataClient::Request::Type LLMediaDataClient::Request::getType() const
-{
- if (0 == strcmp(mCapName, "ObjectMediaNavigate"))
- {
- return NAVIGATE;
- }
- else if (0 == strcmp(mCapName, "ObjectMedia"))
+ if(mMDC)
{
- const std::string &verb = mPayload["verb"];
- if (verb == "GET")
- {
- return GET;
- }
- else if (verb == "UPDATE")
- {
- return UPDATE;
- }
+ return getObject()->getCapabilityUrl(getCapName());
}
- llassert(false);
- return GET;
+
+ return "";
}
const char *LLMediaDataClient::Request::getTypeAsString() const
@@ -552,35 +486,30 @@ const char *LLMediaDataClient::Request::getTypeAsString() const
}
-void LLMediaDataClient::Request::reEnqueue() const
+void LLMediaDataClient::Request::reEnqueue()
{
- // I sure hope this doesn't deref a bad pointer:
- mMDC->enqueue(this);
+ if(mMDC)
+ {
+ mMDC->enqueue(this);
+ }
}
F32 LLMediaDataClient::Request::getRetryTimerDelay() const
{
- return (mMDC == NULL) ? LLMediaDataClient::UNAVAILABLE_RETRY_TIMER_DELAY :
- mMDC->mRetryTimerDelay;
+ if(mMDC)
+ return mMDC->mRetryTimerDelay;
+
+ return 0.0f;
}
U32 LLMediaDataClient::Request::getMaxNumRetries() const
{
- return (mMDC == NULL) ? LLMediaDataClient::MAX_RETRIES : mMDC->mMaxNumRetries;
+ if(mMDC)
+ return mMDC->mMaxNumRetries;
+
+ return 0;
}
-void LLMediaDataClient::Request::markSent(bool flag)
-{
- if (mMarkedSent != flag)
- {
- mMarkedSent = flag;
- if (!mMarkedSent)
- {
- mNum = ++sNum;
- }
- }
-}
-
void LLMediaDataClient::Request::updateScore()
{
F64 tmp = mObject->getMediaInterest();
@@ -591,15 +520,37 @@ void LLMediaDataClient::Request::updateScore()
}
}
+void LLMediaDataClient::Request::markDead()
+{
+ mMDC = NULL;
+}
+
+bool LLMediaDataClient::Request::isDead()
+{
+ return ((mMDC == NULL) || mObject->isDead());
+}
+
+void LLMediaDataClient::Request::startTracking()
+{
+ if(mMDC)
+ mMDC->trackRequest(this);
+}
+
+void LLMediaDataClient::Request::stopTracking()
+{
+ if(mMDC)
+ mMDC->stopTrackingRequest(this);
+}
+
std::ostream& operator<<(std::ostream &s, const LLMediaDataClient::Request &r)
{
s << "request: num=" << r.getNum()
<< " type=" << r.getTypeAsString()
- << " ID=" << r.getObject()->getID()
+ << " ID=" << r.getID()
+ << " face=" << r.getFace()
<< " #retries=" << r.getRetryCount();
return s;
}
-
//////////////////////////////////////////////////////////////////////////////////////
//
@@ -612,15 +563,17 @@ LLMediaDataClient::Responder::Responder(const request_ptr_t &request)
{
}
-LLMediaDataClient::Responder::~Responder()
-{
- LL_DEBUGS("LLMediaDataClient") << "~Responder" << *(getRequest()) << LL_ENDL;
- mRequest = NULL;
-}
-
/*virtual*/
void LLMediaDataClient::Responder::error(U32 status, const std::string& reason)
{
+ mRequest->stopTracking();
+
+ if(mRequest->isDead())
+ {
+ LL_WARNS("LLMediaDataClient") << "dead request " << *mRequest << LL_ENDL;
+ return;
+ }
+
if (status == HTTP_SERVICE_UNAVAILABLE)
{
F32 retry_timeout = mRequest->getRetryTimerDelay();
@@ -633,14 +586,16 @@ void LLMediaDataClient::Responder::error(U32 status, const std::string& reason)
// Start timer (instances are automagically tracked by
// InstanceTracker<> and LLEventTimer)
- new RetryTimer(F32(retry_timeout/*secs*/), this);
+ new RetryTimer(F32(retry_timeout/*secs*/), mRequest);
}
- else {
+ else
+ {
LL_INFOS("LLMediaDataClient") << *mRequest << " got SERVICE_UNAVAILABLE...retry count "
<< mRequest->getRetryCount() << " exceeds " << mRequest->getMaxNumRetries() << ", not retrying" << LL_ENDL;
}
}
- else {
+ else
+ {
std::string msg = boost::lexical_cast<std::string>(status) + ": " + reason;
LL_WARNS("LLMediaDataClient") << *mRequest << " http error(" << msg << ")" << LL_ENDL;
}
@@ -649,6 +604,14 @@ void LLMediaDataClient::Responder::error(U32 status, const std::string& reason)
/*virtual*/
void LLMediaDataClient::Responder::result(const LLSD& content)
{
+ mRequest->stopTracking();
+
+ if(mRequest->isDead())
+ {
+ LL_WARNS("LLMediaDataClient") << "dead request " << *mRequest << LL_ENDL;
+ return;
+ }
+
LL_DEBUGS("LLMediaDataClientResponse") << *mRequest << " result : " << ll_print_sd(content) << LL_ENDL;
}
@@ -659,9 +622,10 @@ void LLMediaDataClient::Responder::result(const LLSD& content)
//
//////////////////////////////////////////////////////////////////////////////////////
-LLMediaDataClient::Responder *LLObjectMediaDataClient::createResponder(const request_ptr_t &request) const
+void LLObjectMediaDataClient::fetchMedia(LLMediaDataClientObject *object)
{
- return new LLObjectMediaDataClient::Responder(request);
+ // Create a get request and put it in the queue.
+ enqueue(new RequestGet(object, this));
}
const char *LLObjectMediaDataClient::getCapabilityName() const
@@ -669,70 +633,286 @@ const char *LLObjectMediaDataClient::getCapabilityName() const
return "ObjectMedia";
}
-void LLObjectMediaDataClient::fetchMedia(LLMediaDataClientObject *object)
+LLObjectMediaDataClient::request_queue_t *LLObjectMediaDataClient::getQueue()
+{
+ return (mCurrentQueueIsTheSortedQueue) ? &mQueue : &mRoundRobinQueue;
+}
+
+void LLObjectMediaDataClient::sortQueue()
+{
+ if(!mQueue.empty())
+ {
+ // score all elements in the sorted queue.
+ for(request_queue_t::iterator iter = mQueue.begin(); iter != mQueue.end(); iter++)
+ {
+ (*iter)->updateScore();
+ }
+
+ // Re-sort the list...
+ mQueue.sort(compareRequestScores);
+
+ // ...then cull items over the max
+ U32 size = mQueue.size();
+ if (size > mMaxSortedQueueSize)
+ {
+ U32 num_to_cull = (size - mMaxSortedQueueSize);
+ LL_INFOS_ONCE("LLMediaDataClient") << "sorted queue MAXED OUT! Culling "
+ << num_to_cull << " items" << LL_ENDL;
+ while (num_to_cull-- > 0)
+ {
+ mQueue.back()->markDead();
+ mQueue.pop_back();
+ }
+ }
+ }
+
+}
+
+// static
+bool LLObjectMediaDataClient::compareRequestScores(const request_ptr_t &o1, const request_ptr_t &o2)
+{
+ if (o2.isNull()) return true;
+ if (o1.isNull()) return false;
+ return ( o1->getScore() > o2->getScore() );
+}
+
+void LLObjectMediaDataClient::enqueue(Request *request)
+{
+ if(request->isDead())
+ {
+ LL_DEBUGS("LLMediaDataClient") << "not queueing dead request " << *request << LL_ENDL;
+ return;
+ }
+
+ // Invariants:
+ // new requests always go into the sorted queue.
+ //
+
+ bool is_new = request->isNew();
+
+ if(!is_new && (request->getType() == Request::GET))
+ {
+ // For GET requests that are not new, if a matching request is already in the round robin queue,
+ // in flight, or being retried, leave it at its current position.
+ request_queue_t::iterator iter = find_matching_request(mRoundRobinQueue, request->getID(), Request::GET);
+ request_set_t::iterator iter2 = find_matching_request(mUnQueuedRequests, request->getID(), Request::GET);
+
+ if( (iter != mRoundRobinQueue.end()) || (iter2 != mUnQueuedRequests.end()) )
+ {
+ LL_DEBUGS("LLMediaDataClient") << "ALREADY THERE: NOT Queuing request for " << *request << LL_ENDL;
+
+ return;
+ }
+ }
+
+ // TODO: should an UPDATE cause pending GET requests for the same object to be removed from the queue?
+ // IF the update will cause an object update message to be sent out at some point in the future, it probably should.
+
+ // Remove any existing requests of this type for this object
+ remove_matching_requests(mQueue, request->getID(), request->getType());
+ remove_matching_requests(mRoundRobinQueue, request->getID(), request->getType());
+ remove_matching_requests(mUnQueuedRequests, request->getID(), request->getType());
+
+ if (is_new)
+ {
+ LL_DEBUGS("LLMediaDataClient") << "Queuing SORTED request for " << *request << LL_ENDL;
+
+ mQueue.push_back(request);
+
+ LL_DEBUGS("LLMediaDataClientQueue") << "SORTED queue:" << mQueue << LL_ENDL;
+ }
+ else
+ {
+ if (mRoundRobinQueue.size() > mMaxRoundRobinQueueSize)
+ {
+ LL_INFOS_ONCE("LLMediaDataClient") << "RR QUEUE MAXED OUT!!!" << LL_ENDL;
+ LL_DEBUGS("LLMediaDataClient") << "Not queuing " << *request << LL_ENDL;
+ return;
+ }
+
+ LL_DEBUGS("LLMediaDataClient") << "Queuing RR request for " << *request << LL_ENDL;
+ // Push the request on the pending queue
+ mRoundRobinQueue.push_back(request);
+
+ LL_DEBUGS("LLMediaDataClientQueue") << "RR queue:" << mRoundRobinQueue << LL_ENDL;
+ }
+ // Start the timer if not already running
+ startQueueTimer();
+}
+
+bool LLObjectMediaDataClient::canServiceRequest(request_ptr_t request)
+{
+ if(mCurrentQueueIsTheSortedQueue)
+ {
+ if(!request->getObject()->isInterestingEnough())
+ {
+ LL_DEBUGS("LLMediaDataClient") << "Not fetching " << *request << ": not interesting enough" << LL_ENDL;
+ return false;
+ }
+ }
+
+ return true;
+};
+
+void LLObjectMediaDataClient::swapCurrentQueue()
+{
+ // Swap
+ mCurrentQueueIsTheSortedQueue = !mCurrentQueueIsTheSortedQueue;
+ // If its empty, swap back
+ if (getQueue()->empty())
+ {
+ mCurrentQueueIsTheSortedQueue = !mCurrentQueueIsTheSortedQueue;
+ }
+}
+
+bool LLObjectMediaDataClient::isEmpty() const
+{
+ return mQueue.empty() && mRoundRobinQueue.empty();
+}
+
+bool LLObjectMediaDataClient::isInQueue(const LLMediaDataClientObject::ptr_t &object)
+{
+ // First, call parent impl.
+ if(LLMediaDataClient::isInQueue(object))
+ return true;
+
+ if(find_matching_request(mRoundRobinQueue, object->getID()) != mRoundRobinQueue.end())
+ return true;
+
+ return false;
+}
+
+void LLObjectMediaDataClient::removeFromQueue(const LLMediaDataClientObject::ptr_t &object)
+{
+ // First, call parent impl.
+ LLMediaDataClient::removeFromQueue(object);
+
+ remove_matching_requests(mRoundRobinQueue, object->getID());
+}
+
+bool LLObjectMediaDataClient::processQueueTimer()
+{
+ if(isEmpty())
+ return true;
+
+ LL_DEBUGS("LLMediaDataClient") << "started, SORTED queue size is: " << mQueue.size()
+ << ", RR queue size is: " << mRoundRobinQueue.size() << LL_ENDL;
+ LL_DEBUGS("LLMediaDataClientQueue") << " SORTED queue is: " << mQueue << LL_ENDL;
+ LL_DEBUGS("LLMediaDataClientQueue") << " RR queue is: " << mRoundRobinQueue << LL_ENDL;
+
+// purgeDeadRequests();
+
+ sortQueue();
+
+ LL_DEBUGS("LLMediaDataClientQueue") << "after sort, SORTED queue is: " << mQueue << LL_ENDL;
+
+ serviceQueue();
+
+ swapCurrentQueue();
+
+ LL_DEBUGS("LLMediaDataClient") << "finished, SORTED queue size is: " << mQueue.size()
+ << ", RR queue size is: " << mRoundRobinQueue.size() << LL_ENDL;
+ LL_DEBUGS("LLMediaDataClientQueue") << " SORTED queue is: " << mQueue << LL_ENDL;
+ LL_DEBUGS("LLMediaDataClientQueue") << " RR queue is: " << mRoundRobinQueue << LL_ENDL;
+
+ return isEmpty();
+}
+
+LLObjectMediaDataClient::RequestGet::RequestGet(LLMediaDataClientObject *obj, LLMediaDataClient *mdc):
+ LLMediaDataClient::Request(LLMediaDataClient::Request::GET, obj, mdc)
+{
+}
+
+LLSD LLObjectMediaDataClient::RequestGet::getPayload() const
+{
+ LLSD result;
+ result["verb"] = "GET";
+ result[LLTextureEntry::OBJECT_ID_KEY] = mObject->getID();
+
+ return result;
+}
+
+LLMediaDataClient::Responder *LLObjectMediaDataClient::RequestGet::createResponder()
{
- LLSD sd_payload;
- sd_payload["verb"] = "GET";
- sd_payload[LLTextureEntry::OBJECT_ID_KEY] = object->getID();
- request(object, sd_payload);
+ return new LLObjectMediaDataClient::Responder(this);
}
+
void LLObjectMediaDataClient::updateMedia(LLMediaDataClientObject *object)
{
- LLSD sd_payload;
- sd_payload["verb"] = "UPDATE";
- sd_payload[LLTextureEntry::OBJECT_ID_KEY] = object->getID();
+ // Create an update request and put it in the queue.
+ enqueue(new RequestUpdate(object, this));
+}
+
+LLObjectMediaDataClient::RequestUpdate::RequestUpdate(LLMediaDataClientObject *obj, LLMediaDataClient *mdc):
+ LLMediaDataClient::Request(LLMediaDataClient::Request::UPDATE, obj, mdc)
+{
+}
+
+LLSD LLObjectMediaDataClient::RequestUpdate::getPayload() const
+{
+ LLSD result;
+ result["verb"] = "UPDATE";
+ result[LLTextureEntry::OBJECT_ID_KEY] = mObject->getID();
+
LLSD object_media_data;
int i = 0;
- int end = object->getMediaDataCount();
+ int end = mObject->getMediaDataCount();
for ( ; i < end ; ++i)
{
- object_media_data.append(object->getMediaDataLLSD(i));
+ object_media_data.append(mObject->getMediaDataLLSD(i));
}
- sd_payload[LLTextureEntry::OBJECT_MEDIA_DATA_KEY] = object_media_data;
-
- LL_DEBUGS("LLMediaDataClient") << "update media data: " << object->getID() << " " << ll_print_sd(sd_payload) << LL_ENDL;
- request(object, sd_payload);
+ result[LLTextureEntry::OBJECT_MEDIA_DATA_KEY] = object_media_data;
+
+ return result;
+}
+
+LLMediaDataClient::Responder *LLObjectMediaDataClient::RequestUpdate::createResponder()
+{
+ // This just uses the base class's responder.
+ return new LLMediaDataClient::Responder(this);
}
+
/*virtual*/
void LLObjectMediaDataClient::Responder::result(const LLSD& content)
{
- const LLMediaDataClient::Request::Type type = getRequest()->getType();
- llassert(type == LLMediaDataClient::Request::GET || type == LLMediaDataClient::Request::UPDATE)
- if (type == LLMediaDataClient::Request::GET)
+ getRequest()->stopTracking();
+
+ if(getRequest()->isDead())
+ {
+ LL_WARNS("LLMediaDataClient") << "dead request " << *(getRequest()) << LL_ENDL;
+ return;
+ }
+
+ // This responder is only used for GET requests, not UPDATE.
+
+ LL_DEBUGS("LLMediaDataClientResponse") << *(getRequest()) << " GET returned: " << ll_print_sd(content) << LL_ENDL;
+
+ // Look for an error
+ if (content.has("error"))
{
- LL_DEBUGS("LLMediaDataClientResponse") << *(getRequest()) << " GET returned: " << ll_print_sd(content) << LL_ENDL;
+ const LLSD &error = content["error"];
+ LL_WARNS("LLMediaDataClient") << *(getRequest()) << " Error getting media data for object: code=" <<
+ error["code"].asString() << ": " << error["message"].asString() << LL_ENDL;
- // Look for an error
- if (content.has("error"))
- {
- const LLSD &error = content["error"];
- LL_WARNS("LLMediaDataClient") << *(getRequest()) << " Error getting media data for object: code=" <<
- error["code"].asString() << ": " << error["message"].asString() << LL_ENDL;
-
- // XXX Warn user?
- }
- else {
- // Check the data
- const LLUUID &object_id = content[LLTextureEntry::OBJECT_ID_KEY];
- if (object_id != getRequest()->getObject()->getID())
- {
- // NOT good, wrong object id!!
- LL_WARNS("LLMediaDataClient") << *(getRequest()) << " DROPPING response with wrong object id (" << object_id << ")" << LL_ENDL;
- return;
- }
-
- // Otherwise, update with object media data
- getRequest()->getObject()->updateObjectMediaData(content[LLTextureEntry::OBJECT_MEDIA_DATA_KEY],
- content[LLTextureEntry::MEDIA_VERSION_KEY]);
- }
+ // XXX Warn user?
}
- else if (type == LLMediaDataClient::Request::UPDATE)
+ else
{
- // just do what our superclass does
- LLMediaDataClient::Responder::result(content);
+ // Check the data
+ const LLUUID &object_id = content[LLTextureEntry::OBJECT_ID_KEY];
+ if (object_id != getRequest()->getObject()->getID())
+ {
+ // NOT good, wrong object id!!
+ LL_WARNS("LLMediaDataClient") << *(getRequest()) << " DROPPING response with wrong object id (" << object_id << ")" << LL_ENDL;
+ return;
+ }
+
+ // Otherwise, update with object media data
+ getRequest()->getObject()->updateObjectMediaData(content[LLTextureEntry::OBJECT_MEDIA_DATA_KEY],
+ content[LLTextureEntry::MEDIA_VERSION_KEY]);
}
}
@@ -742,38 +922,105 @@ void LLObjectMediaDataClient::Responder::result(const LLSD& content)
// Subclass of LLMediaDataClient for the ObjectMediaNavigate cap
//
//////////////////////////////////////////////////////////////////////////////////////
-LLMediaDataClient::Responder *LLObjectMediaNavigateClient::createResponder(const request_ptr_t &request) const
-{
- return new LLObjectMediaNavigateClient::Responder(request);
-}
const char *LLObjectMediaNavigateClient::getCapabilityName() const
{
return "ObjectMediaNavigate";
}
+void LLObjectMediaNavigateClient::enqueue(Request *request)
+{
+ if(request->isDead())
+ {
+ LL_DEBUGS("LLMediaDataClient") << "not queueing dead request " << *request << LL_ENDL;
+ return;
+ }
+
+ // If there's already a matching request in the queue, remove it.
+ request_queue_t::iterator iter = find_matching_request(mQueue, request);
+ if(iter != mQueue.end())
+ {
+ LL_DEBUGS("LLMediaDataClient") << "removing matching queued request " << (**iter) << LL_ENDL;
+ mQueue.erase(iter);
+ }
+ else
+ {
+ request_set_t::iterator set_iter = find_matching_request(mUnQueuedRequests, request);
+ if(set_iter != mUnQueuedRequests.end())
+ {
+ LL_DEBUGS("LLMediaDataClient") << "removing matching unqueued request " << (**set_iter) << LL_ENDL;
+ mUnQueuedRequests.erase(set_iter);
+ }
+ }
+
+#if 0
+ // Sadly, this doesn't work. It ends up creating a race condition when the user navigates and then hits the "back" button
+ // where the navigate-back appears to be spurious and doesn't get broadcast.
+ if(request->getObject()->isCurrentMediaUrl(request->getFace(), request->getURL()))
+ {
+ // This navigate request is trying to send the face to the current URL. Drop it.
+ LL_DEBUGS("LLMediaDataClient") << "dropping spurious request " << (*request) << LL_ENDL;
+ }
+ else
+#endif
+ {
+ LL_DEBUGS("LLMediaDataClient") << "queueing new request " << (*request) << LL_ENDL;
+ mQueue.push_back(request);
+
+ // Start the timer if not already running
+ startQueueTimer();
+ }
+}
+
void LLObjectMediaNavigateClient::navigate(LLMediaDataClientObject *object, U8 texture_index, const std::string &url)
{
- LLSD sd_payload;
- sd_payload[LLTextureEntry::OBJECT_ID_KEY] = object->getID();
- sd_payload[LLMediaEntry::CURRENT_URL_KEY] = url;
- sd_payload[LLTextureEntry::TEXTURE_INDEX_KEY] = (LLSD::Integer)texture_index;
+
+// LL_INFOS("LLMediaDataClient") << "navigate() initiated: " << ll_print_sd(sd_payload) << LL_ENDL;
- LL_INFOS("LLMediaDataClient") << "navigate() initiated: " << ll_print_sd(sd_payload) << LL_ENDL;
+ // Create a get request and put it in the queue.
+ enqueue(new RequestNavigate(object, this, texture_index, url));
+}
+
+LLObjectMediaNavigateClient::RequestNavigate::RequestNavigate(LLMediaDataClientObject *obj, LLMediaDataClient *mdc, U8 texture_index, const std::string &url):
+ LLMediaDataClient::Request(LLMediaDataClient::Request::NAVIGATE, obj, mdc, (S32)texture_index),
+ mURL(url)
+{
+}
+
+LLSD LLObjectMediaNavigateClient::RequestNavigate::getPayload() const
+{
+ LLSD result;
+ result[LLTextureEntry::OBJECT_ID_KEY] = getID();
+ result[LLMediaEntry::CURRENT_URL_KEY] = mURL;
+ result[LLTextureEntry::TEXTURE_INDEX_KEY] = (LLSD::Integer)getFace();
- request(object, sd_payload);
+ return result;
+}
+
+LLMediaDataClient::Responder *LLObjectMediaNavigateClient::RequestNavigate::createResponder()
+{
+ return new LLObjectMediaNavigateClient::Responder(this);
}
/*virtual*/
void LLObjectMediaNavigateClient::Responder::error(U32 status, const std::string& reason)
{
+ getRequest()->stopTracking();
+
+ if(getRequest()->isDead())
+ {
+ LL_WARNS("LLMediaDataClient") << "dead request " << *(getRequest()) << LL_ENDL;
+ return;
+ }
+
// Bounce back (unless HTTP_SERVICE_UNAVAILABLE, in which case call base
// class
if (status == HTTP_SERVICE_UNAVAILABLE)
{
LLMediaDataClient::Responder::error(status, reason);
}
- else {
+ else
+ {
// bounce the face back
LL_WARNS("LLMediaDataClient") << *(getRequest()) << " Error navigating: http code=" << status << LL_ENDL;
const LLSD &payload = getRequest()->getPayload();
@@ -785,6 +1032,14 @@ void LLObjectMediaNavigateClient::Responder::error(U32 status, const std::string
/*virtual*/
void LLObjectMediaNavigateClient::Responder::result(const LLSD& content)
{
+ getRequest()->stopTracking();
+
+ if(getRequest()->isDead())
+ {
+ LL_WARNS("LLMediaDataClient") << "dead request " << *(getRequest()) << LL_ENDL;
+ return;
+ }
+
LL_INFOS("LLMediaDataClient") << *(getRequest()) << " NAVIGATE returned " << ll_print_sd(content) << LL_ENDL;
if (content.has("error"))
@@ -799,14 +1054,17 @@ void LLObjectMediaNavigateClient::Responder::result(const LLSD& content)
// bounce the face back
getRequest()->getObject()->mediaNavigateBounceBack((LLSD::Integer)payload[LLTextureEntry::TEXTURE_INDEX_KEY]);
}
- else {
+ else
+ {
LL_WARNS("LLMediaDataClient") << *(getRequest()) << " Error navigating: code=" <<
error["code"].asString() << ": " << error["message"].asString() << LL_ENDL;
}
+
// XXX Warn user?
}
- else {
- // just do what our superclass does
- LLMediaDataClient::Responder::result(content);
+ else
+ {
+ // No action required.
+ LL_DEBUGS("LLMediaDataClientResponse") << *(getRequest()) << " result : " << ll_print_sd(content) << LL_ENDL;
}
}
diff --git a/indra/newview/llmediadataclient.h b/indra/newview/llmediadataclient.h
index 8dd72cb595..ab90915c55 100755..100644
--- a/indra/newview/llmediadataclient.h
+++ b/indra/newview/llmediadataclient.h
@@ -2,31 +2,25 @@
* @file llmediadataclient.h
* @brief class for queueing up requests to the media service
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -34,7 +28,7 @@
#define LL_LLMEDIADATACLIENT_H
#include "llhttpclient.h"
-#include <queue>
+#include <set>
#include "llrefcount.h"
#include "llpointer.h"
#include "lleventtimer.h"
@@ -48,6 +42,8 @@ public:
virtual U8 getMediaDataCount() const = 0;
// Get the media data at index, as an LLSD
virtual LLSD getMediaDataLLSD(U8 index) const = 0;
+ // Return true if the current URL for the face in the media data matches the specified URL.
+ virtual bool isCurrentMediaUrl(U8 index, const std::string &url) const = 0;
// Get this object's UUID
virtual LLUUID getID() const = 0;
// Navigate back to previous URL
@@ -73,6 +69,7 @@ public:
typedef LLPointer<LLMediaDataClientObject> ptr_t;
};
+
// This object creates a priority queue for requests.
// Abstracts the Cap URL, the request, and the responder
class LLMediaDataClient : public LLRefCount
@@ -93,31 +90,37 @@ public:
U32 max_sorted_queue_size = MAX_SORTED_QUEUE_SIZE,
U32 max_round_robin_queue_size = MAX_ROUND_ROBIN_QUEUE_SIZE);
- // Make the request
- void request(const LLMediaDataClientObject::ptr_t &object, const LLSD &payload);
-
F32 getRetryTimerDelay() const { return mRetryTimerDelay; }
// Returns true iff the queue is empty
- bool isEmpty() const;
+ virtual bool isEmpty() const;
// Returns true iff the given object is in the queue
- bool isInQueue(const LLMediaDataClientObject::ptr_t &object);
+ virtual bool isInQueue(const LLMediaDataClientObject::ptr_t &object);
// Remove the given object from the queue. Returns true iff the given object is removed.
- bool removeFromQueue(const LLMediaDataClientObject::ptr_t &object);
+ virtual void removeFromQueue(const LLMediaDataClientObject::ptr_t &object);
// Called only by the Queue timer and tests (potentially)
- bool processQueueTimer();
+ virtual bool processQueueTimer();
protected:
// Destructor
virtual ~LLMediaDataClient(); // use unref
- // Request
+ class Responder;
+
+ // Request (pure virtual base class for requests in the queue)
class Request : public LLRefCount
{
public:
+ // Subclasses must implement this to build a payload for their request type.
+ virtual LLSD getPayload() const = 0;
+ // and must create the correct type of responder.
+ virtual Responder *createResponder() = 0;
+
+ virtual std::string getURL() { return ""; }
+
enum Type {
GET,
UPDATE,
@@ -125,50 +128,61 @@ protected:
ANY
};
- Request(const char *cap_name, const LLSD& sd_payload, LLMediaDataClientObject *obj, LLMediaDataClient *mdc);
- const char *getCapName() const { return mCapName; }
- const LLSD &getPayload() const { return mPayload; }
+ protected:
+ // The only way to create one of these is through a subclass.
+ Request(Type in_type, LLMediaDataClientObject *obj, LLMediaDataClient *mdc, S32 face = -1);
+ public:
LLMediaDataClientObject *getObject() const { return mObject; }
U32 getNum() const { return mNum; }
-
U32 getRetryCount() const { return mRetryCount; }
void incRetryCount() { mRetryCount++; }
+ Type getType() const { return mType; }
+ F64 getScore() const { return mScore; }
// Note: may return empty string!
std::string getCapability() const;
-
- Type getType() const;
+ const char *getCapName() const;
const char *getTypeAsString() const;
// Re-enqueue thyself
- void reEnqueue() const;
+ void reEnqueue();
F32 getRetryTimerDelay() const;
U32 getMaxNumRetries() const;
- bool isNew() const { return mObject.notNull() ? mObject->isNew() : false; }
- void markSent(bool flag);
- bool isMarkedSent() const { return mMarkedSent; }
+ bool isObjectValid() const { return mObject.notNull() && (!mObject->isDead()); }
+ bool isNew() const { return isObjectValid() && mObject->isNew(); }
void updateScore();
- F64 getScore() const { return mScore; }
- public:
+ void markDead();
+ bool isDead();
+ void startTracking();
+ void stopTracking();
+
friend std::ostream& operator<<(std::ostream &s, const Request &q);
- protected:
- virtual ~Request(); // use unref();
-
- private:
- const char *mCapName;
- LLSD mPayload;
+ const LLUUID &getID() const { return mObjectID; }
+ S32 getFace() const { return mFace; }
+
+ bool isMatch (const Request* other, Type match_type = ANY) const
+ {
+ return ((match_type == ANY) || (mType == other->mType)) &&
+ (mFace == other->mFace) &&
+ (mObjectID == other->mObjectID);
+ }
+ protected:
LLMediaDataClientObject::ptr_t mObject;
+ private:
+ Type mType;
// Simple tracking
U32 mNum;
static U32 sNum;
U32 mRetryCount;
F64 mScore;
- bool mMarkedSent;
+
+ LLUUID mObjectID;
+ S32 mFace;
// Back pointer to the MDC...not a ref!
LLMediaDataClient *mMDC;
@@ -185,48 +199,66 @@ protected:
//If we get back a normal response, handle it here. Default just logs it.
virtual void result(const LLSD& content);
- const request_ptr_t &getRequest() const { return mRequest; }
+ request_ptr_t &getRequest() { return mRequest; }
- protected:
- virtual ~Responder();
-
private:
+ request_ptr_t mRequest;
+ };
- class RetryTimer : public LLEventTimer
- {
- public:
- RetryTimer(F32 time, Responder *);
- virtual ~RetryTimer();
- virtual BOOL tick();
- private:
- // back-pointer
- boost::intrusive_ptr<Responder> mResponder;
- };
-
+ class RetryTimer : public LLEventTimer
+ {
+ public:
+ RetryTimer(F32 time, request_ptr_t);
+ virtual BOOL tick();
+ private:
+ // back-pointer
request_ptr_t mRequest;
};
+
protected:
+ typedef std::list<request_ptr_t> request_queue_t;
+ typedef std::set<request_ptr_t> request_set_t;
- // Subclasses must override this factory method to return a new responder
- virtual Responder *createResponder(const request_ptr_t &request) const = 0;
-
// Subclasses must override to return a cap name
virtual const char *getCapabilityName() const = 0;
+
+ // Puts the request into a queue, appropriately handling duplicates, etc.
+ virtual void enqueue(Request*) = 0;
- virtual void sortQueue();
virtual void serviceQueue();
+
+ virtual request_queue_t *getQueue() { return &mQueue; };
+
+ // Gets the next request, removing it from the queue
+ virtual request_ptr_t dequeue();
-private:
- typedef std::list<request_ptr_t> request_queue_t;
-
- void enqueue(const Request*);
+ virtual bool canServiceRequest(request_ptr_t request) { return true; };
+
+ // Returns a request to the head of the queue (should only be used for requests that came from dequeue
+ virtual void pushBack(request_ptr_t request);
- // Return whether the given object is/was in the queue
- static LLMediaDataClient::request_ptr_t findOrRemove(request_queue_t &queue, const LLMediaDataClientObject::ptr_t &obj, bool remove, Request::Type type);
+ void trackRequest(request_ptr_t request);
+ void stopTrackingRequest(request_ptr_t request);
+
+ request_queue_t mQueue;
+
+ const F32 mQueueTimerDelay;
+ const F32 mRetryTimerDelay;
+ const U32 mMaxNumRetries;
+ const U32 mMaxSortedQueueSize;
+ const U32 mMaxRoundRobinQueueSize;
+
+ // Set for keeping track of requests that aren't in either queue. This includes:
+ // Requests that have been sent and are awaiting a response (pointer held by the Responder)
+ // Requests that are waiting for their retry timers to fire (pointer held by the retry timer)
+ request_set_t mUnQueuedRequests;
+
+ void startQueueTimer();
+ void stopQueueTimer();
+
+private:
- // Comparator for sorting
- static bool compareRequests(const request_ptr_t &o1, const request_ptr_t &o2);
static F64 getObjectScore(const LLMediaDataClientObject::ptr_t &obj);
friend std::ostream& operator<<(std::ostream &s, const Request &q);
@@ -237,57 +269,76 @@ private:
public:
QueueTimer(F32 time, LLMediaDataClient *mdc);
virtual BOOL tick();
- protected:
- virtual ~QueueTimer();
private:
// back-pointer
LLPointer<LLMediaDataClient> mMDC;
};
- void startQueueTimer();
- void stopQueueTimer();
void setIsRunning(bool val) { mQueueTimerIsRunning = val; }
-
- void swapCurrentQueue();
- request_queue_t *getCurrentQueue();
-
- const F32 mQueueTimerDelay;
- const F32 mRetryTimerDelay;
- const U32 mMaxNumRetries;
- const U32 mMaxSortedQueueSize;
- const U32 mMaxRoundRobinQueueSize;
-
+
bool mQueueTimerIsRunning;
-
- request_queue_t mSortedQueue;
- request_queue_t mRoundRobinQueue;
- bool mCurrentQueueIsTheSortedQueue;
-};
+ template <typename T> friend typename T::iterator find_matching_request(T &c, const LLMediaDataClient::Request *request, LLMediaDataClient::Request::Type match_type = LLMediaDataClient::Request::ANY);
+ template <typename T> friend typename T::iterator find_matching_request(T &c, const LLUUID &id, LLMediaDataClient::Request::Type match_type = LLMediaDataClient::Request::ANY);
+ template <typename T> friend void remove_matching_requests(T &c, const LLUUID &id, LLMediaDataClient::Request::Type match_type = LLMediaDataClient::Request::ANY);
+
+};
// MediaDataClient specific for the ObjectMedia cap
class LLObjectMediaDataClient : public LLMediaDataClient
{
public:
+ LOG_CLASS(LLObjectMediaDataClient);
LLObjectMediaDataClient(F32 queue_timer_delay = QUEUE_TIMER_DELAY,
F32 retry_timer_delay = UNAVAILABLE_RETRY_TIMER_DELAY,
U32 max_retries = MAX_RETRIES,
U32 max_sorted_queue_size = MAX_SORTED_QUEUE_SIZE,
U32 max_round_robin_queue_size = MAX_ROUND_ROBIN_QUEUE_SIZE)
- : LLMediaDataClient(queue_timer_delay, retry_timer_delay, max_retries)
+ : LLMediaDataClient(queue_timer_delay, retry_timer_delay, max_retries),
+ mCurrentQueueIsTheSortedQueue(true)
{}
- virtual ~LLObjectMediaDataClient() {}
void fetchMedia(LLMediaDataClientObject *object);
void updateMedia(LLMediaDataClientObject *object);
-
-protected:
- // Subclasses must override this factory method to return a new responder
- virtual Responder *createResponder(const request_ptr_t &request) const;
+
+ class RequestGet: public Request
+ {
+ public:
+ RequestGet(LLMediaDataClientObject *obj, LLMediaDataClient *mdc);
+ /*virtual*/ LLSD getPayload() const;
+ /*virtual*/ Responder *createResponder();
+ };
+
+ class RequestUpdate: public Request
+ {
+ public:
+ RequestUpdate(LLMediaDataClientObject *obj, LLMediaDataClient *mdc);
+ /*virtual*/ LLSD getPayload() const;
+ /*virtual*/ Responder *createResponder();
+ };
+
+ // Returns true iff the queue is empty
+ virtual bool isEmpty() const;
+ // Returns true iff the given object is in the queue
+ virtual bool isInQueue(const LLMediaDataClientObject::ptr_t &object);
+
+ // Remove the given object from the queue. Returns true iff the given object is removed.
+ virtual void removeFromQueue(const LLMediaDataClientObject::ptr_t &object);
+
+ virtual bool processQueueTimer();
+
+ virtual bool canServiceRequest(request_ptr_t request);
+
+protected:
// Subclasses must override to return a cap name
virtual const char *getCapabilityName() const;
-
+
+ virtual request_queue_t *getQueue();
+
+ // Puts the request into the appropriate queue
+ virtual void enqueue(Request*);
+
class Responder : public LLMediaDataClient::Responder
{
public:
@@ -295,6 +346,16 @@ protected:
: LLMediaDataClient::Responder(request) {}
virtual void result(const LLSD &content);
};
+private:
+ // The Get/Update data client needs a second queue to avoid object updates starving load-ins.
+ void swapCurrentQueue();
+
+ request_queue_t mRoundRobinQueue;
+ bool mCurrentQueueIsTheSortedQueue;
+
+ // Comparator for sorting
+ static bool compareRequestScores(const request_ptr_t &o1, const request_ptr_t &o2);
+ void sortQueue();
};
@@ -302,6 +363,7 @@ protected:
class LLObjectMediaNavigateClient : public LLMediaDataClient
{
public:
+ LOG_CLASS(LLObjectMediaNavigateClient);
// NOTE: from llmediaservice.h
static const int ERROR_PERMISSION_DENIED_CODE = 8002;
@@ -312,14 +374,24 @@ public:
U32 max_round_robin_queue_size = MAX_ROUND_ROBIN_QUEUE_SIZE)
: LLMediaDataClient(queue_timer_delay, retry_timer_delay, max_retries)
{}
- virtual ~LLObjectMediaNavigateClient() {}
void navigate(LLMediaDataClientObject *object, U8 texture_index, const std::string &url);
+
+ // Puts the request into the appropriate queue
+ virtual void enqueue(Request*);
+
+ class RequestNavigate: public Request
+ {
+ public:
+ RequestNavigate(LLMediaDataClientObject *obj, LLMediaDataClient *mdc, U8 texture_index, const std::string &url);
+ /*virtual*/ LLSD getPayload() const;
+ /*virtual*/ Responder *createResponder();
+ /*virtual*/ std::string getURL() { return mURL; }
+ private:
+ std::string mURL;
+ };
protected:
- // Subclasses must override this factory method to return a new responder
- virtual Responder *createResponder(const request_ptr_t &request) const;
-
// Subclasses must override to return a cap name
virtual const char *getCapabilityName() const;
diff --git a/indra/newview/llmemoryview.cpp b/indra/newview/llmemoryview.cpp
index cbe4cef12f..9a244e2562 100644
--- a/indra/newview/llmemoryview.cpp
+++ b/indra/newview/llmemoryview.cpp
@@ -2,31 +2,25 @@
* @file llmemoryview.cpp
* @brief LLMemoryView class implementation
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llmemoryview.h b/indra/newview/llmemoryview.h
index 774a52b88b..24ea058279 100644
--- a/indra/newview/llmemoryview.h
+++ b/indra/newview/llmemoryview.h
@@ -2,31 +2,25 @@
* @file llmemoryview.h
* @brief LLMemoryView class definition
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llmenucommands.cpp b/indra/newview/llmenucommands.cpp
index e6ca0dabda..4b7f9432e3 100644
--- a/indra/newview/llmenucommands.cpp
+++ b/indra/newview/llmenucommands.cpp
@@ -2,31 +2,25 @@
* @file llmenucommands.cpp
* @brief Implementations of menu commands.
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llmenucommands.h b/indra/newview/llmenucommands.h
index a3611ef6d1..fa845c6f02 100644
--- a/indra/newview/llmenucommands.h
+++ b/indra/newview/llmenucommands.h
@@ -2,31 +2,25 @@
* @file llmenucommands.h
* @brief Implementations of menu commands.
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llmetricperformancetester.cpp b/indra/newview/llmetricperformancetester.cpp
index 93288c98d7..903c97378e 100644
--- a/indra/newview/llmetricperformancetester.cpp
+++ b/indra/newview/llmetricperformancetester.cpp
@@ -2,31 +2,25 @@
* @file llmetricperformancetester.cpp
* @brief LLMetricPerformanceTester class implementation
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llmetricperformancetester.h b/indra/newview/llmetricperformancetester.h
index ab5ccaeb8e..6f5dc03564 100644
--- a/indra/newview/llmetricperformancetester.h
+++ b/indra/newview/llmetricperformancetester.h
@@ -2,31 +2,25 @@
* @file LLMetricPerformanceTester.h
* @brief LLMetricPerformanceTester class definition
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llmimetypes.cpp b/indra/newview/llmimetypes.cpp
index 7bddc0d84c..e689e39b26 100644
--- a/indra/newview/llmimetypes.cpp
+++ b/indra/newview/llmimetypes.cpp
@@ -3,31 +3,25 @@
* @brief Translates a MIME type like "video/quicktime" into a
* localizable user-friendly string like "QuickTime Movie"
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llmimetypes.h b/indra/newview/llmimetypes.h
index 3461769ff3..ab629fd965 100644
--- a/indra/newview/llmimetypes.h
+++ b/indra/newview/llmimetypes.h
@@ -3,31 +3,25 @@
* @brief Translates a MIME type like "video/quicktime" into a
* localizable user-friendly string like "QuickTime Movie"
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llmorphview.cpp b/indra/newview/llmorphview.cpp
index 4c28e98e62..eaa044cb59 100644
--- a/indra/newview/llmorphview.cpp
+++ b/indra/newview/llmorphview.cpp
@@ -2,31 +2,25 @@
* @file llmorphview.cpp
* @brief Container for Morph functionality
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -75,7 +69,6 @@ LLMorphView::LLMorphView(const LLMorphView::Params& p)
mOldCameraNearClip( 0.f ),
mCameraPitch( 0.f ),
mCameraYaw( 0.f ),
- mCameraDist( -1.f ),
mCameraDrivenByKeys( FALSE )
{}
@@ -86,7 +79,6 @@ void LLMorphView::initialize()
{
mCameraPitch = 0.f;
mCameraYaw = 0.f;
- mCameraDist = -1.f;
if (!isAgentAvatarValid() || gAgentAvatarp->isDead())
{
diff --git a/indra/newview/llmorphview.h b/indra/newview/llmorphview.h
index 493f906c6b..1d8ee8e944 100644
--- a/indra/newview/llmorphview.h
+++ b/indra/newview/llmorphview.h
@@ -2,31 +2,25 @@
* @file llmorphview.h
* @brief Container for character morph controls
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -38,7 +32,6 @@
#include "llframetimer.h"
class LLJoint;
-class LLFloaterCustomize;
class LLMorphView : public LLView
{
@@ -53,7 +46,6 @@ public:
};
LLMorphView(const LLMorphView::Params&);
- void initialize();
void shutdown();
// inherited methods
@@ -64,12 +56,13 @@ public:
void setCameraOffset(const LLVector3d& camera_offset) {mCameraOffset = camera_offset;}
void setCameraTargetOffset(const LLVector3d& camera_target_offset) {mCameraTargetOffset = camera_target_offset;}
- void setCameraDistToDefault() { mCameraDist = -1.f; }
void updateCamera();
void setCameraDrivenByKeys( BOOL b );
protected:
+ void initialize();
+
LLJoint* mCameraTargetJoint;
LLVector3d mCameraOffset;
LLVector3d mCameraTargetOffset;
@@ -82,9 +75,6 @@ protected:
F32 mCameraPitch;
F32 mCameraYaw;
- // camera zoom
- F32 mCameraDist;
-
BOOL mCameraDrivenByKeys;
};
diff --git a/indra/newview/llmoveview.cpp b/indra/newview/llmoveview.cpp
index afca9daa67..6658e1d7e8 100644
--- a/indra/newview/llmoveview.cpp
+++ b/indra/newview/llmoveview.cpp
@@ -2,31 +2,25 @@
* @file llmoveview.cpp
* @brief Container for movement buttons like forward, left, fly
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -45,7 +39,9 @@
#include "llvoavatarself.h" // to check gAgentAvatarp->isSitting()
#include "llbottomtray.h"
#include "llbutton.h"
+#include "llfirstuse.h"
#include "llfloaterreg.h"
+#include "llhints.h"
#include "lljoystickbutton.h"
#include "lluictrlfactory.h"
#include "llviewerwindow.h"
@@ -83,6 +79,16 @@ LLFloaterMove::LLFloaterMove(const LLSD& key)
{
}
+LLFloaterMove::~LLFloaterMove()
+{
+ // Ensure LLPanelStandStopFlying panel is not among floater's children. See EXT-8458.
+ setVisible(FALSE);
+
+ // Otherwise it can be destroyed and static pointer in LLPanelStandStopFlying::getInstance() will become invalid.
+ // Such situation was possible when LLFloaterReg returns "dead" instance of floater.
+ // Should not happen after LLFloater::destroy was modified to remove "dead" instances from LLFloaterReg.
+}
+
// virtual
BOOL LLFloaterMove::postBuild()
{
@@ -144,18 +150,6 @@ BOOL LLFloaterMove::postBuild()
return TRUE;
}
-// virtual
-void LLFloaterMove::setEnabled(BOOL enabled)
-{
- //we need to enable/disable only buttons, EXT-1061.
-
- // is called before postBuild() - use findChild here.
- LLPanel *panel_actions = findChild<LLPanel>("panel_actions");
- if (panel_actions) panel_actions->setEnabled(enabled);
-
- showModeButtons(enabled);
-}
-
// *NOTE: we assume that setVisible() is called on floater close.
// virtual
void LLFloaterMove::setVisible(BOOL visible)
@@ -169,6 +163,7 @@ void LLFloaterMove::setVisible(BOOL visible)
if (visible)
{
+ LLFirstUse::notMoving(false);
// Attach the Stand/Stop Flying panel.
LLPanelStandStopFlying* ssf_panel = LLPanelStandStopFlying::getInstance();
ssf_panel->reparent(this);
@@ -406,7 +401,7 @@ void LLFloaterMove::initMovementMode()
if (isAgentAvatarValid())
{
- setEnabled(!gAgentAvatarp->isSitting());
+ showModeButtons(!gAgentAvatarp->isSitting());
}
}
@@ -476,8 +471,7 @@ void LLFloaterMove::sUpdateFlyingStatus()
void LLFloaterMove::showModeButtons(BOOL bShow)
{
- // is called from setEnabled so can be called before postBuild(), check mModeActionsPanel agains to NULL
- if (NULL == mModeActionsPanel || mModeActionsPanel->getVisible() == bShow)
+ if (mModeActionsPanel->getVisible() == bShow)
return;
mModeActionsPanel->setVisible(bShow);
}
@@ -488,12 +482,14 @@ void LLFloaterMove::enableInstance(BOOL bEnable)
LLFloaterMove* instance = LLFloaterReg::findTypedInstance<LLFloaterMove>("moveview");
if (instance)
{
- instance->setEnabled(bEnable);
-
if (gAgent.getFlying())
{
instance->showModeButtons(FALSE);
}
+ else
+ {
+ instance->showModeButtons(bEnable);
+ }
}
}
@@ -567,6 +563,11 @@ void LLPanelStandStopFlying::setStandStopFlyingMode(EStandStopFlyingMode mode)
{
LLPanelStandStopFlying* panel = getInstance();
+ if (mode == SSFM_STAND)
+ {
+ LLFirstUse::sit();
+ LLFirstUse::notMoving(false);
+ }
panel->mStandButton->setVisible(SSFM_STAND == mode);
panel->mStopFlyingButton->setVisible(SSFM_STOP_FLYING == mode);
@@ -597,6 +598,7 @@ BOOL LLPanelStandStopFlying::postBuild()
mStandButton->setCommitCallback(boost::bind(&LLPanelStandStopFlying::onStandButtonClick, this));
mStandButton->setCommitCallback(boost::bind(&LLFloaterMove::enableInstance, TRUE));
mStandButton->setVisible(FALSE);
+ LLHints::registerHintTarget("stand_btn", mStandButton->getHandle());
mStopFlyingButton = getChild<LLButton>("stop_fly_btn");
//mStopFlyingButton->setCommitCallback(boost::bind(&LLFloaterMove::setFlyingMode, FALSE));
@@ -695,7 +697,7 @@ void LLPanelStandStopFlying::reparent(LLFloaterMove* move_view)
LLPanelStandStopFlying* LLPanelStandStopFlying::getStandStopFlyingPanel()
{
LLPanelStandStopFlying* panel = new LLPanelStandStopFlying();
- LLUICtrlFactory::getInstance()->buildPanel(panel, "panel_stand_stop_flying.xml");
+ panel->buildFromFile("panel_stand_stop_flying.xml");
panel->setVisible(FALSE);
//LLUI::getRootView()->addChild(panel);
@@ -708,6 +710,8 @@ LLPanelStandStopFlying* LLPanelStandStopFlying::getStandStopFlyingPanel()
void LLPanelStandStopFlying::onStandButtonClick()
{
+ LLFirstUse::sit(false);
+
LLSelectMgr::getInstance()->deselectAllForStandingUp();
gAgent.setControlFlags(AGENT_CONTROL_STAND_UP);
diff --git a/indra/newview/llmoveview.h b/indra/newview/llmoveview.h
index fcf643f050..1b87864651 100644
--- a/indra/newview/llmoveview.h
+++ b/indra/newview/llmoveview.h
@@ -2,31 +2,25 @@
* @file llmoveview.h
* @brief Container for buttons for walking, turning, flying
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -51,11 +45,10 @@ class LLFloaterMove
private:
LLFloaterMove(const LLSD& key);
- ~LLFloaterMove() {}
+ ~LLFloaterMove();
public:
/*virtual*/ BOOL postBuild();
- /*virtual*/ void setEnabled(BOOL enabled);
/*virtual*/ void setVisible(BOOL visible);
static F32 getYawRate(F32 time);
static void setFlyingMode(BOOL fly);
diff --git a/indra/newview/llmutelist.cpp b/indra/newview/llmutelist.cpp
index 7cb192e026..eb00663d3f 100644
--- a/indra/newview/llmutelist.cpp
+++ b/indra/newview/llmutelist.cpp
@@ -3,31 +3,25 @@
* @author Richard Nelson, James Cook
* @brief Management of list of muted players
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llmutelist.h b/indra/newview/llmutelist.h
index 79b556bdbb..62c72dd9c6 100644
--- a/indra/newview/llmutelist.h
+++ b/indra/newview/llmutelist.h
@@ -2,31 +2,25 @@
* @file llmutelist.h
* @brief Management of list of muted players
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llnamebox.cpp b/indra/newview/llnamebox.cpp
index cd810b9793..74d4217899 100644
--- a/indra/newview/llnamebox.cpp
+++ b/indra/newview/llnamebox.cpp
@@ -2,31 +2,25 @@
* @file llnamebox.cpp
* @brief A text display widget
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llnamebox.h b/indra/newview/llnamebox.h
index 48b54faec8..dbabcc0e52 100644
--- a/indra/newview/llnamebox.h
+++ b/indra/newview/llnamebox.h
@@ -2,31 +2,25 @@
* @file llnamebox.h
* @brief display and refresh a name from the name cache
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llnameeditor.cpp b/indra/newview/llnameeditor.cpp
index 65601da7da..f53252b614 100644
--- a/indra/newview/llnameeditor.cpp
+++ b/indra/newview/llnameeditor.cpp
@@ -2,31 +2,25 @@
* @file llnameeditor.cpp
* @brief Name Editor to refresh a name.
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llnameeditor.h b/indra/newview/llnameeditor.h
index 99e03a1166..d8360f9f4b 100644
--- a/indra/newview/llnameeditor.h
+++ b/indra/newview/llnameeditor.h
@@ -2,31 +2,25 @@
* @file llnameeditor.h
* @brief display and refresh a name from the name cache
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llnamelistctrl.cpp b/indra/newview/llnamelistctrl.cpp
index d09f729943..6521ae3b1e 100644
--- a/indra/newview/llnamelistctrl.cpp
+++ b/indra/newview/llnamelistctrl.cpp
@@ -2,31 +2,25 @@
* @file llnamelistctrl.cpp
* @brief A list of names, automatically refreshed from name cache.
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -259,7 +253,8 @@ void LLNameListCtrl::addNameItem(LLNameListCtrl::NameItem& item, EAddPosition po
LLScrollListItem* LLNameListCtrl::addElement(const LLSD& element, EAddPosition pos, void* userdata)
{
LLNameListCtrl::NameItem item_params;
- LLParamSDParser::instance().readSD(element, item_params);
+ LLParamSDParser parser;
+ parser.readSD(element, item_params);
item_params.userdata = userdata;
return addNameItemRow(item_params, pos);
}
diff --git a/indra/newview/llnamelistctrl.h b/indra/newview/llnamelistctrl.h
index ee71db7540..981e3df16b 100644
--- a/indra/newview/llnamelistctrl.h
+++ b/indra/newview/llnamelistctrl.h
@@ -2,31 +2,25 @@
* @file llnamelistctrl.h
* @brief A list of names, automatically refreshing from the name cache.
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -39,7 +33,7 @@
class LLNameListCtrl
-: public LLScrollListCtrl, protected LLInstanceTracker<LLNameListCtrl>
+: public LLScrollListCtrl, public LLInstanceTracker<LLNameListCtrl>
{
public:
typedef enum e_name_type
diff --git a/indra/newview/llnavigationbar.cpp b/indra/newview/llnavigationbar.cpp
index fce666c9d4..58849393b4 100644
--- a/indra/newview/llnavigationbar.cpp
+++ b/indra/newview/llnavigationbar.cpp
@@ -2,31 +2,25 @@
* @file llnavigationbar.cpp
* @brief Navigation bar implementation
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -278,7 +272,7 @@ LLNavigationBar::LLNavigationBar()
mPurgeTPHistoryItems(false),
mSaveToLocationHistory(false)
{
- LLUICtrlFactory::getInstance()->buildPanel(this, "panel_navigation_bar.xml");
+ buildFromFile( "panel_navigation_bar.xml");
// set a listener function for LoginComplete event
LLAppViewer::instance()->setOnLoginCompletedCallback(boost::bind(&LLNavigationBar::handleLoginComplete, this));
@@ -776,7 +770,7 @@ void LLNavigationBar::showNavigationPanel(BOOL visible)
{
// Navigation Panel must be shown. Favorites Panel is hidden.
- S32 height = mDefaultNbRect.getHeight() - mDefaultFpRect.getHeight();
+ S32 height = mDefaultNbRect.getHeight() - mDefaultFpRect.getHeight() - FAVBAR_TOP_PADDING;
nbRect.setLeftTopAndSize(nbRect.mLeft, nbRect.mTop, nbRect.getWidth(), height);
reshape(nbRect.getWidth(), nbRect.getHeight());
@@ -790,8 +784,11 @@ void LLNavigationBar::showNavigationPanel(BOOL visible)
{
// Navigation Panel must be hidden. Favorites Panel is visible.
- nbRect.setLeftTopAndSize(nbRect.mLeft, nbRect.mTop, nbRect.getWidth(), fbRect.getHeight());
- fbRect.setLeftTopAndSize(fbRect.mLeft, fbRect.getHeight(), fbRect.getWidth(), fbRect.getHeight());
+ S32 fpHeight = mDefaultFpRect.getHeight() + FAVBAR_TOP_PADDING;
+ S32 fpTop = fpHeight - (mDefaultFpRect.getHeight() / 2) + 1;
+
+ nbRect.setLeftTopAndSize(nbRect.mLeft, nbRect.mTop, nbRect.getWidth(), fpHeight);
+ fbRect.setLeftTopAndSize(fbRect.mLeft, fpTop, fbRect.getWidth(), mDefaultFpRect.getHeight());
// this is duplicated in 'else' section because it should be called BEFORE fb->reshape
reshape(nbRect.getWidth(), nbRect.getHeight());
@@ -813,8 +810,9 @@ void LLNavigationBar::showNavigationPanel(BOOL visible)
}
}
- childSetVisible("bg_icon", fpVisible);
- childSetVisible("bg_icon_no_fav", !fpVisible);
+ getChildView("bg_icon")->setVisible( visible && fpVisible);
+ getChildView("bg_icon_no_fav_bevel")->setVisible( visible && !fpVisible);
+ getChildView("bg_icon_no_nav_bevel")->setVisible( !visible && fpVisible);
}
void LLNavigationBar::showFavoritesPanel(BOOL visible)
@@ -833,7 +831,7 @@ void LLNavigationBar::showFavoritesPanel(BOOL visible)
// Favorites Panel must be shown. Navigation Panel is visible.
S32 fbHeight = fbRect.getHeight();
- S32 newHeight = nbRect.getHeight() + fbHeight;
+ S32 newHeight = nbRect.getHeight() + fbHeight + FAVBAR_TOP_PADDING;
nbRect.setLeftTopAndSize(nbRect.mLeft, nbRect.mTop, nbRect.getWidth(), newHeight);
fbRect.setLeftTopAndSize(mDefaultFpRect.mLeft, mDefaultFpRect.mTop, fbRect.getWidth(), fbRect.getHeight());
@@ -842,9 +840,11 @@ void LLNavigationBar::showFavoritesPanel(BOOL visible)
{
// Favorites Panel must be shown. Navigation Panel is hidden.
- S32 fpHeight = mDefaultFpRect.getHeight();
+ S32 fpHeight = mDefaultFpRect.getHeight() + FAVBAR_TOP_PADDING;
+ S32 fpTop = fpHeight - (mDefaultFpRect.getHeight() / 2) + 1;
+
nbRect.setLeftTopAndSize(nbRect.mLeft, nbRect.mTop, nbRect.getWidth(), fpHeight);
- fbRect.setLeftTopAndSize(fbRect.mLeft, fpHeight, fbRect.getWidth(), fpHeight);
+ fbRect.setLeftTopAndSize(fbRect.mLeft, fpTop, fbRect.getWidth(), mDefaultFpRect.getHeight());
}
reshape(nbRect.getWidth(), nbRect.getHeight());
@@ -861,7 +861,7 @@ void LLNavigationBar::showFavoritesPanel(BOOL visible)
// Favorites Panel must be hidden. Navigation Panel is visible.
S32 fbHeight = fbRect.getHeight();
- S32 newHeight = nbRect.getHeight() - fbHeight;
+ S32 newHeight = nbRect.getHeight() - fbHeight - FAVBAR_TOP_PADDING;
nbRect.setLeftTopAndSize(nbRect.mLeft, nbRect.mTop, nbRect.getWidth(), newHeight);
}
@@ -877,8 +877,9 @@ void LLNavigationBar::showFavoritesPanel(BOOL visible)
getParent()->reshape(nbRect.getWidth(), nbRect.getHeight());
}
- childSetVisible("bg_icon", visible);
- childSetVisible("bg_icon_no_fav", !visible);
+ getChildView("bg_icon")->setVisible( npVisible && visible);
+ getChildView("bg_icon_no_fav_bevel")->setVisible( npVisible && !visible);
+ getChildView("bg_icon_no_nav_bevel")->setVisible( !npVisible && visible);
fb->setVisible(visible);
}
diff --git a/indra/newview/llnavigationbar.h b/indra/newview/llnavigationbar.h
index b512f2a79c..3c9f8a762d 100644
--- a/indra/newview/llnavigationbar.h
+++ b/indra/newview/llnavigationbar.h
@@ -2,31 +2,25 @@
* @file llnavigationbar.h
* @brief Navigation bar definition
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -87,9 +81,10 @@ protected:
* Web browser-like navigation bar.
*/
class LLNavigationBar
- : public LLPanel, public LLSingleton<LLNavigationBar>
+ : public LLPanel, public LLSingleton<LLNavigationBar>, private LLDestroyClass<LLNavigationBar>
{
LOG_CLASS(LLNavigationBar);
+ friend class LLDestroyClass<LLNavigationBar>;
public:
LLNavigationBar();
@@ -110,6 +105,8 @@ public:
int getDefFavBarHeight();
private:
+ // the distance between navigation panel and favorites panel in pixels
+ const static S32 FAVBAR_TOP_PADDING = 10;
void rebuildTeleportHistoryMenu();
void showTeleportHistoryMenu(LLUICtrl* btn_ctrl);
@@ -136,6 +133,14 @@ private:
void fillSearchComboBox();
+ static void destroyClass()
+ {
+ if (LLNavigationBar::instanceExists())
+ {
+ LLNavigationBar::getInstance()->setEnabled(FALSE);
+ }
+ }
+
LLMenuGL* mTeleportHistoryMenu;
LLPullButton* mBtnBack;
LLPullButton* mBtnForward;
diff --git a/indra/newview/llnearbychat.cpp b/indra/newview/llnearbychat.cpp
index 1beaaf3cb4..28aea7ae3d 100644
--- a/indra/newview/llnearbychat.cpp
+++ b/indra/newview/llnearbychat.cpp
@@ -2,31 +2,25 @@
* @file LLNearbyChat.cpp
* @brief Nearby chat history scrolling panel implementation
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -121,7 +115,7 @@ void LLNearbyChat::applySavedVariables()
{
if (mRectControl.size() > 1)
{
- const LLRect& rect = LLUI::sSettingGroups["floater"]->getRect(mRectControl);
+ const LLRect& rect = LLFloater::getControlGroup()->getRect(mRectControl);
if(!rect.isEmpty() && rect.isValid())
{
reshape(rect.getWidth(), rect.getHeight());
@@ -130,7 +124,7 @@ void LLNearbyChat::applySavedVariables()
}
- if(!LLUI::sSettingGroups["floater"]->controlExists(mDocStateControl))
+ if(!LLFloater::getControlGroup()->controlExists(mDocStateControl))
{
setDocked(true);
}
@@ -138,7 +132,7 @@ void LLNearbyChat::applySavedVariables()
{
if (mDocStateControl.size() > 1)
{
- bool dockState = LLUI::sSettingGroups["floater"]->getBOOL(mDocStateControl);
+ bool dockState = LLFloater::getControlGroup()->getBOOL(mDocStateControl);
setDocked(dockState);
}
}
diff --git a/indra/newview/llnearbychat.h b/indra/newview/llnearbychat.h
index 3c116dbe83..1e62910385 100644
--- a/indra/newview/llnearbychat.h
+++ b/indra/newview/llnearbychat.h
@@ -2,31 +2,25 @@
* @file llnearbychat.h
* @brief nearby chat history scrolling panel implementation
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llnearbychatbar.cpp b/indra/newview/llnearbychatbar.cpp
index a300e15edd..932ad75f29 100644
--- a/indra/newview/llnearbychatbar.cpp
+++ b/indra/newview/llnearbychatbar.cpp
@@ -2,31 +2,25 @@
* @file llnearbychatbar.cpp
* @brief LLNearbyChatBar class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -38,6 +32,7 @@
#include "llfloaterreg.h"
#include "lltrans.h"
+#include "llfirstuse.h"
#include "llnearbychatbar.h"
#include "llbottomtray.h"
#include "llagent.h"
@@ -109,10 +104,10 @@ LLGestureComboList::LLGestureComboList(const LLGestureComboList::Params& p)
, mViewAllItemIndex(0)
, mGetMoreItemIndex(0)
{
- LLButton::Params button_params = p.combo_button;
+ LLBottomtrayButton::Params button_params = p.combo_button;
button_params.follows.flags(FOLLOWS_LEFT|FOLLOWS_BOTTOM|FOLLOWS_RIGHT);
- mButton = LLUICtrlFactory::create<LLButton>(button_params);
+ mButton = LLUICtrlFactory::create<LLBottomtrayButton>(button_params);
mButton->reshape(getRect().getWidth(),getRect().getHeight());
mButton->setCommitCallback(boost::bind(&LLGestureComboList::onButtonCommit, this));
@@ -317,9 +312,19 @@ void LLGestureComboList::refreshGestures()
if (gestures)
{
- S32 index = gestures->getSelectedValue().asInteger();
- if(index > 0)
- gesture = mGestures.at(index);
+ S32 sel_index = gestures->getFirstSelectedIndex();
+ if (sel_index != 0)
+ {
+ S32 index = gestures->getSelectedValue().asInteger();
+ if (index<0 || index >= (S32)mGestures.size())
+ {
+ llwarns << "out of range gesture access" << llendl;
+ }
+ else
+ {
+ gesture = mGestures.at(index);
+ }
+ }
}
if(gesture && LLGestureMgr::instance().isGesturePlaying(gesture))
@@ -335,13 +340,13 @@ void LLGestureComboList::onCommitGesture()
LLCtrlListInterface* gestures = getListInterface();
if (gestures)
{
- S32 index = gestures->getFirstSelectedIndex();
- if (index == 0)
+ S32 sel_index = gestures->getFirstSelectedIndex();
+ if (sel_index == 0)
{
return;
}
- index = gestures->getSelectedValue().asInteger();
+ S32 index = gestures->getSelectedValue().asInteger();
if (mViewAllItemIndex == index)
{
@@ -357,13 +362,20 @@ void LLGestureComboList::onCommitGesture()
return;
}
- LLMultiGesture* gesture = mGestures.at(index);
- if(gesture)
+ if (index<0 || index >= (S32)mGestures.size())
+ {
+ llwarns << "out of range gesture index" << llendl;
+ }
+ else
{
- LLGestureMgr::instance().playGesture(gesture);
- if(!gesture->mReplaceText.empty())
+ LLMultiGesture* gesture = mGestures.at(index);
+ if(gesture)
{
- LLNearbyChatBar::sendChatFromViewer(gesture->mReplaceText, CHAT_TYPE_NORMAL, FALSE);
+ LLGestureMgr::instance().playGesture(gesture);
+ if(!gesture->mReplaceText.empty())
+ {
+ LLNearbyChatBar::sendChatFromViewer(gesture->mReplaceText, CHAT_TYPE_NORMAL, FALSE);
+ }
}
}
}
@@ -374,9 +386,13 @@ LLGestureComboList::~LLGestureComboList()
LLGestureMgr::instance().removeObserver(this);
}
+LLCtrlListInterface* LLGestureComboList::getListInterface()
+{
+ return mList;
+}
+
LLNearbyChatBar::LLNearbyChatBar()
- : LLPanel()
- , mChatBox(NULL)
+: mChatBox(NULL)
{
mSpeakerMgr = LLLocalSpeakerMgr::getInstance();
}
@@ -468,6 +484,7 @@ BOOL LLNearbyChatBar::matchChatTypeTrigger(const std::string& in_str, std::strin
void LLNearbyChatBar::onChatBoxKeystroke(LLLineEditor* caller, void* userdata)
{
+ LLFirstUse::otherAvatarChatFirst(false);
LLNearbyChatBar* self = (LLNearbyChatBar *)userdata;
@@ -849,14 +866,30 @@ public:
bool handle(const LLSD& tokens, const LLSD& query_map,
LLMediaCtrl* web)
{
- if (tokens.size() < 2) return false;
+ bool retval = false;
+ // Need at least 2 tokens to have a valid message.
+ if (tokens.size() < 2)
+ {
+ retval = false;
+ }
+ else
+ {
S32 channel = tokens[0].asInteger();
-
+ // VWR-19499 Restrict function to chat channels greater than 0.
+ if ((channel > 0) && (channel < 2147483647))
+ {
+ retval = true;
// Send unescaped message, see EXT-6353.
std::string unescaped_mesg (LLURI::unescape(tokens[1].asString()));
-
send_chat_from_viewer(unescaped_mesg, CHAT_TYPE_NORMAL, channel);
- return true;
+ }
+ else
+ {
+ retval = false;
+ // Tell us this is an unsupported SLurl.
+ }
+ }
+ return retval;
}
};
diff --git a/indra/newview/llnearbychatbar.h b/indra/newview/llnearbychatbar.h
index 83c174fd10..cc905736fd 100644
--- a/indra/newview/llnearbychatbar.h
+++ b/indra/newview/llnearbychatbar.h
@@ -2,31 +2,25 @@
* @file llnearbychatbar.h
* @brief LLNearbyChatBar class definition
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -40,6 +34,7 @@
#include "llvoiceclient.h"
#include "lloutputmonitorctrl.h"
#include "llspeakers.h"
+#include "llbottomtray.h"
class LLGestureComboList
@@ -49,7 +44,7 @@ class LLGestureComboList
public:
struct Params : public LLInitParam::Block<Params, LLUICtrl::Params>
{
- Optional<LLButton::Params> combo_button;
+ Optional<LLBottomtrayButton::Params> combo_button;
Optional<LLScrollListCtrl::Params> combo_list;
Params();
@@ -68,7 +63,7 @@ public:
~LLGestureComboList();
- LLCtrlListInterface* getListInterface() { return (LLCtrlListInterface*)mList; };
+ LLCtrlListInterface* getListInterface();
virtual void showList();
virtual void hideList();
virtual BOOL handleKeyHere(KEY key, MASK mask);
diff --git a/indra/newview/llnearbychathandler.cpp b/indra/newview/llnearbychathandler.cpp
index 1fadb126e4..47d32e57fb 100644
--- a/indra/newview/llnearbychathandler.cpp
+++ b/indra/newview/llnearbychathandler.cpp
@@ -2,31 +2,25 @@
* @file LLNearbyChatHandler.cpp
* @brief Nearby chat notification managment
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -37,7 +31,9 @@
#include "llbottomtray.h"
#include "llchatitemscontainerctrl.h"
+#include "llfirstuse.h"
#include "llfloaterscriptdebug.h"
+#include "llhints.h"
#include "llnearbychat.h"
#include "llrecentpeople.h"
@@ -60,8 +56,15 @@ LLToastPanelBase* createToastPanel()
class LLNearbyChatScreenChannel: public LLScreenChannelBase
{
+ LOG_CLASS(LLNearbyChatScreenChannel);
public:
- LLNearbyChatScreenChannel(const LLUUID& id):LLScreenChannelBase(id) { mStopProcessing = false;};
+ typedef std::vector<LLHandle<LLToast> > toast_vec_t;
+ typedef std::list<LLHandle<LLToast> > toast_list_t;
+
+ LLNearbyChatScreenChannel(const LLUUID& id):LLScreenChannelBase(id)
+ {
+ mStopProcessing = false;
+ }
void addNotification (LLSD& notification);
void arrangeToasts ();
@@ -70,7 +73,7 @@ public:
typedef boost::function<LLToastPanelBase* (void )> create_toast_panel_callback_t;
void setCreatePanelCallback(create_toast_panel_callback_t value) { m_create_toast_panel_callback_t = value;}
- void onToastDestroyed (LLToast* toast);
+ void onToastDestroyed (LLToast* toast, bool app_quitting);
void onToastFade (LLToast* toast);
void reshape (S32 width, S32 height, BOOL called_from_parent);
@@ -81,33 +84,34 @@ public:
}
// hide all toasts from screen, but not remove them from a channel
- virtual void hideToastsFromScreen()
- {
- };
// removes all toasts from a channel
virtual void removeToastsFromChannel()
{
- for(std::vector<LLToast*>::iterator it = m_active_toasts.begin(); it != m_active_toasts.end(); ++it)
+ for(toast_vec_t::iterator it = m_active_toasts.begin(); it != m_active_toasts.end(); ++it)
{
- addToToastPool((*it));
+ addToToastPool(it->get());
}
m_active_toasts.clear();
};
virtual void deleteAllChildren()
{
+ LL_DEBUGS("NearbyChat") << "Clearing toast pool" << llendl;
m_toast_pool.clear();
m_active_toasts.clear();
LLScreenChannelBase::deleteAllChildren();
}
protected:
+ void deactivateToast(LLToast* toast);
void addToToastPool(LLToast* toast)
{
+ if (!toast) return;
+ LL_DEBUGS("NearbyChat") << "Pooling toast" << llendl;
toast->setVisible(FALSE);
toast->stopTimer();
toast->setIsHidden(true);
- m_toast_pool.push_back(toast);
+ m_toast_pool.push_back(toast->getHandle());
}
void createOverflowToast(S32 bottom, F32 timer);
@@ -116,31 +120,85 @@ protected:
bool createPoolToast();
- std::vector<LLToast*> m_active_toasts;
- std::list<LLToast*> m_toast_pool;
+ toast_vec_t m_active_toasts;
+ toast_list_t m_toast_pool;
bool mStopProcessing;
};
+//-----------------------------------------------------------------------------------------------
+// LLNearbyChatToast
+//-----------------------------------------------------------------------------------------------
+
+// We're deriving from LLToast to be able to override onClose()
+// in order to handle closing nearby chat toasts properly.
+class LLNearbyChatToast : public LLToast
+{
+ LOG_CLASS(LLNearbyChatToast);
+public:
+ LLNearbyChatToast(const LLToast::Params& p, LLNearbyChatScreenChannel* nc_channelp)
+ : LLToast(p),
+ mNearbyChatScreenChannelp(nc_channelp)
+ {
+ }
+
+ /*virtual*/ void onClose(bool app_quitting);
+
+private:
+ LLNearbyChatScreenChannel* mNearbyChatScreenChannelp;
+};
+
+//-----------------------------------------------------------------------------------------------
+// LLNearbyChatScreenChannel
+//-----------------------------------------------------------------------------------------------
+
+void LLNearbyChatScreenChannel::deactivateToast(LLToast* toast)
+{
+ toast_vec_t::iterator pos = std::find(m_active_toasts.begin(), m_active_toasts.end(), toast->getHandle());
+
+ if (pos == m_active_toasts.end())
+ {
+ llassert(pos == m_active_toasts.end());
+ return;
+ }
+
+ LL_DEBUGS("NearbyChat") << "Deactivating toast" << llendl;
+ m_active_toasts.erase(pos);
+}
+
void LLNearbyChatScreenChannel::createOverflowToast(S32 bottom, F32 timer)
{
//we don't need overflow toast in nearby chat
}
-void LLNearbyChatScreenChannel::onToastDestroyed(LLToast* toast)
+void LLNearbyChatScreenChannel::onToastDestroyed(LLToast* toast, bool app_quitting)
{
+ LL_DEBUGS("NearbyChat") << "Toast destroyed (app_quitting=" << app_quitting << ")" << llendl;
+
+ if (app_quitting)
+ {
+ // Viewer is quitting.
+ // Immediately stop processing chat messages (EXT-1419).
mStopProcessing = true;
}
+ else
+ {
+ // The toast is being closed by user (STORM-192).
+ // Remove it from the list of active toasts to prevent
+ // further references to the invalid pointer.
+ deactivateToast(toast);
+ }
+}
void LLNearbyChatScreenChannel::onToastFade(LLToast* toast)
{
+ LL_DEBUGS("NearbyChat") << "Toast fading" << llendl;
+
//fade mean we put toast to toast pool
if(!toast)
return;
- std::vector<LLToast*>::iterator pos = std::find(m_active_toasts.begin(),m_active_toasts.end(),toast);
- if(pos!=m_active_toasts.end())
- m_active_toasts.erase(pos);
+ deactivateToast(toast);
addToToastPool(toast);
@@ -159,13 +217,13 @@ bool LLNearbyChatScreenChannel::createPoolToast()
p.lifetime_secs = gSavedSettings.getS32("NearbyToastLifeTime");
p.fading_time_secs = gSavedSettings.getS32("NearbyToastFadingTime");
- LLToast* toast = new LLToast(p);
+ LLToast* toast = new LLNearbyChatToast(p, this);
toast->setOnFadeCallback(boost::bind(&LLNearbyChatScreenChannel::onToastFade, this, _1));
- toast->setOnToastDestroyedCallback(boost::bind(&LLNearbyChatScreenChannel::onToastDestroyed, this, _1));
-
- m_toast_pool.push_back(toast);
+
+ LL_DEBUGS("NearbyChat") << "Creating and pooling toast" << llendl;
+ m_toast_pool.push_back(toast->getHandle());
return true;
}
@@ -183,17 +241,20 @@ void LLNearbyChatScreenChannel::addNotification(LLSD& notification)
{
LLUUID fromID = notification["from_id"].asUUID(); // agent id or object id
std::string from = notification["from"].asString();
- LLToast* toast = m_active_toasts[0];
- LLNearbyChatToastPanel* panel = dynamic_cast<LLNearbyChatToastPanel*>(toast->getPanel());
-
- if(panel && panel->messageID() == fromID && panel->getFromName() == from && panel->canAddText())
+ LLToast* toast = m_active_toasts[0].get();
+ if (toast)
{
- panel->addMessage(notification);
- toast->reshapeToPanel();
- toast->resetTimer();
-
- arrangeToasts();
- return;
+ LLNearbyChatToastPanel* panel = dynamic_cast<LLNearbyChatToastPanel*>(toast->getPanel());
+
+ if(panel && panel->messageID() == fromID && panel->getFromName() == from && panel->canAddText())
+ {
+ panel->addMessage(notification);
+ toast->reshapeToPanel();
+ toast->resetTimer();
+
+ arrangeToasts();
+ return;
+ }
}
}
@@ -202,6 +263,7 @@ void LLNearbyChatScreenChannel::addNotification(LLSD& notification)
if(m_toast_pool.empty())
{
//"pool" is empty - create one more panel
+ LL_DEBUGS("NearbyChat") << "Empty pool" << llendl;
if(!createPoolToast())//created toast will go to pool. so next call will find it
return;
addNotification(notification);
@@ -221,7 +283,8 @@ void LLNearbyChatScreenChannel::addNotification(LLSD& notification)
//take 1st element from pool, (re)initialize it, put it in active toasts
- LLToast* toast = m_toast_pool.back();
+ LL_DEBUGS("NearbyChat") << "Getting toast from pool" << llendl;
+ LLToast* toast = m_toast_pool.back().get();
m_toast_pool.pop_back();
@@ -234,25 +297,36 @@ void LLNearbyChatScreenChannel::addNotification(LLSD& notification)
toast->reshapeToPanel();
toast->resetTimer();
- m_active_toasts.push_back(toast);
+ m_active_toasts.push_back(toast->getHandle());
arrangeToasts();
}
void LLNearbyChatScreenChannel::arrangeToasts()
{
- if(m_active_toasts.size() == 0 || isHovering())
- return;
-
- hideToastsFromScreen();
+ if(!isHovering())
+ {
+ showToastsBottom();
+ }
- showToastsBottom();
+ if (m_active_toasts.empty())
+ {
+ LLHints::registerHintTarget("incoming_chat", LLHandle<LLView>());
+ }
+ else
+ {
+ LLToast* toast = m_active_toasts.front().get();
+ if (toast)
+ {
+ LLHints::registerHintTarget("incoming_chat", m_active_toasts.front().get()->LLView::getHandle());
+ }
+ }
}
-int sort_toasts_predicate(LLToast* first,LLToast* second)
+int sort_toasts_predicate(LLHandle<LLToast> first, LLHandle<LLToast> second)
{
- F32 v1 = first->getTimer()->getEventTimer().getElapsedTimeF32();
- F32 v2 = second->getTimer()->getEventTimer().getElapsedTimeF32();
+ F32 v1 = first.get()->getTimer()->getEventTimer().getElapsedTimeF32();
+ F32 v2 = second.get()->getTimer()->getEventTimer().getElapsedTimeF32();
return v1 < v2;
}
@@ -270,20 +344,22 @@ void LLNearbyChatScreenChannel::showToastsBottom()
//calc max visible item and hide other toasts.
- for(std::vector<LLToast*>::iterator it = m_active_toasts.begin(); it != m_active_toasts.end(); ++it)
+ for(toast_vec_t::iterator it = m_active_toasts.begin(); it != m_active_toasts.end(); ++it)
{
- S32 toast_top = bottom + (*it)->getRect().getHeight() + margin;
+ LLToast* toast = it->get();
+ if (!toast) continue;
+
+ S32 toast_top = bottom + toast->getRect().getHeight() + margin;
if(toast_top > gFloaterView->getRect().getHeight())
{
while(it!=m_active_toasts.end())
{
- addToToastPool((*it));
+ addToToastPool(it->get());
it=m_active_toasts.erase(it);
}
break;
}
- LLToast* toast = (*it);
toast_rect = toast->getRect();
toast_rect.setLeftTopAndSize(getRect().mLeft , bottom + toast_rect.getHeight(), toast_rect.getWidth() ,toast_rect.getHeight());
@@ -294,14 +370,17 @@ void LLNearbyChatScreenChannel::showToastsBottom()
// use reverse order to provide correct z-order and avoid toast blinking
- for(std::vector<LLToast*>::reverse_iterator it = m_active_toasts.rbegin(); it != m_active_toasts.rend(); ++it)
+ for(toast_vec_t::reverse_iterator it = m_active_toasts.rbegin(); it != m_active_toasts.rend(); ++it)
+ {
+ LLToast* toast = it->get();
+ if (toast)
{
- LLToast* toast = (*it);
toast->setIsHidden(false);
toast->setVisible(TRUE);
+ }
+ }
}
-}
void LLNearbyChatScreenChannel::reshape (S32 width, S32 height, BOOL called_from_parent)
{
@@ -346,8 +425,6 @@ void LLNearbyChatHandler::processChat(const LLChat& chat_msg, const LLSD &args)
{
if(chat_msg.mMuted == TRUE)
return;
- if(chat_msg.mSourceType == CHAT_SOURCE_AGENT && chat_msg.mFromID.notNull())
- LLRecentPeople::instance().add(chat_msg.mFromID);
if(chat_msg.mText.empty())
return;//don't process empty messages
@@ -451,6 +528,12 @@ void LLNearbyChatHandler::processChat(const LLChat& chat_msg, const LLSD &args)
channel->addNotification(notification);
}
+ if(chat_msg.mSourceType == CHAT_SOURCE_AGENT
+ && chat_msg.mFromID.notNull()
+ && chat_msg.mFromID != gAgentID)
+ {
+ LLFirstUse::otherAvatarChatFirst();
+ }
}
void LLNearbyChatHandler::onDeleteToast(LLToast* toast)
@@ -458,4 +541,14 @@ void LLNearbyChatHandler::onDeleteToast(LLToast* toast)
}
+//-----------------------------------------------------------------------------------------------
+// LLNearbyChatToast
+//-----------------------------------------------------------------------------------------------
+
+// virtual
+void LLNearbyChatToast::onClose(bool app_quitting)
+{
+ mNearbyChatScreenChannelp->onToastDestroyed(this, app_quitting);
+}
+// EOF
diff --git a/indra/newview/llnearbychathandler.h b/indra/newview/llnearbychathandler.h
index 01a6de5610..ec1f29cdfc 100644
--- a/indra/newview/llnearbychathandler.h
+++ b/indra/newview/llnearbychathandler.h
@@ -2,31 +2,25 @@
* @file llnearbychathandler.h
* @brief nearby chat notify
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llnetmap.cpp b/indra/newview/llnetmap.cpp
index a8dee8a24a..6db8001d57 100644
--- a/indra/newview/llnetmap.cpp
+++ b/indra/newview/llnetmap.cpp
@@ -3,31 +3,25 @@
* @author James Cook
* @brief Display of surrounding regions, objects, and agents.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -61,6 +55,7 @@
#include "llviewermenu.h"
#include "llviewerobjectlist.h"
#include "llviewerregion.h"
+#include "llviewerwindow.h"
#include "llworld.h"
#include "llworldmapview.h" // shared draw code
@@ -75,6 +70,7 @@ const F32 MAP_SCALE_ZOOM_FACTOR = 1.04f; // Zoom in factor per click of scroll w
const F32 MIN_DOT_RADIUS = 3.5f;
const F32 DOT_SCALE = 0.75f;
const F32 MIN_PICK_SCALE = 2.f;
+const S32 MOUSE_DRAG_SLOP = 2; // How far the mouse needs to move before we think it's a drag
LLNetMap::LLNetMap (const Params & p)
: LLUICtrl (p),
@@ -83,11 +79,12 @@ LLNetMap::LLNetMap (const Params & p)
mPixelsPerMeter( MAP_SCALE_MID / REGION_WIDTH_METERS ),
mObjectMapTPM(0.f),
mObjectMapPixels(0.f),
- mTargetPanX(0.f),
- mTargetPanY(0.f),
- mCurPanX(0.f),
- mCurPanY(0.f),
- mUpdateNow(FALSE),
+ mTargetPan(0.f, 0.f),
+ mCurPan(0.f, 0.f),
+ mStartPan(0.f, 0.f),
+ mMouseDown(0, 0),
+ mPanning(false),
+ mUpdateNow(false),
mObjectImageCenterGlobal( gAgentCamera.getCameraPositionGlobal() ),
mObjectRawImagep(),
mObjectImagep(),
@@ -104,7 +101,9 @@ LLNetMap::~LLNetMap()
void LLNetMap::setScale( F32 scale )
{
- mScale = llclamp(scale, 0.1f, 16.f*1024.f); // [reasonably small , unreasonably large]
+ scale = llclamp(scale, MAP_SCALE_MIN, MAP_SCALE_MAX);
+ mCurPan *= scale / mScale;
+ mScale = scale;
if (mObjectImagep.notNull())
{
@@ -121,13 +120,7 @@ void LLNetMap::setScale( F32 scale )
mPixelsPerMeter = mScale / REGION_WIDTH_METERS;
mDotRadius = llmax(DOT_SCALE * mPixelsPerMeter, MIN_DOT_RADIUS);
- mUpdateNow = TRUE;
-}
-
-void LLNetMap::translatePan( F32 delta_x, F32 delta_y )
-{
- mTargetPanX += delta_x;
- mTargetPanY += delta_y;
+ mUpdateNow = true;
}
@@ -147,9 +140,12 @@ void LLNetMap::draw()
{
createObjectImage();
}
-
- mCurPanX = lerp(mCurPanX, mTargetPanX, LLCriticalDamp::getInterpolant(0.1f));
- mCurPanY = lerp(mCurPanY, mTargetPanY, LLCriticalDamp::getInterpolant(0.1f));
+
+ static LLUICachedControl<bool> auto_center("MiniMapAutoCenter", true);
+ if (auto_center)
+ {
+ mCurPan = lerp(mCurPan, mTargetPan, LLCriticalDamp::getInterpolant(0.1f));
+ }
// Prepare a scissor region
F32 rotation = 0;
@@ -180,8 +176,8 @@ void LLNetMap::draw()
}
// region 0,0 is in the middle
- S32 center_sw_left = getRect().getWidth() / 2 + llfloor(mCurPanX);
- S32 center_sw_bottom = getRect().getHeight() / 2 + llfloor(mCurPanY);
+ S32 center_sw_left = getRect().getWidth() / 2 + llfloor(mCurPan.mV[VX]);
+ S32 center_sw_bottom = getRect().getHeight() / 2 + llfloor(mCurPan.mV[VY]);
gGL.pushMatrix();
@@ -262,26 +258,24 @@ void LLNetMap::draw()
}
gGL.setAlphaRejectSettings(LLRender::CF_DEFAULT);
}
-
-
- LLVector3d old_center = mObjectImageCenterGlobal;
- LLVector3d new_center = gAgentCamera.getCameraPositionGlobal();
-
- new_center.mdV[0] = (5.f/mObjectMapTPM)*floor(0.2f*mObjectMapTPM*new_center.mdV[0]);
- new_center.mdV[1] = (5.f/mObjectMapTPM)*floor(0.2f*mObjectMapTPM*new_center.mdV[1]);
- new_center.mdV[2] = 0.f;
+ // Redraw object layer periodically
if (mUpdateNow || (map_timer.getElapsedTimeF32() > 0.5f))
{
- mUpdateNow = FALSE;
- mObjectImageCenterGlobal = new_center;
+ mUpdateNow = false;
+
+ // Locate the centre of the object layer, accounting for panning
+ LLVector3 new_center = globalPosToView(gAgentCamera.getCameraPositionGlobal());
+ new_center.mV[VX] -= mCurPan.mV[VX];
+ new_center.mV[VY] -= mCurPan.mV[VY];
+ new_center.mV[VZ] = 0.f;
+ mObjectImageCenterGlobal = viewPosToGlobal(llfloor(new_center.mV[VX]), llfloor(new_center.mV[VY]));
- // Center moved enough.
// Create the base texture.
U8 *default_texture = mObjectRawImagep->getData();
memset( default_texture, 0, mObjectImagep->getWidth() * mObjectImagep->getHeight() * mObjectImagep->getComponents() );
- // Draw buildings
+ // Draw objects
gObjectList.renderObjectsForMap(*this);
mObjectImagep->setSubImage(mObjectRawImagep, 0, 0, mObjectImagep->getWidth(), mObjectImagep->getHeight());
@@ -367,7 +361,8 @@ void LLNetMap::draw()
show_as_friend ? map_avatar_friend_color : map_avatar_color,
pos_map.mV[VZ], mDotRadius);
- F32 dist_to_cursor = dist_vec(LLVector2(pos_map.mV[VX], pos_map.mV[VY]), LLVector2(local_mouse_x,local_mouse_y));
+ F32 dist_to_cursor = dist_vec(LLVector2(pos_map.mV[VX], pos_map.mV[VY]),
+ LLVector2(local_mouse_x,local_mouse_y));
if(dist_to_cursor < min_pick_dist && dist_to_cursor < closest_dist)
{
closest_dist = dist_to_cursor;
@@ -398,12 +393,22 @@ void LLNetMap::draw()
// Draw dot for self avatar position
pos_global = gAgent.getPositionGlobal();
pos_map = globalPosToView(pos_global);
- LLUIImagePtr you = LLWorldMapView::sAvatarYouLargeImage;
S32 dot_width = llround(mDotRadius * 2.f);
- you->draw(llround(pos_map.mV[VX] - mDotRadius),
- llround(pos_map.mV[VY] - mDotRadius),
- dot_width,
- dot_width);
+ LLUIImagePtr you = LLWorldMapView::sAvatarYouLargeImage;
+ if (you)
+ {
+ you->draw(llround(pos_map.mV[VX] - mDotRadius),
+ llround(pos_map.mV[VY] - mDotRadius),
+ dot_width,
+ dot_width);
+
+ F32 dist_to_cursor = dist_vec(LLVector2(pos_map.mV[VX], pos_map.mV[VY]),
+ LLVector2(local_mouse_x,local_mouse_y));
+ if(dist_to_cursor < min_pick_dist && dist_to_cursor < closest_dist)
+ {
+ mClosestAgentToCursor = gAgent.getID();
+ }
+ }
// Draw frustum
F32 meters_to_pixels = mScale/ LLWorld::getInstance()->getRegionWidthInMeters();
@@ -478,8 +483,8 @@ LLVector3 LLNetMap::globalPosToView( const LLVector3d& global_pos )
pos_local.rotVec( rot );
}
- pos_local.mV[VX] += getRect().getWidth() / 2 + mCurPanX;
- pos_local.mV[VY] += getRect().getHeight() / 2 + mCurPanY;
+ pos_local.mV[VX] += getRect().getWidth() / 2 + mCurPan.mV[VX];
+ pos_local.mV[VY] += getRect().getHeight() / 2 + mCurPan.mV[VY];
return pos_local;
}
@@ -512,8 +517,8 @@ void LLNetMap::drawTracking(const LLVector3d& pos_global, const LLColor4& color,
LLVector3d LLNetMap::viewPosToGlobal( S32 x, S32 y )
{
- x -= llround(getRect().getWidth() / 2 + mCurPanX);
- y -= llround(getRect().getHeight() / 2 + mCurPanY);
+ x -= llround(getRect().getWidth() / 2 + mCurPan.mV[VX]);
+ y -= llround(getRect().getHeight() / 2 + mCurPan.mV[VY]);
LLVector3 pos_local( (F32)x, (F32)y, 0 );
@@ -538,10 +543,20 @@ LLVector3d LLNetMap::viewPosToGlobal( S32 x, S32 y )
BOOL LLNetMap::handleScrollWheel(S32 x, S32 y, S32 clicks)
{
// note that clicks are reversed from what you'd think: i.e. > 0 means zoom out, < 0 means zoom in
- F32 scale = mScale;
-
- scale *= pow(MAP_SCALE_ZOOM_FACTOR, -clicks);
- setScale(llclamp(scale, MAP_SCALE_MIN, MAP_SCALE_MAX));
+ F32 new_scale = mScale * pow(MAP_SCALE_ZOOM_FACTOR, -clicks);
+ F32 old_scale = mScale;
+
+ setScale(new_scale);
+
+ static LLUICachedControl<bool> auto_center("MiniMapAutoCenter", true);
+ if (!auto_center)
+ {
+ // Adjust pan to center the zoom on the mouse pointer
+ LLVector2 zoom_offset;
+ zoom_offset.mV[VX] = x - getRect().getWidth() / 2;
+ zoom_offset.mV[VY] = y - getRect().getHeight() / 2;
+ mCurPan -= zoom_offset * mScale / old_scale - zoom_offset;
+ }
return TRUE;
}
@@ -552,20 +567,32 @@ BOOL LLNetMap::handleToolTip( S32 x, S32 y, MASK mask )
{
return FALSE;
}
-
- // mToolTipMsg = "[AGENT][REGION](Double-click to open Map)"
-
- LLStringUtil::format_map_t args;
- std::string fullname;
- if(mClosestAgentToCursor.notNull() && gCacheName->getFullName(mClosestAgentToCursor, fullname))
- {
- args["[AGENT]"] = fullname + "\n";
- }
- else
+
+ std::string avatar_name;
+ if(mClosestAgentToCursor.notNull() && gCacheName->getFullName(mClosestAgentToCursor, avatar_name))
{
- args["[AGENT]"] = "";
+ // only show tooltip if same inspector not already open
+ LLFloater* existing_inspector = LLFloaterReg::findInstance("inspect_avatar");
+ if (!existing_inspector
+ || !existing_inspector->getVisible()
+ || existing_inspector->getKey()["avatar_id"].asUUID() != mClosestAgentToCursor)
+ {
+ LLInspector::Params p;
+ p.fillFrom(LLUICtrlFactory::instance().getDefaultParams<LLInspector>());
+ p.message(avatar_name);
+ p.image.name("Inspector_I");
+ p.click_callback(boost::bind(showAvatarInspector, mClosestAgentToCursor));
+ p.visible_time_near(6.f);
+ p.visible_time_far(3.f);
+ p.delay_time(0.35f);
+ p.wrap(false);
+
+ LLToolTipMgr::instance().show(p);
+ }
+ return TRUE;
}
-
+
+ LLStringUtil::format_map_t args;
LLViewerRegion* region = LLWorld::getInstance()->getRegionFromPosGlobal( viewPosToGlobal( x, y ) );
if( region )
{
@@ -575,10 +602,10 @@ BOOL LLNetMap::handleToolTip( S32 x, S32 y, MASK mask )
{
args["[REGION]"] = "";
}
-
+
std::string msg = mToolTipMsg;
LLStringUtil::format(msg, args);
-
+
LLRect sticky_rect;
// set sticky_rect
if (region)
@@ -598,6 +625,21 @@ BOOL LLNetMap::handleToolTip( S32 x, S32 y, MASK mask )
return TRUE;
}
+// static
+void LLNetMap::showAvatarInspector(const LLUUID& avatar_id)
+{
+ LLSD params;
+ params["avatar_id"] = avatar_id;
+
+ if (LLToolTipMgr::instance().toolTipVisible())
+ {
+ LLRect rect = LLToolTipMgr::instance().getToolTipRect();
+ params["pos"]["x"] = rect.mLeft;
+ params["pos"]["y"] = rect.mTop;
+ }
+
+ LLFloaterReg::showInstance("inspect_avatar", params);
+}
void LLNetMap::renderScaledPointGlobal( const LLVector3d& pos, const LLColor4U &color, F32 radius_meters )
{
@@ -721,5 +763,99 @@ void LLNetMap::createObjectImage()
mObjectImagep = LLViewerTextureManager::getLocalTexture( mObjectRawImagep.get(), FALSE);
}
setScale(mScale);
- mUpdateNow = TRUE;
+ mUpdateNow = true;
+}
+
+BOOL LLNetMap::handleMouseDown( S32 x, S32 y, MASK mask )
+{
+ if (!(mask & MASK_SHIFT)) return FALSE;
+
+ // Start panning
+ gFocusMgr.setMouseCapture(this);
+
+ mStartPan = mCurPan;
+ mMouseDown.mX = x;
+ mMouseDown.mY = y;
+ return TRUE;
+}
+
+BOOL LLNetMap::handleMouseUp( S32 x, S32 y, MASK mask )
+{
+ if (hasMouseCapture())
+ {
+ if (mPanning)
+ {
+ // restore mouse cursor
+ S32 local_x, local_y;
+ local_x = mMouseDown.mX + llfloor(mCurPan.mV[VX] - mStartPan.mV[VX]);
+ local_y = mMouseDown.mY + llfloor(mCurPan.mV[VY] - mStartPan.mV[VY]);
+ LLRect clip_rect = getRect();
+ clip_rect.stretch(-8);
+ clip_rect.clipPointToRect(mMouseDown.mX, mMouseDown.mY, local_x, local_y);
+ LLUI::setMousePositionLocal(this, local_x, local_y);
+
+ // finish the pan
+ mPanning = false;
+
+ mMouseDown.set(0, 0);
+
+ // auto centre
+ mTargetPan.setZero();
+ }
+ gViewerWindow->showCursor();
+ gFocusMgr.setMouseCapture(NULL);
+ return TRUE;
+ }
+ return FALSE;
+}
+
+// static
+bool LLNetMap::outsideSlop( S32 x, S32 y, S32 start_x, S32 start_y, S32 slop )
+{
+ S32 dx = x - start_x;
+ S32 dy = y - start_y;
+
+ return (dx <= -slop || slop <= dx || dy <= -slop || slop <= dy);
+}
+
+BOOL LLNetMap::handleHover( S32 x, S32 y, MASK mask )
+{
+ if (hasMouseCapture())
+ {
+ if (mPanning || outsideSlop(x, y, mMouseDown.mX, mMouseDown.mY, MOUSE_DRAG_SLOP))
+ {
+ if (!mPanning)
+ {
+ // just started panning, so hide cursor
+ mPanning = true;
+ gViewerWindow->hideCursor();
+ }
+
+ LLVector2 delta(static_cast<F32>(gViewerWindow->getCurrentMouseDX()),
+ static_cast<F32>(gViewerWindow->getCurrentMouseDY()));
+
+ // Set pan to value at start of drag + offset
+ mCurPan += delta;
+ mTargetPan = mCurPan;
+
+ gViewerWindow->moveCursorToCenter();
+ }
+
+ // Doesn't really matter, cursor should be hidden
+ gViewerWindow->setCursor( UI_CURSOR_TOOLPAN );
+ }
+ else
+ {
+ if (mask & MASK_SHIFT)
+ {
+ // If shift is held, change the cursor to hint that the map can be dragged
+ gViewerWindow->setCursor( UI_CURSOR_TOOLPAN );
+ }
+ else
+ {
+ gViewerWindow->setCursor( UI_CURSOR_CROSS );
+ }
+ }
+
+ return TRUE;
}
diff --git a/indra/newview/llnetmap.h b/indra/newview/llnetmap.h
index eb53d295b2..e25ada4c95 100644
--- a/indra/newview/llnetmap.h
+++ b/indra/newview/llnetmap.h
@@ -2,31 +2,25 @@
* @file llnetmap.h
* @brief A little map of the world with network information
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -43,7 +37,6 @@
class LLColor4U;
class LLCoordGL;
class LLImageRaw;
-class LLTextBox;
class LLViewerTexture;
class LLNetMap : public LLUICtrl
@@ -72,17 +65,17 @@ public:
/*virtual*/ void draw();
/*virtual*/ BOOL handleScrollWheel(S32 x, S32 y, S32 clicks);
+ /*virtual*/ BOOL handleMouseDown(S32 x, S32 y, MASK mask);
+ /*virtual*/ BOOL handleMouseUp(S32 x, S32 y, MASK mask);
+ /*virtual*/ BOOL handleHover( S32 x, S32 y, MASK mask );
/*virtual*/ BOOL handleToolTip( S32 x, S32 y, MASK mask);
/*virtual*/ void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE);
void setScale( F32 scale );
void setToolTipMsg(const std::string& msg) { mToolTipMsg = msg; }
void renderScaledPointGlobal( const LLVector3d& pos, const LLColor4U &color, F32 radius );
-
-private:
- void translatePan( F32 delta_x, F32 delta_y );
- void setPan( F32 x, F32 y ) { mTargetPanX = x; mTargetPanY = y; }
+private:
const LLVector3d& getObjectImageCenterGlobal() { return mObjectImageCenterGlobal; }
void renderPoint(const LLVector3 &pos, const LLColor4U &color,
S32 diameter, S32 relative_height = 0);
@@ -93,10 +86,15 @@ private:
void drawTracking( const LLVector3d& pos_global,
const LLColor4& color,
BOOL draw_arrow = TRUE);
-
+ static void showAvatarInspector(const LLUUID& avatar_id);
+
void createObjectImage();
private:
+ static bool outsideSlop(S32 x, S32 y, S32 start_x, S32 start_y, S32 slop);
+
+ bool mUpdateNow;
+
LLUIColor mBackgroundColor;
F32 mScale; // Size of a region in pixels
@@ -104,11 +102,13 @@ private:
F32 mObjectMapTPM; // texels per meter on map
F32 mObjectMapPixels; // Width of object map in pixels
F32 mDotRadius; // Size of avatar markers
- F32 mTargetPanX;
- F32 mTargetPanY;
- F32 mCurPanX;
- F32 mCurPanY;
- BOOL mUpdateNow;
+
+ bool mPanning; // map is being dragged
+ LLVector2 mTargetPan;
+ LLVector2 mCurPan;
+ LLVector2 mStartPan; // pan offset at start of drag
+ LLCoordGL mMouseDown; // pointer position at start of drag
+
LLVector3d mObjectImageCenterGlobal;
LLPointer<LLImageRaw> mObjectRawImagep;
LLPointer<LLViewerTexture> mObjectImagep;
diff --git a/indra/newview/llnotificationalerthandler.cpp b/indra/newview/llnotificationalerthandler.cpp
index 60e41b64ac..9d824dcd59 100644
--- a/indra/newview/llnotificationalerthandler.cpp
+++ b/indra/newview/llnotificationalerthandler.cpp
@@ -2,31 +2,25 @@
* @file llnotificationalerthandler.cpp
* @brief Notification Handler Class for Alert Notifications
*
- * $LicenseInfo:firstyear=2000&license=viewergpl$
- *
- * Copyright (c) 2000-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2000&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -139,7 +133,7 @@ bool LLAlertHandler::processNotification(const LLSD& notify)
if(channel)
channel->killToastByNotificationID(notification->getID());
}
- return true;
+ return false;
}
//--------------------------------------------------------------------------
diff --git a/indra/newview/llnotificationgrouphandler.cpp b/indra/newview/llnotificationgrouphandler.cpp
index 6889931956..9b7fdaef82 100644
--- a/indra/newview/llnotificationgrouphandler.cpp
+++ b/indra/newview/llnotificationgrouphandler.cpp
@@ -2,31 +2,25 @@
* @file llnotificationgrouphandler.cpp
* @brief Notification Handler Class for Group Notifications
*
- * $LicenseInfo:firstyear=2000&license=viewergpl$
- *
- * Copyright (c) 2000-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2000&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -110,7 +104,7 @@ bool LLGroupHandler::processNotification(const LLSD& notify)
{
mChannel->killToastByNotificationID(notification->getID());
}
- return true;
+ return false;
}
//--------------------------------------------------------------------------
diff --git a/indra/newview/llnotificationhandler.h b/indra/newview/llnotificationhandler.h
index 99a1fedcf3..28a69f2373 100644
--- a/indra/newview/llnotificationhandler.h
+++ b/indra/newview/llnotificationhandler.h
@@ -2,31 +2,25 @@
* @file llnotificationhandler.h
* @brief Here are implemented Notification Handling Classes.
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -269,6 +263,29 @@ protected:
void onRejectToast(LLUUID& id);
};
+/**
+ * Handler for UI hints.
+ */
+class LLHintHandler : public LLSingleton<LLHintHandler>
+{
+public:
+ LLHintHandler();
+ virtual ~LLHintHandler();
+
+ // base interface functions
+ virtual bool processNotification(const LLSD& notify);
+};
+
+/**
+ * Handler for browser notifications
+ */
+class LLBrowserNotification : public LLSingleton<LLBrowserNotification>
+{
+public:
+ virtual bool processNotification(const LLSD& notify);
+
+};
+
class LLHandlerUtil
{
public:
diff --git a/indra/newview/llnotificationhandlerutil.cpp b/indra/newview/llnotificationhandlerutil.cpp
index 95b946f307..4231a73af1 100644
--- a/indra/newview/llnotificationhandlerutil.cpp
+++ b/indra/newview/llnotificationhandlerutil.cpp
@@ -2,31 +2,25 @@
* @file llnotificationofferhandler.cpp
* @brief Provides set of utility methods for notifications processing.
*
- * $LicenseInfo:firstyear=2000&license=viewergpl$
- *
- * Copyright (c) 2000-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2000&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -359,7 +353,7 @@ void LLHandlerUtil::logGroupNoticeToIMGroup(
if (!gAgent.getGroupData(payload["group_id"].asUUID(), groupData))
{
llwarns
- << "Group notice for unkown group: "
+ << "Group notice for unknown group: "
<< payload["group_id"].asUUID() << llendl;
return;
}
diff --git a/indra/newview/llnotificationhinthandler.cpp b/indra/newview/llnotificationhinthandler.cpp
new file mode 100644
index 0000000000..f7163cb04f
--- /dev/null
+++ b/indra/newview/llnotificationhinthandler.cpp
@@ -0,0 +1,58 @@
+/**
+ * @file llnotificationhinthandler.cpp
+ * @brief Notification Handler Class for UI Hints
+ *
+ * $LicenseInfo:firstyear=2000&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" // must be first include
+
+#include "llnotificationhandler.h"
+#include "llhints.h"
+#include "llnotifications.h"
+
+using namespace LLNotificationsUI;
+
+LLHintHandler::LLHintHandler()
+{
+}
+
+LLHintHandler::~LLHintHandler()
+{
+}
+
+bool LLHintHandler::processNotification(const LLSD& notify)
+{
+ LLNotificationPtr notification = LLNotifications::instance().find(notify["id"].asUUID());
+
+ std::string sigtype = notify["sigtype"].asString();
+ if (sigtype == "add" || sigtype == "load")
+ {
+ LLHints::show(notification);
+ }
+ else if (sigtype == "delete")
+ {
+ LLHints::hide(notification);
+ }
+ return false;
+}
diff --git a/indra/newview/llnotificationmanager.cpp b/indra/newview/llnotificationmanager.cpp
index 4401bb953f..6988227128 100644
--- a/indra/newview/llnotificationmanager.cpp
+++ b/indra/newview/llnotificationmanager.cpp
@@ -2,31 +2,25 @@
* @file llnotificationmanager.cpp
* @brief Class implements a brige between the old and a new notification sistems
*
- * $LicenseInfo:firstyear=2000&license=viewergpl$
- *
- * Copyright (c) 2000-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2000&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -66,6 +60,8 @@ void LLNotificationManager::init()
LLNotificationChannel::buildChannel("AlertModal", "Visible", LLNotificationFilters::filterBy<std::string>(&LLNotification::getType, "alertmodal"));
LLNotificationChannel::buildChannel("IM Notifications", "Visible", LLNotificationFilters::filterBy<std::string>(&LLNotification::getType, "notifytoast"));
LLNotificationChannel::buildChannel("Offer", "Visible", LLNotificationFilters::filterBy<std::string>(&LLNotification::getType, "offer"));
+ LLNotificationChannel::buildChannel("Hints", "Visible", LLNotificationFilters::filterBy<std::string>(&LLNotification::getType, "hint"));
+ LLNotificationChannel::buildChannel("Browser", "Visible", LLNotificationFilters::filterBy<std::string>(&LLNotification::getType, "browser"));
LLNotifications::instance().getChannel("Notifications")->connectChanged(boost::bind(&LLNotificationManager::onNotification, this, _1));
LLNotifications::instance().getChannel("NotificationTips")->connectChanged(boost::bind(&LLNotificationManager::onNotification, this, _1));
@@ -74,6 +70,8 @@ void LLNotificationManager::init()
LLNotifications::instance().getChannel("AlertModal")->connectChanged(boost::bind(&LLNotificationManager::onNotification, this, _1));
LLNotifications::instance().getChannel("IM Notifications")->connectChanged(boost::bind(&LLNotificationManager::onNotification, this, _1));
LLNotifications::instance().getChannel("Offer")->connectChanged(boost::bind(&LLNotificationManager::onNotification, this, _1));
+ LLNotifications::instance().getChannel("Hints")->connectChanged(boost::bind(&LLHintHandler::processNotification, LLHintHandler::getInstance(), _1));
+ LLNotifications::instance().getChannel("Browser")->connectChanged(boost::bind(&LLBrowserNotification::processNotification, LLBrowserNotification::getInstance(), _1));
mNotifyHandlers["notify"] = boost::shared_ptr<LLEventHandler>(new LLScriptHandler(NT_NOTIFY, LLSD()));
mNotifyHandlers["notifytip"] = boost::shared_ptr<LLEventHandler>(new LLTipHandler(NT_NOTIFY, LLSD()));
diff --git a/indra/newview/llnotificationmanager.h b/indra/newview/llnotificationmanager.h
index 575aa69c4d..72fa394621 100644
--- a/indra/newview/llnotificationmanager.h
+++ b/indra/newview/llnotificationmanager.h
@@ -3,31 +3,25 @@
* @file llnotificationmanager.h
* @brief Class implements a brige between the old and a new notification sistems
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llnotificationofferhandler.cpp b/indra/newview/llnotificationofferhandler.cpp
index c5960a9040..68fd65be0f 100644
--- a/indra/newview/llnotificationofferhandler.cpp
+++ b/indra/newview/llnotificationofferhandler.cpp
@@ -2,31 +2,25 @@
* @file llnotificationofferhandler.cpp
* @brief Notification Handler Class for Simple Notifications and Notification Tips
*
- * $LicenseInfo:firstyear=2000&license=viewergpl$
- *
- * Copyright (c) 2000-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2000&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -185,7 +179,7 @@ bool LLOfferHandler::processNotification(const LLSD& notify)
}
}
- return true;
+ return false;
}
//--------------------------------------------------------------------------
diff --git a/indra/newview/llnotificationscripthandler.cpp b/indra/newview/llnotificationscripthandler.cpp
index c7261199e3..45590c3cdb 100644
--- a/indra/newview/llnotificationscripthandler.cpp
+++ b/indra/newview/llnotificationscripthandler.cpp
@@ -2,31 +2,25 @@
* @file llnotificationscripthandler.cpp
* @brief Notification Handler Class for Simple Notifications and Notification Tips
*
- * $LicenseInfo:firstyear=2000&license=viewergpl$
- *
- * Copyright (c) 2000-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2000&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -136,7 +130,7 @@ bool LLScriptHandler::processNotification(const LLSD& notify)
mChannel->killToastByNotificationID(notification->getID());
}
}
- return true;
+ return false;
}
//--------------------------------------------------------------------------
diff --git a/indra/newview/llnotificationstorage.cpp b/indra/newview/llnotificationstorage.cpp
index 20b40b4e1d..fb1adc7ddf 100644
--- a/indra/newview/llnotificationstorage.cpp
+++ b/indra/newview/llnotificationstorage.cpp
@@ -2,31 +2,25 @@
* @file llnotificationstorage.cpp
* @brief LLPersistentNotificationStorage class implementation
*
-* $LicenseInfo:firstyear=2010&license=viewergpl$
-*
-* Copyright (c) 2010, Linden Research, Inc.
-*
+* $LicenseInfo:firstyear=2010&license=viewerlgpl$
* Second Life Viewer Source Code
-* The source code in this file ("Source Code") is provided by Linden Lab
-* to you under the terms of the GNU General Public License, version 2.0
-* ("GPL"), unless you have obtained a separate licensing agreement
-* ("Other License"), formally executed by you and Linden Lab. Terms of
-* the GPL can be found in doc/GPL-license.txt in this distribution, or
-* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
-*
-* There are special exceptions to the terms and conditions of the GPL as
-* it is applied to this Source Code. View the full text of the exception
-* in the file doc/FLOSS-exception.txt in this software distribution, or
-* online at
-* http://secondlifegrid.net/programs/open_source/licensing/flossexception
-*
-* By copying, modifying or distributing this software, you acknowledge
-* that you have read and understood your obligations described above,
-* and agree to abide by those obligations.
-*
-* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
-* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
-* COMPLETENESS OR PERFORMANCE.
+* 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$
*/
diff --git a/indra/newview/llnotificationstorage.h b/indra/newview/llnotificationstorage.h
index 5050781a85..8635c797c0 100644
--- a/indra/newview/llnotificationstorage.h
+++ b/indra/newview/llnotificationstorage.h
@@ -2,31 +2,25 @@
* @file llnotificationstorage.h
* @brief LLNotificationStorage class declaration
*
-* $LicenseInfo:firstyear=2010&license=viewergpl$
-*
-* Copyright (c) 2010, Linden Research, Inc.
-*
+* $LicenseInfo:firstyear=2010&license=viewerlgpl$
* Second Life Viewer Source Code
-* The source code in this file ("Source Code") is provided by Linden Lab
-* to you under the terms of the GNU General Public License, version 2.0
-* ("GPL"), unless you have obtained a separate licensing agreement
-* ("Other License"), formally executed by you and Linden Lab. Terms of
-* the GPL can be found in doc/GPL-license.txt in this distribution, or
-* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
-*
-* There are special exceptions to the terms and conditions of the GPL as
-* it is applied to this Source Code. View the full text of the exception
-* in the file doc/FLOSS-exception.txt in this software distribution, or
-* online at
-* http://secondlifegrid.net/programs/open_source/licensing/flossexception
-*
-* By copying, modifying or distributing this software, you acknowledge
-* that you have read and understood your obligations described above,
-* and agree to abide by those obligations.
-*
-* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
-* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
-* COMPLETENESS OR PERFORMANCE.
+* 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$
*/
diff --git a/indra/newview/llnotificationtiphandler.cpp b/indra/newview/llnotificationtiphandler.cpp
index a06a5770a2..02b217fc94 100644
--- a/indra/newview/llnotificationtiphandler.cpp
+++ b/indra/newview/llnotificationtiphandler.cpp
@@ -2,31 +2,25 @@
* @file llnotificationtiphandler.cpp
* @brief Notification Handler Class for Notification Tips
*
- * $LicenseInfo:firstyear=2000&license=viewergpl$
- *
- * Copyright (c) 2000-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2000&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -102,7 +96,7 @@ bool LLTipHandler::processNotification(const LLSD& notify)
LLNearbyChat>("nearby_chat", LLSD());
if (nearby_chat->getVisible())
{
- return true;
+ return false;
}
}
@@ -127,7 +121,7 @@ bool LLTipHandler::processNotification(const LLSD& notify)
// don't spawn toast for inventory accepted/declined offers if respective IM window is open (EXT-5909)
if (!LLHandlerUtil::canSpawnToast(notification))
{
- return true;
+ return false;
}
LLToastPanel* notify_box = LLToastPanel::buidPanelFromNotification(notification);
@@ -150,7 +144,7 @@ bool LLTipHandler::processNotification(const LLSD& notify)
{
mChannel->killToastByNotificationID(notification->getID());
}
- return true;
+ return false;
}
//--------------------------------------------------------------------------
diff --git a/indra/newview/lloutfitobserver.cpp b/indra/newview/lloutfitobserver.cpp
index 03414b9964..5bb69367aa 100644
--- a/indra/newview/lloutfitobserver.cpp
+++ b/indra/newview/lloutfitobserver.cpp
@@ -2,31 +2,25 @@
* @file lloutfitobserver.cpp
* @brief Outfit observer facade.
*
- * $LicenseInfo:firstyear=2010&license=viewergpl$
- *
- * Copyright (c) 2010, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2010&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -40,6 +34,7 @@
LLOutfitObserver::LLOutfitObserver() :
mCOFLastVersion(LLViewerInventoryCategory::VERSION_UNKNOWN)
{
+ mItemNameHash.finalize();
gInventory.addObserver(this);
}
@@ -87,13 +82,24 @@ bool LLOutfitObserver::checkCOF()
if (cof.isNull())
return false;
+ bool cof_changed = false;
+ LLMD5 item_name_hash = gInventory.hashDirectDescendentNames(cof);
+ if (item_name_hash != mItemNameHash)
+ {
+ cof_changed = true;
+ mItemNameHash = item_name_hash;
+ }
+
S32 cof_version = getCategoryVersion(cof);
+ if (cof_version != mCOFLastVersion)
+ {
+ cof_changed = true;
+ mCOFLastVersion = cof_version;
+ }
- if (cof_version == mCOFLastVersion)
+ if (!cof_changed)
return false;
-
- mCOFLastVersion = cof_version;
-
+
// dirtiness state should be updated before sending signal
LLAppearanceMgr::getInstance()->updateIsDirty();
mCOFChanged();
diff --git a/indra/newview/lloutfitobserver.h b/indra/newview/lloutfitobserver.h
index 3a66b5ea9f..87d4b0c998 100644
--- a/indra/newview/lloutfitobserver.h
+++ b/indra/newview/lloutfitobserver.h
@@ -2,31 +2,25 @@
* @file lloutfitobserver.h
* @brief Outfit observer facade.
*
- * $LicenseInfo:firstyear=2010&license=viewergpl$
- *
- * Copyright (c) 2010, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2010&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -34,6 +28,7 @@
#define LL_OUTFITOBSERVER_H
#include "llsingleton.h"
+#include "llmd5.h"
/**
* Outfit observer facade that provides simple possibility to subscribe on
@@ -84,6 +79,8 @@ protected:
bool mLastOutfitDirtiness;
+ LLMD5 mItemNameHash;
+
private:
signal_t mBOFReplaced;
signal_t mBOFChanged;
diff --git a/indra/newview/lloutfitslist.cpp b/indra/newview/lloutfitslist.cpp
index c5043e1c3d..db9d386b6b 100644
--- a/indra/newview/lloutfitslist.cpp
+++ b/indra/newview/lloutfitslist.cpp
@@ -2,30 +2,25 @@
* @file lloutfitslist.cpp
* @brief List of agent's outfits for My Appearance side panel.
*
- * $LicenseInfo:firstyear=2010&license=viewergpl$
- *
- * Copyright (c) 2010, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2010&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -68,9 +63,210 @@ bool LLOutfitTabNameComparator::compare(const LLAccordionCtrlTab* tab1, const LL
return name1 < name2;
}
+struct outfit_accordion_tab_params : public LLInitParam::Block<outfit_accordion_tab_params, LLAccordionCtrlTab::Params>
+{
+ Mandatory<LLWearableItemsList::Params> wearable_list;
+
+ outfit_accordion_tab_params()
+ : wearable_list("wearable_items_list")
+ {}
+};
+
+const outfit_accordion_tab_params& get_accordion_tab_params()
+{
+ static outfit_accordion_tab_params tab_params;
+ static bool initialized = false;
+ if (!initialized)
+ {
+ initialized = true;
+
+ LLXMLNodePtr xmlNode;
+ if (LLUICtrlFactory::getLayeredXMLNode("outfit_accordion_tab.xml", xmlNode))
+ {
+ LLXUIParser parser;
+ parser.readXUI(xmlNode, tab_params, "outfit_accordion_tab.xml");
+ }
+ else
+ {
+ llwarns << "Failed to read xml of Outfit's Accordion Tab from outfit_accordion_tab.xml" << llendl;
+ }
+ }
+
+ return tab_params;
+}
+
+
+//////////////////////////////////////////////////////////////////////////
+
+class LLOutfitListGearMenu
+{
+public:
+ LLOutfitListGearMenu(LLOutfitsList* olist)
+ : mOutfitList(olist),
+ mMenu(NULL)
+ {
+ llassert_always(mOutfitList);
+
+ LLUICtrl::CommitCallbackRegistry::ScopedRegistrar registrar;
+ LLUICtrl::EnableCallbackRegistry::ScopedRegistrar enable_registrar;
+
+ registrar.add("Gear.Wear", boost::bind(&LLOutfitListGearMenu::onWear, this));
+ registrar.add("Gear.TakeOff", boost::bind(&LLOutfitListGearMenu::onTakeOff, this));
+ registrar.add("Gear.Rename", boost::bind(&LLOutfitListGearMenu::onRename, this));
+ registrar.add("Gear.Delete", boost::bind(&LLOutfitListGearMenu::onDelete, this));
+ registrar.add("Gear.Create", boost::bind(&LLOutfitListGearMenu::onCreate, this, _2));
+
+ registrar.add("Gear.WearAdd", boost::bind(&LLOutfitListGearMenu::onAdd, this));
+
+ enable_registrar.add("Gear.OnEnable", boost::bind(&LLOutfitListGearMenu::onEnable, this, _2));
+ enable_registrar.add("Gear.OnVisible", boost::bind(&LLOutfitListGearMenu::onVisible, this, _2));
+
+ mMenu = LLUICtrlFactory::getInstance()->createFromFile<LLMenuGL>(
+ "menu_outfit_gear.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance());
+ llassert(mMenu);
+ }
+
+ void show(LLView* spawning_view)
+ {
+ if (!mMenu) return;
+
+ updateItemsVisibility();
+ mMenu->buildDrawLabels();
+ mMenu->updateParent(LLMenuGL::sMenuContainer);
+ S32 menu_x = 0;
+ S32 menu_y = spawning_view->getRect().getHeight() + mMenu->getRect().getHeight();
+ LLMenuGL::showPopup(spawning_view, mMenu, menu_x, menu_y);
+ }
+
+ void updateItemsVisibility()
+ {
+ if (!mMenu) return;
+
+ bool have_selection = getSelectedOutfitID().notNull();
+ mMenu->setItemVisible("sepatator1", have_selection);
+ mMenu->setItemVisible("sepatator2", have_selection);
+ mMenu->arrangeAndClear(); // update menu height
+ }
+
+private:
+ const LLUUID& getSelectedOutfitID()
+ {
+ return mOutfitList->getSelectedOutfitUUID();
+ }
+
+ LLViewerInventoryCategory* getSelectedOutfit()
+ {
+ const LLUUID& selected_outfit_id = getSelectedOutfitID();
+ if (selected_outfit_id.isNull())
+ {
+ return NULL;
+ }
+
+ LLViewerInventoryCategory* cat = gInventory.getCategory(selected_outfit_id);
+ return cat;
+ }
+
+ void onWear()
+ {
+ LLViewerInventoryCategory* selected_outfit = getSelectedOutfit();
+ if (selected_outfit)
+ {
+ LLAppearanceMgr::instance().wearInventoryCategory(
+ selected_outfit, /*copy=*/ FALSE, /*append=*/ FALSE);
+ }
+ }
+
+ void onAdd()
+ {
+ const LLUUID& selected_id = getSelectedOutfitID();
+
+ if (selected_id.notNull())
+ {
+ LLAppearanceMgr::getInstance()->addCategoryToCurrentOutfit(selected_id);
+ }
+ }
+
+ void onTakeOff()
+ {
+ // Take off selected outfit.
+ const LLUUID& selected_outfit_id = getSelectedOutfitID();
+ if (selected_outfit_id.notNull())
+ {
+ LLAppearanceMgr::instance().takeOffOutfit(selected_outfit_id);
+ }
+ }
+
+ void onRename()
+ {
+ const LLUUID& selected_outfit_id = getSelectedOutfitID();
+ if (selected_outfit_id.notNull())
+ {
+ LLAppearanceMgr::instance().renameOutfit(selected_outfit_id);
+ }
+ }
+
+ void onDelete()
+ {
+ const LLUUID& selected_outfit_id = getSelectedOutfitID();
+ if (selected_outfit_id.notNull())
+ {
+ remove_category(&gInventory, selected_outfit_id);
+ }
+ }
+
+ void onCreate(const LLSD& data)
+ {
+ LLWearableType::EType type = LLWearableType::typeNameToType(data.asString());
+ if (type == LLWearableType::WT_NONE)
+ {
+ llwarns << "Invalid wearable type" << llendl;
+ return;
+ }
+
+ LLAgentWearables::createWearable(type, true);
+ }
+
+ bool onEnable(LLSD::String param)
+ {
+ // Handle the "Wear - Replace Current Outfit" menu option specially
+ // because LLOutfitList::isActionEnabled() checks whether it's allowed
+ // to wear selected outfit OR selected items, while we're only
+ // interested in the outfit (STORM-183).
+ if ("wear" == param)
+ {
+ return LLAppearanceMgr::instance().getCanReplaceCOF(mOutfitList->getSelectedOutfitUUID());
+ }
+
+ return mOutfitList->isActionEnabled(param);
+ }
+
+ bool onVisible(LLSD::String param)
+ {
+ const LLUUID& selected_outfit_id = getSelectedOutfitID();
+ if (selected_outfit_id.isNull()) // no selection or invalid outfit selected
+ {
+ return false;
+ }
+
+ // *TODO This condition leads to menu item behavior inconsistent with
+ // "Wear" button behavior and should be modified or removed.
+ bool is_worn = LLAppearanceMgr::instance().getBaseOutfitUUID() == selected_outfit_id;
+
+ if ("wear" == param)
+ {
+ return !is_worn;
+ }
+
+ return true;
+ }
+
+ LLOutfitsList* mOutfitList;
+ LLMenuGL* mMenu;
+};
+
//////////////////////////////////////////////////////////////////////////
-class OutfitContextMenu : public LLListContextMenu
+class LLOutfitContextMenu : public LLListContextMenu
{
protected:
/* virtual */ LLContextMenu* createMenu()
@@ -89,8 +285,8 @@ protected:
registrar.add("Outfit.Rename", boost::bind(renameOutfit, selected_id));
registrar.add("Outfit.Delete", boost::bind(deleteOutfit, selected_id));
- enable_registrar.add("Outfit.OnEnable", boost::bind(&OutfitContextMenu::onEnable, this, _2));
- enable_registrar.add("Outfit.OnVisible", boost::bind(&OutfitContextMenu::onVisible, this, _2));
+ enable_registrar.add("Outfit.OnEnable", boost::bind(&LLOutfitContextMenu::onEnable, this, _2));
+ enable_registrar.add("Outfit.OnVisible", boost::bind(&LLOutfitContextMenu::onVisible, this, _2));
return createFromFile("menu_outfit_tab.xml");
}
@@ -103,6 +299,10 @@ protected:
{
return get_is_category_renameable(&gInventory, outfit_cat_id);
}
+ else if ("wear_replace" == param)
+ {
+ return LLAppearanceMgr::instance().getCanReplaceCOF(outfit_cat_id);
+ }
else if ("wear_add" == param)
{
return LLAppearanceMgr::getCanAddToCOF(outfit_cat_id);
@@ -157,7 +357,7 @@ protected:
static LLRegisterPanelClassWrapper<LLOutfitsList> t_outfits_list("outfits_list");
LLOutfitsList::LLOutfitsList()
- : LLPanel()
+ : LLPanelAppearanceTab()
, mAccordion(NULL)
, mListCommands(NULL)
, mIsInitialized(false)
@@ -165,11 +365,13 @@ LLOutfitsList::LLOutfitsList()
{
mCategoriesObserver = new LLInventoryCategoriesObserver();
- mOutfitMenu = new OutfitContextMenu();
+ mGearMenu = new LLOutfitListGearMenu(this);
+ mOutfitMenu = new LLOutfitContextMenu();
}
LLOutfitsList::~LLOutfitsList()
{
+ delete mGearMenu;
delete mOutfitMenu;
if (gInventory.containsObserver(mCategoriesObserver))
@@ -227,6 +429,12 @@ void LLOutfitsList::onOpen(const LLSD& /*info*/)
mIsInitialized = true;
}
+
+ LLAccordionCtrlTab* selected_tab = mAccordion->getSelectedTab();
+ if (!selected_tab) return;
+
+ // Pass focus to the selected outfit tab.
+ selected_tab->showAndFocusHeader();
}
void LLOutfitsList::refreshList(const LLUUID& category_id)
@@ -260,8 +468,12 @@ void LLOutfitsList::refreshList(const LLUUID& category_id)
std::string name = cat->getName();
- static LLXMLNodePtr accordionXmlNode = getAccordionTabXMLNode();
- LLAccordionCtrlTab* tab = LLUICtrlFactory::defaultBuilder<LLAccordionCtrlTab>(accordionXmlNode, NULL, NULL);
+ outfit_accordion_tab_params tab_params(get_accordion_tab_params());
+ LLAccordionCtrlTab* tab = LLUICtrlFactory::create<LLAccordionCtrlTab>(tab_params);
+ if (!tab) continue;
+ LLWearableItemsList* wearable_list = LLUICtrlFactory::create<LLWearableItemsList>(tab_params.wearable_list);
+ wearable_list->setShape(tab->getLocalRect());
+ tab->addChild(wearable_list);
tab->setName(name);
tab->setTitle(name);
@@ -276,6 +488,9 @@ void LLOutfitsList::refreshList(const LLUUID& category_id)
{
// Remove accordion tab if category could not be added to observer.
mAccordion->removeCollapsibleCtrl(tab);
+
+ // kill removed tab
+ tab->die();
continue;
}
@@ -288,6 +503,12 @@ void LLOutfitsList::refreshList(const LLUUID& category_id)
// Setting tab focus callback to monitor currently selected outfit.
tab->setFocusReceivedCallback(boost::bind(&LLOutfitsList::changeOutfitSelection, this, list, cat_id));
+ // Setting callback to reset items selection inside outfit on accordion collapsing and expanding (EXT-7875)
+ tab->setDropDownStateChangedCallback(boost::bind(&LLOutfitsList::resetItemSelection, this, list, cat_id));
+
+ // force showing list items that don't match current filter(EXT-7158)
+ list->setForceShowingUnmatchedItems(true);
+
// Setting list commit callback to monitor currently selected wearable item.
list->setCommitCallback(boost::bind(&LLOutfitsList::onSelectionChange, this, _1));
@@ -305,7 +526,7 @@ void LLOutfitsList::refreshList(const LLUUID& category_id)
// If filter is currently applied we store the initial tab state and
// open it to show matched items if any.
- if (!mFilterSubString.empty())
+ if (!sFilterSubString.empty())
{
tab->notifyChildren(LLSD().with("action","store_state"));
tab->setDisplayChildren(true);
@@ -315,12 +536,12 @@ void LLOutfitsList::refreshList(const LLUUID& category_id)
// filter to the newly added list.
list->setForceRefresh(true);
- list->setFilterSubString(mFilterSubString);
+ list->setFilterSubString(sFilterSubString);
}
}
// Handle removed tabs.
- for (uuid_vec_t::const_iterator iter=vremoved.begin(); iter != vremoved.end(); iter++)
+ for (uuid_vec_t::const_iterator iter=vremoved.begin(); iter != vremoved.end(); ++iter)
{
outfits_map_t::iterator outfits_iter = mOutfitsMap.find((*iter));
if (outfits_iter != mOutfitsMap.end())
@@ -340,6 +561,12 @@ void LLOutfitsList::refreshList(const LLUUID& category_id)
// 4. Remove outfit tab from accordion.
mAccordion->removeCollapsibleCtrl(tab);
+
+ // kill removed tab
+ if (tab != NULL)
+ {
+ tab->die();
+ }
}
}
@@ -365,6 +592,7 @@ void LLOutfitsList::highlightBaseOutfit()
if (mOutfitsMap[mHighlightedOutfitUUID])
{
mOutfitsMap[mHighlightedOutfitUUID]->setTitleFontStyle("NORMAL");
+ mOutfitsMap[mHighlightedOutfitUUID]->setTitleColor(LLUIColorTable::instance().getColor("AccordionHeaderTextColor"));
}
mHighlightedOutfitUUID = base_id;
@@ -372,6 +600,7 @@ void LLOutfitsList::highlightBaseOutfit()
if (mOutfitsMap[base_id])
{
mOutfitsMap[base_id]->setTitleFontStyle("BOLD");
+ mOutfitsMap[base_id]->setTitleColor(LLUIColorTable::instance().getColor("SelectedOutfitTextColor"));
}
}
@@ -407,39 +636,133 @@ void LLOutfitsList::performAction(std::string action)
}
}
+void LLOutfitsList::removeSelected()
+{
+ if (mSelectedOutfitUUID.notNull())
+ {
+ remove_category(&gInventory, mSelectedOutfitUUID);
+ }
+}
+
+void LLOutfitsList::setSelectedOutfitByUUID(const LLUUID& outfit_uuid)
+{
+ for (outfits_map_t::iterator iter = mOutfitsMap.begin();
+ iter != mOutfitsMap.end();
+ ++iter)
+ {
+ if (outfit_uuid == iter->first)
+ {
+ LLAccordionCtrlTab* tab = iter->second;
+ if (!tab) continue;
+
+ LLWearableItemsList* list = dynamic_cast<LLWearableItemsList*>(tab->getAccordionView());
+ if (!list) continue;
+
+ tab->setFocus(TRUE);
+ changeOutfitSelection(list, outfit_uuid);
+
+ tab->setDisplayChildren(true);
+ }
+ }
+}
+
+// virtual
void LLOutfitsList::setFilterSubString(const std::string& string)
{
applyFilter(string);
- mFilterSubString = string;
+ sFilterSubString = string;
}
-boost::signals2::connection LLOutfitsList::addSelectionChangeCallback(selection_change_callback_t cb)
+// virtual
+bool LLOutfitsList::isActionEnabled(const LLSD& userdata)
{
- return mSelectionChangeSignal.connect(cb);
+ if (mSelectedOutfitUUID.isNull()) return false;
+
+ const std::string command_name = userdata.asString();
+ if (command_name == "delete")
+ {
+ return !mItemSelected && LLAppearanceMgr::instance().getCanRemoveOutfit(mSelectedOutfitUUID);
+ }
+ if (command_name == "rename")
+ {
+ return get_is_category_renameable(&gInventory, mSelectedOutfitUUID);
+ }
+ if (command_name == "save_outfit")
+ {
+ bool outfit_locked = LLAppearanceMgr::getInstance()->isOutfitLocked();
+ bool outfit_dirty = LLAppearanceMgr::getInstance()->isOutfitDirty();
+ // allow save only if outfit isn't locked and is dirty
+ return !outfit_locked && outfit_dirty;
+ }
+ if (command_name == "wear")
+ {
+ if (gAgentWearables.isCOFChangeInProgress())
+ {
+ return false;
+ }
+
+ if (hasItemSelected())
+ {
+ return canWearSelected();
+ }
+
+ // outfit selected
+ return LLAppearanceMgr::instance().getCanReplaceCOF(mSelectedOutfitUUID);
+ }
+ if (command_name == "take_off")
+ {
+ // Enable "Take Off" if any of selected items can be taken off
+ // or the selected outfit contains items that can be taken off.
+ return ( hasItemSelected() && canTakeOffSelected() )
+ || ( !hasItemSelected() && LLAppearanceMgr::getCanRemoveFromCOF(mSelectedOutfitUUID) );
+ }
+
+ if (command_name == "wear_add")
+ {
+ // *TODO: do we ever get here?
+ return LLAppearanceMgr::getCanAddToCOF(mSelectedOutfitUUID);
+ }
+
+ return false;
}
-bool LLOutfitsList::hasItemSelected()
+// virtual
+void LLOutfitsList::showGearMenu(LLView* spawning_view)
{
- return mItemSelected;
+ if (!mGearMenu) return;
+ mGearMenu->show(spawning_view);
}
-//////////////////////////////////////////////////////////////////////////
-// Private methods
-//////////////////////////////////////////////////////////////////////////
-LLXMLNodePtr LLOutfitsList::getAccordionTabXMLNode()
+void LLOutfitsList::getSelectedItemsUUIDs(uuid_vec_t& selected_uuids) const
{
- LLXMLNodePtr xmlNode = NULL;
- bool success = LLUICtrlFactory::getLayeredXMLNode("outfit_accordion_tab.xml", xmlNode);
- if (!success)
+ // Collect selected items from all selected lists.
+ for (wearables_lists_map_t::const_iterator iter = mSelectedListsMap.begin();
+ iter != mSelectedListsMap.end();
+ ++iter)
{
- llwarns << "Failed to read xml of Outfit's Accordion Tab from outfit_accordion_tab.xml" << llendl;
- return NULL;
+ uuid_vec_t uuids;
+ (*iter).second->getSelectedUUIDs(uuids);
+
+ S32 prev_size = selected_uuids.size();
+ selected_uuids.resize(prev_size + uuids.size());
+ std::copy(uuids.begin(), uuids.end(), selected_uuids.begin() + prev_size);
}
+}
- return xmlNode;
+boost::signals2::connection LLOutfitsList::setSelectionChangeCallback(selection_change_callback_t cb)
+{
+ return mSelectionChangeSignal.connect(cb);
}
+bool LLOutfitsList::hasItemSelected()
+{
+ return mItemSelected;
+}
+
+//////////////////////////////////////////////////////////////////////////
+// Private methods
+//////////////////////////////////////////////////////////////////////////
void LLOutfitsList::computeDifference(
const LLInventoryModel::cat_array_t& vcats,
uuid_vec_t& vadded,
@@ -486,6 +809,13 @@ void LLOutfitsList::updateOutfitTab(const LLUUID& category_id)
}
}
+void LLOutfitsList::resetItemSelection(LLWearableItemsList* list, const LLUUID& category_id)
+{
+ list->resetSelection();
+ mItemSelected = false;
+ setSelectedOutfitUUID(category_id);
+}
+
void LLOutfitsList::changeOutfitSelection(LLWearableItemsList* list, const LLUUID& category_id)
{
MASK mask = gKeyboard->currentMask(TRUE);
@@ -543,7 +873,7 @@ void LLOutfitsList::restoreOutfitSelection(LLAccordionCtrlTab* tab, const LLUUID
void LLOutfitsList::onFilteredWearableItemsListRefresh(LLUICtrl* ctrl)
{
- if (!ctrl || mFilterSubString.empty())
+ if (!ctrl || sFilterSubString.empty())
return;
for (outfits_map_t::iterator
@@ -557,7 +887,7 @@ void LLOutfitsList::onFilteredWearableItemsListRefresh(LLUICtrl* ctrl)
LLWearableItemsList* list = dynamic_cast<LLWearableItemsList*>(tab->getAccordionView());
if (list != ctrl) continue;
- applyFilterToTab(iter->first, tab, mFilterSubString);
+ applyFilterToTab(iter->first, tab, sFilterSubString);
}
}
@@ -573,7 +903,7 @@ void LLOutfitsList::applyFilter(const std::string& new_filter_substring)
LLAccordionCtrlTab* tab = iter->second;
if (!tab) continue;
- bool more_restrictive = mFilterSubString.size() < new_filter_substring.size() && !new_filter_substring.substr(0, mFilterSubString.size()).compare(mFilterSubString);
+ bool more_restrictive = sFilterSubString.size() < new_filter_substring.size() && !new_filter_substring.substr(0, sFilterSubString.size()).compare(sFilterSubString);
// Restore tab visibility in case of less restrictive filter
// to compare it with updated string if it was previously hidden.
@@ -588,7 +918,7 @@ void LLOutfitsList::applyFilter(const std::string& new_filter_substring)
list->setFilterSubString(new_filter_substring);
}
- if(mFilterSubString.empty() && !new_filter_substring.empty())
+ if(sFilterSubString.empty() && !new_filter_substring.empty())
{
//store accordion tab state when filter is not empty
tab->notifyChildren(LLSD().with("action","store_state"));
@@ -597,18 +927,6 @@ void LLOutfitsList::applyFilter(const std::string& new_filter_substring)
if (!new_filter_substring.empty())
{
applyFilterToTab(iter->first, tab, new_filter_substring);
-
- if (tab->getVisible())
- {
- // Open tab if it has passed the filter.
- tab->setDisplayChildren(true);
- }
- else
- {
- // Set force refresh flag to refresh not visible list
- // when some changes occur in it.
- list->setForceRefresh(true);
- }
}
else
{
@@ -622,6 +940,8 @@ void LLOutfitsList::applyFilter(const std::string& new_filter_substring)
restoreOutfitSelection(tab, iter->first);
}
}
+
+ mAccordion->arrange();
}
void LLOutfitsList::applyFilterToTab(
@@ -645,7 +965,7 @@ void LLOutfitsList::applyFilterToTab(
{
// hide tab if its title doesn't pass filter
// and it has no visible items
- tab->setVisible(list->size() > 0);
+ tab->setVisible(list->hasMatchedItems());
// remove title highlighting because it might
// have been previously highlighted by less restrictive filter
@@ -659,6 +979,38 @@ void LLOutfitsList::applyFilterToTab(
// Try restoring the tab selection.
restoreOutfitSelection(tab, category_id);
}
+
+ if (tab->getVisible())
+ {
+ // Open tab if it has passed the filter.
+ tab->setDisplayChildren(true);
+ }
+ else
+ {
+ // Set force refresh flag to refresh not visible list
+ // when some changes occur in it.
+ list->setForceRefresh(true);
+ }
+}
+
+bool LLOutfitsList::canWearSelected()
+{
+ uuid_vec_t selected_items;
+ getSelectedItemsUUIDs(selected_items);
+
+ for (uuid_vec_t::const_iterator it = selected_items.begin(); it != selected_items.end(); ++it)
+ {
+ const LLUUID& id = *it;
+
+ // Check whether the item is worn.
+ if (!get_can_item_be_worn(id))
+ {
+ return false;
+ }
+ }
+
+ // All selected items can be worn.
+ return true;
}
void LLOutfitsList::onAccordionTabRightClick(LLUICtrl* ctrl, S32 x, S32 y, const LLUUID& cat_id)
@@ -679,6 +1031,19 @@ void LLOutfitsList::onAccordionTabRightClick(LLUICtrl* ctrl, S32 x, S32 y, const
}
}
+void LLOutfitsList::wearSelectedItems()
+{
+ uuid_vec_t selected_uuids;
+ getSelectedItemsUUIDs(selected_uuids);
+
+ if(selected_uuids.empty())
+ {
+ return;
+ }
+
+ wear_multiple(selected_uuids, false);
+}
+
void LLOutfitsList::onWearableItemsListRightClick(LLUICtrl* ctrl, S32 x, S32 y)
{
LLWearableItemsList* list = dynamic_cast<LLWearableItemsList*>(ctrl);
@@ -686,43 +1051,44 @@ void LLOutfitsList::onWearableItemsListRightClick(LLUICtrl* ctrl, S32 x, S32 y)
uuid_vec_t selected_uuids;
- // Collect seleted items from all selected lists.
- for (wearables_lists_map_t::iterator iter = mSelectedListsMap.begin();
- iter != mSelectedListsMap.end();
- ++iter)
- {
- uuid_vec_t uuids;
- (*iter).second->getSelectedUUIDs(uuids);
-
- S32 prev_size = selected_uuids.size();
- selected_uuids.resize(prev_size + uuids.size());
- std::copy(uuids.begin(), uuids.end(), selected_uuids.begin() + prev_size);
- }
+ getSelectedItemsUUIDs(selected_uuids);
LLWearableItemsList::ContextMenu::instance().show(list, selected_uuids, x, y);
}
void LLOutfitsList::onCOFChanged()
{
- LLInventoryModel::changed_items_t changed_linked_items;
+ LLInventoryModel::cat_array_t cat_array;
+ LLInventoryModel::item_array_t item_array;
- const LLInventoryModel::changed_items_t& changed_items = gInventory.getChangedIDs();
- for (LLInventoryModel::changed_items_t::const_iterator iter = changed_items.begin();
- iter != changed_items.end();
- ++iter)
+ // Collect current COF items
+ gInventory.collectDescendents(
+ LLAppearanceMgr::instance().getCOF(),
+ cat_array,
+ item_array,
+ LLInventoryModel::EXCLUDE_TRASH);
+
+ uuid_vec_t vnew;
+ uuid_vec_t vadded;
+ uuid_vec_t vremoved;
+
+ // From gInventory we get the UUIDs of links that are currently in COF.
+ // These links UUIDs are not the same UUIDs that we have in each wearable items list.
+ // So we collect base items' UUIDs to find them or links that point to them in wearable
+ // items lists and update their worn state there.
+ for (LLInventoryModel::item_array_t::const_iterator iter = item_array.begin();
+ iter != item_array.end();
+ ++iter)
{
- LLViewerInventoryItem* item = gInventory.getItem(*iter);
- if (item)
- {
- // From gInventory we get the UUIDs of new links added to COF
- // or removed from COF. These links UUIDs are not the same UUIDs
- // that we have in each wearable items list. So we collect base items
- // UUIDs to find all items or links that point to same base items in wearable
- // items lists and update their worn state there.
- changed_linked_items.insert(item->getLinkedUUID());
- }
+ vnew.push_back((*iter)->getLinkedUUID());
}
+ // We need to update only items that were added or removed from COF.
+ LLCommonUtils::computeDifference(vnew, mCOFLinkedItems, vadded, vremoved);
+
+ // Store the ids of items currently linked from COF.
+ mCOFLinkedItems = vnew;
+
for (outfits_map_t::iterator iter = mOutfitsMap.begin();
iter != mOutfitsMap.end();
++iter)
@@ -733,9 +1099,13 @@ void LLOutfitsList::onCOFChanged()
LLWearableItemsList* list = dynamic_cast<LLWearableItemsList*>(tab->getAccordionView());
if (!list) continue;
+ // Append removed ids to added ids because we should update all of them.
+ vadded.reserve(vadded.size() + vremoved.size());
+ vadded.insert(vadded.end(), vremoved.begin(), vremoved.end());
+
// Every list updates the labels of changed items or
// the links that point to these items.
- list->updateChangedItems(changed_linked_items);
+ list->updateChangedItems(vadded);
}
}
diff --git a/indra/newview/lloutfitslist.h b/indra/newview/lloutfitslist.h
index df65f7187b..f73ae5bef2 100644
--- a/indra/newview/lloutfitslist.h
+++ b/indra/newview/lloutfitslist.h
@@ -2,30 +2,25 @@
* @file lloutfitslist.h
* @brief List of agent's outfits for My Appearance side panel.
*
- * $LicenseInfo:firstyear=2010&license=viewergpl$
- *
- * Copyright (c) 2010, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2010&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -37,12 +32,15 @@
// newview
#include "llinventorymodel.h"
-#include "llinventoryobserver.h"
+#include "llpanelappearancetab.h"
class LLAccordionCtrlTab;
+class LLInventoryCategoriesObserver;
+class LLOutfitListGearMenu;
class LLWearableItemsList;
class LLListContextMenu;
+
/**
* @class LLOutfitTabNameComparator
*
@@ -66,9 +64,9 @@ public:
* which displays each outfit in an accordion tab with a flat list
* of items inside it.
*
- * Starts fetching nevessary inventory content on first openning.
+ * Starts fetching necessary inventory content on first opening.
*/
-class LLOutfitsList : public LLPanel
+class LLOutfitsList : public LLPanelAppearanceTab
{
public:
typedef boost::function<void (const LLUUID&)> selection_change_callback_t;
@@ -88,11 +86,24 @@ public:
void performAction(std::string action);
- void setFilterSubString(const std::string& string);
+ void removeSelected();
+
+ void setSelectedOutfitByUUID(const LLUUID& outfit_uuid);
+
+ /*virtual*/ void setFilterSubString(const std::string& string);
+
+ /*virtual*/ bool isActionEnabled(const LLSD& userdata);
+
+ /*virtual*/ void showGearMenu(LLView* spawning_view);
const LLUUID& getSelectedOutfitUUID() const { return mSelectedOutfitUUID; }
- boost::signals2::connection addSelectionChangeCallback(selection_change_callback_t cb);
+ /*virtual*/ void getSelectedItemsUUIDs(uuid_vec_t& selected_uuids) const;
+
+ boost::signals2::connection setSelectionChangeCallback(selection_change_callback_t cb);
+
+ // Collects selected items from all selected lists and wears them(if possible- adds, else replaces)
+ void wearSelectedItems();
/**
* Returns true if there is a selection inside currently selected outfit
@@ -100,12 +111,6 @@ public:
bool hasItemSelected();
private:
- /**
- * Reads xml with accordion tab and Flat list from xml file.
- *
- * @return LLPointer to XMLNode with accordion tab and flat list.
- */
- LLXMLNodePtr getAccordionTabXMLNode();
/**
* Wrapper for LLCommonUtils::computeDifference. @see LLCommonUtils::computeDifference
@@ -123,6 +128,11 @@ private:
void changeOutfitSelection(LLWearableItemsList* list, const LLUUID& category_id);
/**
+ *Resets items selection inside outfit
+ */
+ void resetItemSelection(LLWearableItemsList* list, const LLUUID& category_id);
+
+ /**
* Saves newly selected outfit ID.
*/
void setSelectedOutfitUUID(const LLUUID& category_id);
@@ -157,6 +167,11 @@ private:
*/
void applyFilterToTab(const LLUUID& category_id, LLAccordionCtrlTab* tab, const std::string& filter_substring);
+ /**
+ * Returns true if all selected items can be worn.
+ */
+ bool canWearSelected();
+
void onAccordionTabRightClick(LLUICtrl* ctrl, S32 x, S32 y, const LLUUID& cat_id);
void onWearableItemsListRightClick(LLUICtrl* ctrl, S32 x, S32 y);
void onCOFChanged();
@@ -179,13 +194,16 @@ private:
LLUUID mHighlightedOutfitUUID;
selection_change_signal_t mSelectionChangeSignal;
- std::string mFilterSubString;
-
typedef std::map<LLUUID, LLAccordionCtrlTab*> outfits_map_t;
typedef outfits_map_t::value_type outfits_map_value_t;
outfits_map_t mOutfitsMap;
- LLListContextMenu* mOutfitMenu;
+ // IDs of original items which are worn and linked in COF.
+ // Used to monitor COF changes for updating items worn state. See EXT-8636.
+ uuid_vec_t mCOFLinkedItems;
+
+ LLOutfitListGearMenu* mGearMenu;
+ LLListContextMenu* mOutfitMenu;
bool mIsInitialized;
/**
diff --git a/indra/newview/lloutputmonitorctrl.cpp b/indra/newview/lloutputmonitorctrl.cpp
index 197a0ef728..85626d8783 100644
--- a/indra/newview/lloutputmonitorctrl.cpp
+++ b/indra/newview/lloutputmonitorctrl.cpp
@@ -2,31 +2,25 @@
* @file lloutputmonitorctrl.cpp
* @brief LLOutputMonitorCtrl base class
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lloutputmonitorctrl.h b/indra/newview/lloutputmonitorctrl.h
index 3a83da67e2..026803584d 100644
--- a/indra/newview/lloutputmonitorctrl.h
+++ b/indra/newview/lloutputmonitorctrl.h
@@ -2,31 +2,25 @@
* @file lloutputmonitorctrl.h
* @brief LLOutputMonitorCtrl base class
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lloverlaybar.cpp b/indra/newview/lloverlaybar.cpp
index 3f1b23ba14..c2bbec0470 100644
--- a/indra/newview/lloverlaybar.cpp
+++ b/indra/newview/lloverlaybar.cpp
@@ -2,31 +2,25 @@
* @file lloverlaybar.cpp
* @brief LLOverlayBar class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lloverlaybar.h b/indra/newview/lloverlaybar.h
index ffdbd96f60..b36f5ebb73 100644
--- a/indra/newview/lloverlaybar.h
+++ b/indra/newview/lloverlaybar.h
@@ -2,31 +2,25 @@
* @file lloverlaybar.h
* @brief LLOverlayBar class definition
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llpanelappearancetab.cpp b/indra/newview/llpanelappearancetab.cpp
new file mode 100644
index 0000000000..9910a3a2ac
--- /dev/null
+++ b/indra/newview/llpanelappearancetab.cpp
@@ -0,0 +1,51 @@
+/**
+ * @file llpanelappearancetab.h
+ * @brief Tabs interface for Side Bar "My Appearance" panel
+ *
+ * $LicenseInfo:firstyear=2010&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 "llpanelappearancetab.h"
+
+
+#include "llinventoryfunctions.h"
+#include "llinventorymodel.h"
+
+//virtual
+bool LLPanelAppearanceTab::canTakeOffSelected()
+{
+ uuid_vec_t selected_uuids;
+ getSelectedItemsUUIDs(selected_uuids);
+
+ LLFindWearablesEx is_worn(/*is_worn=*/ true, /*include_body_parts=*/ false);
+
+ for (uuid_vec_t::const_iterator it=selected_uuids.begin(); it != selected_uuids.end(); ++it)
+ {
+ LLViewerInventoryItem* item = gInventory.getItem(*it);
+ if (!item) continue;
+
+ if (is_worn(NULL, item)) return true;
+ }
+ return false;
+}
diff --git a/indra/newview/llpanelappearancetab.h b/indra/newview/llpanelappearancetab.h
index c2f8dbd074..81366c5db4 100644
--- a/indra/newview/llpanelappearancetab.h
+++ b/indra/newview/llpanelappearancetab.h
@@ -1,31 +1,26 @@
/**
- * @file llpanelplacestab.h
- * @brief Tabs interface for Side Bar "Places" panel
+ * @file llpanelappearancetab.h
+ * @brief Tabs interface for Side Bar "My Appearance" panel
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -34,28 +29,30 @@
#include "llpanel.h"
-#include "llpanelappearance.h"
-
class LLPanelAppearanceTab : public LLPanel
{
public:
- LLPanelAppearanceTab(LLPanelAppearance *parent) :
- LLPanel(),
- mParent(parent)
- {}
+ LLPanelAppearanceTab() : LLPanel() {}
virtual ~LLPanelAppearanceTab() {}
- virtual void onSearchEdit(const std::string& string) = 0;
- virtual void updateVerbs() = 0; // Updates buttons at the bottom of Appearance panel
- virtual void onWear() = 0;
- virtual void onEdit() = 0;
- virtual void onNew() = 0;
+ virtual void setFilterSubString(const std::string& string) = 0;
- bool isTabVisible(); // Check if parent TabContainer is visible.
+ virtual bool isActionEnabled(const LLSD& userdata) = 0;
+ virtual void showGearMenu(LLView* spawning_view) = 0;
+
+ virtual void getSelectedItemsUUIDs(uuid_vec_t& selected_uuids) const {}
+
+ static const std::string& getFilterSubString() { return sFilterSubString; }
protected:
- LLPanelAppearance* mParent;
+
+ /**
+ * Returns true if there are any items that can be taken off among currently selected, otherwise false.
+ */
+ bool canTakeOffSelected();
+
+ static std::string sFilterSubString;
};
#endif //LL_LLPANELAPPEARANCETAB_H
diff --git a/indra/newview/llpanelavatar.cpp b/indra/newview/llpanelavatar.cpp
index 0b31ffc9a0..68ca65420a 100644
--- a/indra/newview/llpanelavatar.cpp
+++ b/indra/newview/llpanelavatar.cpp
@@ -2,31 +2,25 @@
* @file llpanelavatar.cpp
* @brief LLPanelAvatar and related class implementations
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -176,14 +170,14 @@ void LLPanelAvatarNotes::onOpen(const LLSD& key)
fillRightsData();
//Disable "Add Friend" button for friends.
- childSetEnabled("add_friend", !LLAvatarActions::isFriend(getAvatarId()));
+ getChildView("add_friend")->setEnabled(!LLAvatarActions::isFriend(getAvatarId()));
}
void LLPanelAvatarNotes::fillRightsData()
{
- childSetValue("status_check", FALSE);
- childSetValue("map_check", FALSE);
- childSetValue("objects_check", FALSE);
+ getChild<LLUICtrl>("status_check")->setValue(FALSE);
+ getChild<LLUICtrl>("map_check")->setValue(FALSE);
+ getChild<LLUICtrl>("objects_check")->setValue(FALSE);
const LLRelationship* relation = LLAvatarTracker::instance().getBuddyInfo(getAvatarId());
// If true - we are viewing friend's profile, enable check boxes and set values.
@@ -191,9 +185,9 @@ void LLPanelAvatarNotes::fillRightsData()
{
S32 rights = relation->getRightsGrantedTo();
- childSetValue("status_check",LLRelationship::GRANT_ONLINE_STATUS & rights ? TRUE : FALSE);
- childSetValue("map_check",LLRelationship::GRANT_MAP_LOCATION & rights ? TRUE : FALSE);
- childSetValue("objects_check",LLRelationship::GRANT_MODIFY_OBJECTS & rights ? TRUE : FALSE);
+ getChild<LLUICtrl>("status_check")->setValue(LLRelationship::GRANT_ONLINE_STATUS & rights ? TRUE : FALSE);
+ getChild<LLUICtrl>("map_check")->setValue(LLRelationship::GRANT_MAP_LOCATION & rights ? TRUE : FALSE);
+ getChild<LLUICtrl>("objects_check")->setValue(LLRelationship::GRANT_MODIFY_OBJECTS & rights ? TRUE : FALSE);
}
@@ -202,7 +196,7 @@ void LLPanelAvatarNotes::fillRightsData()
void LLPanelAvatarNotes::onCommitNotes()
{
- std::string notes = childGetValue("notes_edit").asString();
+ std::string notes = getChild<LLUICtrl>("notes_edit")->getValue().asString();
LLAvatarPropertiesProcessor::getInstance()-> sendNotes(getAvatarId(),notes);
}
@@ -217,8 +211,8 @@ void LLPanelAvatarNotes::rightsConfirmationCallback(const LLSD& notification,
}
else
{
- childSetValue("objects_check",
- childGetValue("objects_check").asBoolean() ? FALSE : TRUE);
+ getChild<LLUICtrl>("objects_check")->setValue(
+ getChild<LLUICtrl>("objects_check")->getValue().asBoolean() ? FALSE : TRUE);
}
}
@@ -261,14 +255,14 @@ void LLPanelAvatarNotes::onCommitRights()
S32 rights = 0;
- if(childGetValue("status_check").asBoolean())
+ if(getChild<LLUICtrl>("status_check")->getValue().asBoolean())
rights |= LLRelationship::GRANT_ONLINE_STATUS;
- if(childGetValue("map_check").asBoolean())
+ if(getChild<LLUICtrl>("map_check")->getValue().asBoolean())
rights |= LLRelationship::GRANT_MAP_LOCATION;
- if(childGetValue("objects_check").asBoolean())
+ if(getChild<LLUICtrl>("objects_check")->getValue().asBoolean())
rights |= LLRelationship::GRANT_MODIFY_OBJECTS;
- bool allow_modify_objects = childGetValue("objects_check").asBoolean();
+ bool allow_modify_objects = getChild<LLUICtrl>("objects_check")->getValue().asBoolean();
// if modify objects checkbox clicked
if (buddy_relationship->isRightGrantedTo(
@@ -291,8 +285,8 @@ void LLPanelAvatarNotes::processProperties(void* data, EAvatarProcessorType type
LLAvatarNotes* avatar_notes = static_cast<LLAvatarNotes*>(data);
if(avatar_notes && getAvatarId() == avatar_notes->target_id)
{
- childSetValue("notes_edit",avatar_notes->notes);
- childSetEnabled("notes edit", true);
+ getChild<LLUICtrl>("notes_edit")->setValue(avatar_notes->notes);
+ getChildView("notes edit")->setEnabled(true);
LLAvatarPropertiesProcessor::getInstance()->removeObserver(getAvatarId(),this);
}
@@ -301,15 +295,15 @@ void LLPanelAvatarNotes::processProperties(void* data, EAvatarProcessorType type
void LLPanelAvatarNotes::resetData()
{
- childSetValue("notes_edit",LLStringUtil::null);
+ getChild<LLUICtrl>("notes_edit")->setValue(LLStringUtil::null);
// Default value is TRUE
- childSetValue("status_check", TRUE);
+ getChild<LLUICtrl>("status_check")->setValue(TRUE);
}
void LLPanelAvatarNotes::resetControls()
{
//Disable "Add Friend" button for friends.
- childSetEnabled("add_friend", TRUE);
+ getChildView("add_friend")->setEnabled(TRUE);
enableCheckboxes(false);
}
@@ -341,9 +335,9 @@ void LLPanelAvatarNotes::onShareButtonClick()
void LLPanelAvatarNotes::enableCheckboxes(bool enable)
{
- childSetEnabled("status_check", enable);
- childSetEnabled("map_check", enable);
- childSetEnabled("objects_check", enable);
+ getChildView("status_check")->setEnabled(enable);
+ getChildView("map_check")->setEnabled(enable);
+ getChildView("objects_check")->setEnabled(enable);
}
LLPanelAvatarNotes::~LLPanelAvatarNotes()
@@ -361,7 +355,7 @@ LLPanelAvatarNotes::~LLPanelAvatarNotes()
// virtual, called by LLAvatarTracker
void LLPanelAvatarNotes::changed(U32 mask)
{
- childSetEnabled("teleport", LLAvatarTracker::instance().isBuddyOnline(getAvatarId()));
+ getChildView("teleport")->setEnabled(LLAvatarTracker::instance().isBuddyOnline(getAvatarId()));
// update rights to avoid have checkboxes enabled when friendship is terminated. EXT-4947.
fillRightsData();
@@ -375,7 +369,7 @@ void LLPanelAvatarNotes::onChange(EStatusType status, const std::string &channel
return;
}
- childSetEnabled("call", LLVoiceClient::getInstance()->voiceEnabled() && LLVoiceClient::getInstance()->isVoiceWorking());
+ getChildView("call")->setEnabled(LLVoiceClient::getInstance()->voiceEnabled() && LLVoiceClient::getInstance()->isVoiceWorking());
}
void LLPanelAvatarNotes::setAvatarId(const LLUUID& id)
@@ -457,17 +451,17 @@ void LLPanelProfileTab::updateButtons()
if(LLAvatarActions::isFriend(getAvatarId()))
{
- childSetEnabled("teleport", is_buddy_online);
+ getChildView("teleport")->setEnabled(is_buddy_online);
}
else
{
- childSetEnabled("teleport", true);
+ getChildView("teleport")->setEnabled(true);
}
bool enable_map_btn = (is_buddy_online &&
is_agent_mappable(getAvatarId()))
|| gAgent.isGodlike();
- childSetEnabled("show_on_map_btn", enable_map_btn);
+ getChildView("show_on_map_btn")->setEnabled(enable_map_btn);
}
//////////////////////////////////////////////////////////////////////////
@@ -513,12 +507,6 @@ BOOL LLPanelAvatarProfile::postBuild()
mProfileMenu = LLUICtrlFactory::getInstance()->createFromFile<LLToggleableMenu>("menu_profile_overflow.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance());
- LLTextureCtrl* pic = getChild<LLTextureCtrl>("2nd_life_pic");
- pic->setFallbackImageName("default_profile_picture.j2c");
-
- pic = getChild<LLTextureCtrl>("real_world_pic");
- pic->setFallbackImageName("default_profile_picture.j2c");
-
LLVoiceClient::getInstance()->addObserver((LLVoiceClientStatusObserver*)this);
resetControls();
@@ -534,7 +522,7 @@ void LLPanelAvatarProfile::onOpen(const LLSD& key)
mGroups.clear();
//Disable "Add Friend" button for friends.
- childSetEnabled("add_friend", !LLAvatarActions::isFriend(getAvatarId()));
+ getChildView("add_friend")->setEnabled(!LLAvatarActions::isFriend(getAvatarId()));
}
void LLPanelAvatarProfile::updateData()
@@ -550,32 +538,32 @@ void LLPanelAvatarProfile::updateData()
void LLPanelAvatarProfile::resetControls()
{
- childSetVisible("status_panel", true);
- childSetVisible("profile_buttons_panel", true);
- childSetVisible("title_groups_text", true);
- childSetVisible("sl_groups", true);
- childSetEnabled("add_friend", true);
+ getChildView("status_panel")->setVisible( true);
+ getChildView("profile_buttons_panel")->setVisible( true);
+ getChildView("title_groups_text")->setVisible( true);
+ getChildView("sl_groups")->setVisible( true);
+ getChildView("add_friend")->setEnabled(true);
- childSetVisible("status_me_panel", false);
- childSetVisible("profile_me_buttons_panel", false);
- childSetVisible("account_actions_panel", false);
+ getChildView("status_me_panel")->setVisible( false);
+ getChildView("profile_me_buttons_panel")->setVisible( false);
+ getChildView("account_actions_panel")->setVisible( false);
}
void LLPanelAvatarProfile::resetData()
{
mGroups.clear();
- childSetValue("2nd_life_pic",LLUUID::null);
- childSetValue("real_world_pic",LLUUID::null);
- childSetValue("online_status",LLStringUtil::null);
- childSetValue("status_message",LLStringUtil::null);
- childSetValue("sl_description_edit",LLStringUtil::null);
- childSetValue("fl_description_edit",LLStringUtil::null);
- childSetValue("sl_groups",LLStringUtil::null);
- childSetValue("homepage_edit",LLStringUtil::null);
- childSetValue("register_date",LLStringUtil::null);
- childSetValue("acc_status_text",LLStringUtil::null);
- childSetTextArg("partner_text", "[FIRST]", LLStringUtil::null);
- childSetTextArg("partner_text", "[LAST]", LLStringUtil::null);
+ getChild<LLUICtrl>("2nd_life_pic")->setValue(LLUUID::null);
+ getChild<LLUICtrl>("real_world_pic")->setValue(LLUUID::null);
+ getChild<LLUICtrl>("online_status")->setValue(LLStringUtil::null);
+ getChild<LLUICtrl>("status_message")->setValue(LLStringUtil::null);
+ getChild<LLUICtrl>("sl_description_edit")->setValue(LLStringUtil::null);
+ getChild<LLUICtrl>("fl_description_edit")->setValue(LLStringUtil::null);
+ getChild<LLUICtrl>("sl_groups")->setValue(LLStringUtil::null);
+ getChild<LLUICtrl>("homepage_edit")->setValue(LLStringUtil::null);
+ getChild<LLUICtrl>("register_date")->setValue(LLStringUtil::null);
+ getChild<LLUICtrl>("acc_status_text")->setValue(LLStringUtil::null);
+ getChild<LLUICtrl>("partner_text")->setTextArg("[FIRST]", LLStringUtil::null);
+ getChild<LLUICtrl>("partner_text")->setTextArg("[LAST]", LLStringUtil::null);
}
void LLPanelAvatarProfile::processProperties(void* data, EAvatarProcessorType type)
@@ -637,7 +625,7 @@ void LLPanelAvatarProfile::processGroupProperties(const LLAvatarGroups* avatar_g
groups += group_url;
}
- childSetValue("sl_groups", groups);
+ getChild<LLUICtrl>("sl_groups")->setValue(groups);
}
void LLPanelAvatarProfile::fillCommonData(const LLAvatarData* avatar_data)
@@ -653,15 +641,15 @@ void LLPanelAvatarProfile::fillCommonData(const LLAvatarData* avatar_data)
}
args["[AGE]"] = LLDateUtil::ageFromDate( avatar_data->born_on, LLDate::now());
std::string register_date = getString("RegisterDateFormat", args);
- childSetValue("register_date", register_date );
- childSetValue("sl_description_edit", avatar_data->about_text);
- childSetValue("fl_description_edit",avatar_data->fl_about_text);
- childSetValue("2nd_life_pic", avatar_data->image_id);
- childSetValue("real_world_pic", avatar_data->fl_image_id);
- childSetValue("homepage_edit", avatar_data->profile_url);
+ getChild<LLUICtrl>("register_date")->setValue(register_date );
+ getChild<LLUICtrl>("sl_description_edit")->setValue(avatar_data->about_text);
+ getChild<LLUICtrl>("fl_description_edit")->setValue(avatar_data->fl_about_text);
+ getChild<LLUICtrl>("2nd_life_pic")->setValue(avatar_data->image_id);
+ getChild<LLUICtrl>("real_world_pic")->setValue(avatar_data->fl_image_id);
+ getChild<LLUICtrl>("homepage_edit")->setValue(avatar_data->profile_url);
// Hide home page textbox if no page was set to fix "homepage URL appears clickable without URL - EXT-4734"
- childSetVisible("homepage_edit", !avatar_data->profile_url.empty());
+ getChildView("homepage_edit")->setVisible( !avatar_data->profile_url.empty());
}
void LLPanelAvatarProfile::fillPartnerData(const LLAvatarData* avatar_data)
@@ -687,7 +675,7 @@ void LLPanelAvatarProfile::fillAccountStatus(const LLAvatarData* avatar_data)
// dataserver/lldataavatar.cpp for privacy considerations
args["[AGEVERIFICATION]"] = "";
std::string caption_text = getString("CaptionTextAcctInfo", args);
- childSetValue("acc_status_text", caption_text);
+ getChild<LLUICtrl>("acc_status_text")->setValue(caption_text);
}
void LLPanelAvatarProfile::pay()
@@ -803,7 +791,7 @@ LLPanelAvatarProfile::~LLPanelAvatarProfile()
// virtual, called by LLAvatarTracker
void LLPanelAvatarProfile::changed(U32 mask)
{
- childSetEnabled("teleport", LLAvatarTracker::instance().isBuddyOnline(getAvatarId()));
+ getChildView("teleport")->setEnabled(LLAvatarTracker::instance().isBuddyOnline(getAvatarId()));
}
// virtual
@@ -814,7 +802,7 @@ void LLPanelAvatarProfile::onChange(EStatusType status, const std::string &chann
return;
}
- childSetEnabled("call", LLVoiceClient::getInstance()->voiceEnabled() && LLVoiceClient::getInstance()->isVoiceWorking());
+ getChildView("call")->setEnabled(LLVoiceClient::getInstance()->voiceEnabled() && LLVoiceClient::getInstance()->isVoiceWorking());
}
void LLPanelAvatarProfile::setAvatarId(const LLUUID& id)
@@ -843,9 +831,6 @@ BOOL LLPanelMyProfile::postBuild()
{
LLPanelAvatarProfile::postBuild();
- mStatusCombobox = getChild<LLComboBox>("status_combo");
-
- childSetCommitCallback("status_combo", boost::bind(&LLPanelMyProfile::onStatusChanged, this), NULL);
childSetCommitCallback("status_me_message_text", boost::bind(&LLPanelMyProfile::onStatusMessageChanged, this), NULL);
resetControls();
@@ -865,61 +850,19 @@ void LLPanelMyProfile::processProfileProperties(const LLAvatarData* avatar_data)
fillPartnerData(avatar_data);
- fillStatusData(avatar_data);
-
fillAccountStatus(avatar_data);
}
-void LLPanelMyProfile::fillStatusData(const LLAvatarData* avatar_data)
-{
- std::string status;
- if (gAgent.getAFK())
- {
- status = "away";
- }
- else if (gAgent.getBusy())
- {
- status = "busy";
- }
- else
- {
- status = "online";
- }
-
- mStatusCombobox->setValue(status);
-}
-
void LLPanelMyProfile::resetControls()
{
- childSetVisible("status_panel", false);
- childSetVisible("profile_buttons_panel", false);
- childSetVisible("title_groups_text", false);
- childSetVisible("sl_groups", false);
- childSetVisible("status_me_panel", true);
- childSetVisible("profile_me_buttons_panel", true);
+ getChildView("status_panel")->setVisible( false);
+ getChildView("profile_buttons_panel")->setVisible( false);
+ getChildView("title_groups_text")->setVisible( false);
+ getChildView("sl_groups")->setVisible( false);
+ getChildView("status_me_panel")->setVisible( true);
+ getChildView("profile_me_buttons_panel")->setVisible( true);
}
-void LLPanelMyProfile::onStatusChanged()
-{
- LLSD::String status = mStatusCombobox->getValue().asString();
-
- if ("online" == status)
- {
- gAgent.clearAFK();
- gAgent.clearBusy();
- }
- else if ("away" == status)
- {
- gAgent.clearBusy();
- gAgent.setAFK();
- }
- else if ("busy" == status)
- {
- gAgent.clearAFK();
- gAgent.setBusy();
- LLNotificationsUtil::add("BusyModeSet");
- }
-}
void LLPanelMyProfile::onStatusMessageChanged()
{
diff --git a/indra/newview/llpanelavatar.h b/indra/newview/llpanelavatar.h
index bb8df2ff9c..11c7716322 100644
--- a/indra/newview/llpanelavatar.h
+++ b/indra/newview/llpanelavatar.h
@@ -2,31 +2,25 @@
* @file llpanelavatar.h
* @brief LLPanelAvatar and related class definitions
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -240,21 +234,10 @@ protected:
/*virtual*/ void processProfileProperties(const LLAvatarData* avatar_data);
- /**
- * Fills Avatar status data.
- */
- virtual void fillStatusData(const LLAvatarData* avatar_data);
-
/*virtual*/ void resetControls();
protected:
-
- void onStatusChanged();
void onStatusMessageChanged();
-
-private:
-
- LLComboBox* mStatusCombobox;
};
/**
diff --git a/indra/newview/llpanelavatartag.cpp b/indra/newview/llpanelavatartag.cpp
index 7563cc7f61..77d67c7b09 100644
--- a/indra/newview/llpanelavatartag.cpp
+++ b/indra/newview/llpanelavatartag.cpp
@@ -2,31 +2,25 @@
* @file llpanelavatartag.cpp
* @brief Avatar tag panel
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -43,7 +37,7 @@ LLPanelAvatarTag::LLPanelAvatarTag(const LLUUID& key, const std::string im_time)
, mAvatarId(LLUUID::null)
// , mFadeTimer()
{
- LLUICtrlFactory::getInstance()->buildPanel(this, "panel_avatar_tag.xml");
+ buildFromFile( "panel_avatar_tag.xml");
setLeftButtonClickCallback(boost::bind(&LLPanelAvatarTag::onClick, this));
setAvatarId(key);
setTime(im_time);
diff --git a/indra/newview/llpanelavatartag.h b/indra/newview/llpanelavatartag.h
index d68b0d7299..1068ae0b4f 100644
--- a/indra/newview/llpanelavatartag.h
+++ b/indra/newview/llpanelavatartag.h
@@ -2,31 +2,25 @@
* @file llpanelavatartag.h
* @brief Avatar row panel
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llpanelblockedlist.cpp b/indra/newview/llpanelblockedlist.cpp
index c72f0f8012..fd2e961cb7 100644
--- a/indra/newview/llpanelblockedlist.cpp
+++ b/indra/newview/llpanelblockedlist.cpp
@@ -2,31 +2,25 @@
* @file llpanelblockedlist.cpp
* @brief Container for blocked Residents & Objects list
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -132,7 +126,7 @@ void LLPanelBlockedList::refreshBlockedList()
void LLPanelBlockedList::updateButtons()
{
bool hasSelected = NULL != mBlockedList->getFirstSelected();
- childSetEnabled("Unblock", hasSelected);
+ getChildView("Unblock")->setEnabled(hasSelected);
}
@@ -269,7 +263,7 @@ void LLFloaterGetBlockedObjectName::applyBlocking()
{
if (mGetObjectNameCallback)
{
- const std::string& text = childGetValue("object_name").asString();
+ const std::string& text = getChild<LLUICtrl>("object_name")->getValue().asString();
mGetObjectNameCallback(text);
}
closeFloater();
diff --git a/indra/newview/llpanelblockedlist.h b/indra/newview/llpanelblockedlist.h
index a100577e43..eb9f082d87 100644
--- a/indra/newview/llpanelblockedlist.h
+++ b/indra/newview/llpanelblockedlist.h
@@ -2,31 +2,25 @@
* @file llpanelblockedlist.h
* @brief Container for blocked Residents & Objects list
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llpanelclassified.cpp b/indra/newview/llpanelclassified.cpp
index 70a7bf644b..6889b98ab1 100644
--- a/indra/newview/llpanelclassified.cpp
+++ b/indra/newview/llpanelclassified.cpp
@@ -2,31 +2,25 @@
* @file llpanelclassified.cpp
* @brief LLPanelClassified class implementation
*
- * $LicenseInfo:firstyear=2005&license=viewergpl$
- *
- * Copyright (c) 2005-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -38,53 +32,34 @@
#include "llpanelclassified.h"
-#include "lldir.h"
#include "lldispatcher.h"
#include "llfloaterreg.h"
#include "llhttpclient.h"
#include "llnotifications.h"
#include "llnotificationsutil.h"
#include "llparcel.h"
-#include "lltabcontainer.h"
-#include "message.h"
#include "llagent.h"
-#include "llavataractions.h"
-#include "llbutton.h"
-#include "llcheckboxctrl.h"
#include "llclassifiedflags.h"
#include "llclassifiedstatsresponder.h"
#include "llcommandhandler.h" // for classified HTML detail page click tracking
-#include "llviewercontrol.h"
+#include "lliconctrl.h"
#include "lllineeditor.h"
-#include "lltextbox.h"
#include "llcombobox.h"
#include "lltexturectrl.h"
#include "lltexteditor.h"
-#include "lluiconstants.h"
-#include "llurldispatcher.h" // for classified HTML detail click teleports
-#include "lluictrlfactory.h"
#include "llviewerparcelmgr.h"
-#include "llviewerwindow.h"
-#include "llworldmap.h"
#include "llfloaterworldmap.h"
#include "llviewergenericmessage.h" // send_generic_message
#include "llviewerregion.h"
-#include "llviewerwindow.h" // for window width, height
-#include "llappviewer.h" // abortQuit()
#include "lltrans.h"
#include "llscrollcontainer.h"
#include "llstatusbar.h"
const S32 MINIMUM_PRICE_FOR_LISTING = 50; // L$
-const S32 MATURE_UNDEFINED = -1;
-const S32 MATURE_CONTENT = 1;
-const S32 PG_CONTENT = 2;
-const S32 DECLINE_TO_STATE = 0;
//static
-std::list<LLPanelClassified*> LLPanelClassified::sAllPanels;
-std::list<LLPanelClassifiedInfo*> LLPanelClassifiedInfo::sAllPanels;
+LLPanelClassifiedInfo::panel_list_t LLPanelClassifiedInfo::sAllPanels;
// "classifiedclickthrough"
// strings[0] = classified_id
@@ -131,1040 +106,6 @@ public:
}
};
-
-/* Re-expose this if we need to have classified ad HTML detail
- pages. JC
-
-// We need to count classified teleport clicks from the search HTML detail pages,
-// so we need have a teleport that also sends a click count message.
-class LLClassifiedTeleportHandler : public LLCommandHandler
-{
-public:
- // don't allow from external browsers because it moves you immediately
- LLClassifiedTeleportHandler() : LLCommandHandler("classifiedteleport", UNTRUSTED_BLOCK) { }
-
- bool handle(const LLSD& tokens, const LLSD& queryMap)
- {
- // Need at least classified id and region name, so 2 params
- if (tokens.size() < 2) return false;
- LLUUID classified_id = tokens[0].asUUID();
- if (classified_id.isNull()) return false;
- // *HACK: construct a SLURL to do the teleport
- std::string url("secondlife:///app/teleport/");
- // skip the uuid we took off above, rebuild URL
- // separated by slashes.
- for (S32 i = 1; i < tokens.size(); ++i)
- {
- url += tokens[i].asString();
- url += "/";
- }
- llinfos << "classified teleport to " << url << llendl;
- // *TODO: separately track old search, sidebar, and new search
- // Right now detail HTML pages count as new search.
- const bool from_search = true;
- LLPanelClassified::sendClassifiedClickMessage(classified_id, "teleport", from_search);
- // Invoke teleport
- LLMediaCtrl* web = NULL;
- const bool trusted_browser = true;
- return LLURLDispatcher::dispatch(url, web, trusted_browser);
- }
-};
-// Creating the object registers with the dispatcher.
-LLClassifiedTeleportHandler gClassifiedTeleportHandler;
-*/
-
-LLPanelClassified::LLPanelClassified(bool in_finder, bool from_search)
-: LLPanel(),
- mInFinder(in_finder),
- mFromSearch(from_search),
- mDirty(false),
- mForceClose(false),
- mLocationChanged(false),
- mClassifiedID(),
- mCreatorID(),
- mPriceForListing(0),
- mDataRequested(FALSE),
- mPaidFor(FALSE),
- mPosGlobal(),
- mSnapshotCtrl(NULL),
- mNameEditor(NULL),
- mDescEditor(NULL),
- mLocationEditor(NULL),
- mCategoryCombo(NULL),
- mMatureCombo(NULL),
- mAutoRenewCheck(NULL),
- mUpdateBtn(NULL),
- mTeleportBtn(NULL),
- mMapBtn(NULL),
- mProfileBtn(NULL),
- mInfoText(NULL),
- mSetBtn(NULL),
- mClickThroughText(NULL),
- mTeleportClicksOld(0),
- mMapClicksOld(0),
- mProfileClicksOld(0),
- mTeleportClicksNew(0),
- mMapClicksNew(0),
- mProfileClicksNew(0)
-
-{
- sAllPanels.push_back(this);
-
- std::string classified_def_file;
- if (mInFinder)
- {
- LLUICtrlFactory::getInstance()->buildPanel(this, "panel_classified.xml");
- }
- else
- {
- LLUICtrlFactory::getInstance()->buildPanel(this, "panel_avatar_classified.xml");
- }
-
- // Register dispatcher
- gGenericDispatcher.addHandler("classifiedclickthrough",
- &sClassifiedClickThrough);
-}
-
-
-LLPanelClassified::~LLPanelClassified()
-{
- sAllPanels.remove(this);
-}
-
-
-void LLPanelClassified::reset()
-{
- mClassifiedID.setNull();
- mCreatorID.setNull();
- mParcelID.setNull();
-
- // Don't request data, this isn't valid
- mDataRequested = TRUE;
-
- mDirty = false;
- mPaidFor = FALSE;
-
- mPosGlobal.clearVec();
-
- clearCtrls();
- resetDirty();
-}
-
-
-BOOL LLPanelClassified::postBuild()
-{
- mSnapshotCtrl = getChild<LLTextureCtrl>("snapshot_ctrl");
- mSnapshotCtrl->setCommitCallback(onCommitAny, this);
- mSnapshotSize = mSnapshotCtrl->getRect();
-
- mNameEditor = getChild<LLLineEditor>("given_name_editor");
- mNameEditor->setMaxTextLength(DB_PARCEL_NAME_LEN);
- mNameEditor->setCommitOnFocusLost(TRUE);
- mNameEditor->setFocusReceivedCallback(boost::bind(focusReceived, _1, this));
- mNameEditor->setCommitCallback(onCommitAny, this);
- mNameEditor->setPrevalidate( LLTextValidate::validateASCII );
-
- mDescEditor = getChild<LLTextEditor>("desc_editor");
- mDescEditor->setCommitOnFocusLost(TRUE);
- mDescEditor->setFocusReceivedCallback(boost::bind(focusReceived, _1, this));
- mDescEditor->setCommitCallback(onCommitAny, this);
-
- mLocationEditor = getChild<LLLineEditor>("location_editor");
-
- mSetBtn = getChild<LLButton>( "set_location_btn");
- mSetBtn->setClickedCallback(onClickSet, this);
-
- mTeleportBtn = getChild<LLButton>( "classified_teleport_btn");
- mTeleportBtn->setClickedCallback(onClickTeleport, this);
-
- mMapBtn = getChild<LLButton>( "classified_map_btn");
- mMapBtn->setClickedCallback(onClickMap, this);
-
- if(mInFinder)
- {
- mProfileBtn = getChild<LLButton>( "classified_profile_btn");
- mProfileBtn->setClickedCallback(onClickProfile, this);
- }
-
- mCategoryCombo = getChild<LLComboBox>( "classified_category_combo");
- LLClassifiedInfo::cat_map::iterator iter;
- for (iter = LLClassifiedInfo::sCategories.begin();
- iter != LLClassifiedInfo::sCategories.end();
- iter++)
- {
- mCategoryCombo->add(LLTrans::getString(iter->second), (void *)((intptr_t)iter->first), ADD_BOTTOM);
- }
- mCategoryCombo->setCurrentByIndex(0);
- mCategoryCombo->setCommitCallback(onCommitAny, this);
-
- mMatureCombo = getChild<LLComboBox>( "classified_mature_check");
- mMatureCombo->setCurrentByIndex(0);
- mMatureCombo->setCommitCallback(onCommitAny, this);
- if (gAgent.wantsPGOnly())
- {
- // Teens don't get to set mature flag. JC
- mMatureCombo->setVisible(FALSE);
- mMatureCombo->setCurrentByIndex(PG_CONTENT);
- }
-
- if (!mInFinder)
- {
- mAutoRenewCheck = getChild<LLCheckBoxCtrl>( "auto_renew_check");
- mAutoRenewCheck->setCommitCallback(onCommitAny, this);
- }
-
- mUpdateBtn = getChild<LLButton>("classified_update_btn");
- mUpdateBtn->setClickedCallback(onClickUpdate, this);
-
- if (!mInFinder)
- {
- mClickThroughText = getChild<LLTextBox>("click_through_text");
- }
-
- resetDirty();
- return TRUE;
-}
-
-BOOL LLPanelClassified::titleIsValid()
-{
- // Disallow leading spaces, punctuation, etc. that screw up
- // sort order.
- const std::string& name = mNameEditor->getText();
- if (name.empty())
- {
- LLNotificationsUtil::add("BlankClassifiedName");
- return FALSE;
- }
- if (!isalnum(name[0]))
- {
- LLNotificationsUtil::add("ClassifiedMustBeAlphanumeric");
- return FALSE;
- }
-
- return TRUE;
-}
-
-void LLPanelClassified::apply()
-{
- // Apply is used for automatically saving results, so only
- // do that if there is a difference, and this is a save not create.
- if (checkDirty() && mPaidFor)
- {
- sendClassifiedInfoUpdate();
- }
-}
-
-bool LLPanelClassified::saveCallback(const LLSD& notification, const LLSD& response)
-{
- S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
-
- switch(option)
- {
- case 0: // Save
- sendClassifiedInfoUpdate();
- // fall through to close
-
- case 1: // Don't Save
- {
- mForceClose = true;
- // Close containing floater
- LLFloater* parent_floater = gFloaterView->getParentFloater(this);
- if (parent_floater)
- {
- parent_floater->closeFloater();
- }
- }
- break;
-
- case 2: // Cancel
- default:
- LLAppViewer::instance()->abortQuit();
- break;
- }
- return false;
-}
-
-
-BOOL LLPanelClassified::canClose()
-{
- if (mForceClose || !checkDirty())
- return TRUE;
-
- LLSD args;
- args["NAME"] = mNameEditor->getText();
- LLNotificationsUtil::add("ClassifiedSave", args, LLSD(), boost::bind(&LLPanelClassified::saveCallback, this, _1, _2));
- return FALSE;
-}
-
-// Fill in some reasonable defaults for a new classified.
-void LLPanelClassified::initNewClassified()
-{
- // TODO: Don't generate this on the client.
- mClassifiedID.generate();
-
- mCreatorID = gAgent.getID();
-
- mPosGlobal = gAgent.getPositionGlobal();
-
- mPaidFor = FALSE;
-
- // Try to fill in the current parcel
- LLParcel* parcel = LLViewerParcelMgr::getInstance()->getAgentParcel();
- if (parcel)
- {
- mNameEditor->setText(parcel->getName());
- //mDescEditor->setText(parcel->getDesc());
- mSnapshotCtrl->setImageAssetID(parcel->getSnapshotID());
- //mPriceEditor->setText("0");
- mCategoryCombo->setCurrentByIndex(0);
- }
-
- mUpdateBtn->setLabel(getString("publish_txt"));
-
- // simulate clicking the "location" button
- LLPanelClassified::onClickSet(this);
-}
-
-
-void LLPanelClassified::setClassifiedID(const LLUUID& id)
-{
- mClassifiedID = id;
-}
-
-//static
-void LLPanelClassified::setClickThrough(const LLUUID& classified_id,
- S32 teleport,
- S32 map,
- S32 profile,
- bool from_new_table)
-{
- for (panel_list_t::iterator iter = sAllPanels.begin(); iter != sAllPanels.end(); ++iter)
- {
- LLPanelClassified* self = *iter;
- // For top picks, must match pick id
- if (self->mClassifiedID != classified_id)
- {
- continue;
- }
-
- // We need to check to see if the data came from the new stat_table
- // or the old classified table. We also need to cache the data from
- // the two separate sources so as to display the aggregate totals.
-
- if (from_new_table)
- {
- self->mTeleportClicksNew = teleport;
- self->mMapClicksNew = map;
- self->mProfileClicksNew = profile;
- }
- else
- {
- self->mTeleportClicksOld = teleport;
- self->mMapClicksOld = map;
- self->mProfileClicksOld = profile;
- }
-
- if (self->mClickThroughText)
- {
- LLStringUtil::format_map_t args;
- args["[TELEPORT]"] = llformat ("%d", self->mTeleportClicksNew + self->mTeleportClicksOld);
- args["[MAP]"] = llformat ("%d", self->mMapClicksNew + self->mMapClicksOld);
- args["[PROFILE]"] = llformat ("%d", self->mProfileClicksNew + self->mProfileClicksOld);
- std::string msg = LLTrans::getString ("ClassifiedClicksTxt", args);
- self->mClickThroughText->setText(msg);
- }
- }
-}
-
-// Schedules the panel to request data
-// from the server next time it is drawn.
-void LLPanelClassified::markForServerRequest()
-{
- mDataRequested = FALSE;
-}
-
-
-std::string LLPanelClassified::getClassifiedName()
-{
- return mNameEditor->getText();
-}
-
-
-void LLPanelClassified::sendClassifiedInfoRequest()
-{
- LLMessageSystem *msg = gMessageSystem;
-
- if (mClassifiedID != mRequestedID)
- {
- msg->newMessageFast(_PREHASH_ClassifiedInfoRequest);
- msg->nextBlockFast(_PREHASH_AgentData);
- msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID() );
- msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID() );
- msg->nextBlockFast(_PREHASH_Data);
- msg->addUUIDFast(_PREHASH_ClassifiedID, mClassifiedID);
- gAgent.sendReliableMessage();
-
- mDataRequested = TRUE;
- mRequestedID = mClassifiedID;
-
- // While we're at it let's get the stats from the new table if that
- // capability exists.
- std::string url = gAgent.getRegion()->getCapability("SearchStatRequest");
- LLSD body;
- body["classified_id"] = mClassifiedID;
-
- if (!url.empty())
- {
- llinfos << "Classified stat request via capability" << llendl;
- LLHTTPClient::post(url, body, new LLClassifiedStatsResponder(mClassifiedID));
- }
- }
-}
-
-
-void LLPanelClassified::sendClassifiedInfoUpdate()
-{
- // If we don't have a classified id yet, we'll need to generate one,
- // otherwise we'll keep overwriting classified_id 00000 in the database.
- if (mClassifiedID.isNull())
- {
- // TODO: Don't do this on the client.
- mClassifiedID.generate();
- }
-
- LLMessageSystem* msg = gMessageSystem;
-
- msg->newMessageFast(_PREHASH_ClassifiedInfoUpdate);
- msg->nextBlockFast(_PREHASH_AgentData);
- msg->addUUIDFast(_PREHASH_AgentID, gAgent.getID());
- msg->addUUIDFast(_PREHASH_SessionID, gAgent.getSessionID());
- msg->nextBlockFast(_PREHASH_Data);
- msg->addUUIDFast(_PREHASH_ClassifiedID, mClassifiedID);
- // TODO: fix this
- U32 category = mCategoryCombo->getCurrentIndex() + 1;
- msg->addU32Fast(_PREHASH_Category, category);
- msg->addStringFast(_PREHASH_Name, mNameEditor->getText());
- msg->addStringFast(_PREHASH_Desc, mDescEditor->getText());
-
- // fills in on simulator if null
- msg->addUUIDFast(_PREHASH_ParcelID, mParcelID);
- // fills in on simulator if null
- msg->addU32Fast(_PREHASH_ParentEstate, 0);
- msg->addUUIDFast(_PREHASH_SnapshotID, mSnapshotCtrl->getImageAssetID());
- msg->addVector3dFast(_PREHASH_PosGlobal, mPosGlobal);
- BOOL mature = mMatureCombo->getCurrentIndex() == MATURE_CONTENT;
- BOOL auto_renew = FALSE;
- if (mAutoRenewCheck)
- {
- auto_renew = mAutoRenewCheck->get();
- }
- // These flags doesn't matter here.
- const bool adult_enabled = false;
- const bool is_pg = false;
- U8 flags = pack_classified_flags_request(auto_renew, is_pg, mature, adult_enabled);
- msg->addU8Fast(_PREHASH_ClassifiedFlags, flags);
- msg->addS32("PriceForListing", mPriceForListing);
- gAgent.sendReliableMessage();
-
- mDirty = false;
-}
-
-
-//static
-void LLPanelClassified::processClassifiedInfoReply(LLMessageSystem *msg, void **)
-{
- lldebugs << "processClassifiedInfoReply()" << llendl;
- // Extract the agent id and verify the message is for this
- // client.
- LLUUID agent_id;
- msg->getUUIDFast(_PREHASH_AgentData, _PREHASH_AgentID, agent_id );
- if (agent_id != gAgent.getID())
- {
- llwarns << "Agent ID mismatch in processClassifiedInfoReply"
- << llendl;
- return;
- }
-
- LLUUID classified_id;
- msg->getUUIDFast(_PREHASH_Data, _PREHASH_ClassifiedID, classified_id);
-
- LLUUID creator_id;
- msg->getUUIDFast(_PREHASH_Data, _PREHASH_CreatorID, creator_id);
-
- LLUUID parcel_id;
- msg->getUUIDFast(_PREHASH_Data, _PREHASH_ParcelID, parcel_id);
-
- std::string name;
- msg->getStringFast(_PREHASH_Data, _PREHASH_Name, name);
-
- std::string desc;
- msg->getStringFast(_PREHASH_Data, _PREHASH_Desc, desc);
-
- LLUUID snapshot_id;
- msg->getUUIDFast(_PREHASH_Data, _PREHASH_SnapshotID, snapshot_id);
-
- // "Location text" is actually the original
- // name that owner gave the parcel, and the location.
- std::string location_text;
-
- msg->getStringFast(_PREHASH_Data, _PREHASH_ParcelName, location_text);
- if (!location_text.empty())
- {
- location_text.append(", ");
- }
-
- std::string sim_name;
- msg->getStringFast(_PREHASH_Data, _PREHASH_SimName, sim_name);
-
- LLVector3d pos_global;
- msg->getVector3dFast(_PREHASH_Data, _PREHASH_PosGlobal, pos_global);
-
- S32 region_x = llround((F32)pos_global.mdV[VX]) % REGION_WIDTH_UNITS;
- S32 region_y = llround((F32)pos_global.mdV[VY]) % REGION_WIDTH_UNITS;
- S32 region_z = llround((F32)pos_global.mdV[VZ]);
-
- std::string buffer = llformat("%s (%d, %d, %d)", sim_name.c_str(), region_x, region_y, region_z);
- location_text.append(buffer);
-
- U8 flags;
- msg->getU8Fast(_PREHASH_Data, _PREHASH_ClassifiedFlags, flags);
- //BOOL enabled = is_cf_enabled(flags);
- bool mature = is_cf_mature(flags);
- bool auto_renew = is_cf_auto_renew(flags);
-
- U32 date = 0;
- msg->getU32Fast(_PREHASH_Data, _PREHASH_CreationDate, date);
- time_t tim = date;
-
- // future use
- U32 expiration_date = 0;
- msg->getU32("Data", "ExpirationDate", expiration_date);
-
- U32 category = 0;
- msg->getU32Fast(_PREHASH_Data, _PREHASH_Category, category);
-
- S32 price_for_listing = 0;
- msg->getS32("Data", "PriceForListing", price_for_listing);
-
- // Look up the panel to fill in
- for (panel_list_t::iterator iter = sAllPanels.begin(); iter != sAllPanels.end(); ++iter)
- {
- LLPanelClassified* self = *iter;
- // For top picks, must match pick id
- if (self->mClassifiedID != classified_id)
- {
- continue;
- }
-
- // Found the panel, now fill in the information
- self->mClassifiedID = classified_id;
- self->mCreatorID = creator_id;
- self->mParcelID = parcel_id;
- self->mPriceForListing = price_for_listing;
- self->mSimName.assign(sim_name);
- self->mPosGlobal = pos_global;
-
- // Update UI controls
- self->mNameEditor->setText(name);
- self->mDescEditor->setText(desc);
- self->mSnapshotCtrl->setImageAssetID(snapshot_id);
- self->mLocationEditor->setText(location_text);
- self->mLocationChanged = false;
-
- self->mCategoryCombo->setCurrentByIndex(category - 1);
- if(mature)
- {
- self->mMatureCombo->setCurrentByIndex(MATURE_CONTENT);
- }
- else
- {
- self->mMatureCombo->setCurrentByIndex(PG_CONTENT);
- }
- if (self->mAutoRenewCheck)
- {
- self->mAutoRenewCheck->set(auto_renew);
- }
-
- std::string dateStr = self->getString("dateStr");
- LLSD substitution;
- substitution["datetime"] = (S32) tim;
- LLStringUtil::format (dateStr, substitution);
-
- LLStringUtil::format_map_t string_args;
- string_args["[DATE]"] = dateStr;
- string_args["[AMT]"] = llformat("%d", price_for_listing);
- self->childSetText("classified_info_text", self->getString("ad_placed_paid", string_args));
-
- // If we got data from the database, we know the listing is paid for.
- self->mPaidFor = TRUE;
-
- self->mUpdateBtn->setLabel(self->getString("update_txt"));
-
- self->resetDirty();
-
- // I don't know if a second call is deliberate or a bad merge, so I'm leaving it here.
- self->resetDirty();
- }
-}
-
-void LLPanelClassified::draw()
-{
- refresh();
-
- LLPanel::draw();
-}
-
-
-void LLPanelClassified::refresh()
-{
- if (!mDataRequested)
- {
- sendClassifiedInfoRequest();
- }
-
- // Check for god mode
- BOOL godlike = gAgent.isGodlike();
- BOOL is_self = (gAgent.getID() == mCreatorID);
-
- // Set button visibility/enablement appropriately
- if (mInFinder)
- {
-
- // End user doesn't ned to see price twice, or date posted.
-
- mSnapshotCtrl->setEnabled(godlike);
- if(godlike)
- {
- //make it smaller, so text is more legible
- mSnapshotCtrl->setOrigin(20, 175);
- mSnapshotCtrl->reshape(300, 200);
- }
- else
- {
- mSnapshotCtrl->setOrigin(mSnapshotSize.mLeft, mSnapshotSize.mBottom);
- mSnapshotCtrl->reshape(mSnapshotSize.getWidth(), mSnapshotSize.getHeight());
- //normal
- }
- mNameEditor->setEnabled(godlike);
- mDescEditor->setEnabled(godlike);
- mCategoryCombo->setEnabled(godlike);
- mCategoryCombo->setVisible(godlike);
-
- mMatureCombo->setEnabled(godlike);
- mMatureCombo->setVisible(godlike);
-
- // Jesse (who is the only one who uses this, as far as we can tell
- // Says that he does not want a set location button - he has used it
- // accidently in the past.
- mSetBtn->setVisible(FALSE);
- mSetBtn->setEnabled(FALSE);
-
- mUpdateBtn->setEnabled(godlike);
- mUpdateBtn->setVisible(godlike);
- }
- else
- {
- mSnapshotCtrl->setEnabled(is_self);
- mNameEditor->setEnabled(is_self);
- mDescEditor->setEnabled(is_self);
- //mPriceEditor->setEnabled(is_self);
- mCategoryCombo->setEnabled(is_self);
- mMatureCombo->setEnabled(is_self);
-
- if( is_self )
- {
- if( mMatureCombo->getCurrentIndex() == 0 )
- {
- // It's a new panel.
- // PG regions should have PG classifieds. AO should have mature.
-
- setDefaultAccessCombo();
- }
- }
-
- if (mAutoRenewCheck)
- {
- mAutoRenewCheck->setEnabled(is_self);
- mAutoRenewCheck->setVisible(is_self);
- }
-
- mClickThroughText->setEnabled(is_self);
- mClickThroughText->setVisible(is_self);
-
- mSetBtn->setVisible(is_self);
- mSetBtn->setEnabled(is_self);
-
- mUpdateBtn->setEnabled(is_self && checkDirty());
- mUpdateBtn->setVisible(is_self);
- }
-}
-
-// static
-void LLPanelClassified::onClickUpdate(void* data)
-{
- LLPanelClassified* self = (LLPanelClassified*)data;
-
- if(self == NULL) return;
-
- // Disallow leading spaces, punctuation, etc. that screw up
- // sort order.
- if ( ! self->titleIsValid() )
- {
- return;
- };
-
- // If user has not set mature, do not allow publish
- if(self->mMatureCombo->getCurrentIndex() == DECLINE_TO_STATE)
- {
- // Tell user about it
- LLNotificationsUtil::add("SetClassifiedMature",
- LLSD(),
- LLSD(),
- boost::bind(&LLPanelClassified::confirmMature, self, _1, _2));
- return;
- }
-
- // Mature content flag is set, proceed
- self->gotMature();
-}
-
-// Callback from a dialog indicating response to mature notification
-bool LLPanelClassified::confirmMature(const LLSD& notification, const LLSD& response)
-{
- S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
-
- // 0 == Yes
- // 1 == No
- // 2 == Cancel
- switch(option)
- {
- case 0:
- mMatureCombo->setCurrentByIndex(MATURE_CONTENT);
- break;
- case 1:
- mMatureCombo->setCurrentByIndex(PG_CONTENT);
- break;
- default:
- return false;
- }
-
- // If we got here it means they set a valid value
- gotMature();
- return false;
-}
-
-// Called after we have determined whether this classified has
-// mature content or not.
-void LLPanelClassified::gotMature()
-{
- // if already paid for, just do the update
- if (mPaidFor)
- {
- LLNotification::Params params("PublishClassified");
- params.functor.function(boost::bind(&LLPanelClassified::confirmPublish, this, _1, _2));
- LLNotifications::instance().forceResponse(params, 0);
- }
- else
- {
- // Ask the user how much they want to pay
- LLFloaterPriceForListing::show( callbackGotPriceForListing, this );
- }
-}
-
-// static
-void LLPanelClassified::callbackGotPriceForListing(S32 option, std::string text, void* data)
-{
- LLPanelClassified* self = (LLPanelClassified*)data;
-
- // Only do something if user hits publish
- if (option != 0) return;
-
- S32 price_for_listing = strtol(text.c_str(), NULL, 10);
- if (price_for_listing < MINIMUM_PRICE_FOR_LISTING)
- {
- LLSD args;
- std::string price_text = llformat("%d", MINIMUM_PRICE_FOR_LISTING);
- args["MIN_PRICE"] = price_text;
-
- LLNotificationsUtil::add("MinClassifiedPrice", args);
- return;
- }
-
- // price is acceptable, put it in the dialog for later read by
- // update send
- self->mPriceForListing = price_for_listing;
-
- LLSD args;
- args["AMOUNT"] = llformat("%d", price_for_listing);
- LLNotificationsUtil::add("PublishClassified", args, LLSD(),
- boost::bind(&LLPanelClassified::confirmPublish, self, _1, _2));
-}
-
-void LLPanelClassified::resetDirty()
-{
- // Tell all the widgets to reset their dirty state since the ad was just saved
- if (mSnapshotCtrl)
- mSnapshotCtrl->resetDirty();
- if (mNameEditor)
- mNameEditor->resetDirty();
- if (mDescEditor)
- mDescEditor->resetDirty();
- if (mLocationEditor)
- mLocationEditor->resetDirty();
- mLocationChanged = false;
- if (mCategoryCombo)
- mCategoryCombo->resetDirty();
- if (mMatureCombo)
- mMatureCombo->resetDirty();
- if (mAutoRenewCheck)
- mAutoRenewCheck->resetDirty();
-}
-
-// invoked from callbackConfirmPublish
-bool LLPanelClassified::confirmPublish(const LLSD& notification, const LLSD& response)
-{
- S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
- // Option 0 = publish
- if (option != 0) return false;
-
- sendClassifiedInfoUpdate();
-
- // Big hack - assume that top picks are always in a browser,
- // and non-finder-classifieds are always in a tab container.
- if (! mInFinder)
- {
- LLTabContainer* tab = (LLTabContainer*)getParent();
- tab->setCurrentTabName(mNameEditor->getText());
- }
-
- resetDirty();
- return false;
-}
-
-
-// static
-void LLPanelClassified::onClickTeleport(void* data)
-{
- LLPanelClassified* self = (LLPanelClassified*)data;
- LLFloaterWorldMap* worldmap_instance = LLFloaterWorldMap::getInstance();
-
- if (!self->mPosGlobal.isExactlyZero()&&worldmap_instance)
- {
- gAgent.teleportViaLocation(self->mPosGlobal);
- worldmap_instance->trackLocation(self->mPosGlobal);
- self->sendClassifiedClickMessage("teleport");
- }
-}
-
-
-// static
-void LLPanelClassified::onClickMap(void* data)
-{
- LLPanelClassified* self = (LLPanelClassified*)data;
- LLFloaterWorldMap* worldmap_instance = LLFloaterWorldMap::getInstance();
- if(worldmap_instance)
- {
- worldmap_instance->trackLocation(self->mPosGlobal);
- LLFloaterReg::showInstance("world_map", "center");
- }
- self->sendClassifiedClickMessage("map");
-}
-
-// static
-void LLPanelClassified::onClickProfile(void* data)
-{
- LLPanelClassified* self = (LLPanelClassified*)data;
- LLAvatarActions::showProfile(self->mCreatorID);
- self->sendClassifiedClickMessage("profile");
-}
-
-// static
-/*
-void LLPanelClassified::onClickLandmark(void* data)
-{
- LLPanelClassified* self = (LLPanelClassified*)data;
- create_landmark(self->mNameEditor->getText(), "", self->mPosGlobal);
-}
-*/
-
-// static
-void LLPanelClassified::onClickSet(void* data)
-{
- LLPanelClassified* self = (LLPanelClassified*)data;
-
- // Save location for later.
- self->mPosGlobal = gAgent.getPositionGlobal();
-
- std::string location_text;
- std::string regionName = LLTrans::getString("ClassifiedUpdateAfterPublish");
- LLViewerRegion* pRegion = gAgent.getRegion();
- if (pRegion)
- {
- regionName = pRegion->getName();
- }
- location_text.assign(regionName);
- location_text.append(", ");
-
- S32 region_x = llround((F32)self->mPosGlobal.mdV[VX]) % REGION_WIDTH_UNITS;
- S32 region_y = llround((F32)self->mPosGlobal.mdV[VY]) % REGION_WIDTH_UNITS;
- S32 region_z = llround((F32)self->mPosGlobal.mdV[VZ]);
-
- location_text.append(self->mSimName);
- location_text.append(llformat(" (%d, %d, %d)", region_x, region_y, region_z));
-
- self->mLocationEditor->setText(location_text);
- self->mLocationChanged = true;
-
- self->setDefaultAccessCombo();
-
- // Set this to null so it updates on the next save.
- self->mParcelID.setNull();
-
- onCommitAny(NULL, data);
-}
-
-
-BOOL LLPanelClassified::checkDirty()
-{
- mDirty = FALSE;
- if ( mSnapshotCtrl ) mDirty |= mSnapshotCtrl->isDirty();
- if ( mNameEditor ) mDirty |= mNameEditor->isDirty();
- if ( mDescEditor ) mDirty |= mDescEditor->isDirty();
- if ( mLocationEditor ) mDirty |= mLocationEditor->isDirty();
- if ( mLocationChanged ) mDirty |= TRUE;
- if ( mCategoryCombo ) mDirty |= mCategoryCombo->isDirty();
- if ( mMatureCombo ) mDirty |= mMatureCombo->isDirty();
- if ( mAutoRenewCheck ) mDirty |= mAutoRenewCheck->isDirty();
-
- return mDirty;
-}
-
-// static
-void LLPanelClassified::onCommitAny(LLUICtrl* ctrl, void* data)
-{
- LLPanelClassified* self = (LLPanelClassified*)data;
- if (self)
- {
- self->checkDirty();
- }
-}
-
-// static
-void LLPanelClassified::focusReceived(LLFocusableElement* ctrl, void* data)
-{
- // allow the data to be saved
- onCommitAny((LLUICtrl*)ctrl, data);
-}
-
-
-void LLPanelClassified::sendClassifiedClickMessage(const std::string& type)
-{
- // You're allowed to click on your own ads to reassure yourself
- // that the system is working.
- LLSD body;
- body["type"] = type;
- body["from_search"] = mFromSearch;
- body["classified_id"] = mClassifiedID;
- body["parcel_id"] = mParcelID;
- body["dest_pos_global"] = mPosGlobal.getValue();
- body["region_name"] = mSimName;
-
- std::string url = gAgent.getRegion()->getCapability("SearchStatTracking");
- llinfos << "LLPanelClassified::sendClassifiedClickMessage via capability" << llendl;
- LLHTTPClient::post(url, body, new LLHTTPClient::Responder());
-}
-
-////////////////////////////////////////////////////////////////////////////////////////////
-
-LLFloaterPriceForListing::LLFloaterPriceForListing()
-: LLFloater(LLSD()),
- mCallback(NULL),
- mUserData(NULL)
-{ }
-
-//virtual
-LLFloaterPriceForListing::~LLFloaterPriceForListing()
-{ }
-
-//virtual
-BOOL LLFloaterPriceForListing::postBuild()
-{
- LLLineEditor* edit = getChild<LLLineEditor>("price_edit");
- if (edit)
- {
- edit->setPrevalidate(LLTextValidate::validateNonNegativeS32);
- std::string min_price = llformat("%d", MINIMUM_PRICE_FOR_LISTING);
- edit->setText(min_price);
- edit->selectAll();
- edit->setFocus(TRUE);
- }
-
- childSetAction("set_price_btn", onClickSetPrice, this);
-
- childSetAction("cancel_btn", onClickCancel, this);
-
- setDefaultBtn("set_price_btn");
- return TRUE;
-}
-
-//static
-void LLFloaterPriceForListing::show( void (*callback)(S32, std::string, void*), void* userdata)
-{
- LLFloaterPriceForListing *self = new LLFloaterPriceForListing();
-
- // Builds and adds to gFloaterView
- LLUICtrlFactory::getInstance()->buildFloater(self, "floater_price_for_listing.xml", NULL);
- self->center();
-
- self->mCallback = callback;
- self->mUserData = userdata;
-}
-
-//static
-void LLFloaterPriceForListing::onClickSetPrice(void* data)
-{
- buttonCore(0, data);
-}
-
-//static
-void LLFloaterPriceForListing::onClickCancel(void* data)
-{
- buttonCore(1, data);
-}
-
-//static
-void LLFloaterPriceForListing::buttonCore(S32 button, void* data)
-{
- LLFloaterPriceForListing* self = (LLFloaterPriceForListing*)data;
-
- if (self->mCallback)
- {
- std::string text = self->childGetText("price_edit");
- self->mCallback(button, text, self->mUserData);
- self->closeFloater();
- }
-}
-
-void LLPanelClassified::setDefaultAccessCombo()
-{
- // PG regions should have PG classifieds. AO should have mature.
-
- LLViewerRegion *regionp = gAgent.getRegion();
-
- switch( regionp->getSimAccess() )
- {
- case SIM_ACCESS_PG:
- mMatureCombo->setCurrentByIndex(PG_CONTENT);
- break;
- case SIM_ACCESS_ADULT:
- mMatureCombo->setCurrentByIndex(MATURE_CONTENT);
- break;
- default:
- // You are free to move about the cabin.
- break;
- }
-}
-
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
@@ -1197,7 +138,7 @@ LLPanelClassifiedInfo::~LLPanelClassifiedInfo()
LLPanelClassifiedInfo* LLPanelClassifiedInfo::create()
{
LLPanelClassifiedInfo* panel = new LLPanelClassifiedInfo();
- LLUICtrlFactory::getInstance()->buildPanel(panel, "panel_classified_info.xml");
+ panel->buildFromFile("panel_classified_info.xml");
return panel;
}
@@ -1316,7 +257,7 @@ void LLPanelClassifiedInfo::processProperties(void* data, EAvatarProcessorType t
setSimName(c_info->sim_name);
setClassifiedLocation(createLocationText(c_info->parcel_name, c_info->sim_name, c_info->pos_global));
- childSetValue("category", LLClassifiedInfo::sCategories[c_info->category]);
+ getChild<LLUICtrl>("category")->setValue(LLClassifiedInfo::sCategories[c_info->category]);
static std::string mature_str = getString("type_mature");
static std::string pg_str = getString("type_pg");
@@ -1324,20 +265,20 @@ void LLPanelClassifiedInfo::processProperties(void* data, EAvatarProcessorType t
static std::string date_fmt = getString("date_fmt");
bool mature = is_cf_mature(c_info->flags);
- childSetValue("content_type", mature ? mature_str : pg_str);
+ getChild<LLUICtrl>("content_type")->setValue(mature ? mature_str : pg_str);
getChild<LLIconCtrl>("content_type_moderate")->setVisible(mature);
getChild<LLIconCtrl>("content_type_general")->setVisible(!mature);
std::string auto_renew_str = is_cf_auto_renew(c_info->flags) ?
getString("auto_renew_on") : getString("auto_renew_off");
- childSetValue("auto_renew", auto_renew_str);
+ getChild<LLUICtrl>("auto_renew")->setValue(auto_renew_str);
price_str.setArg("[PRICE]", llformat("%d", c_info->price_for_listing));
- childSetValue("price_for_listing", LLSD(price_str));
+ getChild<LLUICtrl>("price_for_listing")->setValue(LLSD(price_str));
std::string date_str = date_fmt;
LLStringUtil::format(date_str, LLSD().with("datetime", (S32) c_info->creation_date));
- childSetText("creation_date", date_str);
+ getChild<LLUICtrl>("creation_date")->setValue(date_str);
setInfoLoaded(true);
}
@@ -1364,13 +305,13 @@ void LLPanelClassifiedInfo::resetData()
mMapClicksNew = 0;
mProfileClicksNew = 0;
- childSetText("category", LLStringUtil::null);
- childSetText("content_type", LLStringUtil::null);
- childSetText("click_through_text", LLStringUtil::null);
- childSetText("price_for_listing", LLStringUtil::null);
- childSetText("auto_renew", LLStringUtil::null);
- childSetText("creation_date", LLStringUtil::null);
- childSetText("click_through_text", LLStringUtil::null);
+ getChild<LLUICtrl>("category")->setValue(LLStringUtil::null);
+ getChild<LLUICtrl>("content_type")->setValue(LLStringUtil::null);
+ getChild<LLUICtrl>("click_through_text")->setValue(LLStringUtil::null);
+ getChild<LLUICtrl>("price_for_listing")->setValue(LLStringUtil::null);
+ getChild<LLUICtrl>("auto_renew")->setValue(LLStringUtil::null);
+ getChild<LLUICtrl>("creation_date")->setValue(LLStringUtil::null);
+ getChild<LLUICtrl>("click_through_text")->setValue(LLStringUtil::null);
getChild<LLIconCtrl>("content_type_moderate")->setVisible(FALSE);
getChild<LLIconCtrl>("content_type_general")->setVisible(FALSE);
}
@@ -1379,40 +320,40 @@ void LLPanelClassifiedInfo::resetControls()
{
bool is_self = getAvatarId() == gAgent.getID();
- childSetEnabled("edit_btn", is_self);
- childSetVisible("edit_btn", is_self);
- childSetVisible("price_layout_panel", is_self);
- childSetVisible("clickthrough_layout_panel", is_self);
+ getChildView("edit_btn")->setEnabled(is_self);
+ getChildView("edit_btn")->setVisible( is_self);
+ getChildView("price_layout_panel")->setVisible( is_self);
+ getChildView("clickthrough_layout_panel")->setVisible( is_self);
}
void LLPanelClassifiedInfo::setClassifiedName(const std::string& name)
{
- childSetValue("classified_name", name);
+ getChild<LLUICtrl>("classified_name")->setValue(name);
}
std::string LLPanelClassifiedInfo::getClassifiedName()
{
- return childGetValue("classified_name").asString();
+ return getChild<LLUICtrl>("classified_name")->getValue().asString();
}
void LLPanelClassifiedInfo::setDescription(const std::string& desc)
{
- childSetValue("classified_desc", desc);
+ getChild<LLUICtrl>("classified_desc")->setValue(desc);
}
std::string LLPanelClassifiedInfo::getDescription()
{
- return childGetValue("classified_desc").asString();
+ return getChild<LLUICtrl>("classified_desc")->getValue().asString();
}
void LLPanelClassifiedInfo::setClassifiedLocation(const std::string& location)
{
- childSetValue("classified_location", location);
+ getChild<LLUICtrl>("classified_location")->setValue(location);
}
std::string LLPanelClassifiedInfo::getClassifiedLocation()
{
- return childGetValue("classified_location").asString();
+ return getChild<LLUICtrl>("classified_location")->getValue().asString();
}
void LLPanelClassifiedInfo::setSnapshotId(const LLUUID& id)
@@ -1435,7 +376,7 @@ void LLPanelClassifiedInfo::draw()
LLUUID LLPanelClassifiedInfo::getSnapshotId()
{
- return childGetValue("classified_snapshot").asUUID();
+ return getChild<LLUICtrl>("classified_snapshot")->getValue().asUUID();
}
// static
@@ -1490,9 +431,9 @@ void LLPanelClassifiedInfo::setClickThrough(
ct_str.setArg("[MAP]", llformat("%d", self->mMapClicksNew + self->mMapClicksOld));
ct_str.setArg("[PROFILE]", llformat("%d", self->mProfileClicksNew + self->mProfileClicksOld));
- self->childSetText("click_through_text", ct_str.getString());
+ self->getChild<LLUICtrl>("click_through_text")->setValue(ct_str.getString());
// *HACK: remove this when there is enough room for click stats in the info panel
- self->childSetToolTip("click_through_text", ct_str.getString());
+ self->getChildView("click_through_text")->setToolTip(ct_str.getString());
llinfos << "teleport: " << llformat("%d", self->mTeleportClicksNew + self->mTeleportClicksOld)
<< ", map: " << llformat("%d", self->mMapClicksNew + self->mMapClicksOld)
@@ -1670,7 +611,7 @@ LLPanelClassifiedEdit::~LLPanelClassifiedEdit()
LLPanelClassifiedEdit* LLPanelClassifiedEdit::create()
{
LLPanelClassifiedEdit* panel = new LLPanelClassifiedEdit();
- LLUICtrlFactory::getInstance()->buildPanel(panel, "panel_edit_classified.xml");
+ panel->buildFromFile("panel_edit_classified.xml");
return panel;
}
@@ -1740,8 +681,8 @@ void LLPanelClassifiedEdit::fillIn(const LLSD& key)
region_name = region->getName();
}
- childSetValue("classified_name", makeClassifiedName());
- childSetValue("classified_desc", desc);
+ getChild<LLUICtrl>("classified_name")->setValue(makeClassifiedName());
+ getChild<LLUICtrl>("classified_desc")->setValue(desc);
setSnapshotId(snapshot_id);
setClassifiedLocation(createLocationText(getLocationNotice(), region_name, getPosGlobal()));
// server will set valid parcel id
@@ -1756,8 +697,8 @@ void LLPanelClassifiedEdit::fillIn(const LLSD& key)
setCategory((U32)key["category"].asInteger());
setContentType((U32)key["content_type"].asInteger());
setClassifiedLocation(key["location_text"]);
- childSetValue("auto_renew", key["auto_renew"]);
- childSetValue("price_for_listing", key["price_for_listing"].asInteger());
+ getChild<LLUICtrl>("auto_renew")->setValue(key["auto_renew"]);
+ getChild<LLUICtrl>("price_for_listing")->setValue(key["price_for_listing"].asInteger());
}
}
@@ -1788,10 +729,11 @@ void LLPanelClassifiedEdit::onOpen(const LLSD& key)
}
std::string save_btn_label = is_new ? getString("publish_label") : getString("save_label");
- childSetLabelArg("save_changes_btn", "[LABEL]", save_btn_label);
+ getChild<LLUICtrl>("save_changes_btn")->setLabelArg("[LABEL]", save_btn_label);
enableVerbs(is_new);
enableEditing(is_new);
+ showEditing(!is_new);
resetDirty();
setInfoLoaded(false);
}
@@ -1826,16 +768,16 @@ void LLPanelClassifiedEdit::processProperties(void* data, EAvatarProcessorType t
bool auto_renew = is_cf_auto_renew(c_info->flags);
setContentType(mature ? CB_ITEM_MATURE : CB_ITEM_PG);
- childSetValue("auto_renew", auto_renew);
- childSetValue("price_for_listing", c_info->price_for_listing);
- childSetEnabled("price_for_listing", isNew());
+ getChild<LLUICtrl>("auto_renew")->setValue(auto_renew);
+ getChild<LLUICtrl>("price_for_listing")->setValue(c_info->price_for_listing);
+ getChildView("price_for_listing")->setEnabled(isNew());
resetDirty();
setInfoLoaded(true);
enableVerbs(false);
// for just created classified - in case user opened edit panel before processProperties() callback
- childSetLabelArg("save_changes_btn", "[LABEL]", getString("save_label"));
+ getChild<LLUICtrl>("save_changes_btn")->setLabelArg("[LABEL]", getString("save_label"));
}
}
}
@@ -1894,9 +836,9 @@ void LLPanelClassifiedEdit::resetControls()
getChild<LLComboBox>("category")->setCurrentByIndex(0);
getChild<LLComboBox>("content_type")->setCurrentByIndex(0);
- childSetValue("auto_renew", false);
- childSetValue("price_for_listing", MINIMUM_PRICE_FOR_LISTING);
- childSetEnabled("price_for_listing", TRUE);
+ getChild<LLUICtrl>("auto_renew")->setValue(false);
+ getChild<LLUICtrl>("price_for_listing")->setValue(MINIMUM_PRICE_FOR_LISTING);
+ getChildView("price_for_listing")->setEnabled(TRUE);
}
bool LLPanelClassifiedEdit::canClose()
@@ -1935,7 +877,7 @@ void LLPanelClassifiedEdit::setContentType(U32 content_type)
bool LLPanelClassifiedEdit::getAutoRenew()
{
- return childGetValue("auto_renew").asBoolean();
+ return getChild<LLUICtrl>("auto_renew")->getValue().asBoolean();
}
void LLPanelClassifiedEdit::sendUpdate()
@@ -1986,7 +928,7 @@ void LLPanelClassifiedEdit::setCategory(U32 category)
U8 LLPanelClassifiedEdit::getFlags()
{
- bool auto_renew = childGetValue("auto_renew").asBoolean();
+ bool auto_renew = getChild<LLUICtrl>("auto_renew")->getValue().asBoolean();
LLComboBox* content_cb = getChild<LLComboBox>("content_type");
bool mature = content_cb->getCurrentIndex() == CB_ITEM_MATURE;
@@ -1996,19 +938,25 @@ U8 LLPanelClassifiedEdit::getFlags()
void LLPanelClassifiedEdit::enableVerbs(bool enable)
{
- childSetEnabled("save_changes_btn", enable);
+ getChildView("save_changes_btn")->setEnabled(enable);
}
void LLPanelClassifiedEdit::enableEditing(bool enable)
{
- childSetEnabled("classified_snapshot", enable);
- childSetEnabled("classified_name", enable);
- childSetEnabled("classified_desc", enable);
- childSetEnabled("set_to_curr_location_btn", enable);
- childSetEnabled("category", enable);
- childSetEnabled("content_type", enable);
- childSetEnabled("price_for_listing", enable);
- childSetEnabled("auto_renew", enable);
+ getChildView("classified_snapshot")->setEnabled(enable);
+ getChildView("classified_name")->setEnabled(enable);
+ getChildView("classified_desc")->setEnabled(enable);
+ getChildView("set_to_curr_location_btn")->setEnabled(enable);
+ getChildView("category")->setEnabled(enable);
+ getChildView("content_type")->setEnabled(enable);
+ getChildView("price_for_listing")->setEnabled(enable);
+ getChildView("auto_renew")->setEnabled(enable);
+}
+
+void LLPanelClassifiedEdit::showEditing(bool show)
+{
+ getChildView("price_for_listing_label")->setVisible( show);
+ getChildView("price_for_listing")->setVisible( show);
}
std::string LLPanelClassifiedEdit::makeClassifiedName()
@@ -2037,12 +985,12 @@ std::string LLPanelClassifiedEdit::makeClassifiedName()
S32 LLPanelClassifiedEdit::getPriceForListing()
{
- return childGetValue("price_for_listing").asInteger();
+ return getChild<LLUICtrl>("price_for_listing")->getValue().asInteger();
}
void LLPanelClassifiedEdit::setPriceForListing(S32 price)
{
- childSetValue("price_for_listing", price);
+ getChild<LLUICtrl>("price_for_listing")->setValue(price);
}
void LLPanelClassifiedEdit::onSetLocationClick()
@@ -2200,12 +1148,12 @@ BOOL LLPublishClassifiedFloater::postBuild()
void LLPublishClassifiedFloater::setPrice(S32 price)
{
- childSetValue("price_for_listing", price);
+ getChild<LLUICtrl>("price_for_listing")->setValue(price);
}
S32 LLPublishClassifiedFloater::getPrice()
{
- return childGetValue("price_for_listing").asInteger();
+ return getChild<LLUICtrl>("price_for_listing")->getValue().asInteger();
}
void LLPublishClassifiedFloater::setPublishClickedCallback(const commit_signal_t::slot_type& cb)
diff --git a/indra/newview/llpanelclassified.h b/indra/newview/llpanelclassified.h
index 1157649a16..cedd65c405 100644
--- a/indra/newview/llpanelclassified.h
+++ b/indra/newview/llpanelclassified.h
@@ -2,205 +2,45 @@
* @file llpanelclassified.h
* @brief LLPanelClassified class definition
*
- * $LicenseInfo:firstyear=2005&license=viewergpl$
- *
- * Copyright (c) 2005-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
// Display of a classified used both for the global view in the
// Find directory, and also for each individual user's classified in their
// profile.
-
#ifndef LL_LLPANELCLASSIFIED_H
#define LL_LLPANELCLASSIFIED_H
#include "llavatarpropertiesprocessor.h"
-#include "llpanel.h"
#include "llclassifiedinfo.h"
-#include "v3dmath.h"
-#include "lluuid.h"
#include "llfloater.h"
-//#include "llrect.h"
-
-class LLButton;
-class LLCheckBoxCtrl;
-class LLComboBox;
-class LLIconCtrl;
-class LLLineEditor;
-class LLTextBox;
-class LLTextEditor;
+#include "llpanel.h"
+#include "llrect.h"
+#include "lluuid.h"
+#include "v3dmath.h"
+
+class LLScrollContainer;
class LLTextureCtrl;
class LLUICtrl;
-class LLMessageSystem;
-class LLScrollContainer;
-
-// *TODO deprecated, should be removed.
-// New class implemented in ticket EXT-2095
-class LLPanelClassified : public LLPanel
-{
-public:
- LLPanelClassified(bool in_finder, bool from_search);
- /*virtual*/ ~LLPanelClassified();
-
- void reset();
-
- /*virtual*/ BOOL postBuild();
-
- /*virtual*/ void draw();
-
- /*virtual*/ void refresh();
-
- void apply();
-
- // If can close, return TRUE. If cannot close, pop save/discard dialog
- // and return FALSE.
- BOOL canClose();
-
- // Setup a new classified, including creating an id, giving a sane
- // initial position, etc.
- void initNewClassified();
-
- void setClassifiedID(const LLUUID& id);
- void setClickThroughText(const std::string& text);
- static void setClickThrough(const LLUUID& classified_id,
- S32 teleport, S32 map, S32 profile, bool from_new_table);
-
- // check that the title is valid (E.G. starts with a number or letter)
- BOOL titleIsValid();
-
- // Schedules the panel to request data
- // from the server next time it is drawn.
- void markForServerRequest();
-
- std::string getClassifiedName();
- const LLUUID& getClassifiedID() const { return mClassifiedID; }
-
- void sendClassifiedInfoRequest();
- void sendClassifiedInfoUpdate();
- void resetDirty();
-
- static void processClassifiedInfoReply(LLMessageSystem* msg, void**);
-
- // Confirmation dialogs flow in this order
- bool confirmMature(const LLSD& notification, const LLSD& response);
- void gotMature();
- static void callbackGotPriceForListing(S32 option, std::string text, void* data);
- bool confirmPublish(const LLSD& notification, const LLSD& response);
-
- void sendClassifiedClickMessage(const std::string& type);
-
-protected:
- bool saveCallback(const LLSD& notification, const LLSD& response);
-
- static void onClickUpdate(void* data);
- static void onClickTeleport(void* data);
- static void onClickMap(void* data);
- static void onClickProfile(void* data);
- static void onClickSet(void* data);
-
- static void focusReceived(LLFocusableElement* ctrl, void* data);
- static void onCommitAny(LLUICtrl* ctrl, void* data);
-
- void setDefaultAccessCombo(); // Default AO and PG regions to proper classified access
-
- BOOL checkDirty(); // Update and return mDirty
-
-protected:
- bool mInFinder;
- bool mFromSearch; // from web-based "All" search sidebar
- BOOL mDirty;
- bool mForceClose;
- bool mLocationChanged;
- LLUUID mClassifiedID;
- LLUUID mRequestedID;
- LLUUID mCreatorID;
- LLUUID mParcelID;
- S32 mPriceForListing;
-
- // Needed for stat tracking
- S32 mTeleportClicksOld;
- S32 mMapClicksOld;
- S32 mProfileClicksOld;
- S32 mTeleportClicksNew;
- S32 mMapClicksNew;
- S32 mProfileClicksNew;
-
- // Data will be requested on first draw
- BOOL mDataRequested;
-
- // For avatar panel classifieds only, has the user been charged
- // yet for this classified? That is, have they saved once?
- BOOL mPaidFor;
-
- std::string mSimName;
- LLVector3d mPosGlobal;
-
- // Values the user may change
- LLTextureCtrl* mSnapshotCtrl;
- LLLineEditor* mNameEditor;
- LLTextEditor* mDescEditor;
- LLLineEditor* mLocationEditor;
- LLComboBox* mCategoryCombo;
- LLComboBox* mMatureCombo;
- LLCheckBoxCtrl* mAutoRenewCheck;
-
- LLButton* mUpdateBtn;
- LLButton* mTeleportBtn;
- LLButton* mMapBtn;
- LLButton* mProfileBtn;
-
- LLTextBox* mInfoText;
- LLButton* mSetBtn;
- LLTextBox* mClickThroughText;
-
- LLRect mSnapshotSize;
- typedef std::list<LLPanelClassified*> panel_list_t;
- static panel_list_t sAllPanels;
-};
-
-
-class LLFloaterPriceForListing
-: public LLFloater
-{
-public:
- LLFloaterPriceForListing();
- virtual ~LLFloaterPriceForListing();
- virtual BOOL postBuild();
-
- static void show( void (*callback)(S32 option, std::string value, void* userdata), void* userdata );
-
-private:
- static void onClickSetPrice(void*);
- static void onClickCancel(void*);
- static void buttonCore(S32 button, void* data);
-
-private:
- void (*mCallback)(S32 option, std::string, void*);
- void* mUserData;
-};
class LLPublishClassifiedFloater : public LLFloater
{
@@ -416,6 +256,8 @@ protected:
void enableEditing(bool enable);
+ void showEditing(bool show);
+
std::string makeClassifiedName();
void setPriceForListing(S32 price);
diff --git a/indra/newview/llpanelcontents.cpp b/indra/newview/llpanelcontents.cpp
index f4c0a842e7..bf3bf38863 100644
--- a/indra/newview/llpanelcontents.cpp
+++ b/indra/newview/llpanelcontents.cpp
@@ -2,31 +2,25 @@
* @file llpanelcontents.cpp
* @brief Object contents panel in the tools floater.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -113,7 +107,7 @@ void LLPanelContents::getState(LLViewerObject *objectp )
{
if( !objectp )
{
- childSetEnabled("button new script",FALSE);
+ getChildView("button new script")->setEnabled(FALSE);
return;
}
@@ -127,7 +121,7 @@ void LLPanelContents::getState(LLViewerObject *objectp )
BOOL all_volume = LLSelectMgr::getInstance()->selectionAllPCode( LL_PCODE_VOLUME );
// Edit script button - ok if object is editable and there's an unambiguous destination for the object.
- childSetEnabled("button new script",
+ getChildView("button new script")->setEnabled(
editable &&
all_volume &&
((LLSelectMgr::getInstance()->getSelection()->getRootObjectCount() == 1)
diff --git a/indra/newview/llpanelcontents.h b/indra/newview/llpanelcontents.h
index 14256845a6..62ccb64a4c 100644
--- a/indra/newview/llpanelcontents.h
+++ b/indra/newview/llpanelcontents.h
@@ -2,31 +2,25 @@
* @file llpanelcontents.h
* @brief Object contents panel in the tools floater.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llpaneleditwearable.cpp b/indra/newview/llpaneleditwearable.cpp
index 4402b2130f..90ed8b9e58 100644
--- a/indra/newview/llpaneleditwearable.cpp
+++ b/indra/newview/llpaneleditwearable.cpp
@@ -2,31 +2,25 @@
* @file llpaneleditwearable.cpp
* @brief UI panel for editing of a particular wearable item.
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -47,6 +41,7 @@
#include "llvoavatarself.h"
#include "lltexteditor.h"
#include "lltextbox.h"
+#include "llaccordionctrl.h"
#include "llaccordionctrltab.h"
#include "llagentwearables.h"
#include "llscrollingpanelparam.h"
@@ -63,6 +58,7 @@
#include "llcommandhandler.h"
#include "lltextutil.h"
+#include "llappearancemgr.h"
// register panel with appropriate XML
static LLRegisterPanelClassWrapper<LLPanelEditWearable> t_edit_wearable("panel_edit_wearable");
@@ -382,6 +378,31 @@ LLEditWearableDictionary::PickerControlEntry::PickerControlEntry(ETextureIndex t
{
}
+/**
+ * Class to prevent hack in LLButton's constructor and use paddings declared in xml.
+ */
+class LLLabledBackButton : public LLButton
+{
+public:
+ struct Params : public LLInitParam::Block<Params, LLButton::Params>
+ {
+ Params() {}
+ };
+protected:
+ friend class LLUICtrlFactory;
+ LLLabledBackButton(const Params&);
+};
+
+static LLDefaultChildRegistry::Register<LLLabledBackButton> labeled_back_btn("labeled_back_button");
+
+LLLabledBackButton::LLLabledBackButton(const Params& params)
+: LLButton(params)
+{
+ // override hack in LLButton's constructor to use paddings have been set in xml
+ setLeftHPad(params.pad_left);
+ setRightHPad(params.pad_right);
+}
+
// Helper functions.
static const texture_vec_t null_texture_vec;
@@ -640,6 +661,35 @@ void LLPanelEditWearable::updateAvatarHeightLabel()
mTxtAvatarHeight->appendText(this->mReplacementMetricUrl, false, param);
}
+void LLPanelEditWearable::onWearablePanelVisibilityChange(const LLSD &in_visible_chain, LLAccordionCtrl* accordion_ctrl)
+{
+ if (in_visible_chain.asBoolean() && accordion_ctrl != NULL)
+ {
+ accordion_ctrl->expandDefaultTab();
+ }
+}
+
+void LLPanelEditWearable::setWearablePanelVisibilityChangeCallback(LLPanel* bodypart_panel)
+{
+ if (bodypart_panel != NULL)
+ {
+ LLAccordionCtrl* accordion_ctrl = bodypart_panel->getChild<LLAccordionCtrl>("wearable_accordion");
+
+ if (accordion_ctrl != NULL)
+ {
+ bodypart_panel->setVisibleCallback(
+ boost::bind(&LLPanelEditWearable::onWearablePanelVisibilityChange, this, _2, accordion_ctrl));
+ }
+ else
+ {
+ llwarns << "accordion_ctrl is NULL" << llendl;
+ }
+ }
+ else
+ {
+ llwarns << "bodypart_panel is NULL" << llendl;
+ }
+}
// virtual
BOOL LLPanelEditWearable::postBuild()
@@ -649,6 +699,8 @@ BOOL LLPanelEditWearable::postBuild()
mBtnRevert->setClickedCallback(boost::bind(&LLPanelEditWearable::onRevertButtonClicked, this));
mBtnBack = getChild<LLButton>("back_btn");
+ mBackBtnLabel = mBtnBack->getLabelUnselected();
+ mBtnBack->setLabel(LLStringUtil::null);
// handled at appearance panel level?
//mBtnBack->setClickedCallback(boost::bind(&LLPanelEditWearable::onBackButtonClicked, this));
@@ -667,6 +719,14 @@ BOOL LLPanelEditWearable::postBuild()
mPanelEyes = getChild<LLPanel>("edit_eyes_panel");
mPanelHair = getChild<LLPanel>("edit_hair_panel");
+ // Setting the visibility callback is applied only to the bodyparts panel
+ // because currently they are the only ones whose 'wearable_accordion' has
+ // multiple accordion tabs (see EXT-8164 for details).
+ setWearablePanelVisibilityChangeCallback(mPanelShape);
+ setWearablePanelVisibilityChangeCallback(mPanelSkin);
+ setWearablePanelVisibilityChangeCallback(mPanelEyes);
+ setWearablePanelVisibilityChangeCallback(mPanelHair);
+
//clothes
mPanelShirt = getChild<LLPanel>("edit_shirt_panel");
mPanelPants = getChild<LLPanel>("edit_pants_panel");
@@ -758,7 +818,7 @@ BOOL LLPanelEditWearable::isDirty() const
if (mWearablePtr)
{
if (mWearablePtr->isDirty() ||
- mWearablePtr->getName().compare(mNameEditor->getText()) != 0)
+ mWearableItem->getName().compare(mNameEditor->getText()) != 0)
{
isDirty = TRUE;
}
@@ -778,6 +838,15 @@ void LLPanelEditWearable::draw()
LLPanel::draw();
}
+void LLPanelEditWearable::setVisible(BOOL visible)
+{
+ if (!visible)
+ {
+ showWearable(mWearablePtr, FALSE);
+ }
+ LLPanel::setVisible(visible);
+}
+
void LLPanelEditWearable::setWearable(LLWearable *wearable)
{
showWearable(mWearablePtr, FALSE);
@@ -811,7 +880,7 @@ void LLPanelEditWearable::saveAsCallback(const LLSD& notification, const LLSD& r
if( !wearable_name.empty() )
{
mNameEditor->setText(wearable_name);
- saveChanges();
+ saveChanges(true);
}
}
}
@@ -868,7 +937,7 @@ void LLPanelEditWearable::onTexturePickerCommit(const LLUICtrl* ctrl)
{
// Set the new version
LLViewerFetchedTexture* image = LLViewerTextureManager::getFetchedTexture(texture_ctrl->getImageAssetID());
- if( image->getID().isNull() )
+ if( image->getID() == IMG_DEFAULT )
{
image = LLViewerTextureManager::getFetchedTexture(IMG_DEFAULT_AVATAR);
}
@@ -920,7 +989,6 @@ void LLPanelEditWearable::updatePanelPickerControls(LLWearableType::EType type)
return;
bool is_modifiable = false;
- bool is_complete = false;
bool is_copyable = false;
if(mWearableItem)
@@ -928,17 +996,15 @@ void LLPanelEditWearable::updatePanelPickerControls(LLWearableType::EType type)
const LLPermissions& perm = mWearableItem->getPermissions();
is_modifiable = perm.allowModifyBy(gAgent.getID(), gAgent.getGroupID());
is_copyable = perm.allowCopyBy(gAgent.getID(), gAgent.getGroupID());
- is_complete = mWearableItem->isFinished();
}
- if (is_modifiable && is_complete)
+ if (is_modifiable)
{
// Update picker controls
for_each_picker_ctrl_entry <LLColorSwatchCtrl> (panel, type, boost::bind(update_color_swatch_ctrl, this, _1, _2));
for_each_picker_ctrl_entry <LLTextureCtrl> (panel, type, boost::bind(update_texture_ctrl, this, _1, _2));
}
-
- if (!is_modifiable || !is_complete || !is_copyable)
+ else
{
// Disable controls
for_each_picker_ctrl_entry <LLColorSwatchCtrl> (panel, type, boost::bind(set_enabled_color_swatch_ctrl, false, _1, _2));
@@ -946,7 +1012,7 @@ void LLPanelEditWearable::updatePanelPickerControls(LLWearableType::EType type)
}
}
-void LLPanelEditWearable::saveChanges()
+void LLPanelEditWearable::saveChanges(bool force_save_as)
{
if (!mWearablePtr || !isDirty())
{
@@ -955,15 +1021,18 @@ void LLPanelEditWearable::saveChanges()
}
U32 index = gAgentWearables.getWearableIndex(mWearablePtr);
-
- if (mWearablePtr->getName().compare(mNameEditor->getText()) != 0)
+
+ std::string new_name = mNameEditor->getText();
+ if (force_save_as)
{
// the name of the wearable has changed, re-save wearable with new name
- gAgentWearables.saveWearableAs(mWearablePtr->getType(), index, mNameEditor->getText(), FALSE);
+ LLAppearanceMgr::instance().removeCOFItemLinks(mWearablePtr->getItemID(),false);
+ gAgentWearables.saveWearableAs(mWearablePtr->getType(), index, new_name, FALSE);
+ mNameEditor->setText(mWearableItem->getName());
}
else
{
- gAgentWearables.saveWearable(mWearablePtr->getType(), index);
+ gAgentWearables.saveWearable(mWearablePtr->getType(), index, TRUE, new_name);
}
}
@@ -976,7 +1045,10 @@ void LLPanelEditWearable::revertChanges()
}
mWearablePtr->revertValues();
- mNameEditor->setText(mWearablePtr->getName());
+ mNameEditor->setText(mWearableItem->getName());
+ updatePanelPickerControls(mWearablePtr->getType());
+ updateTypeSpecificControls(mWearablePtr->getType());
+ gAgentAvatarp->wearableUpdated(mWearablePtr->getType(), FALSE);
}
void LLPanelEditWearable::showWearable(LLWearable* wearable, BOOL show)
@@ -1015,10 +1087,11 @@ void LLPanelEditWearable::showWearable(LLWearable* wearable, BOOL show)
if (show)
{
mPanelTitle->setText(title);
+ mPanelTitle->setToolTip(title);
mDescTitle->setText(description_title);
// set name
- mNameEditor->setText(wearable->getName());
+ mNameEditor->setText(mWearableItem->getName());
updatePanelPickerControls(type);
updateTypeSpecificControls(type);
@@ -1126,7 +1199,6 @@ void LLPanelEditWearable::changeCamera(U8 subpart)
}
// Update the camera
- gMorphView->setCameraDistToDefault();
gMorphView->setCameraTargetJoint( gAgentAvatarp->getJoint( subpart_entry->mTargetJoint ) );
gMorphView->setCameraTargetOffset( subpart_entry->mTargetOffset );
gMorphView->setCameraOffset( subpart_entry->mCameraOffset );
@@ -1146,9 +1218,9 @@ void LLPanelEditWearable::toggleTypeSpecificControls(LLWearableType::EType type)
// Toggle controls specific to shape editing panel.
{
bool is_shape = (type == LLWearableType::WT_SHAPE);
- childSetVisible("sex_radio", is_shape);
- childSetVisible("female_icon", is_shape);
- childSetVisible("male_icon", is_shape);
+ getChildView("sex_radio")->setVisible( is_shape);
+ getChildView("female_icon")->setVisible( is_shape);
+ getChildView("male_icon")->setVisible( is_shape);
}
}
@@ -1302,8 +1374,8 @@ void LLPanelEditWearable::getSortedParams(value_map_t &sorted_params, const std:
{
LLViewerVisualParam *param = (LLViewerVisualParam*) *iter;
- if (param->getID() == -1
- || param->getGroup() != VISUAL_PARAM_GROUP_TWEAKABLE
+ if (param->getID() == -1
+ || !param->isTweakable()
|| param->getEditGroup() != edit_group
|| !(param->getSex() & avatar_sex))
{
@@ -1348,7 +1420,7 @@ void LLPanelEditWearable::updateVerbs()
BOOL is_dirty = isDirty();
mBtnRevert->setEnabled(is_dirty);
- childSetEnabled("save_as_button", is_dirty && can_copy);
+ getChildView("save_as_button")->setEnabled(is_dirty && can_copy);
if(isAgentAvatarValid())
{
@@ -1357,6 +1429,28 @@ void LLPanelEditWearable::updateVerbs()
gSavedSettings.setU32("AvatarSex", (gAgentAvatarp->getSex() == SEX_MALE) );
}
+ // update back button and title according to dirty state.
+ static BOOL was_dirty = FALSE;
+ if (was_dirty != is_dirty) // to avoid redundant changes because this method is called from draw
+ {
+ static S32 label_width = mBtnBack->getFont()->getWidth(mBackBtnLabel);
+ const std::string& label = is_dirty ? mBackBtnLabel : LLStringUtil::null;
+ const S32 delta_width = is_dirty ? label_width : -label_width;
+
+ mBtnBack->setLabel(label);
+
+ // update rect according to label width
+ LLRect rect = mBtnBack->getRect();
+ rect.mRight += delta_width;
+ mBtnBack->setShape(rect);
+
+ // update title rect according to back button width
+ rect = mPanelTitle->getRect();
+ rect.mLeft += delta_width;
+ mPanelTitle->setShape(rect);
+
+ was_dirty = is_dirty;
+ }
}
void LLPanelEditWearable::configureAlphaCheckbox(LLVOAvatarDefines::ETextureIndex te, const std::string& name)
diff --git a/indra/newview/llpaneleditwearable.h b/indra/newview/llpaneleditwearable.h
index 61441435cd..43513d8ab3 100644
--- a/indra/newview/llpaneleditwearable.h
+++ b/indra/newview/llpaneleditwearable.h
@@ -2,31 +2,25 @@
* @file llpaneleditwearable.h
* @brief A LLPanel dedicated to the editing of wearables.
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -39,6 +33,7 @@
#include "llvoavatardefines.h"
#include "llwearabletype.h"
+class LLAccordionCtrl;
class LLCheckBoxCtrl;
class LLWearable;
class LLTextBox;
@@ -63,7 +58,7 @@ public:
LLWearable* getWearable() { return mWearablePtr; }
void setWearable(LLWearable *wearable);
- void saveChanges();
+ void saveChanges(bool force_save_as = false);
void revertChanges();
void showDefaultSubpart();
@@ -76,6 +71,8 @@ public:
void onSaveAsButtonClicked();
void saveAsCallback(const LLSD& notification, const LLSD& response);
+ virtual void setVisible(BOOL visible);
+
private:
typedef std::map<F32, LLViewerVisualParam*> value_map_t;
@@ -113,6 +110,10 @@ private:
// updates avatar height label
void updateAvatarHeightLabel();
+ void onWearablePanelVisibilityChange(const LLSD &in_visible_chain, LLAccordionCtrl* accordion_ctrl);
+
+ void setWearablePanelVisibilityChangeCallback(LLPanel* bodypart_panel);
+
// the pointer to the wearable we're editing. NULL means we're not editing a wearable.
LLWearable *mWearablePtr;
LLViewerInventoryItem* mWearableItem;
@@ -120,6 +121,7 @@ private:
// these are constant no matter what wearable we're editing
LLButton *mBtnRevert;
LLButton *mBtnBack;
+ std::string mBackBtnLabel;
LLTextBox *mPanelTitle;
LLTextBox *mDescTitle;
diff --git a/indra/newview/llpanelface.cpp b/indra/newview/llpanelface.cpp
index b50c6442e1..bce496cbad 100644
--- a/indra/newview/llpanelface.cpp
+++ b/indra/newview/llpanelface.cpp
@@ -2,31 +2,25 @@
* @file llpanelface.cpp
* @brief Panel in the tools floater for editing face textures, colors, etc.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -48,6 +42,7 @@
#include "llcolorswatch.h"
#include "llcombobox.h"
#include "lldrawpoolbump.h"
+#include "llface.h"
#include "lllineeditor.h"
#include "llmediaentry.h"
#include "llresmgr.h"
@@ -81,6 +76,7 @@ BOOL LLPanelFace::postBuild()
childSetCommitCallback("checkbox flip t",&LLPanelFace::onCommitTextureInfo, this);
childSetCommitCallback("TexRot",&LLPanelFace::onCommitTextureInfo, this);
childSetAction("button apply",&LLPanelFace::onClickApply,this);
+ childSetCommitCallback("checkbox planar align",&LLPanelFace::onCommitPlanarAlign, this);
childSetCommitCallback("TexOffsetU",LLPanelFace::onCommitTextureInfo, this);
childSetCommitCallback("TexOffsetV",LLPanelFace::onCommitTextureInfo, this);
childSetAction("button align",&LLPanelFace::onClickAutoFix,this);
@@ -365,6 +361,93 @@ private:
LLPanelFace* mPanel;
};
+// Functor that aligns a face to mCenterFace
+struct LLPanelFaceSetAlignedTEFunctor : public LLSelectedTEFunctor
+{
+ LLPanelFaceSetAlignedTEFunctor(LLPanelFace* panel, LLFace* center_face) :
+ mPanel(panel),
+ mCenterFace(center_face) {}
+
+ virtual bool apply(LLViewerObject* object, S32 te)
+ {
+ LLFace* facep = object->mDrawable->getFace(te);
+ if (!facep)
+ {
+ return true;
+ }
+
+ bool set_aligned = true;
+ if (facep == mCenterFace)
+ {
+ set_aligned = false;
+ }
+ if (set_aligned)
+ {
+ LLVector2 uv_offset, uv_scale;
+ F32 uv_rot;
+ set_aligned = facep->calcAlignedPlanarTE(mCenterFace, &uv_offset, &uv_scale, &uv_rot);
+ if (set_aligned)
+ {
+ object->setTEOffset(te, uv_offset.mV[VX], uv_offset.mV[VY]);
+ object->setTEScale(te, uv_scale.mV[VX], uv_scale.mV[VY]);
+ object->setTERotation(te, uv_rot);
+ }
+ }
+ if (!set_aligned)
+ {
+ LLPanelFaceSetTEFunctor setfunc(mPanel);
+ setfunc.apply(object, te);
+ }
+ return true;
+ }
+private:
+ LLPanelFace* mPanel;
+ LLFace* mCenterFace;
+};
+
+// Functor that tests if a face is aligned to mCenterFace
+struct LLPanelFaceGetIsAlignedTEFunctor : public LLSelectedTEFunctor
+{
+ LLPanelFaceGetIsAlignedTEFunctor(LLFace* center_face) :
+ mCenterFace(center_face) {}
+
+ virtual bool apply(LLViewerObject* object, S32 te)
+ {
+ LLFace* facep = object->mDrawable->getFace(te);
+ if (!facep)
+ {
+ return false;
+ }
+ if (facep == mCenterFace)
+ {
+ return true;
+ }
+
+ LLVector2 aligned_st_offset, aligned_st_scale;
+ F32 aligned_st_rot;
+ if ( facep->calcAlignedPlanarTE(mCenterFace, &aligned_st_offset, &aligned_st_scale, &aligned_st_rot) )
+ {
+ const LLTextureEntry* tep = facep->getTextureEntry();
+ LLVector2 st_offset, st_scale;
+ tep->getOffset(&st_offset.mV[VX], &st_offset.mV[VY]);
+ tep->getScale(&st_scale.mV[VX], &st_scale.mV[VY]);
+ F32 st_rot = tep->getRotation();
+ // needs a fuzzy comparison, because of fp errors
+ if (is_approx_equal_fraction(st_offset.mV[VX], aligned_st_offset.mV[VX], 12) &&
+ is_approx_equal_fraction(st_offset.mV[VY], aligned_st_offset.mV[VY], 12) &&
+ is_approx_equal_fraction(st_scale.mV[VX], aligned_st_scale.mV[VX], 12) &&
+ is_approx_equal_fraction(st_scale.mV[VY], aligned_st_scale.mV[VY], 12) &&
+ is_approx_equal_fraction(st_rot, aligned_st_rot, 14))
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+private:
+ LLFace* mCenterFace;
+};
+
struct LLPanelFaceSendFunctor : public LLSelectedObjectFunctor
{
virtual bool apply(LLViewerObject* object)
@@ -376,8 +459,26 @@ struct LLPanelFaceSendFunctor : public LLSelectedObjectFunctor
void LLPanelFace::sendTextureInfo()
{
- LLPanelFaceSetTEFunctor setfunc(this);
- LLSelectMgr::getInstance()->getSelection()->applyToTEs(&setfunc);
+ if ((bool)childGetValue("checkbox planar align").asBoolean())
+ {
+ struct f1 : public LLSelectedTEGetFunctor<LLFace *>
+ {
+ LLFace* get(LLViewerObject* object, S32 te)
+ {
+ return (object->mDrawable) ? object->mDrawable->getFace(te): NULL;
+ }
+ } get_last_face_func;
+ LLFace* last_face;
+ LLSelectMgr::getInstance()->getSelection()->getSelectedTEValue(&get_last_face_func, last_face);
+
+ LLPanelFaceSetAlignedTEFunctor setfunc(this, last_face);
+ LLSelectMgr::getInstance()->getSelection()->applyToTEs(&setfunc);
+ }
+ else
+ {
+ LLPanelFaceSetTEFunctor setfunc(this);
+ LLSelectMgr::getInstance()->getSelection()->applyToTEs(&setfunc);
+ }
LLPanelFaceSendFunctor sendfunc;
LLSelectMgr::getInstance()->getSelection()->applyToObjects(&sendfunc);
@@ -394,8 +495,8 @@ void LLPanelFace::getState()
BOOL editable = objectp->permModify();
// only turn on auto-adjust button if there is a media renderer and the media is loaded
- childSetEnabled("textbox autofix", editable);
- childSetEnabled("button align", editable);
+ getChildView("textbox autofix")->setEnabled(editable);
+ getChildView("button align")->setEnabled(editable);
//if ( LLMediaEngine::getInstance()->getMediaRenderer () )
// if ( LLMediaEngine::getInstance()->getMediaRenderer ()->isLoaded () )
@@ -405,7 +506,7 @@ void LLPanelFace::getState()
//
// //mBtnAutoFix->setEnabled ( editable );
// }
- childSetEnabled("button apply",editable);
+ getChildView("button apply")->setEnabled(editable);
bool identical;
LLTextureCtrl* texture_ctrl = getChild<LLTextureCtrl>("texture control");
@@ -445,8 +546,8 @@ void LLPanelFace::getState()
if(LLViewerMedia::textureHasMedia(id))
{
- childSetEnabled("textbox autofix",editable);
- childSetEnabled("button align",editable);
+ getChildView("textbox autofix")->setEnabled(editable);
+ getChildView("button align")->setEnabled(editable);
}
if (identical)
@@ -503,10 +604,46 @@ void LLPanelFace::getState()
}
}
+
+ // planar align
+ bool align_planar = false;
+ bool identical_planar_aligned = false;
+ bool is_planar = false;
+ {
+ LLCheckBoxCtrl* cb_planar_align = getChild<LLCheckBoxCtrl>("checkbox planar align");
+ align_planar = (cb_planar_align && cb_planar_align->get());
+ struct f1 : public LLSelectedTEGetFunctor<bool>
+ {
+ bool get(LLViewerObject* object, S32 face)
+ {
+ return (object->getTE(face)->getTexGen() == LLTextureEntry::TEX_GEN_PLANAR);
+ }
+ } func;
+
+ bool texgens_identical = LLSelectMgr::getInstance()->getSelection()->getSelectedTEValue( &func, is_planar );
+ bool enabled = (editable && texgens_identical && is_planar);
+ childSetValue("checkbox planar align", align_planar && enabled);
+ childSetEnabled("checkbox planar align", enabled);
+
+ if (align_planar && enabled)
+ {
+ struct f2 : public LLSelectedTEGetFunctor<LLFace *>
+ {
+ LLFace* get(LLViewerObject* object, S32 te)
+ {
+ return (object->mDrawable) ? object->mDrawable->getFace(te): NULL;
+ }
+ } get_te_face_func;
+ LLFace* last_face;
+ LLSelectMgr::getInstance()->getSelection()->getSelectedTEValue(&get_te_face_func, last_face);
+ LLPanelFaceGetIsAlignedTEFunctor get_is_aligend_func(last_face);
+ // this will determine if the texture param controls are tentative:
+ identical_planar_aligned = LLSelectMgr::getInstance()->getSelection()->applyToTEs(&get_is_aligend_func);
+ }
+ }
+
// Texture scale
{
- childSetEnabled("tex scale",editable);
- //mLabelTexScale->setEnabled( editable );
F32 scale_s = 1.f;
struct f2 : public LLSelectedTEGetFunctor<F32>
{
@@ -516,12 +653,13 @@ void LLPanelFace::getState()
}
} func;
identical = LLSelectMgr::getInstance()->getSelection()->getSelectedTEValue( &func, scale_s );
- childSetValue("TexScaleU",editable ? llabs(scale_s) : 0);
- childSetTentative("TexScaleU",LLSD((BOOL)(!identical)));
- childSetEnabled("TexScaleU",editable);
- childSetValue("checkbox flip s",LLSD((BOOL)(scale_s < 0 ? TRUE : FALSE )));
- childSetTentative("checkbox flip s",LLSD((BOOL)((!identical) ? TRUE : FALSE )));
- childSetEnabled("checkbox flip s",editable);
+ identical = align_planar ? identical_planar_aligned : identical;
+ getChild<LLUICtrl>("TexScaleU")->setValue(editable ? llabs(scale_s) : 0);
+ getChild<LLUICtrl>("TexScaleU")->setTentative(LLSD((BOOL)(!identical)));
+ getChildView("TexScaleU")->setEnabled(editable);
+ getChild<LLUICtrl>("checkbox flip s")->setValue(LLSD((BOOL)(scale_s < 0 ? TRUE : FALSE )));
+ getChild<LLUICtrl>("checkbox flip s")->setTentative(LLSD((BOOL)((!identical) ? TRUE : FALSE )));
+ getChildView("checkbox flip s")->setEnabled(editable);
}
{
@@ -534,18 +672,19 @@ void LLPanelFace::getState()
}
} func;
identical = LLSelectMgr::getInstance()->getSelection()->getSelectedTEValue( &func, scale_t );
-
- childSetValue("TexScaleV",llabs(editable ? llabs(scale_t) : 0));
- childSetTentative("TexScaleV",LLSD((BOOL)(!identical)));
- childSetEnabled("TexScaleV",editable);
- childSetValue("checkbox flip t",LLSD((BOOL)(scale_t< 0 ? TRUE : FALSE )));
- childSetTentative("checkbox flip t",LLSD((BOOL)((!identical) ? TRUE : FALSE )));
- childSetEnabled("checkbox flip t",editable);
+ identical = align_planar ? identical_planar_aligned : identical;
+
+ getChild<LLUICtrl>("TexScaleV")->setValue(llabs(editable ? llabs(scale_t) : 0));
+ getChild<LLUICtrl>("TexScaleV")->setTentative(LLSD((BOOL)(!identical)));
+ getChildView("TexScaleV")->setEnabled(editable);
+ getChild<LLUICtrl>("checkbox flip t")->setValue(LLSD((BOOL)(scale_t< 0 ? TRUE : FALSE )));
+ getChild<LLUICtrl>("checkbox flip t")->setTentative(LLSD((BOOL)((!identical) ? TRUE : FALSE )));
+ getChildView("checkbox flip t")->setEnabled(editable);
}
// Texture offset
{
- childSetEnabled("tex offset",editable);
+ getChildView("tex offset")->setEnabled(editable);
F32 offset_s = 0.f;
struct f4 : public LLSelectedTEGetFunctor<F32>
{
@@ -555,9 +694,10 @@ void LLPanelFace::getState()
}
} func;
identical = LLSelectMgr::getInstance()->getSelection()->getSelectedTEValue( &func, offset_s );
- childSetValue("TexOffsetU", editable ? offset_s : 0);
- childSetTentative("TexOffsetU",!identical);
- childSetEnabled("TexOffsetU",editable);
+ identical = align_planar ? identical_planar_aligned : identical;
+ getChild<LLUICtrl>("TexOffsetU")->setValue(editable ? offset_s : 0);
+ getChild<LLUICtrl>("TexOffsetU")->setTentative(!identical);
+ getChildView("TexOffsetU")->setEnabled(editable);
}
{
@@ -570,14 +710,14 @@ void LLPanelFace::getState()
}
} func;
identical = LLSelectMgr::getInstance()->getSelection()->getSelectedTEValue( &func, offset_t );
- childSetValue("TexOffsetV", editable ? offset_t : 0);
- childSetTentative("TexOffsetV",!identical);
- childSetEnabled("TexOffsetV",editable);
+ identical = align_planar ? identical_planar_aligned : identical;
+ getChild<LLUICtrl>("TexOffsetV")->setValue(editable ? offset_t : 0);
+ getChild<LLUICtrl>("TexOffsetV")->setTentative(!identical);
+ getChildView("TexOffsetV")->setEnabled(editable);
}
// Texture rotation
{
- childSetEnabled("tex rotate",editable);
F32 rotation = 0.f;
struct f6 : public LLSelectedTEGetFunctor<F32>
{
@@ -587,9 +727,10 @@ void LLPanelFace::getState()
}
} func;
identical = LLSelectMgr::getInstance()->getSelection()->getSelectedTEValue( &func, rotation );
- childSetValue("TexRot", editable ? rotation * RAD_TO_DEG : 0);
- childSetTentative("TexRot",!identical);
- childSetEnabled("TexRot",editable);
+ identical = align_planar ? identical_planar_aligned : identical;
+ getChild<LLUICtrl>("TexRot")->setValue(editable ? rotation * RAD_TO_DEG : 0);
+ getChild<LLUICtrl>("TexRot")->setTentative(!identical);
+ getChildView("TexRot")->setEnabled(editable);
}
// Color swatch
@@ -615,13 +756,13 @@ void LLPanelFace::getState()
}
// Color transparency
{
- childSetEnabled("color trans",editable);
+ getChildView("color trans")->setEnabled(editable);
}
F32 transparency = (1.f - color.mV[VALPHA]) * 100.f;
{
- childSetValue("ColorTrans", editable ? transparency : 0);
- childSetEnabled("ColorTrans",editable);
+ getChild<LLUICtrl>("ColorTrans")->setValue(editable ? transparency : 0);
+ getChildView("ColorTrans")->setEnabled(editable);
}
{
@@ -635,10 +776,10 @@ void LLPanelFace::getState()
} func;
identical = LLSelectMgr::getInstance()->getSelection()->getSelectedTEValue( &func, glow );
- childSetValue("glow",glow);
- childSetEnabled("glow",editable);
- childSetTentative("glow",!identical);
- childSetEnabled("glow label",editable);
+ getChild<LLUICtrl>("glow")->setValue(glow);
+ getChildView("glow")->setEnabled(editable);
+ getChild<LLUICtrl>("glow")->setTentative(!identical);
+ getChildView("glow label")->setEnabled(editable);
}
@@ -663,9 +804,9 @@ void LLPanelFace::getState()
{
llwarns << "failed childGetSelectionInterface for 'combobox shininess'" << llendl;
}
- childSetEnabled("combobox shininess",editable);
- childSetTentative("combobox shininess",!identical);
- childSetEnabled("label shininess",editable);
+ getChildView("combobox shininess")->setEnabled(editable);
+ getChild<LLUICtrl>("combobox shininess")->setTentative(!identical);
+ getChildView("label shininess")->setEnabled(editable);
}
{
@@ -688,9 +829,9 @@ void LLPanelFace::getState()
{
llwarns << "failed childGetSelectionInterface for 'combobox bumpiness'" << llendl;
}
- childSetEnabled("combobox bumpiness",editable);
- childSetTentative("combobox bumpiness",!identical);
- childSetEnabled("label bumpiness",editable);
+ getChildView("combobox bumpiness")->setEnabled(editable);
+ getChild<LLUICtrl>("combobox bumpiness")->setTentative(!identical);
+ getChildView("label bumpiness")->setEnabled(editable);
}
{
@@ -714,19 +855,14 @@ void LLPanelFace::getState()
{
llwarns << "failed childGetSelectionInterface for 'combobox texgen'" << llendl;
}
- childSetEnabled("combobox texgen",editable);
- childSetTentative("combobox texgen",!identical);
- childSetEnabled("tex gen",editable);
+ getChildView("combobox texgen")->setEnabled(editable);
+ getChild<LLUICtrl>("combobox texgen")->setTentative(!identical);
+ getChildView("tex gen")->setEnabled(editable);
if (selected_texgen == 1)
{
- childSetText("tex scale",getString("string repeats per meter"));
- childSetValue("TexScaleU", 2.0f * childGetValue("TexScaleU").asReal() );
- childSetValue("TexScaleV", 2.0f * childGetValue("TexScaleV").asReal() );
- }
- else
- {
- childSetText("tex scale",getString("string repeats per face"));
+ getChild<LLUICtrl>("TexScaleU")->setValue(2.0f * getChild<LLUICtrl>("TexScaleU")->getValue().asReal() );
+ getChild<LLUICtrl>("TexScaleV")->setValue(2.0f * getChild<LLUICtrl>("TexScaleV")->getValue().asReal() );
}
}
@@ -742,14 +878,14 @@ void LLPanelFace::getState()
} func;
identical = LLSelectMgr::getInstance()->getSelection()->getSelectedTEValue( &func, fullbrightf );
- childSetValue("checkbox fullbright",(S32)fullbrightf);
- childSetEnabled("checkbox fullbright",editable);
- childSetTentative("checkbox fullbright",!identical);
+ getChild<LLUICtrl>("checkbox fullbright")->setValue((S32)fullbrightf);
+ getChildView("checkbox fullbright")->setEnabled(editable);
+ getChild<LLUICtrl>("checkbox fullbright")->setTentative(!identical);
}
// Repeats per meter label
{
- childSetEnabled("rpt",editable);
+ getChildView("rpt")->setEnabled(editable);
}
// Repeats per meter
@@ -769,14 +905,14 @@ void LLPanelFace::getState()
} func;
identical = LLSelectMgr::getInstance()->getSelection()->getSelectedTEValue( &func, repeats );
- childSetValue("rptctrl", editable ? repeats : 0);
- childSetTentative("rptctrl",!identical);
+ getChild<LLUICtrl>("rptctrl")->setValue(editable ? repeats : 0);
+ getChild<LLUICtrl>("rptctrl")->setTentative(!identical);
LLComboBox* mComboTexGen = getChild<LLComboBox>("combobox texgen");
if (mComboTexGen)
{
BOOL enabled = editable && (!mComboTexGen || mComboTexGen->getCurrentIndex() != 1);
- childSetEnabled("rptctrl",enabled);
- childSetEnabled("button apply",enabled);
+ getChildView("rptctrl")->setEnabled(enabled);
+ getChildView("button apply")->setEnabled(enabled);
}
}
}
@@ -790,7 +926,6 @@ void LLPanelFace::getState()
if(texture_ctrl)
{
texture_ctrl->setImageAssetID( LLUUID::null );
- texture_ctrl->setFallbackImageName( "locked_image.j2c" );
texture_ctrl->setEnabled( FALSE ); // this is a LLUICtrl, but we don't want it to have keyboard focus so we add it as a child, not a ctrl.
// texture_ctrl->setValid(FALSE);
}
@@ -801,21 +936,19 @@ void LLPanelFace::getState()
mColorSwatch->setFallbackImageName("locked_image.j2c" );
mColorSwatch->setValid(FALSE);
}
- childSetEnabled("color trans",FALSE);
- childSetEnabled("rpt",FALSE);
- childSetEnabled("tex scale",FALSE);
- childSetEnabled("tex offset",FALSE);
- childSetEnabled("tex rotate",FALSE);
- childSetEnabled("tex gen",FALSE);
- childSetEnabled("label shininess",FALSE);
- childSetEnabled("label bumpiness",FALSE);
-
- childSetEnabled("textbox autofix",FALSE);
-
- childSetEnabled("button align",FALSE);
- childSetEnabled("button apply",FALSE);
- //childSetEnabled("has media", FALSE);
- //childSetEnabled("media info set", FALSE);
+ getChildView("color trans")->setEnabled(FALSE);
+ getChildView("rpt")->setEnabled(FALSE);
+ getChildView("tex offset")->setEnabled(FALSE);
+ getChildView("tex gen")->setEnabled(FALSE);
+ getChildView("label shininess")->setEnabled(FALSE);
+ getChildView("label bumpiness")->setEnabled(FALSE);
+
+ getChildView("textbox autofix")->setEnabled(FALSE);
+
+ getChildView("button align")->setEnabled(FALSE);
+ getChildView("button apply")->setEnabled(FALSE);
+ //getChildView("has media")->setEnabled(FALSE);
+ //getChildView("media info set")->setEnabled(FALSE);
}
}
@@ -945,7 +1078,7 @@ void LLPanelFace::onClickApply(void* userdata)
gFocusMgr.setKeyboardFocus( NULL );
//F32 repeats_per_meter = self->mCtrlRepeatsPerMeter->get();
- F32 repeats_per_meter = (F32)self->childGetValue( "rptctrl" ).asReal();//self->mCtrlRepeatsPerMeter->get();
+ F32 repeats_per_meter = (F32)self->getChild<LLUICtrl>("rptctrl")->getValue().asReal();//self->mCtrlRepeatsPerMeter->get();
LLSelectMgr::getInstance()->selectionTexScaleAutofit( repeats_per_meter );
}
@@ -1010,3 +1143,11 @@ void LLPanelFace::setMediaType(const std::string& mime_type)
{
}
+// static
+void LLPanelFace::onCommitPlanarAlign(LLUICtrl* ctrl, void* userdata)
+{
+ LLPanelFace* self = (LLPanelFace*) userdata;
+ self->getState();
+ self->sendTextureInfo();
+}
+
diff --git a/indra/newview/llpanelface.h b/indra/newview/llpanelface.h
index 6a8704ce14..42be9b257f 100644
--- a/indra/newview/llpanelface.h
+++ b/indra/newview/llpanelface.h
@@ -2,31 +2,25 @@
* @file llpanelface.h
* @brief Panel in the tools floater for editing face textures, colors, etc.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -91,6 +85,7 @@ protected:
static void onCommitShiny( LLUICtrl* ctrl, void* userdata);
static void onCommitFullbright( LLUICtrl* ctrl, void* userdata);
static void onCommitGlow( LLUICtrl* ctrl, void *userdata);
+ static void onCommitPlanarAlign( LLUICtrl* ctrl, void* userdata);
static void onClickApply(void*);
static void onClickAutoFix(void*);
diff --git a/indra/newview/llpanelgenerictip.cpp b/indra/newview/llpanelgenerictip.cpp
index e0658554a4..4ccdaa78f3 100644
--- a/indra/newview/llpanelgenerictip.cpp
+++ b/indra/newview/llpanelgenerictip.cpp
@@ -3,31 +3,25 @@
* @brief Represents a generic panel for a notifytip notifications. As example:
* "SystemMessageTip", "Cancelled", "UploadWebSnapshotDone".
*
- * $LicenseInfo:firstyear=2010&license=viewergpl$
- *
- * Copyright (c) 2010, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2010&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -35,17 +29,19 @@
#include "llpanelgenerictip.h"
#include "llnotifications.h"
+#include "llviewercontrol.h" // for gSavedSettings
LLPanelGenericTip::LLPanelGenericTip(
const LLNotificationPtr& notification) :
LLPanelTipToast(notification)
{
- LLUICtrlFactory::getInstance()->buildPanel(this, "panel_generic_tip.xml");
+ buildFromFile( "panel_generic_tip.xml");
+
+ getChild<LLUICtrl>("message")->setValue(notification->getMessage());
- childSetValue("message", notification->getMessage());
- // set line max count to 3 in case of a very long name
- snapToMessageHeight(getChild<LLTextBox> ("message"), 3);
+ S32 max_line_count = gSavedSettings.getS32("TipToastMessageLineCount");
+ snapToMessageHeight(getChild<LLTextBox> ("message"), max_line_count);
}
diff --git a/indra/newview/llpanelgenerictip.h b/indra/newview/llpanelgenerictip.h
index defa069727..f8a3413fe4 100644
--- a/indra/newview/llpanelgenerictip.h
+++ b/indra/newview/llpanelgenerictip.h
@@ -3,31 +3,25 @@
* @brief Represents a generic panel for a notifytip notifications. As example:
* "SystemMessageTip", "Cancelled", "UploadWebSnapshotDone".
*
- * $LicenseInfo:firstyear=2010&license=viewergpl$
- *
- * Copyright (c) 2010, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2010&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llpanelgroup.cpp b/indra/newview/llpanelgroup.cpp
index d997b83cbb..62ed7acb15 100644
--- a/indra/newview/llpanelgroup.cpp
+++ b/indra/newview/llpanelgroup.cpp
@@ -1,31 +1,25 @@
/**
* @file llpanelgroup.cpp
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -118,6 +112,7 @@ void LLPanelGroup::onOpen(const LLSD& key)
if(!key.has("action"))
{
setGroupID(group_id);
+ getChild<LLAccordionCtrl>("groups_accordion")->expandDefaultTab();
return;
}
@@ -305,7 +300,6 @@ void LLPanelGroup::onBtnCancel()
onBackBtnClick();
}
-
void LLPanelGroup::changed(LLGroupChange gc)
{
for(std::vector<LLPanelGroupTab* >::iterator it = mTabs.begin();it!=mTabs.end();++it)
@@ -413,19 +407,14 @@ void LLPanelGroup::setGroupID(const LLUUID& group_id)
getChild<LLUICtrl>("prepend_founded_by")->setVisible(!is_null_group_id);
- LLAccordionCtrl* tab_ctrl = findChild<LLAccordionCtrl>("group_accordion");
- if(tab_ctrl)
- tab_ctrl->reset();
-
- LLAccordionCtrlTab* tab_general = findChild<LLAccordionCtrlTab>("group_general_tab");
- LLAccordionCtrlTab* tab_roles = findChild<LLAccordionCtrlTab>("group_roles_tab");
- LLAccordionCtrlTab* tab_notices = findChild<LLAccordionCtrlTab>("group_notices_tab");
- LLAccordionCtrlTab* tab_land = findChild<LLAccordionCtrlTab>("group_land_tab");
+ LLAccordionCtrl* tab_ctrl = getChild<LLAccordionCtrl>("groups_accordion");
+ tab_ctrl->reset();
+ LLAccordionCtrlTab* tab_general = getChild<LLAccordionCtrlTab>("group_general_tab");
+ LLAccordionCtrlTab* tab_roles = getChild<LLAccordionCtrlTab>("group_roles_tab");
+ LLAccordionCtrlTab* tab_notices = getChild<LLAccordionCtrlTab>("group_notices_tab");
+ LLAccordionCtrlTab* tab_land = getChild<LLAccordionCtrlTab>("group_land_tab");
- if(!tab_general || !tab_roles || !tab_notices || !tab_land)
- return;
-
if(mButtonJoin)
mButtonJoin->setVisible(false);
@@ -486,6 +475,8 @@ void LLPanelGroup::setGroupID(const LLUUID& group_id)
button_chat->setVisible(is_member);
}
+ tab_ctrl->arrange();
+
reposButtons();
update(GC_ALL);//show/hide "join" button if data is already ready
}
@@ -536,6 +527,7 @@ void LLPanelGroup::draw()
{
mRefreshTimer.stop();
childEnable("btn_refresh");
+ childEnable("groups_accordion");
}
LLButton* button_apply = findChild<LLButton>("btn_apply");
@@ -564,6 +556,8 @@ void LLPanelGroup::refreshData()
// 5 second timeout
childDisable("btn_refresh");
+ childDisable("groups_accordion");
+
mRefreshTimer.start();
mRefreshTimer.setTimerExpirySec(5);
}
diff --git a/indra/newview/llpanelgroup.h b/indra/newview/llpanelgroup.h
index 13a03b0713..b494c7d403 100644
--- a/indra/newview/llpanelgroup.h
+++ b/indra/newview/llpanelgroup.h
@@ -1,31 +1,25 @@
/**
* @file llpanelgroup.h
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -126,7 +120,6 @@ protected:
LLButton* mButtonJoin;
LLUICtrl* mJoinText;
-
};
class LLPanelGroupTab : public LLPanel
diff --git a/indra/newview/llpanelgroupgeneral.cpp b/indra/newview/llpanelgroupgeneral.cpp
index 555248e31a..3a31d99598 100644
--- a/indra/newview/llpanelgroupgeneral.cpp
+++ b/indra/newview/llpanelgroupgeneral.cpp
@@ -2,31 +2,25 @@
* @file llpanelgroupgeneral.cpp
* @brief General information about a group.
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -184,8 +178,7 @@ BOOL LLPanelGroupGeneral::postBuild()
mComboActiveTitle = getChild<LLComboBox>("active_title", recurse);
if (mComboActiveTitle)
{
- mComboActiveTitle->setCommitCallback(onCommitTitle, this);
- mComboActiveTitle->resetDirty();
+ mComboActiveTitle->setCommitCallback(onCommitAny, this);
}
mIncompleteMemberDataStr = getString("incomplete_member_data_str");
@@ -278,16 +271,6 @@ void LLPanelGroupGeneral::onCommitEnrollment(LLUICtrl* ctrl, void* data)
}
// static
-void LLPanelGroupGeneral::onCommitTitle(LLUICtrl* ctrl, void* data)
-{
- LLPanelGroupGeneral* self = (LLPanelGroupGeneral*)data;
- if (self->mGroupID.isNull() || !self->mAllowEdit) return;
- LLGroupMgr::getInstance()->sendGroupTitleUpdate(self->mGroupID,self->mComboActiveTitle->getCurrentID());
- self->update(GC_TITLES);
- self->mComboActiveTitle->resetDirty();
-}
-
-// static
void LLPanelGroupGeneral::onClickInfo(void *userdata)
{
LLPanelGroupGeneral *self = (LLPanelGroupGeneral *)userdata;
@@ -356,6 +339,13 @@ void LLPanelGroupGeneral::draw()
bool LLPanelGroupGeneral::apply(std::string& mesg)
{
+ if (!mGroupID.isNull() && mAllowEdit && mComboActiveTitle && mComboActiveTitle->isDirty())
+ {
+ LLGroupMgr::getInstance()->sendGroupTitleUpdate(mGroupID,mComboActiveTitle->getCurrentID());
+ update(GC_TITLES);
+ mComboActiveTitle->resetDirty();
+ }
+
BOOL has_power_in_group = gAgent.hasPowerInGroup(mGroupID,GP_GROUP_CHANGE_IDENTITY);
if (has_power_in_group || mGroupID.isNull())
@@ -448,6 +438,8 @@ bool LLPanelGroupGeneral::apply(std::string& mesg)
gAgent.setUserGroupFlags(mGroupID, receive_notices, list_in_profile);
+ resetDirty();
+
mChanged = FALSE;
return true;
@@ -748,7 +740,7 @@ void LLPanelGroupGeneral::updateMembers()
sSDTime += sd_timer.getElapsedTimeF32();
element_timer.reset();
- LLScrollListItem* member_row = mListVisibleMembers->addElement(row);//, ADD_SORTED);
+ LLScrollListItem* member_row = mListVisibleMembers->addElement(row);
if ( member->isOwner() )
{
diff --git a/indra/newview/llpanelgroupgeneral.h b/indra/newview/llpanelgroupgeneral.h
index 6f4fa994da..cbf173f845 100644
--- a/indra/newview/llpanelgroupgeneral.h
+++ b/indra/newview/llpanelgroupgeneral.h
@@ -2,31 +2,25 @@
* @file llpanelgroupgeneral.h
* @brief General information about a group.
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -77,7 +71,6 @@ private:
static void onFocusEdit(LLFocusableElement* ctrl, void* data);
static void onCommitAny(LLUICtrl* ctrl, void* data);
static void onCommitUserOnly(LLUICtrl* ctrl, void* data);
- static void onCommitTitle(LLUICtrl* ctrl, void* data);
static void onCommitEnrollment(LLUICtrl* ctrl, void* data);
static void onClickInfo(void* userdata);
static void onReceiveNotices(LLUICtrl* ctrl, void* data);
diff --git a/indra/newview/llpanelgroupinvite.cpp b/indra/newview/llpanelgroupinvite.cpp
index 11d3768a3d..b26bcc854c 100644
--- a/indra/newview/llpanelgroupinvite.cpp
+++ b/indra/newview/llpanelgroupinvite.cpp
@@ -1,31 +1,25 @@
/**
* @file llpanelgroupinvite.cpp
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -375,7 +369,7 @@ LLPanelGroupInvite::LLPanelGroupInvite(const LLUUID& group_id)
mPendingUpdate(FALSE)
{
// Pass on construction of this panel to the control factory.
- LLUICtrlFactory::getInstance()->buildPanel(this, "panel_group_invite.xml");
+ buildFromFile( "panel_group_invite.xml");
}
LLPanelGroupInvite::~LLPanelGroupInvite()
diff --git a/indra/newview/llpanelgroupinvite.h b/indra/newview/llpanelgroupinvite.h
index 2ed443ed46..01e7315486 100644
--- a/indra/newview/llpanelgroupinvite.h
+++ b/indra/newview/llpanelgroupinvite.h
@@ -1,31 +1,25 @@
/**
* @file llpanelgroupinvite.h
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llpanelgrouplandmoney.cpp b/indra/newview/llpanelgrouplandmoney.cpp
index 65fe7165c2..8d8d9bc1c4 100644
--- a/indra/newview/llpanelgrouplandmoney.cpp
+++ b/indra/newview/llpanelgrouplandmoney.cpp
@@ -2,31 +2,25 @@
* @file llpanelgrouplandmoney.cpp
* @brief Panel for group land and L$.
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -371,7 +365,7 @@ void LLPanelGroupLandMoney::impl::setYourContributionTextField(int contrib)
void LLPanelGroupLandMoney::impl::setYourMaxContributionTextBox(int max)
{
- mPanel.childSetTextArg("your_contribution_max_value", "[AMOUNT]", llformat("%d", max));
+ mPanel.getChild<LLUICtrl>("your_contribution_max_value")->setTextArg("[AMOUNT]", llformat("%d", max));
}
//static
@@ -433,14 +427,14 @@ void LLPanelGroupLandMoney::impl::processGroupLand(LLMessageSystem* msg)
S32 total_contribution;
msg->getS32("QueryData", "ActualArea", total_contribution, 0);
- mPanel.childSetTextArg("total_contributed_land_value", "[AREA]", llformat("%d", total_contribution));
+ mPanel.getChild<LLUICtrl>("total_contributed_land_value")->setTextArg("[AREA]", llformat("%d", total_contribution));
S32 committed;
msg->getS32("QueryData", "BillableArea", committed, 0);
- mPanel.childSetTextArg("total_land_in_use_value", "[AREA]", llformat("%d", committed));
+ mPanel.getChild<LLUICtrl>("total_land_in_use_value")->setTextArg("[AREA]", llformat("%d", committed));
S32 available = total_contribution - committed;
- mPanel.childSetTextArg("land_available_value", "[AREA]", llformat("%d", available));
+ mPanel.getChild<LLUICtrl>("land_available_value")->setTextArg("[AREA]", llformat("%d", available));
if ( mGroupOverLimitTextp && mGroupOverLimitIconp )
{
@@ -528,7 +522,7 @@ void LLPanelGroupLandMoney::impl::processGroupLand(LLMessageSystem* msg)
row["columns"][4]["column"] = "hidden";
row["columns"][4]["value"] = hidden;
- mGroupParcelsp->addElement(row, ADD_SORTED);
+ mGroupParcelsp->addElement(row);
}
}
}
@@ -1432,10 +1426,10 @@ void LLGroupMoneyPlanningTabEventHandler::processReply(LLMessageSystem* msg,
// text.append(llformat( "%-24s %6d %6d \n", LLTrans::getString("GroupMoneyDebits").c_str(), total_debits, (S32)floor((F32)total_debits/(F32)non_exempt_members)));
// text.append(llformat( "%-24s %6d %6d \n", LLTrans::getString("GroupMoneyTotal").c_str(), total_credits + total_debits, (S32)floor((F32)(total_credits + total_debits)/(F32)non_exempt_members)));
- text.append( " Group\n");
- text.append(llformat( "%-24s %6d\n", "Credits", total_credits));
- text.append(llformat( "%-24s %6d\n", "Debits", total_debits));
- text.append(llformat( "%-24s %6d\n", "Total", total_credits + total_debits));
+ text.append(llformat( "%s\n", LLTrans::getString("GroupColumn").c_str()));
+ text.append(llformat( "%-24s %6d\n", LLTrans::getString("GroupMoneyCredits").c_str(), total_credits));
+ text.append(llformat( "%-24s %6d\n", LLTrans::getString("GroupMoneyDebits").c_str(), total_debits));
+ text.append(llformat( "%-24s %6d\n", LLTrans::getString("GroupMoneyTotal").c_str(), total_credits + total_debits));
if ( mImplementationp->mTextEditorp )
{
diff --git a/indra/newview/llpanelgrouplandmoney.h b/indra/newview/llpanelgrouplandmoney.h
index 7e08d26d6f..ac3518ee19 100644
--- a/indra/newview/llpanelgrouplandmoney.h
+++ b/indra/newview/llpanelgrouplandmoney.h
@@ -2,31 +2,25 @@
* @file llpanelgrouplandmoney.h
* @brief Panel for group land and L$.
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llpanelgroupnotices.cpp b/indra/newview/llpanelgroupnotices.cpp
index ba50081fb2..a24dbf6681 100644
--- a/indra/newview/llpanelgroupnotices.cpp
+++ b/indra/newview/llpanelgroupnotices.cpp
@@ -2,31 +2,25 @@
* @file llpanelgroupnotices.cpp
* @brief A panel to display group notices.
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llpanelgroupnotices.h b/indra/newview/llpanelgroupnotices.h
index 4bda38c897..04629b5f6b 100644
--- a/indra/newview/llpanelgroupnotices.h
+++ b/indra/newview/llpanelgroupnotices.h
@@ -2,31 +2,25 @@
* @file llpanelgroupnotices.h
* @brief A panel to display group notices.
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llpanelgrouproles.cpp b/indra/newview/llpanelgrouproles.cpp
index 26e8a932aa..639364ff8d 100644
--- a/indra/newview/llpanelgrouproles.cpp
+++ b/indra/newview/llpanelgrouproles.cpp
@@ -2,31 +2,25 @@
* @file llpanelgrouproles.cpp
* @brief Panel for roles information about a particular group.
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -51,6 +45,7 @@
#include "lltabcontainer.h"
#include "lltextbox.h"
#include "lltexteditor.h"
+#include "lltrans.h"
#include "llviewertexturelist.h"
#include "llviewerwindow.h"
#include "llfocusmgr.h"
@@ -587,7 +582,7 @@ void LLPanelGroupSubTab::buildActionCategory(LLScrollListCtrl* ctrl,
row["columns"][1]["column"] = "action";
row["columns"][1]["type"] = "text";
- row["columns"][1]["value"] = action_set->mActionSetData->mName;
+ row["columns"][1]["value"] = LLTrans::getString(action_set->mActionSetData->mName);
row["columns"][1]["font"]["name"] = "SANSSERIF_SMALL";
@@ -1593,6 +1588,7 @@ void LLPanelGroupMembersSubTab::updateMembers()
LLGroupMgrGroupData::member_list_t::iterator end = gdatap->mMembers.end();
+ LLUIString donated = getString("donation_area");
S32 i = 0;
for( ; mMemberProgress != end && i<UPDATE_MEMBERS_PER_FRAME;
@@ -1614,9 +1610,7 @@ void LLPanelGroupMembersSubTab::updateMembers()
if (add_member)
{
- // Build the donated tier string.
- std::ostringstream donated;
- donated << mMemberProgress->second->getContribution() << " sq. m.";
+ donated.setArg("[AREA]", llformat("%d", mMemberProgress->second->getContribution()));
LLSD row;
row["id"] = (*mMemberProgress).first;
@@ -1625,13 +1619,13 @@ void LLPanelGroupMembersSubTab::updateMembers()
// value is filled in by name list control
row["columns"][1]["column"] = "donated";
- row["columns"][1]["value"] = donated.str();
+ row["columns"][1]["value"] = donated.getString();
row["columns"][2]["column"] = "online";
row["columns"][2]["value"] = mMemberProgress->second->getOnlineStatus();
row["columns"][2]["font"] = "SANSSERIF_SMALL";
- LLScrollListItem* member = mMembersList->addElement(row);//, ADD_SORTED);
+ LLScrollListItem* member = mMembersList->addElement(row);
LLUUID id = member->getUUID();
mHasMatch = TRUE;
diff --git a/indra/newview/llpanelgrouproles.h b/indra/newview/llpanelgrouproles.h
index cb7941ad9e..6a773f1ebb 100644
--- a/indra/newview/llpanelgrouproles.h
+++ b/indra/newview/llpanelgrouproles.h
@@ -2,31 +2,25 @@
* @file llpanelgrouproles.h
* @brief Panel for roles information about a particular group.
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llpanelhome.cpp b/indra/newview/llpanelhome.cpp
index 713d2d79b4..b03bab3127 100644
--- a/indra/newview/llpanelhome.cpp
+++ b/indra/newview/llpanelhome.cpp
@@ -3,31 +3,25 @@
* @author Martin Reddy
* @brief The Home side tray panel
*
-* $LicenseInfo:firstyear=2009&license=viewergpl$
-*
-* Copyright (c) 2009, Linden Research, Inc.
-*
+* $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
-* The source code in this file ("Source Code") is provided by Linden Lab
-* to you under the terms of the GNU General Public License, version 2.0
-* ("GPL"), unless you have obtained a separate licensing agreement
-* ("Other License"), formally executed by you and Linden Lab. Terms of
-* the GPL can be found in doc/GPL-license.txt in this distribution, or
-* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+* 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.
*
-* There are special exceptions to the terms and conditions of the GPL as
-* it is applied to this Source Code. View the full text of the exception
-* in the file doc/FLOSS-exception.txt in this software distribution, or
-* online at
-* http://secondlifegrid.net/programs/open_source/licensing/flossexception
+* 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.
*
-* By copying, modifying or distributing this software, you acknowledge
-* that you have read and understood your obligations described above,
-* and agree to abide by those obligations.
+* 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
*
-* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
-* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
-* COMPLETENESS OR PERFORMANCE.
+* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -67,7 +61,6 @@ BOOL LLPanelHome::postBuild()
std::string url = LLViewerHome::getHomeURL();
mBrowser->addObserver(this);
- mBrowser->setTrusted(true);
mBrowser->setHomePageUrl(url);
}
diff --git a/indra/newview/llpanelhome.h b/indra/newview/llpanelhome.h
index dfeca45b29..748566326f 100644
--- a/indra/newview/llpanelhome.h
+++ b/indra/newview/llpanelhome.h
@@ -3,31 +3,25 @@
* @author Martin Reddy
* @brief The Home side tray panel
*
-* $LicenseInfo:firstyear=2009&license=viewergpl$
-*
-* Copyright (c) 2009, Linden Research, Inc.
-*
+* $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
-* The source code in this file ("Source Code") is provided by Linden Lab
-* to you under the terms of the GNU General Public License, version 2.0
-* ("GPL"), unless you have obtained a separate licensing agreement
-* ("Other License"), formally executed by you and Linden Lab. Terms of
-* the GPL can be found in doc/GPL-license.txt in this distribution, or
-* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+* 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.
*
-* There are special exceptions to the terms and conditions of the GPL as
-* it is applied to this Source Code. View the full text of the exception
-* in the file doc/FLOSS-exception.txt in this software distribution, or
-* online at
-* http://secondlifegrid.net/programs/open_source/licensing/flossexception
+* 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.
*
-* By copying, modifying or distributing this software, you acknowledge
-* that you have read and understood your obligations described above,
-* and agree to abide by those obligations.
+* 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
*
-* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
-* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
-* COMPLETENESS OR PERFORMANCE.
+* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llpanelimcontrolpanel.cpp b/indra/newview/llpanelimcontrolpanel.cpp
index 709bb83fe4..7489c02d8d 100644
--- a/indra/newview/llpanelimcontrolpanel.cpp
+++ b/indra/newview/llpanelimcontrolpanel.cpp
@@ -2,31 +2,25 @@
* @file llpanelavatar.cpp
* @brief LLPanelAvatar and related class implementations
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -37,6 +31,7 @@
#include "llpanelimcontrolpanel.h"
#include "llagent.h"
+#include "llappviewer.h" // for gDisconnected
#include "llavataractions.h"
#include "llavatariconctrl.h"
#include "llbutton.h"
@@ -88,7 +83,7 @@ void LLPanelChatControlPanel::updateCallButton()
if (!session)
{
- childSetEnabled("call_btn", false);
+ getChildView("call_btn")->setEnabled(false);
return;
}
@@ -98,14 +93,14 @@ void LLPanelChatControlPanel::updateCallButton()
BOOL enable_connect = session_initialized
&& voice_enabled
&& callback_enabled;
- childSetEnabled("call_btn", enable_connect);
+ getChildView("call_btn")->setEnabled(enable_connect);
}
void LLPanelChatControlPanel::updateButtons(bool is_call_started)
{
- childSetVisible("end_call_btn_panel", is_call_started);
- childSetVisible("voice_ctrls_btn_panel", is_call_started);
- childSetVisible("call_btn_panel", ! is_call_started);
+ getChildView("end_call_btn_panel")->setVisible( is_call_started);
+ getChildView("voice_ctrls_btn_panel")->setVisible( is_call_started);
+ getChildView("call_btn_panel")->setVisible( ! is_call_started);
updateCallButton();
}
@@ -161,9 +156,9 @@ BOOL LLPanelIMControlPanel::postBuild()
childSetAction("share_btn", boost::bind(&LLPanelIMControlPanel::onShareButtonClicked, this));
childSetAction("teleport_btn", boost::bind(&LLPanelIMControlPanel::onTeleportButtonClicked, this));
childSetAction("pay_btn", boost::bind(&LLPanelIMControlPanel::onPayButtonClicked, this));
- childSetEnabled("add_friend_btn", !LLAvatarActions::isFriend(getChild<LLAvatarIconCtrl>("avatar_icon")->getAvatarId()));
+ getChildView("add_friend_btn")->setEnabled(!LLAvatarActions::isFriend(getChild<LLAvatarIconCtrl>("avatar_icon")->getAvatarId()));
-
+ setFocusReceivedCallback(boost::bind(&LLPanelIMControlPanel::onFocusReceived, this));
return LLPanelChatControlPanel::postBuild();
}
@@ -194,6 +189,15 @@ void LLPanelIMControlPanel::onShareButtonClicked()
LLAvatarActions::share(mAvatarID);
}
+void LLPanelIMControlPanel::onFocusReceived()
+{
+ // Disable all the buttons (Call, Teleport, etc) if disconnected.
+ if (gDisconnected)
+ {
+ setAllChildrenEnabled(FALSE);
+ }
+}
+
void LLPanelIMControlPanel::setSessionId(const LLUUID& session_id)
{
LLPanelChatControlPanel::setSessionId(session_id);
@@ -205,12 +209,12 @@ void LLPanelIMControlPanel::setSessionId(const LLUUID& session_id)
LLAvatarTracker::instance().addParticularFriendObserver(mAvatarID, this);
// Disable "Add friend" button for friends.
- childSetEnabled("add_friend_btn", !LLAvatarActions::isFriend(mAvatarID));
+ getChildView("add_friend_btn")->setEnabled(!LLAvatarActions::isFriend(mAvatarID));
// Disable "Teleport" button if friend is offline
if(LLAvatarActions::isFriend(mAvatarID))
{
- childSetEnabled("teleport_btn", LLAvatarTracker::instance().isBuddyOnline(mAvatarID));
+ getChildView("teleport_btn")->setEnabled(LLAvatarTracker::instance().isBuddyOnline(mAvatarID));
}
getChild<LLAvatarIconCtrl>("avatar_icon")->setValue(mAvatarID);
@@ -221,24 +225,24 @@ void LLPanelIMControlPanel::setSessionId(const LLUUID& session_id)
im_model.findIMSession(session_id);
if( im_session && !im_session->mOtherParticipantIsAvatar )
{
- childSetEnabled("view_profile_btn", FALSE);
- childSetEnabled("add_friend_btn", FALSE);
+ getChildView("view_profile_btn")->setEnabled(FALSE);
+ getChildView("add_friend_btn")->setEnabled(FALSE);
- childSetEnabled("share_btn", FALSE);
- childSetEnabled("teleport_btn", FALSE);
- childSetEnabled("pay_btn", FALSE);
+ getChildView("share_btn")->setEnabled(FALSE);
+ getChildView("teleport_btn")->setEnabled(FALSE);
+ getChildView("pay_btn")->setEnabled(FALSE);
}
}
//virtual
void LLPanelIMControlPanel::changed(U32 mask)
{
- childSetEnabled("add_friend_btn", !LLAvatarActions::isFriend(mAvatarID));
+ getChildView("add_friend_btn")->setEnabled(!LLAvatarActions::isFriend(mAvatarID));
// Disable "Teleport" button if friend is offline
if(LLAvatarActions::isFriend(mAvatarID))
{
- childSetEnabled("teleport_btn", LLAvatarTracker::instance().isBuddyOnline(mAvatarID));
+ getChildView("teleport_btn")->setEnabled(LLAvatarTracker::instance().isBuddyOnline(mAvatarID));
}
}
diff --git a/indra/newview/llpanelimcontrolpanel.h b/indra/newview/llpanelimcontrolpanel.h
index ce8fc58e56..45ada3ae1d 100644
--- a/indra/newview/llpanelimcontrolpanel.h
+++ b/indra/newview/llpanelimcontrolpanel.h
@@ -2,31 +2,25 @@
* @file llpanelimcontrolpanel.h
* @brief LLPanelIMControlPanel and related class definitions
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -95,6 +89,7 @@ private:
void onShareButtonClicked();
void onTeleportButtonClicked();
void onPayButtonClicked();
+ void onFocusReceived();
LLUUID mAvatarID;
};
diff --git a/indra/newview/llpanelland.cpp b/indra/newview/llpanelland.cpp
index 417a804834..04c1a86f69 100644
--- a/indra/newview/llpanelland.cpp
+++ b/indra/newview/llpanelland.cpp
@@ -2,31 +2,25 @@
* @file llpanelland.cpp
* @brief Land information in the tool floater, NOT the "About Land" floater
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -64,15 +58,14 @@ public:
BOOL LLPanelLandInfo::postBuild()
{
-
- childSetAction("button buy land",onClickClaim,this);
- childSetAction("button abandon land",onClickRelease,this);
- childSetAction("button subdivide land",onClickDivide,this);
- childSetAction("button join land",onClickJoin,this);
- childSetAction("button about land",onClickAbout,this);
+ childSetAction("button buy land",boost::bind(onClickClaim));
+ childSetAction("button abandon land", boost::bind(onClickRelease));
+ childSetAction("button subdivide land", boost::bind(onClickDivide));
+ childSetAction("button join land", boost::bind(onClickJoin));
+ childSetAction("button about land", boost::bind(onClickAbout));
mCheckShowOwners = getChild<LLCheckBoxCtrl>("checkbox show owners");
- childSetValue("checkbox show owners", gSavedSettings.getBOOL("ShowParcelOwners"));
+ getChild<LLUICtrl>("checkbox show owners")->setValue(gSavedSettings.getBOOL("ShowParcelOwners"));
return TRUE;
}
@@ -126,17 +119,17 @@ void LLPanelLandInfo::refresh()
if (!parcel || !regionp)
{
// nothing selected, disable panel
- childSetVisible("label_area_price",false);
- childSetVisible("label_area",false);
+ getChildView("label_area_price")->setVisible(false);
+ getChildView("label_area")->setVisible(false);
//mTextPrice->setText(LLStringUtil::null);
- childSetText("textbox price",LLStringUtil::null);
+ getChild<LLUICtrl>("textbox price")->setValue(LLStringUtil::null);
- childSetEnabled("button buy land",FALSE);
- childSetEnabled("button abandon land",FALSE);
- childSetEnabled("button subdivide land",FALSE);
- childSetEnabled("button join land",FALSE);
- childSetEnabled("button about land",FALSE);
+ getChildView("button buy land")->setEnabled(FALSE);
+ getChildView("button abandon land")->setEnabled(FALSE);
+ getChildView("button subdivide land")->setEnabled(FALSE);
+ getChildView("button join land")->setEnabled(FALSE);
+ getChildView("button about land")->setEnabled(FALSE);
}
else
{
@@ -154,11 +147,11 @@ void LLPanelLandInfo::refresh()
if (is_public)
{
- childSetEnabled("button buy land",TRUE);
+ getChildView("button buy land")->setEnabled(TRUE);
}
else
{
- childSetEnabled("button buy land",can_buy);
+ getChildView("button buy land")->setEnabled(can_buy);
}
BOOL owner_release = LLViewerParcelMgr::isParcelOwnedByAgent(parcel, GP_LAND_RELEASE);
@@ -170,16 +163,16 @@ void LLPanelLandInfo::refresh()
BOOL manager_divideable = ( gAgent.canManageEstate()
&& ((parcel->getOwnerID() == regionp->getOwner()) || owner_divide) );
- childSetEnabled("button abandon land",owner_release || manager_releaseable || gAgent.isGodlike());
+ 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)
{
- childSetEnabled("button subdivide land",owner_divide || manager_divideable || gAgent.isGodlike());
+ getChildView("button subdivide land")->setEnabled(owner_divide || manager_divideable || gAgent.isGodlike());
}
else
{
- childSetEnabled("button subdivide land",manager_divideable || gAgent.isGodlike());
+ getChildView("button subdivide land")->setEnabled(manager_divideable || gAgent.isGodlike());
}
// To join land, must have something selected,
@@ -190,15 +183,15 @@ void LLPanelLandInfo::refresh()
//&& LLViewerParcelMgr::getInstance()->getSelfCount() > 1
&& !LLViewerParcelMgr::getInstance()->getParcelSelection()->getWholeParcelSelected())
{
- childSetEnabled("button join land",TRUE);
+ getChildView("button join land")->setEnabled(TRUE);
}
else
{
lldebugs << "Invalid selection for joining land" << llendl;
- childSetEnabled("button join land",FALSE);
+ getChildView("button join land")->setEnabled(FALSE);
}
- childSetEnabled("button about land",TRUE);
+ getChildView("button about land")->setEnabled(TRUE);
// show pricing information
S32 area;
@@ -213,48 +206,48 @@ void LLPanelLandInfo::refresh()
&dwell);
if(is_public || (is_for_sale && LLViewerParcelMgr::getInstance()->getParcelSelection()->getWholeParcelSelected()))
{
- childSetTextArg("label_area_price","[PRICE]", llformat("%d",claim_price));
- childSetTextArg("label_area_price","[AREA]", llformat("%d",area));
- childSetVisible("label_area_price",true);
- childSetVisible("label_area",false);
+ getChild<LLUICtrl>("label_area_price")->setTextArg("[PRICE]", llformat("%d",claim_price));
+ getChild<LLUICtrl>("label_area_price")->setTextArg("[AREA]", llformat("%d",area));
+ getChildView("label_area_price")->setVisible(true);
+ getChildView("label_area")->setVisible(false);
}
else
{
- childSetVisible("label_area_price",false);
- childSetTextArg("label_area","[AREA]", llformat("%d",area));
- childSetVisible("label_area",true);
+ getChildView("label_area_price")->setVisible(false);
+ getChild<LLUICtrl>("label_area")->setTextArg("[AREA]", llformat("%d",area));
+ getChildView("label_area")->setVisible(true);
}
}
}
//static
-void LLPanelLandInfo::onClickClaim(void*)
+void LLPanelLandInfo::onClickClaim()
{
LLViewerParcelMgr::getInstance()->startBuyLand();
}
//static
-void LLPanelLandInfo::onClickRelease(void*)
+void LLPanelLandInfo::onClickRelease()
{
LLViewerParcelMgr::getInstance()->startReleaseLand();
}
// static
-void LLPanelLandInfo::onClickDivide(void*)
+void LLPanelLandInfo::onClickDivide()
{
LLViewerParcelMgr::getInstance()->startDivideLand();
}
// static
-void LLPanelLandInfo::onClickJoin(void*)
+void LLPanelLandInfo::onClickJoin()
{
LLViewerParcelMgr::getInstance()->startJoinLand();
}
//static
-void LLPanelLandInfo::onClickAbout(void*)
+void LLPanelLandInfo::onClickAbout()
{
// Promote the rectangle selection to a parcel selection
if (!LLViewerParcelMgr::getInstance()->getParcelSelection()->getWholeParcelSelected())
diff --git a/indra/newview/llpanelland.h b/indra/newview/llpanelland.h
index 02e7e7bf38..2ab1618d47 100644
--- a/indra/newview/llpanelland.h
+++ b/indra/newview/llpanelland.h
@@ -2,31 +2,25 @@
* @file llpanelland.h
* @brief Land information in the tool floater, NOT the "About Land" floater
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -55,22 +49,13 @@ public:
LLCheckBoxCtrl *mCheckShowOwners;
protected:
- static void onClickClaim(void*);
- static void onClickRelease(void*);
- static void onClickDivide(void*);
- static void onClickJoin(void*);
- static void onClickAbout(void*);
+ static void onClickClaim();
+ static void onClickRelease();
+ static void onClickDivide();
+ static void onClickJoin();
+ static void onClickAbout();
protected:
- //LLTextBox* mTextPriceLabel;
- //LLTextBox* mTextPrice;
-
- //LLButton* mBtnClaimLand;
- //LLButton* mBtnReleaseLand;
- //LLButton* mBtnDivideLand;
- //LLButton* mBtnJoinLand;
- //LLButton* mBtnAbout;
-
virtual BOOL postBuild();
static LLPanelLandSelectObserver* sObserver;
diff --git a/indra/newview/llpanellandaudio.cpp b/indra/newview/llpanellandaudio.cpp
index a92b4357ed..5a943bc61d 100644
--- a/indra/newview/llpanellandaudio.cpp
+++ b/indra/newview/llpanellandaudio.cpp
@@ -3,30 +3,25 @@
* @brief Allows configuration of "media" for a land parcel,
* for example movies, web pages, and audio.
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2008, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
diff --git a/indra/newview/llpanellandaudio.h b/indra/newview/llpanellandaudio.h
index 19766a40b6..4b0953bdc1 100644
--- a/indra/newview/llpanellandaudio.h
+++ b/indra/newview/llpanellandaudio.h
@@ -3,30 +3,25 @@
* @brief Allows configuration of "audio" for a land parcel.
*
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2008, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
diff --git a/indra/newview/llpanellandmarkinfo.cpp b/indra/newview/llpanellandmarkinfo.cpp
index 4ffd43cb0f..b69cee9586 100644
--- a/indra/newview/llpanellandmarkinfo.cpp
+++ b/indra/newview/llpanellandmarkinfo.cpp
@@ -2,31 +2,25 @@
* @file llpanellandmarkinfo.cpp
* @brief Displays landmark info in Side Tray.
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -123,11 +117,54 @@ void LLPanelLandmarkInfo::setInfoType(EInfoType type)
switch(type)
{
case CREATE_LANDMARK:
+ {
mCurrentTitle = getString("title_create_landmark");
mLandmarkTitle->setVisible(FALSE);
mLandmarkTitleEditor->setVisible(TRUE);
mNotesEditor->setEnabled(TRUE);
+
+ LLViewerParcelMgr* parcel_mgr = LLViewerParcelMgr::getInstance();
+ std::string name = parcel_mgr->getAgentParcelName();
+ LLVector3 agent_pos = gAgent.getPositionAgent();
+
+ if (name.empty())
+ {
+ S32 region_x = llround(agent_pos.mV[VX]);
+ S32 region_y = llround(agent_pos.mV[VY]);
+ S32 region_z = llround(agent_pos.mV[VZ]);
+
+ std::string region_name;
+ LLViewerRegion* region = parcel_mgr->getSelectionRegion();
+ if (region)
+ {
+ region_name = region->getName();
+ }
+ else
+ {
+ region_name = getString("unknown");
+ }
+
+ mLandmarkTitleEditor->setText(llformat("%s (%d, %d, %d)",
+ region_name.c_str(), region_x, region_y, region_z));
+ }
+ else
+ {
+ mLandmarkTitleEditor->setText(name);
+ }
+
+ std::string desc;
+ LLAgentUI::buildLocationString(desc, LLAgentUI::LOCATION_FORMAT_FULL, agent_pos);
+ mNotesEditor->setText(desc);
+
+ // Moved landmark creation here from LLPanelLandmarkInfo::processParcelInfo()
+ // because we use only agent's current coordinates instead of waiting for
+ // remote parcel request to complete.
+ if (!LLLandmarkActions::landmarkAlreadyExists())
+ {
+ createLandmark(LLUUID());
+ }
+ }
break;
case LANDMARK:
@@ -192,28 +229,6 @@ void LLPanelLandmarkInfo::processParcelInfo(const LLParcelData& parcel_data)
info["global_y"] = parcel_data.global_y;
info["global_z"] = parcel_data.global_z;
notifyParent(info);
-
- if (mInfoType == CREATE_LANDMARK)
- {
- if (parcel_data.name.empty())
- {
- mLandmarkTitleEditor->setText(llformat("%s (%d, %d, %d)",
- parcel_data.sim_name.c_str(), region_x, region_y, region_z));
- }
- else
- {
- mLandmarkTitleEditor->setText(parcel_data.name);
- }
-
- std::string desc;
- LLAgentUI::buildLocationString(desc, LLAgentUI::LOCATION_FORMAT_FULL, gAgent.getPositionAgent());
- mNotesEditor->setText(desc);
-
- if (!LLLandmarkActions::landmarkAlreadyExists())
- {
- createLandmark(mFolderCombo->getValue().asUUID());
- }
- }
}
void LLPanelLandmarkInfo::displayItemInfo(const LLInventoryItem* pItem)
diff --git a/indra/newview/llpanellandmarkinfo.h b/indra/newview/llpanellandmarkinfo.h
index b3dc3f5ad9..01a6fd6b3d 100644
--- a/indra/newview/llpanellandmarkinfo.h
+++ b/indra/newview/llpanellandmarkinfo.h
@@ -2,31 +2,25 @@
* @file llpanellandmarkinfo.h
* @brief Displays landmark info in Side Tray.
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
diff --git a/indra/newview/llpanellandmarks.cpp b/indra/newview/llpanellandmarks.cpp
index ce1131f45c..b09360a2d6 100644
--- a/indra/newview/llpanellandmarks.cpp
+++ b/indra/newview/llpanellandmarks.cpp
@@ -2,30 +2,25 @@
* @file llpanellandmarks.cpp
* @brief Landmarks tab for Side Bar "Places" panel
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -202,7 +197,7 @@ LLLandmarksPanel::LLLandmarksPanel()
mInventoryObserver = new LLLandmarksPanelObserver(this);
gInventory.addObserver(mInventoryObserver);
- LLUICtrlFactory::getInstance()->buildPanel(this, "panel_landmarks.xml");
+ buildFromFile( "panel_landmarks.xml");
}
LLLandmarksPanel::~LLLandmarksPanel()
@@ -522,6 +517,9 @@ void LLLandmarksPanel::setParcelID(const LLUUID& parcel_id)
{
if (!parcel_id.isNull())
{
+ //ext-4655, defensive. remove now incase this gets called twice without a remove
+ LLRemoteParcelInfoProcessor::getInstance()->removeObserver(parcel_id, this);
+
LLRemoteParcelInfoProcessor::getInstance()->addObserver(parcel_id, this);
LLRemoteParcelInfoProcessor::getInstance()->sendParcelInfoRequest(parcel_id);
}
@@ -718,8 +716,8 @@ void LLLandmarksPanel::updateListCommands()
bool trash_enabled = isActionEnabled("delete");
// keep Options & Add Landmark buttons always enabled
- mListCommands->childSetEnabled(ADD_FOLDER_BUTTON_NAME, add_folder_enabled);
- mListCommands->childSetEnabled(TRASH_BUTTON_NAME, trash_enabled);
+ mListCommands->getChildView(ADD_FOLDER_BUTTON_NAME)->setEnabled(add_folder_enabled);
+ mListCommands->getChildView(TRASH_BUTTON_NAME)->setEnabled(trash_enabled);
}
void LLLandmarksPanel::onActionsButtonClick()
@@ -967,20 +965,64 @@ bool LLLandmarksPanel::isActionEnabled(const LLSD& userdata) const
|| "expand" == command_name
)
{
- return canSelectedBeModified(command_name);
+ if (!root_folder_view) return false;
+
+ std::set<LLUUID> selected_uuids = root_folder_view->getSelectionList();
+
+ // Allow to execute the command only if it can be applied to all selected items.
+ for (std::set<LLUUID>::const_iterator iter = selected_uuids.begin(); iter != selected_uuids.end(); ++iter)
+ {
+ LLFolderViewItem* item = root_folder_view->getItemByID(*iter);
+
+ // If no item is found it might be a folder id.
+ if (!item)
+ {
+ item = root_folder_view->getFolderByID(*iter);
+ }
+ if (!item) return false;
+
+ if (!canItemBeModified(command_name, item)) return false;
+ }
+
+ return true;
}
else if ( "teleport" == command_name
|| "more_info" == command_name
|| "show_on_map" == command_name
|| "copy_slurl" == command_name
+ || "rename" == command_name
)
{
// disable some commands for multi-selection. EXT-1757
- return root_folder_view && root_folder_view->getSelectedCount() == 1;
+ bool is_single_selection = root_folder_view && root_folder_view->getSelectedCount() == 1;
+ if (!is_single_selection)
+ {
+ return false;
+ }
+
+ if ("show_on_map" == command_name)
+ {
+ LLFolderViewItem* cur_item = root_folder_view->getCurSelectedItem();
+ if (!cur_item) return false;
+
+ LLViewerInventoryItem* inv_item = cur_item->getInventoryItem();
+ if (!inv_item) return false;
+
+ LLUUID asset_uuid = inv_item->getAssetUUID();
+ if (asset_uuid.isNull()) return false;
+
+ // Disable "Show on Map" if landmark loading is in progress.
+ return !gLandmarkList.isAssetInLoadedCallbackMap(asset_uuid);
}
else if ("rename" == command_name)
{
- return root_folder_view && root_folder_view->getSelectedCount() == 1 && canSelectedBeModified(command_name);
+ LLFolderViewItem* selected_item = getCurSelectedItem();
+ if (!selected_item) return false;
+
+ return canItemBeModified(command_name, selected_item);
+ }
+
+ return true;
}
else if("category" == command_name)
{
@@ -1046,12 +1088,11 @@ Rules:
4. We can not paste folders from Clipboard (processed by LLFolderView::canPaste())
5. Check LLFolderView/Inventory Bridges rules
*/
-bool LLLandmarksPanel::canSelectedBeModified(const std::string& command_name) const
+bool LLLandmarksPanel::canItemBeModified(const std::string& command_name, LLFolderViewItem* item) const
{
// validate own rules first
- LLFolderViewItem* selected = getCurSelectedItem();
- if (!selected) return false;
+ if (!item) return false;
// nothing can be modified in Library
if (mLibraryInventoryPanel == mCurrentSelectedList) return false;
@@ -1059,7 +1100,7 @@ bool LLLandmarksPanel::canSelectedBeModified(const std::string& command_name) co
bool can_be_modified = false;
// landmarks can be modified in any other accordion...
- if (isLandmarkSelected())
+ if (item->getListener()->getInventoryType() == LLInventoryType::IT_LANDMARK)
{
can_be_modified = true;
@@ -1088,20 +1129,21 @@ bool LLLandmarksPanel::canSelectedBeModified(const std::string& command_name) co
}
else if ("collapse" == command_name)
{
- return selected->isOpen();
+ return item->isOpen();
}
else if ("expand" == command_name)
{
- return !selected->isOpen();
+ return !item->isOpen();
}
if (can_be_modified)
{
- LLFolderViewEventListener* listenerp = selected->getListener();
+ LLFolderViewEventListener* listenerp = item->getListener();
if ("cut" == command_name)
{
- can_be_modified = root_folder->canCut();
+ // "Cut" disabled for folders. See EXT-8697.
+ can_be_modified = root_folder->canCut() && listenerp->getInventoryType() != LLInventoryType::IT_CATEGORY;
}
else if ("rename" == command_name)
{
@@ -1190,6 +1232,7 @@ void LLLandmarksPanel::doShowOnMap(LLLandmark* landmark)
}
mShowOnMapBtn->setEnabled(TRUE);
+ mGearLandmarkMenu->setItemEnabled("show_on_map", TRUE);
}
void LLLandmarksPanel::doProcessParcelInfo(LLLandmark* landmark,
diff --git a/indra/newview/llpanellandmarks.h b/indra/newview/llpanellandmarks.h
index 0e70c72f11..0d4402d8cb 100644
--- a/indra/newview/llpanellandmarks.h
+++ b/indra/newview/llpanellandmarks.h
@@ -3,30 +3,25 @@
* @brief Landmarks tab for Side Bar "Places" panel
* class definition
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -132,12 +127,12 @@ private:
void onCustomAction(const LLSD& command_name);
/**
- * Determines if selected item can be modified via context/gear menu.
+ * Determines if an item can be modified via context/gear menu.
*
* It validates Places Landmarks rules first. And then LLFolderView permissions.
* For now it checks cut/rename/delete/paste actions.
*/
- bool canSelectedBeModified(const std::string& command_name) const;
+ bool canItemBeModified(const std::string& command_name, LLFolderViewItem* item) const;
void onPickPanelExit( LLPanelPickEdit* pick_panel, LLView* owner, const LLSD& params);
/**
diff --git a/indra/newview/llpanellandmedia.cpp b/indra/newview/llpanellandmedia.cpp
index e834e229cd..f17defda55 100644
--- a/indra/newview/llpanellandmedia.cpp
+++ b/indra/newview/llpanellandmedia.cpp
@@ -3,31 +3,25 @@
* @brief Allows configuration of "media" for a land parcel,
* for example movies, web pages, and audio.
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -145,19 +139,19 @@ void LLPanelLandMedia::refresh()
mMediaURLEdit->setText(parcel->getMediaURL());
mMediaURLEdit->setEnabled( FALSE );
- childSetText("current_url", parcel->getMediaCurrentURL());
+ getChild<LLUICtrl>("current_url")->setValue(parcel->getMediaCurrentURL());
mMediaDescEdit->setText(parcel->getMediaDesc());
mMediaDescEdit->setEnabled( can_change_media );
std::string mime_type = parcel->getMediaType();
- if (mime_type.empty())
+ if (mime_type.empty() || mime_type == LLMIMETypes::getDefaultMimeType())
{
mime_type = LLMIMETypes::getDefaultMimeTypeTranslation();
}
setMediaType(mime_type);
mMediaTypeCombo->setEnabled( can_change_media );
- childSetText("mime_type", mime_type);
+ getChild<LLUICtrl>("mime_type")->setValue(mime_type);
mMediaUrlCheck->set( parcel->getObscureMedia() );
mMediaUrlCheck->setEnabled( can_change_media );
@@ -255,7 +249,7 @@ void LLPanelLandMedia::setMediaType(const std::string& mime_type)
// localizable - "none" for example (see EXT-6542)
mime_str = LLMIMETypes::getDefaultMimeTypeTranslation();
}
- childSetText("mime_type", mime_str);
+ getChild<LLUICtrl>("mime_type")->setValue(mime_str);
}
void LLPanelLandMedia::setMediaURL(const std::string& media_url)
@@ -269,7 +263,7 @@ void LLPanelLandMedia::setMediaURL(const std::string& media_url)
mMediaURLEdit->onCommit();
// LLViewerParcelMedia::sendMediaNavigateMessage(media_url);
- childSetText("current_url", media_url);
+ getChild<LLUICtrl>("current_url")->setValue(media_url);
}
std::string LLPanelLandMedia::getMediaURL()
{
@@ -280,11 +274,11 @@ std::string LLPanelLandMedia::getMediaURL()
void LLPanelLandMedia::onCommitType(LLUICtrl *ctrl, void *userdata)
{
LLPanelLandMedia *self = (LLPanelLandMedia *)userdata;
- std::string current_type = LLMIMETypes::widgetType(self->childGetText("mime_type"));
+ std::string current_type = LLMIMETypes::widgetType(self->getChild<LLUICtrl>("mime_type")->getValue().asString());
std::string new_type = self->mMediaTypeCombo->getValue();
if(current_type != new_type)
{
- self->childSetText("mime_type", LLMIMETypes::findDefaultMimeType(new_type));
+ self->getChild<LLUICtrl>("mime_type")->setValue(LLMIMETypes::findDefaultMimeType(new_type));
}
onCommitAny(ctrl, userdata);
@@ -304,7 +298,7 @@ void LLPanelLandMedia::onCommitAny(LLUICtrl*, void *userdata)
// Extract data from UI
std::string media_url = self->mMediaURLEdit->getText();
std::string media_desc = self->mMediaDescEdit->getText();
- std::string mime_type = self->childGetText("mime_type");
+ std::string mime_type = self->getChild<LLUICtrl>("mime_type")->getValue().asString();
U8 media_auto_scale = self->mMediaAutoScaleCheck->get();
U8 media_loop = self->mMediaLoopCheck->get();
U8 obscure_media = self->mMediaUrlCheck->get();
@@ -313,7 +307,7 @@ void LLPanelLandMedia::onCommitAny(LLUICtrl*, void *userdata)
LLUUID media_id = self->mMediaTextureCtrl->getImageAssetID();
- self->childSetText("mime_type", mime_type);
+ self->getChild<LLUICtrl>("mime_type")->setValue(mime_type);
// Remove leading/trailing whitespace (common when copying/pasting)
LLStringUtil::trim(media_url);
@@ -354,7 +348,7 @@ void LLPanelLandMedia::onResetBtn(void *userdata)
LLParcel* parcel = self->mParcel->getParcel();
// LLViewerMedia::navigateHome();
self->refresh();
- self->childSetText("current_url", parcel->getMediaURL());
+ self->getChild<LLUICtrl>("current_url")->setValue(parcel->getMediaURL());
// LLViewerParcelMedia::sendMediaNavigateMessage(parcel->getMediaURL());
}
diff --git a/indra/newview/llpanellandmedia.h b/indra/newview/llpanellandmedia.h
index 3deea29d17..0e6292a25e 100644
--- a/indra/newview/llpanellandmedia.h
+++ b/indra/newview/llpanellandmedia.h
@@ -3,31 +3,25 @@
* @brief Allows configuration of "media" for a land parcel,
* for example movies, web pages, and audio.
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llpanellogin.cpp b/indra/newview/llpanellogin.cpp
index 144839b554..7c93d8a1f9 100644
--- a/indra/newview/llpanellogin.cpp
+++ b/indra/newview/llpanellogin.cpp
@@ -2,31 +2,25 @@
* @file llpanellogin.cpp
* @brief Login dialog and logo display
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -193,7 +187,7 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect,
// Logo
mLogoImage = LLUI::getUIImage("startup_logo");
- LLUICtrlFactory::getInstance()->buildPanel(this, "panel_login.xml");
+ buildFromFile( "panel_login.xml");
#if USE_VIEWER_AUTH
//leave room for the login menu bar
@@ -211,7 +205,7 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect,
}
#if !USE_VIEWER_AUTH
- childSetPrevalidate("username_edit", LLTextValidate::validateASCIIPrintableNoPipe);
+ getChild<LLLineEditor>("username_edit")->setPrevalidate(LLTextValidate::validateASCIIPrintableNoPipe);
getChild<LLLineEditor>("password_edit")->setKeystrokeCallback(onPassKey, this);
// change z sort of clickable text to be behind buttons
@@ -263,13 +257,6 @@ LLPanelLogin::LLPanelLogin(const LLRect &rect,
// Clear the browser's cache to avoid any potential for the cache messing up the login screen.
web_browser->clearCache();
- // Need to handle login secondlife:///app/ URLs
- web_browser->setTrusted( true );
-
- // don't make it a tab stop until SL-27594 is fixed
- web_browser->setTabStop(FALSE);
- // web_browser->navigateToLocalPage( "loading", "loading.html" );
-
reshapeBrowser();
// kick off a request to grab the url manually
@@ -441,8 +428,8 @@ void LLPanelLogin::giveFocus()
if( sInstance )
{
// Grab focus and move cursor to first blank input field
- std::string username = sInstance->childGetText("username_edit");
- std::string pass = sInstance->childGetText("password_edit");
+ std::string username = sInstance->getChild<LLUICtrl>("username_edit")->getValue().asString();
+ std::string pass = sInstance->getChild<LLUICtrl>("password_edit")->getValue().asString();
BOOL have_username = !username.empty();
BOOL have_pass = !pass.empty();
@@ -472,7 +459,7 @@ void LLPanelLogin::giveFocus()
// static
void LLPanelLogin::showLoginWidgets()
{
- sInstance->childSetVisible("login_widgets", true);
+ sInstance->getChildView("login_widgets")->setVisible( true);
LLMediaCtrl* web_browser = sInstance->getChild<LLMediaCtrl>("login_html");
sInstance->reshapeBrowser();
// *TODO: Append all the usual login parameters, like first_login=Y etc.
@@ -514,16 +501,16 @@ void LLPanelLogin::setFields(LLPointer<LLCredential> credential,
LLSD identifier = credential->getIdentifier();
if((std::string)identifier["type"] == "agent")
{
- sInstance->childSetText("username_edit", (std::string)identifier["first_name"] + " " +
+ sInstance->getChild<LLUICtrl>("username_edit")->setValue((std::string)identifier["first_name"] + " " +
(std::string)identifier["last_name"]);
}
else if((std::string)identifier["type"] == "account")
{
- sInstance->childSetText("username_edit", (std::string)identifier["account_name"]);
+ sInstance->getChild<LLUICtrl>("username_edit")->setValue((std::string)identifier["account_name"]);
}
else
{
- sInstance->childSetText("username_edit", std::string());
+ sInstance->getChild<LLUICtrl>("username_edit")->setValue(std::string());
}
// if the password exists in the credential, set the password field with
// a filler to get some stars
@@ -539,13 +526,13 @@ void LLPanelLogin::setFields(LLPointer<LLCredential> credential,
// fill it with MAX_PASSWORD characters so we get a
// nice row of asterixes.
const std::string filler("123456789!123456");
- sInstance->childSetText("password_edit", std::string("123456789!123456"));
+ sInstance->getChild<LLUICtrl>("password_edit")->setValue(std::string("123456789!123456"));
}
else
{
- sInstance->childSetText("password_edit", std::string());
+ sInstance->getChild<LLUICtrl>("password_edit")->setValue(std::string());
}
- sInstance->childSetValue("remember_check", remember);
+ sInstance->getChild<LLUICtrl>("remember_check")->setValue(remember);
}
@@ -572,9 +559,9 @@ void LLPanelLogin::getFields(LLPointer<LLCredential>& credential,
authenticator = credential->getAuthenticator();
}
- std::string username = sInstance->childGetText("username_edit");
+ std::string username = sInstance->getChild<LLUICtrl>("username_edit")->getValue().asString();
LLStringUtil::trim(username);
- std::string password = sInstance->childGetText("password_edit");
+ std::string password = sInstance->getChild<LLUICtrl>("password_edit")->getValue().asString();
LL_INFOS2("Credentials", "Authentication") << "retrieving username:" << username << LL_ENDL;
// determine if the username is a first/last form or not.
@@ -621,7 +608,7 @@ void LLPanelLogin::getFields(LLPointer<LLCredential>& credential,
}
}
credential = gSecAPIHandler->createCredential(LLGridManager::getInstance()->getGrid(), identifier, authenticator);
- remember = sInstance->childGetValue("remember_check");
+ remember = sInstance->getChild<LLUICtrl>("remember_check")->getValue();
}
// static
@@ -649,9 +636,9 @@ BOOL LLPanelLogin::areCredentialFieldsDirty()
}
else
{
- std::string username = sInstance->childGetText("username_edit");
+ std::string username = sInstance->getChild<LLUICtrl>("username_edit")->getValue().asString();
LLStringUtil::trim(username);
- std::string password = sInstance->childGetText("password_edit");
+ std::string password = sInstance->getChild<LLUICtrl>("password_edit")->getValue().asString();
LLLineEditor* ctrl = sInstance->getChild<LLLineEditor>("username_edit");
if(ctrl && ctrl->isDirty())
{
@@ -699,12 +686,12 @@ void LLPanelLogin::updateLocationCombo( bool force_visible )
if ( ! force_visible )
show_start = gSavedSettings.getBOOL("ShowStartLocation");
- sInstance->childSetVisible("start_location_combo", show_start);
- sInstance->childSetVisible("start_location_text", show_start);
+ sInstance->getChildView("start_location_combo")->setVisible( show_start);
+ sInstance->getChildView("start_location_text")->setVisible( show_start);
BOOL show_server = gSavedSettings.getBOOL("ForceShowGrid");
- sInstance->childSetVisible("server_combo_text", show_server);
- sInstance->childSetVisible("server_combo", show_server);
+ sInstance->getChildView("server_combo_text")->setVisible( show_server);
+ sInstance->getChildView("server_combo")->setVisible( show_server);
}
// static
@@ -964,7 +951,7 @@ void LLPanelLogin::onClickConnect(void *)
return;
}
updateStartSLURL();
- std::string username = sInstance->childGetText("username_edit");
+ std::string username = sInstance->getChild<LLUICtrl>("username_edit")->getValue().asString();
if(username.empty())
@@ -1079,7 +1066,7 @@ void LLPanelLogin::updateServer()
if(sInstance && !sInstance->areCredentialFieldsDirty())
{
LLPointer<LLCredential> credential = gSecAPIHandler->loadCredential(LLGridManager::getInstance()->getGrid());
- bool remember = sInstance->childGetValue("remember_check");
+ bool remember = sInstance->getChild<LLUICtrl>("remember_check")->getValue();
sInstance->setFields(credential, remember);
}
// grid changed so show new splash screen (possibly)
@@ -1110,9 +1097,10 @@ void LLPanelLogin::updateServerCombo()
{
if (!grid_choice->first.empty())
{
- server_choice_combo->add(grid_choice->second, grid_choice->first, ADD_SORTED);
+ server_choice_combo->add(grid_choice->second, grid_choice->first);
}
}
+ server_choice_combo->sortByName();
server_choice_combo->addSeparator(ADD_TOP);
@@ -1173,6 +1161,6 @@ void LLPanelLogin::updateLoginPanelLinks()
// need to call through sInstance, as it's called from onSelectServer, which
// is static.
- sInstance->childSetVisible("create_new_account_text", system_grid);
- sInstance->childSetVisible("forgot_password_text", system_grid);
+ sInstance->getChildView("create_new_account_text")->setVisible( system_grid);
+ sInstance->getChildView("forgot_password_text")->setVisible( system_grid);
}
diff --git a/indra/newview/llpanellogin.h b/indra/newview/llpanellogin.h
index aa6884ea97..83e76a308b 100644
--- a/indra/newview/llpanellogin.h
+++ b/indra/newview/llpanellogin.h
@@ -2,31 +2,25 @@
* @file llpanellogin.h
* @brief Login username entry fields.
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llpanelloginlistener.cpp b/indra/newview/llpanelloginlistener.cpp
index f7e59aaf54..33efde11f3 100644
--- a/indra/newview/llpanelloginlistener.cpp
+++ b/indra/newview/llpanelloginlistener.cpp
@@ -4,8 +4,25 @@
* @date 2009-12-10
* @brief Implementation for llpanelloginlistener.
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- * Copyright (c) 2009, Linden Research, Inc.
+ * $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$
*/
diff --git a/indra/newview/llpanelloginlistener.h b/indra/newview/llpanelloginlistener.h
index 0a56c75422..45dcea269c 100644
--- a/indra/newview/llpanelloginlistener.h
+++ b/indra/newview/llpanelloginlistener.h
@@ -4,8 +4,25 @@
* @date 2009-12-10
* @brief LLEventAPI for LLPanelLogin
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- * Copyright (c) 2009, Linden Research, Inc.
+ * $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$
*/
diff --git a/indra/newview/llpanelmaininventory.cpp b/indra/newview/llpanelmaininventory.cpp
index 9eece81861..5b07e4863b 100644
--- a/indra/newview/llpanelmaininventory.cpp
+++ b/indra/newview/llpanelmaininventory.cpp
@@ -2,31 +2,25 @@
* @file llsidepanelmaininventory.cpp
* @brief Implementation of llsidepanelmaininventory.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -45,6 +39,7 @@
#include "llinventorypanel.h"
#include "llfiltereditor.h"
#include "llfloaterreg.h"
+#include "lloutfitobserver.h"
#include "llpreviewtexture.h"
#include "llresmgr.h"
#include "llscrollcontainer.h"
@@ -53,6 +48,8 @@
#include "lltooldraganddrop.h"
#include "llviewermenu.h"
#include "llviewertexturelist.h"
+#include "llsidepanelinventory.h"
+#include "llsidetray.h"
const std::string FILTERS_FILENAME("filters.xml");
@@ -195,14 +192,15 @@ BOOL LLPanelMainInventory::postBuild()
mFilterEditor->setCommitCallback(boost::bind(&LLPanelMainInventory::onFilterEdit, this, _2));
}
+ initListCommandsHandlers();
+
// *TODO:Get the cost info from the server
const std::string upload_cost("10");
- childSetLabelArg("Upload Image", "[COST]", upload_cost);
- childSetLabelArg("Upload Sound", "[COST]", upload_cost);
- childSetLabelArg("Upload Animation", "[COST]", upload_cost);
- childSetLabelArg("Bulk Upload", "[COST]", upload_cost);
+ mMenuAdd->getChild<LLMenuItemGL>("Upload Image")->setLabelArg("[COST]", upload_cost);
+ mMenuAdd->getChild<LLMenuItemGL>("Upload Sound")->setLabelArg("[COST]", upload_cost);
+ mMenuAdd->getChild<LLMenuItemGL>("Upload Animation")->setLabelArg("[COST]", upload_cost);
+ mMenuAdd->getChild<LLMenuItemGL>("Bulk Upload")->setLabelArg("[COST]", upload_cost);
- initListCommandsHandlers();
return TRUE;
}
@@ -392,6 +390,7 @@ void LLPanelMainInventory::onClearSearch()
{
mActivePanel->setFilterSubString(LLStringUtil::null);
mActivePanel->setFilterTypes(0xffffffff);
+ mActivePanel->setFilterLinks(LLInventoryFilter::FILTERLINK_INCLUDE_LINKS);
}
if (finder)
@@ -486,7 +485,7 @@ void LLPanelMainInventory::onFilterEdit(const std::string& search_string )
void LLPanelMainInventory::onFilterSelected()
{
// Find my index
- mActivePanel = (LLInventoryPanel*)childGetVisibleTab("inventory filter tabs");
+ mActivePanel = (LLInventoryPanel*)getChild<LLTabContainer>("inventory filter tabs")->getCurrentPanel();
if (!mActivePanel)
{
@@ -494,7 +493,7 @@ void LLPanelMainInventory::onFilterSelected()
}
BOOL recent_active = ("Recent Items" == mActivePanel->getName());
- childSetVisible("add_btn_panel", !recent_active);
+ getChildView("add_btn_panel")->setVisible( !recent_active);
setFilterSubString(mFilterSubString);
LLInventoryFilter* filter = mActivePanel->getFilter();
@@ -563,7 +562,8 @@ void LLPanelMainInventory::draw()
void LLPanelMainInventory::updateItemcountText()
{
- LLLocale locale(LLLocale::USER_LOCALE);
+ // *TODO: Calling setlocale() on each frame may be inefficient.
+ LLLocale locale(LLStringUtil::getLocale());
std::string item_count_string;
LLResMgr::getInstance()->getIntegerString(item_count_string, gInventory.getItemCount());
@@ -585,7 +585,7 @@ void LLPanelMainInventory::updateItemcountText()
{
text = getString("ItemcountUnknown");
}
- childSetText("ItemcountText",text);
+ getChild<LLUICtrl>("ItemcountText")->setValue(text);
}
void LLPanelMainInventory::setFilterTextFromFilter()
@@ -642,7 +642,7 @@ LLFloaterInventoryFinder::LLFloaterInventoryFinder(LLPanelMainInventory* invento
mPanelMainInventory(inventory_view),
mFilter(inventory_view->getPanel()->getFilter())
{
- LLUICtrlFactory::getInstance()->buildFloater(this, "floater_inventory_view_finder.xml", NULL);
+ buildFromFile("floater_inventory_view_finder.xml");
updateElementsFromFilter();
}
@@ -652,7 +652,7 @@ void LLFloaterInventoryFinder::onCheckSinceLogoff(LLUICtrl *ctrl, void *user_dat
LLFloaterInventoryFinder *self = (LLFloaterInventoryFinder *)user_data;
if (!self) return;
- bool since_logoff= self->childGetValue("check_since_logoff");
+ bool since_logoff= self->getChild<LLUICtrl>("check_since_logoff")->getValue();
if (!since_logoff &&
!( self->mSpinSinceDays->get() || self->mSpinSinceHours->get() ) )
@@ -692,7 +692,7 @@ void LLFloaterInventoryFinder::onTimeAgo(LLUICtrl *ctrl, void *user_data)
{
since_logoff = false;
}
- self->childSetValue("check_since_logoff", since_logoff);
+ self->getChild<LLUICtrl>("check_since_logoff")->setValue(since_logoff);
}
void LLFloaterInventoryFinder::changeFilter(LLInventoryFilter* filter)
@@ -715,20 +715,20 @@ void LLFloaterInventoryFinder::updateElementsFromFilter()
// update the ui elements
setTitle(mFilter->getName());
- childSetValue("check_animation", (S32) (filter_types & 0x1 << LLInventoryType::IT_ANIMATION));
-
- childSetValue("check_calling_card", (S32) (filter_types & 0x1 << LLInventoryType::IT_CALLINGCARD));
- childSetValue("check_clothing", (S32) (filter_types & 0x1 << LLInventoryType::IT_WEARABLE));
- childSetValue("check_gesture", (S32) (filter_types & 0x1 << LLInventoryType::IT_GESTURE));
- childSetValue("check_landmark", (S32) (filter_types & 0x1 << LLInventoryType::IT_LANDMARK));
- childSetValue("check_notecard", (S32) (filter_types & 0x1 << LLInventoryType::IT_NOTECARD));
- childSetValue("check_object", (S32) (filter_types & 0x1 << LLInventoryType::IT_OBJECT));
- childSetValue("check_script", (S32) (filter_types & 0x1 << LLInventoryType::IT_LSL));
- childSetValue("check_sound", (S32) (filter_types & 0x1 << LLInventoryType::IT_SOUND));
- childSetValue("check_texture", (S32) (filter_types & 0x1 << LLInventoryType::IT_TEXTURE));
- childSetValue("check_snapshot", (S32) (filter_types & 0x1 << LLInventoryType::IT_SNAPSHOT));
- childSetValue("check_show_empty", show_folders == LLInventoryFilter::SHOW_ALL_FOLDERS);
- childSetValue("check_since_logoff", mFilter->isSinceLogoff());
+ getChild<LLUICtrl>("check_animation")->setValue((S32) (filter_types & 0x1 << LLInventoryType::IT_ANIMATION));
+
+ getChild<LLUICtrl>("check_calling_card")->setValue((S32) (filter_types & 0x1 << LLInventoryType::IT_CALLINGCARD));
+ getChild<LLUICtrl>("check_clothing")->setValue((S32) (filter_types & 0x1 << LLInventoryType::IT_WEARABLE));
+ getChild<LLUICtrl>("check_gesture")->setValue((S32) (filter_types & 0x1 << LLInventoryType::IT_GESTURE));
+ getChild<LLUICtrl>("check_landmark")->setValue((S32) (filter_types & 0x1 << LLInventoryType::IT_LANDMARK));
+ getChild<LLUICtrl>("check_notecard")->setValue((S32) (filter_types & 0x1 << LLInventoryType::IT_NOTECARD));
+ getChild<LLUICtrl>("check_object")->setValue((S32) (filter_types & 0x1 << LLInventoryType::IT_OBJECT));
+ getChild<LLUICtrl>("check_script")->setValue((S32) (filter_types & 0x1 << LLInventoryType::IT_LSL));
+ getChild<LLUICtrl>("check_sound")->setValue((S32) (filter_types & 0x1 << LLInventoryType::IT_SOUND));
+ getChild<LLUICtrl>("check_texture")->setValue((S32) (filter_types & 0x1 << LLInventoryType::IT_TEXTURE));
+ getChild<LLUICtrl>("check_snapshot")->setValue((S32) (filter_types & 0x1 << LLInventoryType::IT_SNAPSHOT));
+ getChild<LLUICtrl>("check_show_empty")->setValue(show_folders == LLInventoryFilter::SHOW_ALL_FOLDERS);
+ getChild<LLUICtrl>("check_since_logoff")->setValue(mFilter->isSinceLogoff());
mSpinSinceHours->set((F32)(hours % 24));
mSpinSinceDays->set((F32)(hours / 24));
}
@@ -739,32 +739,32 @@ void LLFloaterInventoryFinder::draw()
U32 filter = 0xffffffff;
BOOL filtered_by_all_types = TRUE;
- if (!childGetValue("check_animation"))
+ if (!getChild<LLUICtrl>("check_animation")->getValue())
{
filter &= ~(0x1 << LLInventoryType::IT_ANIMATION);
filtered_by_all_types = FALSE;
}
- if (!childGetValue("check_calling_card"))
+ if (!getChild<LLUICtrl>("check_calling_card")->getValue())
{
filter &= ~(0x1 << LLInventoryType::IT_CALLINGCARD);
filtered_by_all_types = FALSE;
}
- if (!childGetValue("check_clothing"))
+ if (!getChild<LLUICtrl>("check_clothing")->getValue())
{
filter &= ~(0x1 << LLInventoryType::IT_WEARABLE);
filtered_by_all_types = FALSE;
}
- if (!childGetValue("check_gesture"))
+ if (!getChild<LLUICtrl>("check_gesture")->getValue())
{
filter &= ~(0x1 << LLInventoryType::IT_GESTURE);
filtered_by_all_types = FALSE;
}
- if (!childGetValue("check_landmark"))
+ if (!getChild<LLUICtrl>("check_landmark")->getValue())
{
@@ -772,38 +772,38 @@ void LLFloaterInventoryFinder::draw()
filtered_by_all_types = FALSE;
}
- if (!childGetValue("check_notecard"))
+ if (!getChild<LLUICtrl>("check_notecard")->getValue())
{
filter &= ~(0x1 << LLInventoryType::IT_NOTECARD);
filtered_by_all_types = FALSE;
}
- if (!childGetValue("check_object"))
+ if (!getChild<LLUICtrl>("check_object")->getValue())
{
filter &= ~(0x1 << LLInventoryType::IT_OBJECT);
filter &= ~(0x1 << LLInventoryType::IT_ATTACHMENT);
filtered_by_all_types = FALSE;
}
- if (!childGetValue("check_script"))
+ if (!getChild<LLUICtrl>("check_script")->getValue())
{
filter &= ~(0x1 << LLInventoryType::IT_LSL);
filtered_by_all_types = FALSE;
}
- if (!childGetValue("check_sound"))
+ if (!getChild<LLUICtrl>("check_sound")->getValue())
{
filter &= ~(0x1 << LLInventoryType::IT_SOUND);
filtered_by_all_types = FALSE;
}
- if (!childGetValue("check_texture"))
+ if (!getChild<LLUICtrl>("check_texture")->getValue())
{
filter &= ~(0x1 << LLInventoryType::IT_TEXTURE);
filtered_by_all_types = FALSE;
}
- if (!childGetValue("check_snapshot"))
+ if (!getChild<LLUICtrl>("check_snapshot")->getValue())
{
filter &= ~(0x1 << LLInventoryType::IT_SNAPSHOT);
filtered_by_all_types = FALSE;
@@ -843,12 +843,12 @@ void LLFloaterInventoryFinder::draw()
BOOL LLFloaterInventoryFinder::getCheckShowEmpty()
{
- return childGetValue("check_show_empty");
+ return getChild<LLUICtrl>("check_show_empty")->getValue();
}
BOOL LLFloaterInventoryFinder::getCheckSinceLogoff()
{
- return childGetValue("check_since_logoff");
+ return getChild<LLUICtrl>("check_since_logoff")->getValue();
}
void LLFloaterInventoryFinder::onCloseBtn(void* user_data)
@@ -863,17 +863,17 @@ void LLFloaterInventoryFinder::selectAllTypes(void* user_data)
LLFloaterInventoryFinder* self = (LLFloaterInventoryFinder*)user_data;
if(!self) return;
- self->childSetValue("check_animation", TRUE);
- self->childSetValue("check_calling_card", TRUE);
- self->childSetValue("check_clothing", TRUE);
- self->childSetValue("check_gesture", TRUE);
- self->childSetValue("check_landmark", TRUE);
- self->childSetValue("check_notecard", TRUE);
- self->childSetValue("check_object", TRUE);
- self->childSetValue("check_script", TRUE);
- self->childSetValue("check_sound", TRUE);
- self->childSetValue("check_texture", TRUE);
- self->childSetValue("check_snapshot", TRUE);
+ self->getChild<LLUICtrl>("check_animation")->setValue(TRUE);
+ self->getChild<LLUICtrl>("check_calling_card")->setValue(TRUE);
+ self->getChild<LLUICtrl>("check_clothing")->setValue(TRUE);
+ self->getChild<LLUICtrl>("check_gesture")->setValue(TRUE);
+ self->getChild<LLUICtrl>("check_landmark")->setValue(TRUE);
+ self->getChild<LLUICtrl>("check_notecard")->setValue(TRUE);
+ self->getChild<LLUICtrl>("check_object")->setValue(TRUE);
+ self->getChild<LLUICtrl>("check_script")->setValue(TRUE);
+ self->getChild<LLUICtrl>("check_sound")->setValue(TRUE);
+ self->getChild<LLUICtrl>("check_texture")->setValue(TRUE);
+ self->getChild<LLUICtrl>("check_snapshot")->setValue(TRUE);
}
//static
@@ -882,17 +882,17 @@ void LLFloaterInventoryFinder::selectNoTypes(void* user_data)
LLFloaterInventoryFinder* self = (LLFloaterInventoryFinder*)user_data;
if(!self) return;
- self->childSetValue("check_animation", FALSE);
- self->childSetValue("check_calling_card", FALSE);
- self->childSetValue("check_clothing", FALSE);
- self->childSetValue("check_gesture", FALSE);
- self->childSetValue("check_landmark", FALSE);
- self->childSetValue("check_notecard", FALSE);
- self->childSetValue("check_object", FALSE);
- self->childSetValue("check_script", FALSE);
- self->childSetValue("check_sound", FALSE);
- self->childSetValue("check_texture", FALSE);
- self->childSetValue("check_snapshot", FALSE);
+ self->getChild<LLUICtrl>("check_animation")->setValue(FALSE);
+ self->getChild<LLUICtrl>("check_calling_card")->setValue(FALSE);
+ self->getChild<LLUICtrl>("check_clothing")->setValue(FALSE);
+ self->getChild<LLUICtrl>("check_gesture")->setValue(FALSE);
+ self->getChild<LLUICtrl>("check_landmark")->setValue(FALSE);
+ self->getChild<LLUICtrl>("check_notecard")->setValue(FALSE);
+ self->getChild<LLUICtrl>("check_object")->setValue(FALSE);
+ self->getChild<LLUICtrl>("check_script")->setValue(FALSE);
+ self->getChild<LLUICtrl>("check_sound")->setValue(FALSE);
+ self->getChild<LLUICtrl>("check_texture")->setValue(FALSE);
+ self->getChild<LLUICtrl>("check_snapshot")->setValue(FALSE);
}
//////////////////////////////////////////////////////////////////////////////////
@@ -915,6 +915,9 @@ void LLPanelMainInventory::initListCommandsHandlers()
mEnableCallbackRegistrar.add("Inventory.GearDefault.Enable", boost::bind(&LLPanelMainInventory::isActionEnabled, this, _2));
mMenuGearDefault = LLUICtrlFactory::getInstance()->createFromFile<LLMenuGL>("menu_inventory_gear_default.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance());
mMenuAdd = LLUICtrlFactory::getInstance()->createFromFile<LLMenuGL>("menu_inventory_add.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance());
+
+ // Update the trash button when selected item(s) get worn or taken off.
+ LLOutfitObserver::instance().addCOFChangedCallback(boost::bind(&LLPanelMainInventory::updateListCommands, this));
}
void LLPanelMainInventory::updateListCommands()
@@ -1068,6 +1071,7 @@ void LLPanelMainInventory::onCustomAction(const LLSD& userdata)
mFilterEditor->setFocus(TRUE);
filter->setFilterUUID(item_id);
filter->setShowFolderState(LLInventoryFilter::SHOW_NON_EMPTY_FOLDERS);
+ filter->setFilterLinks(LLInventoryFilter::FILTERLINK_ONLY_LINKS);
}
}
@@ -1134,7 +1138,10 @@ BOOL LLPanelMainInventory::isActionEnabled(const LLSD& userdata)
if (command_name == "find_links")
{
- LLFolderViewItem* current_item = getActivePanel()->getRootFolder()->getCurSelectedItem();
+ LLFolderView* root = getActivePanel()->getRootFolder();
+ std::set<LLUUID> selection_set = root->getSelectionList();
+ if (selection_set.size() != 1) return FALSE;
+ LLFolderViewItem* current_item = root->getCurSelectedItem();
if (!current_item) return FALSE;
const LLUUID& item_id = current_item->getListener()->getUUID();
const LLInventoryObject *obj = gInventory.getObject(item_id);
@@ -1158,6 +1165,12 @@ BOOL LLPanelMainInventory::isActionEnabled(const LLSD& userdata)
return FALSE;
}
+ if (command_name == "share")
+ {
+ LLSidepanelInventory* parent = dynamic_cast<LLSidepanelInventory*>(LLSideTray::getInstance()->getPanel("sidepanel_inventory"));
+ return parent ? parent->canShare() : FALSE;
+ }
+
return TRUE;
}
diff --git a/indra/newview/llpanelmaininventory.h b/indra/newview/llpanelmaininventory.h
index 82b72ac224..cf2cc14531 100644
--- a/indra/newview/llpanelmaininventory.h
+++ b/indra/newview/llpanelmaininventory.h
@@ -3,31 +3,25 @@
* @brief llpanelmaininventory.h
* class definition
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -47,6 +41,7 @@ class LLFilterEditor;
class LLTabContainer;
class LLFloaterInventoryFinder;
class LLMenuGL;
+class LLFloater;
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// Class LLPanelMainInventory
diff --git a/indra/newview/llpanelme.cpp b/indra/newview/llpanelme.cpp
index 3f620869e0..36a3aae15f 100644
--- a/indra/newview/llpanelme.cpp
+++ b/indra/newview/llpanelme.cpp
@@ -2,31 +2,25 @@
* @file llpanelme.cpp
* @brief Side tray "Me" (My Profile) panel
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -146,10 +140,10 @@ void LLPanelMe::onSaveChangesClicked()
data.avatar_id = gAgent.getID();
data.image_id = mEditPanel->getChild<LLTextureCtrl>(PICKER_SECOND_LIFE)->getImageAssetID();
data.fl_image_id = mEditPanel->getChild<LLTextureCtrl>(PICKER_FIRST_LIFE)->getImageAssetID();
- data.about_text = mEditPanel->childGetValue("sl_description_edit").asString();
- data.fl_about_text = mEditPanel->childGetValue("fl_description_edit").asString();
- data.profile_url = mEditPanel->childGetValue("homepage_edit").asString();
- data.allow_publish = mEditPanel->childGetValue("show_in_search_checkbox");
+ data.about_text = mEditPanel->getChild<LLUICtrl>("sl_description_edit")->getValue().asString();
+ data.fl_about_text = mEditPanel->getChild<LLUICtrl>("fl_description_edit")->getValue().asString();
+ data.profile_url = mEditPanel->getChild<LLUICtrl>("homepage_edit")->getValue().asString();
+ data.allow_publish = mEditPanel->getChild<LLUICtrl>("show_in_search_checkbox")->getValue();
LLAvatarPropertiesProcessor::getInstance()->sendAvatarPropertiesUpdate(&data);
togglePanel(mEditPanel); // close
@@ -168,7 +162,7 @@ void LLPanelMe::onCancelClicked()
LLPanelMyProfileEdit::LLPanelMyProfileEdit()
: LLPanelMyProfile()
{
- LLUICtrlFactory::getInstance()->buildPanel(this, "panel_edit_profile.xml");
+ buildFromFile( "panel_edit_profile.xml");
setAvatarId(gAgent.getID());
}
@@ -205,20 +199,20 @@ void LLPanelMyProfileEdit::processProfileProperties(const LLAvatarData* avatar_d
// 'Home page' was hidden in LLPanelAvatarProfile::fillCommonData() to fix EXT-4734
// Show 'Home page' in Edit My Profile (EXT-4873)
- childSetVisible("homepage_edit", true);
+ getChildView("homepage_edit")->setVisible( true);
fillPartnerData(avatar_data);
fillAccountStatus(avatar_data);
- childSetValue("show_in_search_checkbox", (BOOL)(avatar_data->flags & AVATAR_ALLOW_PUBLISH));
+ getChild<LLUICtrl>("show_in_search_checkbox")->setValue((BOOL)(avatar_data->flags & AVATAR_ALLOW_PUBLISH));
std::string first, last;
BOOL found = gCacheName->getName(avatar_data->avatar_id, first, last);
if (found)
{
- childSetTextArg("name_text", "[FIRST]", first);
- childSetTextArg("name_text", "[LAST]", last);
+ getChild<LLUICtrl>("name_text")->setTextArg("[FIRST]", first);
+ getChild<LLUICtrl>("name_text")->setTextArg("[LAST]", last);
}
}
@@ -226,8 +220,8 @@ BOOL LLPanelMyProfileEdit::postBuild()
{
initTexturePickerMouseEvents();
- childSetTextArg("partner_edit_link", "[URL]", getString("partner_edit_link_url"));
- childSetTextArg("my_account_link", "[URL]", getString("my_account_link_url"));
+ getChild<LLUICtrl>("partner_edit_link")->setTextArg("[URL]", getString("partner_edit_link_url"));
+ getChild<LLUICtrl>("my_account_link")->setTextArg("[URL]", getString("my_account_link_url"));
return LLPanelAvatarProfile::postBuild();
}
@@ -256,8 +250,8 @@ void LLPanelMyProfileEdit::resetData()
{
LLPanelMyProfile::resetData();
- childSetTextArg("name_text", "[FIRST]", LLStringUtil::null);
- childSetTextArg("name_text", "[LAST]", LLStringUtil::null);
+ getChild<LLUICtrl>("name_text")->setTextArg("[FIRST]", LLStringUtil::null);
+ getChild<LLUICtrl>("name_text")->setTextArg("[LAST]", LLStringUtil::null);
}
void LLPanelMyProfileEdit::onTexturePickerMouseEnter(LLUICtrl* ctrl)
@@ -271,10 +265,10 @@ void LLPanelMyProfileEdit::onTexturePickerMouseLeave(LLUICtrl* ctrl)
void LLPanelMyProfileEdit::enableEditing(bool enable)
{
- childSetEnabled("2nd_life_pic", enable);
- childSetEnabled("real_world_pic", enable);
- childSetEnabled("sl_description_edit", enable);
- childSetEnabled("fl_description_edit", enable);
- childSetEnabled("homepage_edit", enable);
- childSetEnabled("show_in_search_checkbox", enable);
+ getChildView("2nd_life_pic")->setEnabled(enable);
+ getChildView("real_world_pic")->setEnabled(enable);
+ getChildView("sl_description_edit")->setEnabled(enable);
+ getChildView("fl_description_edit")->setEnabled(enable);
+ getChildView("homepage_edit")->setEnabled(enable);
+ getChildView("show_in_search_checkbox")->setEnabled(enable);
}
diff --git a/indra/newview/llpanelme.h b/indra/newview/llpanelme.h
index f2b38de3d6..984ba1e9a2 100644
--- a/indra/newview/llpanelme.h
+++ b/indra/newview/llpanelme.h
@@ -2,31 +2,25 @@
* @file llpanelme.h
* @brief Side tray "Me" (My Profile) panel
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llpanelmediasettingsgeneral.cpp b/indra/newview/llpanelmediasettingsgeneral.cpp
index f601a8d51c..2856ea9db1 100644
--- a/indra/newview/llpanelmediasettingsgeneral.cpp
+++ b/indra/newview/llpanelmediasettingsgeneral.cpp
@@ -2,31 +2,25 @@
* @file llpanelmediasettingsgeneral.cpp
* @brief LLPanelMediaSettingsGeneral class implementation
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -80,7 +74,7 @@ LLPanelMediaSettingsGeneral::LLPanelMediaSettingsGeneral() :
mMediaEditable(false)
{
// build dialog from XML
- LLUICtrlFactory::getInstance()->buildPanel(this, "panel_media_settings_general.xml");
+ buildFromFile( "panel_media_settings_general.xml");
}
////////////////////////////////////////////////////////////////////////////////
@@ -131,13 +125,13 @@ void LLPanelMediaSettingsGeneral::draw()
// enable/disable pixel values image entry based on auto scale checkbox
if ( mAutoScale->getValue().asBoolean() == false )
{
- childSetEnabled( LLMediaEntry::WIDTH_PIXELS_KEY, true );
- childSetEnabled( LLMediaEntry::HEIGHT_PIXELS_KEY, true );
+ getChildView( LLMediaEntry::WIDTH_PIXELS_KEY )->setEnabled( true );
+ getChildView( LLMediaEntry::HEIGHT_PIXELS_KEY )->setEnabled( true );
}
else
{
- childSetEnabled( LLMediaEntry::WIDTH_PIXELS_KEY, false );
- childSetEnabled( LLMediaEntry::HEIGHT_PIXELS_KEY, false );
+ getChildView( LLMediaEntry::WIDTH_PIXELS_KEY )->setEnabled( false );
+ getChildView( LLMediaEntry::HEIGHT_PIXELS_KEY )->setEnabled( false );
};
// enable/disable UI based on type of media
@@ -158,17 +152,17 @@ void LLPanelMediaSettingsGeneral::draw()
bool show_time_controls = media_plugin->pluginSupportsMediaTime();
if ( show_time_controls )
{
- childSetEnabled( LLMediaEntry::CURRENT_URL_KEY, false );
+ getChildView( LLMediaEntry::CURRENT_URL_KEY )->setEnabled( false );
reset_button_is_active = false;
- childSetEnabled( "current_url_label", false );
- childSetEnabled( LLMediaEntry::AUTO_LOOP_KEY, true );
+ getChildView("current_url_label")->setEnabled(false );
+ getChildView( LLMediaEntry::AUTO_LOOP_KEY )->setEnabled( true );
}
else
{
- childSetEnabled( LLMediaEntry::CURRENT_URL_KEY, true );
+ getChildView( LLMediaEntry::CURRENT_URL_KEY )->setEnabled( true );
reset_button_is_active = true;
- childSetEnabled( "current_url_label", true );
- childSetEnabled( LLMediaEntry::AUTO_LOOP_KEY, false );
+ getChildView("current_url_label")->setEnabled(true );
+ getChildView( LLMediaEntry::AUTO_LOOP_KEY )->setEnabled( false );
};
};
};
@@ -185,18 +179,18 @@ void LLPanelMediaSettingsGeneral::draw()
// user has perms to press reset button and it is active
if ( user_can_press_reset )
{
- childSetEnabled( "current_url_reset_btn", true );
+ getChildView("current_url_reset_btn")->setEnabled(true );
}
// user does not has perms to press reset button and it is active
else
{
- childSetEnabled( "current_url_reset_btn", false );
+ getChildView("current_url_reset_btn")->setEnabled(false );
};
}
else
// reset button is inactive so we just slam it to off - other states don't matter
{
- childSetEnabled( "current_url_reset_btn", false );
+ getChildView("current_url_reset_btn")->setEnabled(false );
};
}
diff --git a/indra/newview/llpanelmediasettingsgeneral.h b/indra/newview/llpanelmediasettingsgeneral.h
index a3f0990f35..0ae1401ab2 100644
--- a/indra/newview/llpanelmediasettingsgeneral.h
+++ b/indra/newview/llpanelmediasettingsgeneral.h
@@ -2,31 +2,25 @@
* @file llpanelmediasettingsgeneral.h
* @brief LLPanelMediaSettingsGeneral class definition
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llpanelmediasettingspermissions.cpp b/indra/newview/llpanelmediasettingspermissions.cpp
index e5caaaaffc..5378886b56 100644
--- a/indra/newview/llpanelmediasettingspermissions.cpp
+++ b/indra/newview/llpanelmediasettingspermissions.cpp
@@ -6,31 +6,25 @@
* 'permissions' not changed to 'controls' since we don't want to change
* shared files in server code and keeping everything the same seemed best.
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -65,7 +59,7 @@ LLPanelMediaSettingsPermissions::LLPanelMediaSettingsPermissions() :
mPermsWorldControl( 0 )
{
// build dialog from XML
- LLUICtrlFactory::getInstance()->buildPanel(this, "panel_media_settings_permissions.xml");
+ buildFromFile( "panel_media_settings_permissions.xml");
}
////////////////////////////////////////////////////////////////////////////////
@@ -99,7 +93,7 @@ void LLPanelMediaSettingsPermissions::draw()
// housekeeping
LLPanel::draw();
- childSetText("perms_group_name",LLStringUtil::null);
+ getChild<LLUICtrl>("perms_group_name")->setValue(LLStringUtil::null);
LLUUID group_id;
BOOL groups_identical = LLSelectMgr::getInstance()->selectGetGroup(group_id);
if (groups_identical)
@@ -107,7 +101,6 @@ void LLPanelMediaSettingsPermissions::draw()
if(mPermsGroupName)
{
mPermsGroupName->setNameID(group_id, true);
- mPermsGroupName->setEnabled(true);
};
}
else
@@ -116,7 +109,6 @@ void LLPanelMediaSettingsPermissions::draw()
{
mPermsGroupName->setNameID(LLUUID::null, TRUE);
mPermsGroupName->refresh(LLUUID::null, LLStringUtil::null, LLStringUtil::null, true);
- mPermsGroupName->setEnabled(false);
};
};
}
@@ -142,6 +134,12 @@ void LLPanelMediaSettingsPermissions::clearValues( void* userdata, bool editable
self->mPermsGroupControl->setEnabled(editable);
self->mPermsWorldInteract->setEnabled(editable);
self->mPermsWorldControl->setEnabled(editable);
+
+ self->getChild< LLTextBox >("controls_label")->setEnabled(editable);
+ self->getChild< LLTextBox >("owner_label")->setEnabled(editable);
+ self->getChild< LLTextBox >("group_label")->setEnabled(editable);
+ self->getChild< LLNameBox >("perms_group_name")->setEnabled(editable);
+ self->getChild< LLTextBox >("anyone_label")->setEnabled(editable);
}
////////////////////////////////////////////////////////////////////////////////
@@ -216,13 +214,11 @@ void LLPanelMediaSettingsPermissions::initValues( void* userdata, const LLSD& me
self->mPermsWorldControl->setEnabled(false);
}
-
- self->childSetEnabled("media_perms_label_owner", editable );
- self->childSetText("media_perms_label_owner", LLTrans::getString("Media Perms Owner") );
- self->childSetEnabled("media_perms_label_group", editable );
- self->childSetText("media_perms_label_group", LLTrans::getString("Media Perms Group") );
- self->childSetEnabled("media_perms_label_anyone", editable );
- self->childSetText("media_perms_label_anyone", LLTrans::getString("Media Perms Anyone") );
+ self->getChild< LLTextBox >("controls_label")->setEnabled(editable);
+ self->getChild< LLTextBox >("owner_label")->setEnabled(editable);
+ self->getChild< LLTextBox >("group_label")->setEnabled(editable);
+ self->getChild< LLNameBox >("perms_group_name")->setEnabled(editable);
+ self->getChild< LLTextBox >("anyone_label")->setEnabled(editable);
}
////////////////////////////////////////////////////////////////////////////////
diff --git a/indra/newview/llpanelmediasettingspermissions.h b/indra/newview/llpanelmediasettingspermissions.h
index 858544605c..f976720180 100644
--- a/indra/newview/llpanelmediasettingspermissions.h
+++ b/indra/newview/llpanelmediasettingspermissions.h
@@ -6,31 +6,25 @@
* 'permissions' not changed to 'controls' since we don't want to change
* shared files in server code and keeping everything the same seemed best.
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llpanelmediasettingssecurity.cpp b/indra/newview/llpanelmediasettingssecurity.cpp
index 1b1346c41a..b588e8f930 100644
--- a/indra/newview/llpanelmediasettingssecurity.cpp
+++ b/indra/newview/llpanelmediasettingssecurity.cpp
@@ -2,31 +2,25 @@
* @file llpanelmediasettingssecurity.cpp
* @brief LLPanelMediaSettingsSecurity class implementation
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -59,7 +53,7 @@ LLPanelMediaSettingsSecurity::LLPanelMediaSettingsSecurity() :
mCommitCallbackRegistrar.add("Media.whitelistDelete", boost::bind(&LLPanelMediaSettingsSecurity::onBtnDel, this));
// build dialog from XML
- LLUICtrlFactory::getInstance()->buildPanel(this, "panel_media_settings_security.xml");
+ buildFromFile( "panel_media_settings_security.xml");
}
////////////////////////////////////////////////////////////////////////////////
diff --git a/indra/newview/llpanelmediasettingssecurity.h b/indra/newview/llpanelmediasettingssecurity.h
index 94f2fdc89c..fe8e843571 100644
--- a/indra/newview/llpanelmediasettingssecurity.h
+++ b/indra/newview/llpanelmediasettingssecurity.h
@@ -2,31 +2,25 @@
* @file llpanelmediasettingssecurity.h
* @brief LLPanelMediaSettingsSecurity class definition
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llpanelnearbymedia.cpp b/indra/newview/llpanelnearbymedia.cpp
index 6411cd802d..fcc67d6840 100644
--- a/indra/newview/llpanelnearbymedia.cpp
+++ b/indra/newview/llpanelnearbymedia.cpp
@@ -2,31 +2,25 @@
* @file llpanelnearbymedia.cpp
* @brief Management interface for muting and controlling nearby media
*
- * $LicenseInfo:firstyear=2005&license=viewergpl$
- *
- * Copyright (c) 2005-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -102,7 +96,7 @@ LLPanelNearByMedia::LLPanelNearByMedia()
mCommitCallbackRegistrar.add("SelectedMediaCtrl.Zoom", boost::bind(&LLPanelNearByMedia::onClickSelectedMediaZoom, this));
mCommitCallbackRegistrar.add("SelectedMediaCtrl.Unzoom", boost::bind(&LLPanelNearByMedia::onClickSelectedMediaUnzoom, this));
- LLUICtrlFactory::instance().buildPanel(this, "panel_nearby_media.xml");
+ buildFromFile( "panel_nearby_media.xml");
}
LLPanelNearByMedia::~LLPanelNearByMedia()
@@ -224,8 +218,8 @@ void LLPanelNearByMedia::reshape(S32 width, S32 height, BOOL called_from_parent)
{
LLPanel::reshape(width, height, called_from_parent);
- LLButton* more_less_btn = getChild<LLButton>("more_less_btn");
- if (more_less_btn->getValue().asBoolean())
+ LLButton* more_btn = findChild<LLButton>("more_btn");
+ if (more_btn && more_btn->getValue().asBoolean())
{
mMoreRect = getRect();
}
diff --git a/indra/newview/llpanelnearbymedia.h b/indra/newview/llpanelnearbymedia.h
index 3cecf8e40c..be4d313743 100644
--- a/indra/newview/llpanelnearbymedia.h
+++ b/indra/newview/llpanelnearbymedia.h
@@ -2,31 +2,25 @@
* @file llpanelnearbymedia.h
* @brief Management interface for muting and controlling nearby media
*
- * $LicenseInfo:firstyear=2005&license=viewergpl$
- *
- * Copyright (c) 2005-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llpanelobject.cpp b/indra/newview/llpanelobject.cpp
index 30221da12a..d756a1b931 100644
--- a/indra/newview/llpanelobject.cpp
+++ b/indra/newview/llpanelobject.cpp
@@ -2,31 +2,25 @@
* @file llpanelobject.cpp
* @brief Object editing (position, scale, etc.) in the tools floater
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -172,7 +166,6 @@ BOOL LLPanelObject::postBuild()
//--------------------------------------------------------
// material type popup
- mLabelMaterial = getChild<LLTextBox>("label material");
mComboMaterial = getChild<LLComboBox>("material");
childSetCommitCallback("material",onCommitMaterial,this);
mComboMaterial->removeall();
@@ -189,7 +182,6 @@ BOOL LLPanelObject::postBuild()
mComboMaterialItemCount = mComboMaterial->getItemCount();
// Base Type
- mLabelBaseType = getChild<LLTextBox>("label basetype");
mComboBaseType = getChild<LLComboBox>("comboBaseType");
childSetCommitCallback("comboBaseType",onCommitParametric,this);
@@ -466,17 +458,17 @@ void LLPanelObject::getState( )
BOOL editable = root_objectp->permModify();
// Select Single Message
- childSetVisible("select_single", FALSE);
- childSetVisible("edit_object", FALSE);
+ getChildView("select_single")->setVisible( FALSE);
+ getChildView("edit_object")->setVisible( FALSE);
if (!editable || single_volume || selected_count <= 1)
{
- childSetVisible("edit_object", TRUE);
- childSetEnabled("edit_object", TRUE);
+ getChildView("edit_object")->setVisible( TRUE);
+ getChildView("edit_object")->setEnabled(TRUE);
}
else
{
- childSetVisible("select_single", TRUE);
- childSetEnabled("select_single", TRUE);
+ getChildView("select_single")->setVisible( TRUE);
+ getChildView("select_single")->setEnabled(TRUE);
}
// Lock checkbox - only modifiable if you own the object.
BOOL self_owned = (gAgent.getID() == owner_id);
@@ -548,7 +540,6 @@ void LLPanelObject::getState( )
if (editable && single_volume && material_same)
{
mComboMaterial->setEnabled( TRUE );
- mLabelMaterial->setEnabled( TRUE );
if (material_code == LL_MCODE_LIGHT)
{
if (mComboMaterial->getItemCount() == mComboMaterialItemCount)
@@ -570,7 +561,6 @@ void LLPanelObject::getState( )
else
{
mComboMaterial->setEnabled( FALSE );
- mLabelMaterial->setEnabled( FALSE );
}
//----------------------------------------------------------------------------
@@ -979,7 +969,6 @@ void LLPanelObject::getState( )
}
// Update field enablement
- mLabelBaseType ->setEnabled( enabled );
mComboBaseType ->setEnabled( enabled );
mLabelCut ->setEnabled( enabled );
@@ -998,19 +987,19 @@ void LLPanelObject::getState( )
mLabelSkew ->setEnabled( enabled );
mSpinSkew ->setEnabled( enabled );
- childSetVisible("scale_hole", FALSE);
- childSetVisible("scale_taper", FALSE);
+ getChildView("scale_hole")->setVisible( FALSE);
+ getChildView("scale_taper")->setVisible( FALSE);
if (top_size_x_visible || top_size_y_visible)
{
if (size_is_hole)
{
- childSetVisible("scale_hole", TRUE);
- childSetEnabled("scale_hole", enabled);
+ getChildView("scale_hole")->setVisible( TRUE);
+ getChildView("scale_hole")->setEnabled(enabled);
}
else
{
- childSetVisible("scale_taper", TRUE);
- childSetEnabled("scale_taper", enabled);
+ getChildView("scale_taper")->setVisible( TRUE);
+ getChildView("scale_taper")->setEnabled(enabled);
}
}
@@ -1021,27 +1010,27 @@ void LLPanelObject::getState( )
mSpinShearX ->setEnabled( enabled );
mSpinShearY ->setEnabled( enabled );
- childSetVisible("advanced_cut", FALSE);
- childSetVisible("advanced_dimple", FALSE);
- childSetVisible("advanced_slice", FALSE);
+ getChildView("advanced_cut")->setVisible( FALSE);
+ getChildView("advanced_dimple")->setVisible( FALSE);
+ getChildView("advanced_slice")->setVisible( FALSE);
if (advanced_cut_visible)
{
if (advanced_is_dimple)
{
- childSetVisible("advanced_dimple", TRUE);
- childSetEnabled("advanced_dimple", enabled);
+ getChildView("advanced_dimple")->setVisible( TRUE);
+ getChildView("advanced_dimple")->setEnabled(enabled);
}
else if (advanced_is_slice)
{
- childSetVisible("advanced_slice", TRUE);
- childSetEnabled("advanced_slice", enabled);
+ getChildView("advanced_slice")->setVisible( TRUE);
+ getChildView("advanced_slice")->setEnabled(enabled);
}
else
{
- childSetVisible("advanced_cut", TRUE);
- childSetEnabled("advanced_cut", enabled);
+ getChildView("advanced_cut")->setVisible( TRUE);
+ getChildView("advanced_cut")->setEnabled(enabled);
}
}
@@ -1910,12 +1899,10 @@ void LLPanelObject::clearCtrls()
mCheckCastShadows->setEnabled( FALSE );
#endif
mComboMaterial ->setEnabled( FALSE );
- mLabelMaterial ->setEnabled( FALSE );
// Disable text labels
mLabelPosition ->setEnabled( FALSE );
mLabelSize ->setEnabled( FALSE );
mLabelRotation ->setEnabled( FALSE );
- mLabelBaseType ->setEnabled( FALSE );
mLabelCut ->setEnabled( FALSE );
mLabelHollow ->setEnabled( FALSE );
mLabelHoleType ->setEnabled( FALSE );
@@ -1926,15 +1913,15 @@ void LLPanelObject::clearCtrls()
mLabelRadiusOffset->setEnabled( FALSE );
mLabelRevolutions->setEnabled( FALSE );
- childSetVisible("select_single", FALSE);
- childSetVisible("edit_object", TRUE);
- childSetEnabled("edit_object", FALSE);
+ getChildView("select_single")->setVisible( FALSE);
+ getChildView("edit_object")->setVisible( TRUE);
+ getChildView("edit_object")->setEnabled(FALSE);
- childSetEnabled("scale_hole", FALSE);
- childSetEnabled("scale_taper", FALSE);
- childSetEnabled("advanced_cut", FALSE);
- childSetEnabled("advanced_dimple", FALSE);
- childSetVisible("advanced_slice", FALSE);
+ getChildView("scale_hole")->setEnabled(FALSE);
+ getChildView("scale_taper")->setEnabled(FALSE);
+ getChildView("advanced_cut")->setEnabled(FALSE);
+ getChildView("advanced_dimple")->setEnabled(FALSE);
+ getChildView("advanced_slice")->setVisible( FALSE);
}
//
diff --git a/indra/newview/llpanelobject.h b/indra/newview/llpanelobject.h
index 58d9fe9b76..e07bf007ec 100644
--- a/indra/newview/llpanelobject.h
+++ b/indra/newview/llpanelobject.h
@@ -2,31 +2,25 @@
* @file llpanelobject.h
* @brief Object editing (position, scale, etc.) in the tools floater
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -101,11 +95,9 @@ protected:
protected:
S32 mComboMaterialItemCount;
- LLTextBox* mLabelMaterial;
LLComboBox* mComboMaterial;
// Per-object options
- LLTextBox* mLabelBaseType;
LLComboBox* mComboBaseType;
LLTextBox* mLabelCut;
diff --git a/indra/newview/llpanelobjectinventory.cpp b/indra/newview/llpanelobjectinventory.cpp
index ca1361c84b..211b9cf4b1 100644
--- a/indra/newview/llpanelobjectinventory.cpp
+++ b/indra/newview/llpanelobjectinventory.cpp
@@ -2,31 +2,25 @@
* @file llsidepanelinventory.cpp
* @brief LLPanelObjectInventory class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -750,8 +744,6 @@ void LLTaskCategoryBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
{
std::vector<std::string> items;
std::vector<std::string> disabled_items;
- items.push_back(std::string("--no options--"));
- disabled_items.push_back(std::string("--no options--"));
hide_context_entries(menu, items, disabled_items);
}
diff --git a/indra/newview/llpanelobjectinventory.h b/indra/newview/llpanelobjectinventory.h
index d015929841..607b705f7f 100644
--- a/indra/newview/llpanelobjectinventory.h
+++ b/indra/newview/llpanelobjectinventory.h
@@ -2,31 +2,25 @@
* @file llpanelobjectinventory.h
* @brief LLPanelObjectInventory class definition
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llpanelonlinestatus.cpp b/indra/newview/llpanelonlinestatus.cpp
index 6ba015b11c..8202dfe9a3 100644
--- a/indra/newview/llpanelonlinestatus.cpp
+++ b/indra/newview/llpanelonlinestatus.cpp
@@ -2,31 +2,25 @@
* @file llpanelonlinestatus.cpp
* @brief Represents a class of online status tip toast panels.
*
- * $LicenseInfo:firstyear=2010&license=viewergpl$
- *
- * Copyright (c) 2010, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2010&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -34,18 +28,19 @@
#include "llnotifications.h"
#include "llpanelonlinestatus.h"
+#include "llviewercontrol.h" // for gSavedSettings
LLPanelOnlineStatus::LLPanelOnlineStatus(
const LLNotificationPtr& notification) :
LLPanelTipToast(notification)
{
- LLUICtrlFactory::getInstance()->buildPanel(this,
+ buildFromFile(
"panel_online_status_toast.xml");
- childSetValue("avatar_icon", notification->getPayload()["FROM_ID"]);
- childSetValue("message", notification->getMessage());
+ getChild<LLUICtrl>("avatar_icon")->setValue(notification->getPayload()["FROM_ID"]);
+ getChild<LLUICtrl>("message")->setValue(notification->getMessage());
if (notification->getPayload().has("respond_on_mousedown")
&& notification->getPayload()["respond_on_mousedown"])
@@ -54,7 +49,7 @@ LLPanelOnlineStatus::LLPanelOnlineStatus(
notification, notification->getResponseTemplate()));
}
- // set line max count to 3 in case of a very long name
- snapToMessageHeight(getChild<LLTextBox> ("message"), 3);
+ S32 max_line_count = gSavedSettings.getS32("TipToastMessageLineCount");
+ snapToMessageHeight(getChild<LLTextBox> ("message"), max_line_count);
}
diff --git a/indra/newview/llpanelonlinestatus.h b/indra/newview/llpanelonlinestatus.h
index b47050c3a2..7dc648f135 100644
--- a/indra/newview/llpanelonlinestatus.h
+++ b/indra/newview/llpanelonlinestatus.h
@@ -2,31 +2,25 @@
* @file llpanelonlinestatus.h
* @brief Represents a class of online status tip toast panels.
*
- * $LicenseInfo:firstyear=2010&license=viewergpl$
- *
- * Copyright (c) 2010, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2010&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
diff --git a/indra/newview/llpaneloutfitedit.cpp b/indra/newview/llpaneloutfitedit.cpp
index 5fac7efb84..494db01f77 100644
--- a/indra/newview/llpaneloutfitedit.cpp
+++ b/indra/newview/llpaneloutfitedit.cpp
@@ -2,31 +2,25 @@
* @file llpaneloutfitedit.cpp
* @brief Displays outfit edit information in Side Tray.
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -42,6 +36,7 @@
#include "lloutfitobserver.h"
#include "llcofwearables.h"
#include "llfilteredwearablelist.h"
+#include "llfolderviewitem.h"
#include "llinventory.h"
#include "llinventoryitemslist.h"
#include "llviewercontrol.h"
@@ -71,6 +66,7 @@
#include "llsdutil.h"
#include "llsidepanelappearance.h"
#include "lltoggleablemenu.h"
+#include "llvoavatarself.h"
#include "llwearablelist.h"
#include "llwearableitemslist.h"
#include "llwearabletype.h"
@@ -84,6 +80,11 @@ const U64 ALL_ITEMS_MASK = WEARABLE_MASK | ATTACHMENT_MASK;
static const std::string REVERT_BTN("revert_btn");
+
+///////////////////////////////////////////////////////////////////////////////
+// LLShopURLDispatcher
+///////////////////////////////////////////////////////////////////////////////
+
class LLShopURLDispatcher
{
public:
@@ -143,6 +144,10 @@ std::string LLShopURLDispatcher::resolveURL(LLAssetType::EType asset_type, ESex
return gSavedSettings.getString(setting_name);
}
+///////////////////////////////////////////////////////////////////////////////
+// LLPanelOutfitEditGearMenu
+///////////////////////////////////////////////////////////////////////////////
+
class LLPanelOutfitEditGearMenu
{
public:
@@ -158,7 +163,6 @@ public:
if (menu)
{
populateCreateWearableSubmenus(menu);
- menu->buildDrawLabels();
}
return menu;
@@ -196,7 +200,7 @@ private:
LLMenuItemCallGL::Params p;
p.name = type_name;
- p.label = LLWearableType::getTypeDefaultNewName(type);
+ p.label = LLTrans::getString(LLWearableType::getTypeDefaultNewName(type));
p.on_click.function_name = "Wearable.Create";
p.on_click.parameter = LLSD(type_name);
@@ -207,6 +211,147 @@ private:
}
};
+///////////////////////////////////////////////////////////////////////////////
+// LLAddWearablesGearMenu
+///////////////////////////////////////////////////////////////////////////////
+
+class LLAddWearablesGearMenu : public LLInitClass<LLAddWearablesGearMenu>
+{
+public:
+ static LLMenuGL* create(LLWearableItemsList* flat_list, LLInventoryPanel* inventory_panel)
+ {
+ LLUICtrl::CommitCallbackRegistry::ScopedRegistrar registrar;
+ LLUICtrl::EnableCallbackRegistry::ScopedRegistrar enable_registrar;
+
+ llassert(flat_list);
+ llassert(inventory_panel);
+
+ LLHandle<LLView> flat_list_handle = flat_list->getHandle();
+ LLHandle<LLPanel> inventory_panel_handle = inventory_panel->getHandle();
+
+ registrar.add("AddWearable.Gear.Sort", boost::bind(onSort, flat_list_handle, inventory_panel_handle, _2));
+ enable_registrar.add("AddWearable.Gear.Check", boost::bind(onCheck, flat_list_handle, inventory_panel_handle, _2));
+ enable_registrar.add("AddWearable.Gear.Visible", boost::bind(onVisible, inventory_panel_handle, _2));
+
+ LLMenuGL* menu = LLUICtrlFactory::getInstance()->createFromFile<LLMenuGL>(
+ "menu_add_wearable_gear.xml",
+ LLMenuGL::sMenuContainer, LLViewerMenuHolderGL::child_registry_t::instance());
+
+ return menu;
+ }
+
+private:
+ static void onSort(LLHandle<LLView> flat_list_handle,
+ LLHandle<LLPanel> inventory_panel_handle,
+ LLSD::String sort_order_str)
+ {
+ if (flat_list_handle.isDead() || inventory_panel_handle.isDead()) return;
+
+ LLWearableItemsList* flat_list = dynamic_cast<LLWearableItemsList*>(flat_list_handle.get());
+ LLInventoryPanel* inventory_panel = dynamic_cast<LLInventoryPanel*>(inventory_panel_handle.get());
+
+ if (!flat_list || !inventory_panel) return;
+
+ LLWearableItemsList::ESortOrder sort_order;
+
+ if ("by_most_recent" == sort_order_str)
+ {
+ sort_order = LLWearableItemsList::E_SORT_BY_MOST_RECENT;
+ }
+ else if ("by_name" == sort_order_str)
+ {
+ sort_order = LLWearableItemsList::E_SORT_BY_NAME;
+ }
+ else if ("by_type" == sort_order_str)
+ {
+ sort_order = LLWearableItemsList::E_SORT_BY_TYPE_NAME;
+ }
+ else
+ {
+ llwarns << "Unrecognized sort order action" << llendl;
+ return;
+ }
+
+ if (inventory_panel->getVisible())
+ {
+ inventory_panel->setSortOrder(sort_order);
+ }
+ else
+ {
+ flat_list->setSortOrder(sort_order);
+ }
+ }
+
+ static bool onCheck(LLHandle<LLView> flat_list_handle,
+ LLHandle<LLPanel> inventory_panel_handle,
+ LLSD::String sort_order_str)
+ {
+ if (flat_list_handle.isDead() || inventory_panel_handle.isDead()) return false;
+
+ LLWearableItemsList* flat_list = dynamic_cast<LLWearableItemsList*>(flat_list_handle.get());
+ LLInventoryPanel* inventory_panel = dynamic_cast<LLInventoryPanel*>(inventory_panel_handle.get());
+
+ if (!inventory_panel || !flat_list) return false;
+
+ // Inventory panel uses its own sort order independent from
+ // flat list view so this flag is used to distinguish between
+ // currently visible "tree" or "flat" representation of inventory.
+ bool inventory_tree_visible = inventory_panel->getVisible();
+
+ if (inventory_tree_visible)
+ {
+ U32 sort_order = inventory_panel->getSortOrder();
+
+ if ("by_most_recent" == sort_order_str)
+ {
+ return LLWearableItemsList::E_SORT_BY_MOST_RECENT & sort_order;
+ }
+ else if ("by_name" == sort_order_str)
+ {
+ // If inventory panel is not sorted by date then it is sorted by name.
+ return LLWearableItemsList::E_SORT_BY_MOST_RECENT & ~sort_order;
+ }
+ llwarns << "Unrecognized inventory panel sort order" << llendl;
+ }
+ else
+ {
+ LLWearableItemsList::ESortOrder sort_order = flat_list->getSortOrder();
+
+ if ("by_most_recent" == sort_order_str)
+ {
+ return LLWearableItemsList::E_SORT_BY_MOST_RECENT == sort_order;
+ }
+ else if ("by_name" == sort_order_str)
+ {
+ return LLWearableItemsList::E_SORT_BY_NAME == sort_order;
+ }
+ else if ("by_type" == sort_order_str)
+ {
+ return LLWearableItemsList::E_SORT_BY_TYPE_NAME == sort_order;
+ }
+ llwarns << "Unrecognized wearable list sort order" << llendl;
+ }
+ return false;
+ }
+
+ static bool onVisible(LLHandle<LLPanel> inventory_panel_handle,
+ LLSD::String sort_order_str)
+ {
+ if (inventory_panel_handle.isDead()) return false;
+
+ LLInventoryPanel* inventory_panel = dynamic_cast<LLInventoryPanel*>(inventory_panel_handle.get());
+
+ // Enable sorting by type only for the flat list of items
+ // because inventory panel doesn't support this kind of sorting.
+ return ( "by_type" == sort_order_str )
+ && ( !inventory_panel || !inventory_panel->getVisible() );
+ }
+};
+
+///////////////////////////////////////////////////////////////////////////////
+// LLCOFDragAndDropObserver
+///////////////////////////////////////////////////////////////////////////////
+
class LLCOFDragAndDropObserver : public LLInventoryAddItemByAssetObserver
{
public:
@@ -242,17 +387,23 @@ void LLCOFDragAndDropObserver::done()
LLAppearanceMgr::instance().updateAppearanceFromCOF();
}
+///////////////////////////////////////////////////////////////////////////////
+// LLPanelOutfitEdit
+///////////////////////////////////////////////////////////////////////////////
+
LLPanelOutfitEdit::LLPanelOutfitEdit()
: LLPanel(),
mSearchFilter(NULL),
mCOFWearables(NULL),
mInventoryItemsPanel(NULL),
mGearMenu(NULL),
+ mAddWearablesGearMenu(NULL),
mCOFDragAndDropObserver(NULL),
mInitialized(false),
mAddWearablesPanel(NULL),
mFolderViewFilterCmbBox(NULL),
- mListViewFilterCmbBox(NULL)
+ mListViewFilterCmbBox(NULL),
+ mPlusBtn(NULL)
{
mSavedFolderState = new LLSaveFolderState();
mSavedFolderState->setApply(FALSE);
@@ -262,7 +413,7 @@ LLPanelOutfitEdit::LLPanelOutfitEdit()
observer.addBOFReplacedCallback(boost::bind(&LLPanelOutfitEdit::updateCurrentOutfitName, this));
observer.addBOFChangedCallback(boost::bind(&LLPanelOutfitEdit::updateVerbs, this));
observer.addOutfitLockChangedCallback(boost::bind(&LLPanelOutfitEdit::updateVerbs, this));
- observer.addCOFChangedCallback(boost::bind(&LLPanelOutfitEdit::update, this));
+ observer.addCOFChangedCallback(boost::bind(&LLPanelOutfitEdit::onCOFChanged, this));
gAgentWearables.addLoadingStartedCallback(boost::bind(&LLPanelOutfitEdit::onOutfitChanging, this, true));
gAgentWearables.addLoadedCallback(boost::bind(&LLPanelOutfitEdit::onOutfitChanging, this, false));
@@ -296,10 +447,10 @@ BOOL LLPanelOutfitEdit::postBuild()
mFolderViewItemTypes[FVIT_ATTACHMENT] = LLLookItemType(getString("Filter.Objects"), ATTACHMENT_MASK);
//order is important, see EListViewItemType for order information
- mListViewItemTypes.push_back(new LLFilterItem(getString("Filter.All"), new LLFindByMask(ALL_ITEMS_MASK)));
- mListViewItemTypes.push_back(new LLFilterItem(getString("Filter.Clothing"), new LLIsType(LLAssetType::AT_CLOTHING)));
- mListViewItemTypes.push_back(new LLFilterItem(getString("Filter.Bodyparts"), new LLIsType(LLAssetType::AT_BODYPART)));
- mListViewItemTypes.push_back(new LLFilterItem(getString("Filter.Objects"), new LLFindByMask(ATTACHMENT_MASK)));;
+ mListViewItemTypes.push_back(new LLFilterItem(getString("Filter.All"), new LLFindNonLinksByMask(ALL_ITEMS_MASK)));
+ mListViewItemTypes.push_back(new LLFilterItem(getString("Filter.Clothing"), new LLIsTypeActual(LLAssetType::AT_CLOTHING)));
+ mListViewItemTypes.push_back(new LLFilterItem(getString("Filter.Bodyparts"), new LLIsTypeActual(LLAssetType::AT_BODYPART)));
+ mListViewItemTypes.push_back(new LLFilterItem(getString("Filter.Objects"), new LLFindNonLinksByMask(ATTACHMENT_MASK)));;
mListViewItemTypes.push_back(new LLFilterItem(LLTrans::getString("shape"), new LLFindActualWearablesOfType(LLWearableType::WT_SHAPE)));
mListViewItemTypes.push_back(new LLFilterItem(LLTrans::getString("skin"), new LLFindActualWearablesOfType(LLWearableType::WT_SKIN)));
mListViewItemTypes.push_back(new LLFilterItem(LLTrans::getString("hair"), new LLFindActualWearablesOfType(LLWearableType::WT_HAIR)));
@@ -324,12 +475,17 @@ BOOL LLPanelOutfitEdit::postBuild()
childSetCommitCallback("filter_button", boost::bind(&LLPanelOutfitEdit::showWearablesFilter, this), NULL);
childSetCommitCallback("folder_view_btn", boost::bind(&LLPanelOutfitEdit::showWearablesFolderView, this), NULL);
+ childSetCommitCallback("folder_view_btn", boost::bind(&LLPanelOutfitEdit::saveListSelection, this), NULL);
childSetCommitCallback("list_view_btn", boost::bind(&LLPanelOutfitEdit::showWearablesListView, this), NULL);
+ childSetCommitCallback("list_view_btn", boost::bind(&LLPanelOutfitEdit::saveListSelection, this), NULL);
childSetCommitCallback("wearables_gear_menu_btn", boost::bind(&LLPanelOutfitEdit::onGearButtonClick, this, _1), NULL);
childSetCommitCallback("gear_menu_btn", boost::bind(&LLPanelOutfitEdit::onGearButtonClick, this, _1), NULL);
- childSetCommitCallback("shop_btn", boost::bind(&LLPanelOutfitEdit::onShopButtonClicked, this), NULL);
+ childSetCommitCallback("shop_btn_1", boost::bind(&LLPanelOutfitEdit::onShopButtonClicked, this), NULL);
+ childSetCommitCallback("shop_btn_2", boost::bind(&LLPanelOutfitEdit::onShopButtonClicked, this), NULL);
- mCOFWearables = getChild<LLCOFWearables>("cof_wearables_list");
+ setVisibleCallback(boost::bind(&LLPanelOutfitEdit::onVisibilityChange, this, _2));
+
+ mCOFWearables = findChild<LLCOFWearables>("cof_wearables_list");
mCOFWearables->setCommitCallback(boost::bind(&LLPanelOutfitEdit::filterWearablesBySelectedItem, this));
mCOFWearables->getCOFCallbacks().mAddWearable = boost::bind(&LLPanelOutfitEdit::onAddWearableClicked, this);
@@ -343,9 +499,9 @@ BOOL LLPanelOutfitEdit::postBuild()
mInventoryItemsPanel = getChild<LLInventoryPanel>("folder_view");
mInventoryItemsPanel->setFilterTypes(ALL_ITEMS_MASK);
mInventoryItemsPanel->setShowFolderState(LLInventoryFilter::SHOW_NON_EMPTY_FOLDERS);
- mInventoryItemsPanel->setSelectCallback(boost::bind(&LLPanelOutfitEdit::onInventorySelectionChange, this, _1, _2));
- mInventoryItemsPanel->getRootFolder()->setReshapeCallback(boost::bind(&LLPanelOutfitEdit::onInventorySelectionChange, this, _1, _2));
-
+ mInventoryItemsPanel->setSelectCallback(boost::bind(&LLPanelOutfitEdit::updatePlusButton, this));
+ mInventoryItemsPanel->getRootFolder()->setReshapeCallback(boost::bind(&LLPanelOutfitEdit::updatePlusButton, this));
+
mCOFDragAndDropObserver = new LLCOFDragAndDropObserver(mInventoryItemsPanel->getModel());
mFolderViewFilterCmbBox = getChild<LLComboBox>("folder_view_filter_combobox");
@@ -371,7 +527,8 @@ BOOL LLPanelOutfitEdit::postBuild()
childSetAction("show_add_wearables_btn", boost::bind(&LLPanelOutfitEdit::onAddMoreButtonClicked, this));
- childSetAction("add_to_outfit_btn", boost::bind(&LLPanelOutfitEdit::onAddToOutfitClicked, this));
+ mPlusBtn = getChild<LLButton>("plus_btn");
+ mPlusBtn->setClickedCallback(boost::bind(&LLPanelOutfitEdit::onPlusBtnClicked, this));
mEditWearableBtn = getChild<LLButton>("edit_wearable_btn");
mEditWearableBtn->setEnabled(FALSE);
@@ -380,8 +537,25 @@ BOOL LLPanelOutfitEdit::postBuild()
childSetAction(REVERT_BTN, boost::bind(&LLAppearanceMgr::wearBaseOutfit, LLAppearanceMgr::getInstance()));
+ /*
+ * By default AT_CLOTHING are sorted by (in in MY OUTFITS):
+ * - by type (types order determined in LLWearableType::EType)
+ * - each LLWearableType::EType by outer layer on top
+ *
+ * In Add More panel AT_CLOTHING should be sorted in a such way:
+ * - by type (types order determined in LLWearableType::EType)
+ * - each LLWearableType::EType by name (EXT-8205)
+ */
+ mWearableListViewItemsComparator = new LLWearableItemTypeNameComparator();
+ mWearableListViewItemsComparator->setOrder(LLAssetType::AT_CLOTHING, LLWearableItemTypeNameComparator::ORDER_RANK_1, false, true);
+
mWearablesListViewPanel = getChild<LLPanel>("filtered_wearables_panel");
- mWearableItemsList = getChild<LLInventoryItemsList>("list_view");
+ mWearableItemsList = getChild<LLWearableItemsList>("list_view");
+ mWearableItemsList->setCommitOnSelectionChange(true);
+ mWearableItemsList->setCommitCallback(boost::bind(&LLPanelOutfitEdit::updatePlusButton, this));
+ mWearableItemsList->setDoubleClickCallback(boost::bind(&LLPanelOutfitEdit::onPlusBtnClicked, this));
+
+ mWearableItemsList->setComparator(mWearableListViewItemsComparator);
mSaveComboBtn.reset(new LLSaveOutfitComboBtn(this));
return TRUE;
@@ -420,47 +594,63 @@ void LLPanelOutfitEdit::showAddWearablesPanel(bool show_add_wearables)
{
mAddWearablesPanel->setVisible(show_add_wearables);
- childSetValue("show_add_wearables_btn", show_add_wearables);
+ getChild<LLUICtrl>("show_add_wearables_btn")->setValue(show_add_wearables);
updateFiltersVisibility();
- childSetVisible("filter_button", show_add_wearables);
+ getChildView("filter_button")->setVisible( show_add_wearables);
//search filter should be disabled
if (!show_add_wearables)
{
- childSetValue("filter_button", false);
+ getChild<LLUICtrl>("filter_button")->setValue(false);
mFolderViewFilterCmbBox->setVisible(false);
mListViewFilterCmbBox->setVisible(false);
showWearablesFilter();
+
+ /*
+ * By default AT_CLOTHING are sorted by (in in MY OUTFITS):
+ * - by type (types order determined in LLWearableType::EType)
+ * - each LLWearableType::EType by outer layer on top
+ *
+ * In Add More panel AT_CLOTHING should be sorted in a such way:
+ * - by type (types order determined in LLWearableType::EType)
+ * - each LLWearableType::EType by name (EXT-8205)
+ */
+ mWearableItemsList->setSortOrder(LLWearableItemsList::E_SORT_BY_TYPE_NAME);
+
+ // Reset mWearableItemsList position to top. See EXT-8180.
+ mWearableItemsList->goToTop();
}
//switching button bars
- childSetVisible("no_add_wearables_button_bar", !show_add_wearables);
- childSetVisible("add_wearables_button_bar", show_add_wearables);
+ getChildView("no_add_wearables_button_bar")->setVisible( !show_add_wearables);
+ getChildView("add_wearables_button_bar")->setVisible( show_add_wearables);
}
void LLPanelOutfitEdit::showWearablesFilter()
{
- bool filter_visible = childGetValue("filter_button");
+ bool filter_visible = getChild<LLUICtrl>("filter_button")->getValue();
- childSetVisible("filter_panel", filter_visible);
+ getChildView("filter_panel")->setVisible( filter_visible);
if(!filter_visible)
{
mSearchFilter->clear();
onSearchEdit(LLStringUtil::null);
}
+ else
+ {
+ mSearchFilter->setFocus(TRUE);
+ }
}
void LLPanelOutfitEdit::showWearablesListView()
{
if(switchPanels(mInventoryItemsPanel, mWearablesListViewPanel))
{
- mFolderViewBtn->setToggleState(FALSE);
- mFolderViewBtn->setImageOverlay(getString("folder_view_off"), mFolderViewBtn->getImageOverlayHAlign());
- mListViewBtn->setImageOverlay(getString("list_view_on"), mListViewBtn->getImageOverlayHAlign());
+ updateWearablesPanelVerbButtons();
updateFiltersVisibility();
}
mListViewBtn->setToggleState(TRUE);
@@ -470,9 +660,7 @@ void LLPanelOutfitEdit::showWearablesFolderView()
{
if(switchPanels(mWearablesListViewPanel, mInventoryItemsPanel))
{
- mListViewBtn->setToggleState(FALSE);
- mListViewBtn->setImageOverlay(getString("list_view_off"), mListViewBtn->getImageOverlayHAlign());
- mFolderViewBtn->setImageOverlay(getString("folder_view_on"), mFolderViewBtn->getImageOverlayHAlign());
+ updateWearablesPanelVerbButtons();
updateFiltersVisibility();
}
mFolderViewBtn->setToggleState(TRUE);
@@ -553,27 +741,34 @@ void LLPanelOutfitEdit::onSearchEdit(const std::string& string)
}
-void LLPanelOutfitEdit::onAddToOutfitClicked(void)
+void LLPanelOutfitEdit::onPlusBtnClicked(void)
{
- LLUUID selected_id;
- if (mInventoryItemsPanel->getVisible())
- {
- LLFolderViewItem* curr_item = mInventoryItemsPanel->getRootFolder()->getCurSelectedItem();
- if (!curr_item) return;
+ uuid_vec_t selected_items;
+ getSelectedItemsUUID(selected_items);
- LLFolderViewEventListener* listenerp = curr_item->getListener();
- if (!listenerp) return;
-
- selected_id = listenerp->getUUID();
- }
- else if (mWearablesListViewPanel->getVisible())
+ LLPointer<LLInventoryCallback> link_waiter = new LLUpdateAppearanceOnDestroy;
+
+ for(uuid_vec_t::iterator iter = selected_items.begin(); iter != selected_items.end(); iter++)
{
- selected_id = mWearableItemsList->getSelectedUUID();
+ LLUUID selected_id = *iter;
+ if (!selected_id.isNull())
+ {
+ //replacing instead of adding the item
+ LLAppearanceMgr::getInstance()->wearItemOnAvatar(selected_id, false, true, link_waiter);
+ }
}
+}
- if (selected_id.isNull()) return;
+void LLPanelOutfitEdit::onVisibilityChange(const LLSD &in_visible_chain)
+{
+ showAddWearablesPanel(false);
+ mWearableItemsList->resetSelection();
+ mInventoryItemsPanel->clearSelection();
- LLAppearanceMgr::getInstance()->wearItemOnAvatar(selected_id);
+ if (in_visible_chain.asBoolean())
+ {
+ update();
+ }
}
void LLPanelOutfitEdit::onAddWearableClicked(void)
@@ -586,11 +781,11 @@ void LLPanelOutfitEdit::onAddWearableClicked(void)
}
}
-void LLPanelOutfitEdit::onReplaceBodyPartMenuItemClicked(LLUUID selected_item_id)
+void LLPanelOutfitEdit::onReplaceMenuItemClicked(LLUUID selected_item_id)
{
LLViewerInventoryItem* item = gInventory.getLinkedItem(selected_item_id);
- if (item && item->getType() == LLAssetType::AT_BODYPART)
+ if (item)
{
showFilteredWearablesListView(item->getWearableType());
}
@@ -600,15 +795,63 @@ void LLPanelOutfitEdit::onShopButtonClicked()
{
static LLShopURLDispatcher url_resolver;
+ // will contain the resultant URL
std::string url;
+
+ if (isAgentAvatarValid())
+ {
+ // try to get wearable type from 'Add More' panel first (EXT-7639)
+ selection_info_t selection_info = getAddMorePanelSelectionType();
+
+ LLWearableType::EType type = selection_info.first;
+
+ if (selection_info.second > 1)
+ {
+ // the second argument is not important in this case: generic market place will be opened
+ url = url_resolver.resolveURL(LLWearableType::WT_NONE, SEX_FEMALE);
+ }
+ else
+ {
+ if (type == LLWearableType::WT_NONE)
+ {
+ type = getCOFWearablesSelectionType();
+ }
+
+ ESex sex = gAgentAvatarp->getSex();
+
+ // WT_INVALID comes for attachments
+ if (type != LLWearableType::WT_INVALID && type != LLWearableType::WT_NONE)
+ {
+ url = url_resolver.resolveURL(type, sex);
+ }
+
+ if (url.empty())
+ {
+ url = url_resolver.resolveURL(
+ mCOFWearables->getExpandedAccordionAssetType(), sex);
+ }
+ }
+ }
+ else
+ {
+ llwarns << "Agent avatar is invalid" << llendl;
+
+ // the second argument is not important in this case: generic market place will be opened
+ url = url_resolver.resolveURL(LLWearableType::WT_NONE, SEX_FEMALE);
+ }
+
+ LLWeb::loadURLExternal(url);
+}
+
+LLWearableType::EType LLPanelOutfitEdit::getCOFWearablesSelectionType() const
+{
std::vector<LLPanel*> selected_items;
- mCOFWearables->getSelectedItems(selected_items);
+ LLWearableType::EType type = LLWearableType::WT_NONE;
- ESex sex = gSavedSettings.getU32("AvatarSex") ? SEX_MALE : SEX_FEMALE;
+ mCOFWearables->getSelectedItems(selected_items);
if (selected_items.size() == 1)
{
- LLWearableType::EType type = LLWearableType::WT_NONE;
LLPanel* item = selected_items.front();
// LLPanelDummyClothingListItem is lower then LLPanelInventoryListItemBase in hierarchy tree
@@ -620,27 +863,62 @@ void LLPanelOutfitEdit::onShopButtonClicked()
{
type = real_item->getWearableType();
}
+ }
- // WT_INVALID comes for attachments
- if (type != LLWearableType::WT_INVALID)
+ return type;
+}
+
+LLPanelOutfitEdit::selection_info_t LLPanelOutfitEdit::getAddMorePanelSelectionType() const
+{
+ selection_info_t result = std::make_pair(LLWearableType::WT_NONE, 0);
+
+ if (mAddWearablesPanel != NULL && mAddWearablesPanel->getVisible())
+ {
+ if (mInventoryItemsPanel != NULL && mInventoryItemsPanel->getVisible())
{
- url = url_resolver.resolveURL(type, sex);
+ std::set<LLUUID> selected_uuids = mInventoryItemsPanel->getRootFolder()->getSelectionList();
+
+ result.second = selected_uuids.size();
+
+ if (result.second == 1)
+ {
+ result.first = getWearableTypeByItemUUID(*(selected_uuids.begin()));
+ }
}
- }
+ else if (mWearableItemsList != NULL && mWearableItemsList->getVisible())
+ {
+ std::vector<LLUUID> selected_uuids;
+ mWearableItemsList->getSelectedUUIDs(selected_uuids);
- if (url.empty())
- {
- url = url_resolver.resolveURL(mCOFWearables->getExpandedAccordionAssetType(), sex);
+ result.second = selected_uuids.size();
+
+ if (result.second == 1)
+ {
+ result.first = getWearableTypeByItemUUID(selected_uuids.front());
+ }
+ }
}
- LLWeb::loadURLExternal(url);
+ return result;
+}
+
+LLWearableType::EType LLPanelOutfitEdit::getWearableTypeByItemUUID(const LLUUID& item_uuid) const
+{
+ LLViewerInventoryItem* item = gInventory.getLinkedItem(item_uuid);
+ return (item != NULL) ? item->getWearableType() : LLWearableType::WT_NONE;
}
void LLPanelOutfitEdit::onRemoveFromOutfitClicked(void)
{
LLUUID id_to_remove = mCOFWearables->getSelectedUUID();
+ LLWearableType::EType type = getWearableTypeByItemUUID(id_to_remove);
LLAppearanceMgr::getInstance()->removeItemFromAvatar(id_to_remove);
+
+ if (!mCOFWearables->getSelectedItem())
+ {
+ mCOFWearables->selectClothing(type);
+ }
}
@@ -653,26 +931,36 @@ void LLPanelOutfitEdit::onEditWearableClicked(void)
}
}
-void LLPanelOutfitEdit::onInventorySelectionChange(const std::deque<LLFolderViewItem*> &items, BOOL user_action)
+void LLPanelOutfitEdit::updatePlusButton()
{
- LLFolderViewItem* current_item = mInventoryItemsPanel->getRootFolder()->getCurSelectedItem();
- if (!current_item)
+ uuid_vec_t selected_items;
+ getSelectedItemsUUID(selected_items);
+ if (selected_items.empty())
{
+ mPlusBtn->setEnabled(false);
return;
}
- LLViewerInventoryItem* item = current_item->getInventoryItem();
- if (!item) return;
+ // If any of the selected items are not wearable (due to already being worn OR being of the wrong type), disable the add button.
+ uuid_vec_t::iterator unwearable_item = std::find_if(selected_items.begin(), selected_items.end(), !boost::bind(&get_can_item_be_worn, _1));
+ bool can_add = ( unwearable_item == selected_items.end() );
+
+ mPlusBtn->setEnabled(can_add);
- switch (item->getType())
+ LLViewerInventoryItem* first_item(gInventory.getItem(selected_items.front()));
+
+ if (can_add &&
+ first_item &&
+ selected_items.size() == 1 &&
+ first_item->getType() == LLAssetType::AT_BODYPART)
{
- case LLAssetType::AT_CLOTHING:
- case LLAssetType::AT_BODYPART:
- case LLAssetType::AT_OBJECT:
- default:
- break;
+ mPlusBtn->setToolTip(getString("replace_body_part"));
}
-
+ else
+ {
+ mPlusBtn->setToolTip(LLStringUtil::null);
+ }
+
/* Removing add to look inline button (not part of mvp for viewer 2)
LLRect btn_rect(current_item->getLocalRect().mRight - 50,
current_item->getLocalRect().mTop,
@@ -714,21 +1002,73 @@ void LLPanelOutfitEdit::filterWearablesBySelectedItem(void)
bool more_than_one_selected = ids.size() > 1;
bool is_dummy_item = (ids.size() && dynamic_cast<LLPanelDummyClothingListItem*>(mCOFWearables->getSelectedItem()));
- //resetting selection if no item is selected or than one item is selected
- if (nothing_selected || more_than_one_selected)
+ // selected, expanded accordion tabs and selection in flat list view determine filtering when no item is selected in COF
+ // selection in flat list view participates in determining filtering because of EXT-7963
+ // So the priority of criterions in is:
+ // 1. Selected accordion tab | IF (any accordion selected)
+ // | filter_type = selected_accordion_type
+ // 2. Selected item in flat list view | ELSEIF (any item in flat list view selected)
+ // | filter_type = selected_item_type
+ // 3. Expanded accordion tab | ELSEIF (any accordion expanded)
+ // | filter_type = expanded accordion_type
+ if (nothing_selected)
{
- if (nothing_selected)
+ if (mInventoryItemsPanel->getVisible())
{
- showWearablesFolderView();
- applyFolderViewFilter(FVIT_ALL);
+ return;
}
+ showWearablesListView();
- if (more_than_one_selected)
+ //selected accordion tab is more priority than expanded tab
+ //and selected item in flat list view of 'Add more' panel when
+ //determining filtering
+ LLAssetType::EType type = mCOFWearables->getSelectedAccordionAssetType();
+ if (type == LLAssetType::AT_NONE)
+ { //no accordion selected
+
+ // when no accordion selected then selected item from flat list view
+ // has more priority than expanded when determining filtering
+ LLUUID selected_item_id = mWearableItemsList->getSelectedUUID();
+ LLViewerInventoryItem* item = gInventory.getLinkedItem(selected_item_id);
+ if(item)
{
- showWearablesListView();
- applyListViewFilter(LVIT_ALL);
+ showFilteredWearablesListView(item->getWearableType());
+ return;
+ }
+
+ // when no accordion selected and no selected items in flat list view
+ // determine filtering according to expanded accordion
+ type = mCOFWearables->getExpandedAccordionAssetType();
+ }
+
+ switch (type)
+ {
+ case LLAssetType::AT_OBJECT:
+ applyListViewFilter(LVIT_ATTACHMENT);
+ break;
+ case LLAssetType::AT_BODYPART:
+ applyListViewFilter(LVIT_BODYPART);
+ break;
+ case LLAssetType::AT_CLOTHING:
+ default:
+ applyListViewFilter(LVIT_CLOTHING);
+ break;
+ }
+
+ return;
+ }
+
+ //resetting selection if more than one item is selected
+ if (more_than_one_selected)
+ {
+ if (mInventoryItemsPanel->getVisible())
+ {
+ applyFolderViewFilter(FVIT_ALL);
+ return;
}
+ showWearablesListView();
+ applyListViewFilter(LVIT_ALL);
return;
}
@@ -736,6 +1076,12 @@ void LLPanelOutfitEdit::filterWearablesBySelectedItem(void)
//filter wearables by a type represented by a dummy item
if (one_selected && is_dummy_item)
{
+ if (mInventoryItemsPanel->getVisible())
+ {
+ applyFolderViewFilter(FVIT_WEARABLE);
+ return;
+ }
+
onAddWearableClicked();
return;
}
@@ -743,22 +1089,37 @@ void LLPanelOutfitEdit::filterWearablesBySelectedItem(void)
LLViewerInventoryItem* item = gInventory.getItem(ids[0]);
if (!item && ids[0].notNull())
{
+ if (mInventoryItemsPanel->getVisible())
+ {
+ applyFolderViewFilter(FVIT_ALL);
+ return;
+ }
//Inventory misses an item with non-zero id
showWearablesListView();
applyListViewFilter(LVIT_ALL);
return;
}
- if (one_selected && !is_dummy_item)
+ if (item && one_selected && !is_dummy_item)
{
if (item->isWearableType())
{
+ if (mInventoryItemsPanel->getVisible())
+ {
+ applyFolderViewFilter(FVIT_WEARABLE);
+ return;
+ }
//single clothing or bodypart item is selected
showFilteredWearablesListView(item->getWearableType());
return;
}
else
{
+ if (mInventoryItemsPanel->getVisible())
+ {
+ applyFolderViewFilter(FVIT_ATTACHMENT);
+ return;
+ }
//attachment is selected
showWearablesListView();
applyListViewFilter(LVIT_ATTACHMENT);
@@ -860,13 +1221,16 @@ void LLPanelOutfitEdit::updateVerbs()
bool has_baseoutfit = LLAppearanceMgr::getInstance()->getBaseOutfitUUID().notNull();
mSaveComboBtn->setSaveBtnEnabled(!outfit_locked && outfit_is_dirty);
- childSetEnabled(REVERT_BTN, outfit_is_dirty && has_baseoutfit);
+ getChildView(REVERT_BTN)->setEnabled(outfit_is_dirty && has_baseoutfit);
mSaveComboBtn->setMenuItemEnabled("save_outfit", !outfit_locked && outfit_is_dirty);
mStatus->setText(outfit_is_dirty ? getString("unsaved_changes") : getString("now_editing"));
updateCurrentOutfitName();
+
+ //updating state of "Wear Item" button previously known as "Plus" button
+ updatePlusButton();
}
bool LLPanelOutfitEdit::switchPanels(LLPanel* switch_from_panel, LLPanel* switch_to_panel)
@@ -880,15 +1244,47 @@ bool LLPanelOutfitEdit::switchPanels(LLPanel* switch_from_panel, LLPanel* switch
return false;
}
+void LLPanelOutfitEdit::resetAccordionState()
+{
+ if (mCOFWearables != NULL)
+ {
+ mCOFWearables->expandDefaultAccordionTab();
+ }
+ else
+ {
+ llwarns << "mCOFWearables is NULL" << llendl;
+ }
+}
+
void LLPanelOutfitEdit::onGearButtonClick(LLUICtrl* clicked_button)
{
- if(!mGearMenu)
+ LLMenuGL* menu = NULL;
+
+ if (mAddWearablesPanel->getVisible())
{
- mGearMenu = LLPanelOutfitEditGearMenu::create();
+ if (!mAddWearablesGearMenu)
+ {
+ mAddWearablesGearMenu = LLAddWearablesGearMenu::create(mWearableItemsList, mInventoryItemsPanel);
+ }
+
+ menu = mAddWearablesGearMenu;
+ }
+ else
+ {
+ if (!mGearMenu)
+ {
+ mGearMenu = LLPanelOutfitEditGearMenu::create();
+ }
+
+ menu = mGearMenu;
}
- S32 menu_y = mGearMenu->getRect().getHeight() + clicked_button->getRect().getHeight();
- LLMenuGL::showPopup(clicked_button, mGearMenu, 0, menu_y);
+ if (!menu) return;
+
+ menu->arrangeAndClear(); // update menu height
+ S32 menu_y = menu->getRect().getHeight() + clicked_button->getRect().getHeight();
+ menu->buildDrawLabels();
+ LLMenuGL::showPopup(clicked_button, menu, 0, menu_y);
}
void LLPanelOutfitEdit::onAddMoreButtonClicked()
@@ -929,4 +1325,113 @@ void LLPanelOutfitEdit::onOutfitChanging(bool started)
indicator->setVisible(started);
}
+void LLPanelOutfitEdit::getCurrentItemUUID(LLUUID& selected_id)
+{
+ if (mInventoryItemsPanel->getVisible())
+ {
+ LLFolderViewItem* curr_item = mInventoryItemsPanel->getRootFolder()->getCurSelectedItem();
+ if (!curr_item) return;
+
+ LLFolderViewEventListener* listenerp = curr_item->getListener();
+ if (!listenerp) return;
+
+ selected_id = listenerp->getUUID();
+ }
+ else if (mWearablesListViewPanel->getVisible())
+ {
+ selected_id = mWearableItemsList->getSelectedUUID();
+ }
+}
+
+
+void LLPanelOutfitEdit::getSelectedItemsUUID(uuid_vec_t& uuid_list)
+{
+ if (mInventoryItemsPanel->getVisible())
+ {
+ std::set<LLUUID> item_set = mInventoryItemsPanel->getRootFolder()->getSelectionList();
+
+ std::for_each(item_set.begin(), item_set.end(), boost::bind( &uuid_vec_t::push_back, &uuid_list, _1));
+ }
+ else if (mWearablesListViewPanel->getVisible())
+ {
+ std::vector<LLSD> item_set;
+ mWearableItemsList->getSelectedValues(item_set);
+
+ std::for_each(item_set.begin(), item_set.end(), boost::bind( &uuid_vec_t::push_back, &uuid_list, boost::bind(&LLSD::asUUID, _1 )));
+
+ }
+
+// return selected_id;
+}
+
+void LLPanelOutfitEdit::onCOFChanged()
+{
+ //the panel is only updated when is visible to a user
+
+ // BAP - this check has to be removed because otherwise item name
+ // changes made when the panel is not visible will not be
+ // propagated to the panel.
+ // if (!isInVisibleChain()) return;
+
+ update();
+}
+
+void LLPanelOutfitEdit::updateWearablesPanelVerbButtons()
+{
+ if(mWearablesListViewPanel->getVisible())
+ {
+ mFolderViewBtn->setToggleState(FALSE);
+ mFolderViewBtn->setImageOverlay(getString("folder_view_off"), mFolderViewBtn->getImageOverlayHAlign());
+ mListViewBtn->setImageOverlay(getString("list_view_on"), mListViewBtn->getImageOverlayHAlign());
+ }
+ else if(mInventoryItemsPanel->getVisible())
+ {
+ mListViewBtn->setToggleState(FALSE);
+ mListViewBtn->setImageOverlay(getString("list_view_off"), mListViewBtn->getImageOverlayHAlign());
+ mFolderViewBtn->setImageOverlay(getString("folder_view_on"), mFolderViewBtn->getImageOverlayHAlign());
+ }
+}
+
+void LLPanelOutfitEdit::saveListSelection()
+{
+ if(mWearablesListViewPanel->getVisible())
+ {
+ std::set<LLUUID> selected_ids = mInventoryItemsPanel->getRootFolder()->getSelectionList();
+
+ if(!selected_ids.size()) return;
+
+ for (std::set<LLUUID>::const_iterator item_id = selected_ids.begin(); item_id != selected_ids.end(); ++item_id)
+ {
+ mWearableItemsList->selectItemByUUID(*item_id, true);
+ }
+ mWearableItemsList->scrollToShowFirstSelectedItem();
+ }
+ else if(mInventoryItemsPanel->getVisible())
+ {
+ std::vector<LLUUID> selected_ids;
+ mWearableItemsList->getSelectedUUIDs(selected_ids);
+
+ if(!selected_ids.size()) return;
+
+ mInventoryItemsPanel->clearSelection();
+ LLFolderView* root = mInventoryItemsPanel->getRootFolder();
+
+ if(!root) return;
+
+ for(std::vector<LLUUID>::const_iterator item_id = selected_ids.begin(); item_id != selected_ids.end(); ++item_id)
+ {
+ LLFolderViewItem* item = root->getItemByID(*item_id);
+ if (!item) continue;
+
+ LLFolderViewFolder* parent = item->getParentFolder();
+ if(parent)
+ {
+ parent->setOpenArrangeRecursively(TRUE, LLFolderViewFolder::RECURSE_UP);
+ }
+ mInventoryItemsPanel->getRootFolder()->changeSelection(item, TRUE);
+ }
+ mInventoryItemsPanel->getRootFolder()->scrollToShowSelection();
+ }
+}
+
// EOF
diff --git a/indra/newview/llpaneloutfitedit.h b/indra/newview/llpaneloutfitedit.h
index 484f3fcb9f..2dca986e33 100644
--- a/indra/newview/llpaneloutfitedit.h
+++ b/indra/newview/llpaneloutfitedit.h
@@ -2,31 +2,25 @@
* @file llpaneloutfitedit.h
* @brief Displays outfit edit information in Side Tray.
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -43,8 +37,8 @@
#include "llremoteparcelrequest.h"
#include "llinventory.h"
#include "llinventoryfunctions.h"
-#include "llinventoryitemslist.h"
#include "llinventorymodel.h"
+#include "llwearableitemslist.h"
class LLButton;
class LLCOFWearables;
@@ -64,6 +58,7 @@ class LLMenuGL;
class LLFindNonLinksByMask;
class LLFindWearablesOfType;
class LLSaveOutfitComboBtn;
+class LLWearableItemTypeNameComparator;
class LLPanelOutfitEdit : public LLPanel
{
@@ -145,8 +140,10 @@ public:
void onFolderViewFilterCommitted(LLUICtrl* ctrl);
void onListViewFilterCommitted(LLUICtrl* ctrl);
void onSearchEdit(const std::string& string);
- void onInventorySelectionChange(const std::deque<LLFolderViewItem*> &items, BOOL user_action);
- void onAddToOutfitClicked(void);
+ void updatePlusButton();
+ void onPlusBtnClicked(void);
+
+ void onVisibilityChange(const LLSD &in_visible_chain);
void applyFolderViewFilter(EFolderViewItemType type);
void applyListViewFilter(EListViewItemType type);
@@ -162,7 +159,7 @@ public:
void onRemoveFromOutfitClicked(void);
void onEditWearableClicked(void);
void onAddWearableClicked(void);
- void onReplaceBodyPartMenuItemClicked(LLUUID selected_item_id);
+ void onReplaceMenuItemClicked(LLUUID selected_item_id);
void onShopButtonClicked();
void displayCurrentOutfit();
@@ -180,6 +177,8 @@ public:
*/
bool switchPanels(LLPanel* switch_from_panel, LLPanel* switch_to_panel);
+ void resetAccordionState();
+
virtual BOOL handleDragAndDrop(S32 x, S32 y, MASK mask, BOOL drop,
EDragAndDropType cargo_type,
void* cargo_data,
@@ -192,7 +191,22 @@ private:
void onAddMoreButtonClicked();
void showFilteredWearablesListView(LLWearableType::EType type);
void onOutfitChanging(bool started);
+ void getSelectedItemsUUID(uuid_vec_t& uuid_list);
+ void getCurrentItemUUID(LLUUID& selected_id);
+ void onCOFChanged();
+
+ /**
+ * Method preserves selection while switching between folder/list view modes
+ */
+ void saveListSelection();
+
+ void updateWearablesPanelVerbButtons();
+
+ typedef std::pair<LLWearableType::EType, size_t> selection_info_t;
+ LLWearableType::EType getCOFWearablesSelectionType() const;
+ selection_info_t getAddMorePanelSelectionType() const;
+ LLWearableType::EType getWearableTypeByItemUUID(const LLUUID& item_uuid) const;
LLTextBox* mCurrentOutfitName;
LLTextBox* mStatus;
@@ -203,14 +217,16 @@ private:
LLButton* mEditWearableBtn;
LLButton* mFolderViewBtn;
LLButton* mListViewBtn;
+ LLButton* mPlusBtn;
LLPanel* mAddWearablesPanel;
LLComboBox* mFolderViewFilterCmbBox;
LLComboBox* mListViewFilterCmbBox;
LLFilteredWearableListManager* mWearableListManager;
- LLInventoryItemsList* mWearableItemsList;
+ LLWearableItemsList* mWearableItemsList;
LLPanel* mWearablesListViewPanel;
+ LLWearableItemTypeNameComparator* mWearableListViewItemsComparator;
LLCOFDragAndDropObserver* mCOFDragAndDropObserver;
@@ -219,6 +235,7 @@ private:
LLCOFWearables* mCOFWearables;
LLMenuGL* mGearMenu;
+ LLMenuGL* mAddWearablesGearMenu;
bool mInitialized;
std::auto_ptr<LLSaveOutfitComboBtn> mSaveComboBtn;
diff --git a/indra/newview/llpaneloutfitsinventory.cpp b/indra/newview/llpaneloutfitsinventory.cpp
index 714d9cd4c5..d6d8a38ebe 100644
--- a/indra/newview/llpaneloutfitsinventory.cpp
+++ b/indra/newview/llpaneloutfitsinventory.cpp
@@ -2,30 +2,25 @@
* @file llpaneloutfitsinventory.cpp
* @brief Outfits inventory panel
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -33,202 +28,32 @@
#include "llpaneloutfitsinventory.h"
-#include "llagent.h"
-#include "llagentwearables.h"
-#include "llappearancemgr.h"
+#include "llnotificationsutil.h"
+#include "lltabcontainer.h"
-#include "llbutton.h"
-#include "llfloaterreg.h"
-#include "llfloaterworldmap.h"
-#include "llfloaterinventory.h"
-#include "llfoldervieweventlistener.h"
-#include "llinventorybridge.h"
#include "llinventoryfunctions.h"
#include "llinventorymodelbackgroundfetch.h"
-#include "llinventorypanel.h"
-#include "lllandmark.h"
-#include "lllineeditor.h"
-#include "llmodaldialog.h"
-#include "llnotificationsutil.h"
+#include "llagentwearables.h"
+#include "llappearancemgr.h"
#include "lloutfitobserver.h"
#include "lloutfitslist.h"
+#include "llpanelwearing.h"
#include "llsaveoutfitcombobtn.h"
#include "llsidepanelappearance.h"
#include "llsidetray.h"
-#include "lltabcontainer.h"
#include "llviewerfoldertype.h"
-#include "llviewerjointattachment.h"
-#include "llvoavatarself.h"
-
-// List Commands
-#include "lldndbutton.h"
-#include "llmenugl.h"
-#include "llviewermenu.h"
-
-#include "llviewercontrol.h"
static const std::string OUTFITS_TAB_NAME = "outfitslist_tab";
static const std::string COF_TAB_NAME = "cof_tab";
static LLRegisterPanelClassWrapper<LLPanelOutfitsInventory> t_inventory("panel_outfits_inventory");
-class LLOutfitListGearMenu
-{
-public:
- LLOutfitListGearMenu(LLOutfitsList* olist)
- : mOutfitList(olist),
- mMenu(NULL)
- {
- llassert_always(mOutfitList);
-
- LLUICtrl::CommitCallbackRegistry::ScopedRegistrar registrar;
- LLUICtrl::EnableCallbackRegistry::ScopedRegistrar enable_registrar;
-
- registrar.add("Gear.Wear", boost::bind(&LLOutfitListGearMenu::onWear, this));
- registrar.add("Gear.TakeOff", boost::bind(&LLOutfitListGearMenu::onTakeOff, this));
- registrar.add("Gear.Delete", boost::bind(&LLOutfitListGearMenu::onDelete, this));
- registrar.add("Gear.Create", boost::bind(&LLOutfitListGearMenu::onCreate, this, _2));
-
- enable_registrar.add("Gear.OnEnable", boost::bind(&LLOutfitListGearMenu::onEnable, this, _2));
- enable_registrar.add("Gear.OnVisible", boost::bind(&LLOutfitListGearMenu::onVisible, this, _2));
-
- mMenu = LLUICtrlFactory::getInstance()->createFromFile<LLMenuGL>(
- "menu_outfit_gear.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance());
- llassert(mMenu);
- }
-
- LLMenuGL* getMenu() { return mMenu; }
-
- void show(LLView* spawning_view)
- {
- if (!mMenu) return;
-
- updateItemsVisibility();
- mMenu->buildDrawLabels();
- mMenu->updateParent(LLMenuGL::sMenuContainer);
- S32 menu_x = 0;
- S32 menu_y = spawning_view->getRect().getHeight() + mMenu->getRect().getHeight();
- LLMenuGL::showPopup(spawning_view, mMenu, menu_x, menu_y);
- }
-
- void updateItemsVisibility()
- {
- if (!mMenu) return;
-
- bool have_selection = getSelectedOutfitID().notNull();
- mMenu->setItemVisible("sepatator1", have_selection);
- mMenu->setItemVisible("sepatator2", have_selection);
- mMenu->arrangeAndClear(); // update menu height
- }
-
-private:
- const LLUUID& getSelectedOutfitID()
- {
- return mOutfitList->getSelectedOutfitUUID();
- }
-
- LLViewerInventoryCategory* getSelectedOutfit()
- {
- const LLUUID& selected_outfit_id = getSelectedOutfitID();
- if (selected_outfit_id.isNull())
- {
- return NULL;
- }
-
- LLViewerInventoryCategory* cat = gInventory.getCategory(selected_outfit_id);
- return cat;
- }
-
- void onWear()
- {
- LLViewerInventoryCategory* selected_outfit = getSelectedOutfit();
- if (selected_outfit)
- {
- LLAppearanceMgr::instance().wearInventoryCategory(
- selected_outfit, /*copy=*/ FALSE, /*append=*/ FALSE);
- }
- }
-
- void onTakeOff()
- {
- const LLUUID& selected_outfit_id = getSelectedOutfitID();
- if (selected_outfit_id.notNull())
- {
- LLAppearanceMgr::instance().takeOffOutfit(selected_outfit_id);
- }
- }
-
- void onDelete()
- {
- const LLUUID& selected_outfit_id = getSelectedOutfitID();
- if (selected_outfit_id.notNull())
- {
- remove_category(&gInventory, selected_outfit_id);
- }
- }
-
- void onCreate(const LLSD& data)
- {
- LLWearableType::EType type = LLWearableType::typeNameToType(data.asString());
- if (type == LLWearableType::WT_NONE)
- {
- llwarns << "Invalid wearable type" << llendl;
- return;
- }
-
- LLAgentWearables::createWearable(type, true);
- }
-
- bool onEnable(LLSD::String param)
- {
- const LLUUID& selected_outfit_id = getSelectedOutfitID();
- if (selected_outfit_id.isNull()) // no selection or invalid outfit selected
- {
- return false;
- }
-
- if ("delete" == param)
- {
- return LLAppearanceMgr::instance().getCanRemoveOutfit(selected_outfit_id);
- }
- else if ("take_off" == param)
- {
- return LLAppearanceMgr::getCanRemoveFromCOF(selected_outfit_id);
- }
-
- return true;
- }
-
- bool onVisible(LLSD::String param)
- {
- const LLUUID& selected_outfit_id = getSelectedOutfitID();
- if (selected_outfit_id.isNull()) // no selection or invalid outfit selected
- {
- return false;
- }
-
- bool is_worn = LLAppearanceMgr::instance().getBaseOutfitUUID() == selected_outfit_id;
-
- if ("wear" == param)
- {
- return !is_worn;
- }
-
- return true;
- }
-
- LLOutfitsList* mOutfitList;
- LLMenuGL* mMenu;
-};
-
LLPanelOutfitsInventory::LLPanelOutfitsInventory() :
mMyOutfitsPanel(NULL),
mCurrentOutfitPanel(NULL),
- mGearMenu(NULL),
+ mActivePanel(NULL),
mInitialized(false)
{
- mSavedFolderState = new LLSaveFolderState();
- mSavedFolderState->setApply(FALSE);
gAgentWearables.addLoadedCallback(boost::bind(&LLPanelOutfitsInventory::onWearablesLoaded, this));
gAgentWearables.addLoadingStartedCallback(boost::bind(&LLPanelOutfitsInventory::onWearablesLoading, this));
@@ -240,8 +65,6 @@ LLPanelOutfitsInventory::LLPanelOutfitsInventory() :
LLPanelOutfitsInventory::~LLPanelOutfitsInventory()
{
- delete mGearMenu;
- delete mSavedFolderState;
}
// virtual
@@ -283,7 +106,8 @@ void LLPanelOutfitsInventory::onOpen(const LLSD& key)
// and update verbs.
onTabChange();
- // Auto open the first outfit newly created so new users can see sample outfit contents
+ // *TODO: Auto open the first outfit newly created so new users can see sample outfit contents
+ /*
static bool should_open_outfit = true;
if (should_open_outfit && gAgent.isFirstLogin())
{
@@ -303,6 +127,7 @@ void LLPanelOutfitsInventory::onOpen(const LLSD& key)
}
}
should_open_outfit = false;
+ */
}
void LLPanelOutfitsInventory::updateVerbs()
@@ -316,95 +141,39 @@ void LLPanelOutfitsInventory::updateVerbs()
// virtual
void LLPanelOutfitsInventory::onSearchEdit(const std::string& string)
{
- mFilterSubString = string;
+ if (!mActivePanel) return;
- // TODO: add handling "My Outfits" tab.
- if (!isCOFPanelActive())
- {
- mMyOutfitsPanel->setFilterSubString(string);
- return;
- }
+ mFilterSubString = string;
if (string == "")
{
- getActivePanel()->setFilterSubString(LLStringUtil::null);
-
- // re-open folders that were initially open
- mSavedFolderState->setApply(TRUE);
- getRootFolder()->applyFunctorRecursively(*mSavedFolderState);
- LLOpenFoldersWithSelection opener;
- getRootFolder()->applyFunctorRecursively(opener);
- getRootFolder()->scrollToShowSelection();
+ mActivePanel->setFilterSubString(LLStringUtil::null);
}
LLInventoryModelBackgroundFetch::instance().start();
- if (getActivePanel()->getFilterSubString().empty() && string.empty())
+ if (mActivePanel->getFilterSubString().empty() && string.empty())
{
// current filter and new filter empty, do nothing
return;
}
- // save current folder open state if no filter currently applied
- if (getRootFolder()->getFilterSubString().empty())
- {
- mSavedFolderState->setApply(FALSE);
- getRootFolder()->applyFunctorRecursively(*mSavedFolderState);
- }
-
// set new filter string
- getActivePanel()->setFilterSubString(string);
+ mActivePanel->setFilterSubString(string);
}
void LLPanelOutfitsInventory::onWearButtonClick()
{
- // TODO: Remove if/else, add common interface
- // for "My Outfits" and "Wearing" tabs.
- if (!isCOFPanelActive())
- {
- mMyOutfitsPanel->performAction("replaceoutfit");
- }
- else
- {
- LLFolderViewEventListener* listenerp = getCorrectListenerForAction();
- if (listenerp)
- {
- listenerp->performAction(NULL, "replaceoutfit");
- }
- }
-}
-
-void LLPanelOutfitsInventory::onAdd()
-{
- // TODO: Remove if/else, add common interface
- // for "My Outfits" and "Wearing" tabs.
- if (!isCOFPanelActive())
+ if (mMyOutfitsPanel->hasItemSelected())
{
- mMyOutfitsPanel->performAction("addtooutfit");
+ mMyOutfitsPanel->wearSelectedItems();
}
else
{
- LLFolderViewEventListener* listenerp = getCorrectListenerForAction();
- if (listenerp)
- {
- listenerp->performAction(NULL, "addtooutfit");
- }
- }
-}
-
-void LLPanelOutfitsInventory::onRemove()
-{
- LLFolderViewEventListener* listenerp = getCorrectListenerForAction();
- if (listenerp)
- {
- listenerp->performAction(NULL, "removefromoutfit");
+ mMyOutfitsPanel->performAction("replaceoutfit");
}
}
-void LLPanelOutfitsInventory::onEdit()
-{
-}
-
bool LLPanelOutfitsInventory::onSaveCommit(const LLSD& notification, const LLSD& response)
{
S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
@@ -432,8 +201,6 @@ bool LLPanelOutfitsInventory::onSaveCommit(const LLSD& notification, const LLSD&
return false;
}
-
-
void LLPanelOutfitsInventory::onSave()
{
std::string outfit_name;
@@ -450,66 +217,6 @@ void LLPanelOutfitsInventory::onSave()
//payload["ids"].append(*it);
LLNotificationsUtil::add("SaveOutfitAs", args, payload, boost::bind(&LLPanelOutfitsInventory::onSaveCommit, this, _1, _2));
-
- //)
-
-/*
- LLOutfitSaveAsDialog* save_as_dialog = LLFloaterReg::showTypedInstance<LLOutfitSaveAsDialog>("outfit_save_as", LLSD(outfit_name), TRUE);
- if (save_as_dialog)
- {
- save_as_dialog->setSaveAsCommit(boost::bind(&LLPanelOutfitsInventory::onSaveCommit, this, _1 ));
- }*/
-}
-
-void LLPanelOutfitsInventory::onSelectionChange(const std::deque<LLFolderViewItem*> &items, BOOL user_action)
-{
- updateVerbs();
-
- // TODO: add handling "My Outfits" tab.
- if (!isCOFPanelActive())
- return;
-
- if (getRootFolder()->needsAutoRename() && items.size())
- {
- getRootFolder()->startRenamingSelectedItem();
- getRootFolder()->setNeedsAutoRename(FALSE);
- }
-}
-
-LLFolderViewEventListener *LLPanelOutfitsInventory::getCorrectListenerForAction()
-{
- // TODO: add handling "My Outfits" tab.
- if (!isCOFPanelActive())
- return NULL;
-
- LLFolderViewItem* current_item = getRootFolder()->getCurSelectedItem();
- if (!current_item)
- return NULL;
-
- LLFolderViewEventListener* listenerp = current_item->getListener();
- if (getIsCorrectType(listenerp))
- {
- return listenerp;
- }
- return NULL;
-}
-
-bool LLPanelOutfitsInventory::getIsCorrectType(const LLFolderViewEventListener *listenerp) const
-{
- if (listenerp->getInventoryType() == LLInventoryType::IT_CATEGORY)
- {
- LLViewerInventoryCategory *cat = gInventory.getCategory(listenerp->getUUID());
- if (cat && cat->getPreferredType() == LLFolderType::FT_OUTFIT)
- {
- return true;
- }
- }
- return false;
-}
-
-LLFolderView *LLPanelOutfitsInventory::getRootFolder()
-{
- return getActivePanel()->getRootFolder();
}
//static
@@ -524,304 +231,99 @@ LLPanelOutfitsInventory* LLPanelOutfitsInventory::findInstance()
void LLPanelOutfitsInventory::initListCommandsHandlers()
{
mListCommands = getChild<LLPanel>("bottom_panel");
-
- mListCommands->childSetAction("options_gear_btn", boost::bind(&LLPanelOutfitsInventory::showGearMenu, this));
- mListCommands->childSetAction("trash_btn", boost::bind(&LLPanelOutfitsInventory::onTrashButtonClick, this));
mListCommands->childSetAction("wear_btn", boost::bind(&LLPanelOutfitsInventory::onWearButtonClick, this));
-
- LLDragAndDropButton* trash_btn = mListCommands->getChild<LLDragAndDropButton>("trash_btn");
- trash_btn->setDragAndDropHandler(boost::bind(&LLPanelOutfitsInventory::handleDragAndDropToTrash, this
- , _4 // BOOL drop
- , _5 // EDragAndDropType cargo_type
- , _7 // EAcceptance* accept
- ));
-
- mGearMenu = new LLOutfitListGearMenu(mMyOutfitsPanel);
+ mMyOutfitsPanel->childSetAction("options_gear_btn", boost::bind(&LLPanelOutfitsInventory::showGearMenu, this));
+ mMyOutfitsPanel->childSetAction("trash_btn", boost::bind(&LLPanelOutfitsInventory::onTrashButtonClick, this));
+ mCurrentOutfitPanel->childSetAction("options_gear_btn", boost::bind(&LLPanelOutfitsInventory::showGearMenu, this));
}
void LLPanelOutfitsInventory::updateListCommands()
{
bool trash_enabled = isActionEnabled("delete");
- bool wear_enabled = !gAgentWearables.isCOFChangeInProgress() && isActionEnabled("wear");
+ bool wear_enabled = isActionEnabled("wear");
bool wear_visible = !isCOFPanelActive();
bool make_outfit_enabled = isActionEnabled("save_outfit");
- mListCommands->childSetEnabled("trash_btn", trash_enabled);
+ mMyOutfitsPanel->childSetEnabled("trash_btn", trash_enabled);
mListCommands->childSetEnabled("wear_btn", wear_enabled);
mListCommands->childSetVisible("wear_btn", wear_visible);
mSaveComboBtn->setMenuItemEnabled("save_outfit", make_outfit_enabled);
+ if (mMyOutfitsPanel->hasItemSelected())
+ {
+ mListCommands->childSetToolTip("wear_btn", getString("wear_items_tooltip"));
+ }
+ else
+ {
+ mListCommands->childSetToolTip("wear_btn", getString("wear_outfit_tooltip"));
+ }
}
void LLPanelOutfitsInventory::showGearMenu()
{
- if (!mGearMenu) return;
+ if (!mActivePanel) return;
LLView* spawning_view = getChild<LLView>("options_gear_btn");
- mGearMenu->show(spawning_view);
+ mActivePanel->showGearMenu(spawning_view);
}
void LLPanelOutfitsInventory::onTrashButtonClick()
{
- onClipboardAction("delete");
-}
-
-void LLPanelOutfitsInventory::onClipboardAction(const LLSD& userdata)
-{
- std::string command_name = userdata.asString();
- if (isCOFPanelActive())
- {
- getActivePanel()->getRootFolder()->doToSelected(getActivePanel()->getModel(),command_name);
- }
- else // "My Outfits" tab active
- {
- if (command_name == "delete")
- {
- const LLUUID& selected_outfit_id = mMyOutfitsPanel->getSelectedOutfitUUID();
- if (selected_outfit_id.notNull())
- {
- remove_category(&gInventory, selected_outfit_id);
- }
- }
- else
- {
- llwarns << "Unrecognized action" << llendl;
- }
- }
- updateListCommands();
- updateVerbs();
+ LLNotificationsUtil::add("DeleteOutfits", LLSD(), LLSD(), boost::bind(&LLPanelOutfitsInventory::onOutfitsRemovalConfirmation, this, _1, _2));
}
-void LLPanelOutfitsInventory::onCustomAction(const LLSD& userdata)
+void LLPanelOutfitsInventory::onOutfitsRemovalConfirmation(const LLSD& notification, const LLSD& response)
{
- if (!isActionEnabled(userdata))
- return;
+ S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
+ if (option != 0) return; // canceled
- const std::string command_name = userdata.asString();
- if (command_name == "new")
- {
- onSave();
- }
- if (command_name == "edit")
- {
- onEdit();
- }
- if (command_name == "wear")
- {
- onWearButtonClick();
- }
- // Note: This option has been removed from the gear menu.
- if (command_name == "add")
- {
- onAdd();
- }
- if (command_name == "remove")
- {
- onRemove();
- }
- if (command_name == "rename")
- {
- onClipboardAction("rename");
- }
- if (command_name == "remove_link")
- {
- onClipboardAction("delete");
- }
- if (command_name == "delete")
- {
- onClipboardAction("delete");
- }
+ mMyOutfitsPanel->removeSelected();
updateListCommands();
updateVerbs();
}
-BOOL LLPanelOutfitsInventory::isActionEnabled(const LLSD& userdata)
-{
- const std::string command_name = userdata.asString();
- if (command_name == "delete" || command_name == "remove")
- {
- BOOL can_delete = FALSE;
-
- if (isCOFPanelActive())
- {
- LLFolderView* root = getActivePanel()->getRootFolder();
- if (root)
- {
- std::set<LLUUID> selection_set = root->getSelectionList();
- can_delete = (selection_set.size() > 0);
- for (std::set<LLUUID>::iterator iter = selection_set.begin();
- iter != selection_set.end();
- ++iter)
- {
- const LLUUID &item_id = (*iter);
- LLFolderViewItem *item = root->getItemByID(item_id);
- can_delete &= item->getListener()->isItemRemovable();
- }
- }
- }
- else // "My Outfits" tab active
- {
- const LLUUID& selected_outfit = mMyOutfitsPanel->getSelectedOutfitUUID();
- // first condition prevents trash btn from enabling when items are selected inside outfit (EXT-7847)
- can_delete = !mMyOutfitsPanel->hasItemSelected() && LLAppearanceMgr::instance().getCanRemoveOutfit(selected_outfit);
- }
-
- return can_delete;
- }
- if (command_name == "remove_link")
- {
- BOOL can_delete = FALSE;
- LLFolderView* root = getActivePanel()->getRootFolder();
- if (root)
- {
- std::set<LLUUID> selection_set = root->getSelectionList();
- can_delete = (selection_set.size() > 0);
- for (std::set<LLUUID>::iterator iter = selection_set.begin();
- iter != selection_set.end();
- ++iter)
- {
- const LLUUID &item_id = (*iter);
- LLViewerInventoryItem *item = gInventory.getItem(item_id);
- if (!item || !item->getIsLinkType())
- return FALSE;
- }
- return can_delete;
- }
- return FALSE;
- }
- if (command_name == "rename" ||
- command_name == "delete_outfit")
- {
- return (getCorrectListenerForAction() != NULL) && hasItemsSelected();
- }
-
- if (command_name == "wear")
- {
- if (isCOFPanelActive())
- {
- return FALSE;
- }
- return hasItemsSelected();
- }
- if (command_name == "save_outfit")
- {
- bool outfit_locked = LLAppearanceMgr::getInstance()->isOutfitLocked();
- bool outfit_dirty =LLAppearanceMgr::getInstance()->isOutfitDirty();
- // allow save only if outfit isn't locked and is dirty
- return !outfit_locked && outfit_dirty;
- }
-
- if (command_name == "edit" ||
- command_name == "add"
- )
- {
- return (getCorrectListenerForAction() != NULL);
- }
- return TRUE;
-}
-
-bool LLPanelOutfitsInventory::hasItemsSelected()
-{
- bool has_items_selected = false;
-
- if (isCOFPanelActive())
- {
- LLFolderView* root = getActivePanel()->getRootFolder();
- if (root)
- {
- std::set<LLUUID> selection_set = root->getSelectionList();
- has_items_selected = (selection_set.size() > 0);
- }
- }
- else // My Outfits Tab is active
- {
- has_items_selected = mMyOutfitsPanel->getSelectedOutfitUUID().notNull();
- }
- return has_items_selected;
-}
-
-bool LLPanelOutfitsInventory::handleDragAndDropToTrash(BOOL drop, EDragAndDropType cargo_type, EAcceptance* accept)
+bool LLPanelOutfitsInventory::isActionEnabled(const LLSD& userdata)
{
- *accept = ACCEPT_NO;
-
- const bool is_enabled = isActionEnabled("delete");
- if (is_enabled) *accept = ACCEPT_YES_MULTI;
-
- if (is_enabled && drop)
- {
- onClipboardAction("delete");
- }
- return true;
+ return mActivePanel && mActivePanel->isActionEnabled(userdata);
}
-
-// List Commands //
-////////////////////////////////////////////////////////////////////////////////
+// List Commands //
+//////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////
-// Tab panels //
+// Tab panels //
void LLPanelOutfitsInventory::initTabPanels()
{
- mCurrentOutfitPanel = getChild<LLInventoryPanel>(COF_TAB_NAME);
- mCurrentOutfitPanel->setShowFolderState(LLInventoryFilter::SHOW_NON_EMPTY_FOLDERS);
- mCurrentOutfitPanel->setSelectCallback(boost::bind(&LLPanelOutfitsInventory::onTabSelectionChange, this, mCurrentOutfitPanel, _1, _2));
+ mCurrentOutfitPanel = findChild<LLPanelWearing>(COF_TAB_NAME);
+ mCurrentOutfitPanel->setSelectionChangeCallback(boost::bind(&LLPanelOutfitsInventory::updateVerbs, this));
- mMyOutfitsPanel = getChild<LLOutfitsList>(OUTFITS_TAB_NAME);
- mMyOutfitsPanel->addSelectionChangeCallback(boost::bind(&LLPanelOutfitsInventory::updateVerbs, this));
+ mMyOutfitsPanel = findChild<LLOutfitsList>(OUTFITS_TAB_NAME);
+ mMyOutfitsPanel->setSelectionChangeCallback(boost::bind(&LLPanelOutfitsInventory::updateVerbs, this));
mAppearanceTabs = getChild<LLTabContainer>("appearance_tabs");
mAppearanceTabs->setCommitCallback(boost::bind(&LLPanelOutfitsInventory::onTabChange, this));
}
-void LLPanelOutfitsInventory::onTabSelectionChange(LLInventoryPanel* tab_panel, const std::deque<LLFolderViewItem*> &items, BOOL user_action)
-{
- if (user_action && items.size() > 0)
- {
- // TODO: add handling "My Outfits" tab.
- if (isCOFPanelActive())
- {
- onSelectionChange(items, user_action);
- }
- else
- {
- mCurrentOutfitPanel->getRootFolder()->clearSelection();
- }
- }
-}
-
void LLPanelOutfitsInventory::onTabChange()
{
- // TODO: add handling "My Outfits" tab.
- if (isCOFPanelActive())
- {
- mCurrentOutfitPanel->setFilterSubString(mFilterSubString);
- }
- else
- {
- mMyOutfitsPanel->setFilterSubString(mFilterSubString);
- mMyOutfitsPanel->onOpen(LLSD());
- }
+ mActivePanel = dynamic_cast<LLPanelAppearanceTab*>(mAppearanceTabs->getCurrentPanel());
+ if (!mActivePanel) return;
+
+ mActivePanel->setFilterSubString(mFilterSubString);
+ mActivePanel->onOpen(LLSD());
updateVerbs();
}
-BOOL LLPanelOutfitsInventory::isTabPanel(LLInventoryPanel *panel) const
+bool LLPanelOutfitsInventory::isCOFPanelActive() const
{
- // TODO: add handling "My Outfits" tab.
- if (mCurrentOutfitPanel == panel)
- {
- return TRUE;
- }
- return FALSE;
-}
+ if (!mActivePanel) return false;
-BOOL LLPanelOutfitsInventory::isCOFPanelActive() const
-{
- return (childGetVisibleTab("appearance_tabs")->getName() == COF_TAB_NAME);
+ return mActivePanel->getName() == COF_TAB_NAME;
}
void LLPanelOutfitsInventory::setWearablesLoading(bool val)
{
- mListCommands->childSetEnabled("wear_btn", !val);
+ updateVerbs();
}
void LLPanelOutfitsInventory::onWearablesLoaded()
diff --git a/indra/newview/llpaneloutfitsinventory.h b/indra/newview/llpaneloutfitsinventory.h
index eabfda7f8c..f1ca1dbfeb 100644
--- a/indra/newview/llpaneloutfitsinventory.h
+++ b/indra/newview/llpaneloutfitsinventory.h
@@ -3,30 +3,25 @@
* @brief Outfits inventory panel
* class definition
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -34,20 +29,15 @@
#define LL_LLPANELOUTFITSINVENTORY_H
#include "llpanel.h"
-#include "llinventoryobserver.h"
-class LLFolderView;
-class LLFolderViewItem;
-class LLFolderViewEventListener;
-class LLInventoryPanel;
class LLOutfitsList;
-class LLSaveFolderState;
-class LLButton;
+class LLOutfitListGearMenu;
+class LLPanelAppearanceTab;
+class LLPanelWearing;
class LLMenuGL;
class LLSidepanelAppearance;
class LLTabContainer;
class LLSaveOutfitComboBtn;
-class LLOutfitListGearMenu;
class LLPanelOutfitsInventory : public LLPanel
{
@@ -60,55 +50,36 @@ public:
/*virtual*/ void onOpen(const LLSD& key);
void onSearchEdit(const std::string& string);
- void onAdd();
- void onRemove();
- void onEdit();
void onSave();
bool onSaveCommit(const LLSD& notification, const LLSD& response);
- void onSelectionChange(const std::deque<LLFolderViewItem*> &items, BOOL user_action);
-
- // If a compatible listener type is selected, then return a pointer to that.
- // Otherwise, return NULL.
- LLFolderViewEventListener* getCorrectListenerForAction();
-
- LLFolderView* getRootFolder();
static LLSidepanelAppearance* getAppearanceSP();
static LLPanelOutfitsInventory* findInstance();
protected:
void updateVerbs();
- bool getIsCorrectType(const LLFolderViewEventListener *listenerp) const;
private:
- LLSaveFolderState* mSavedFolderState;
LLTabContainer* mAppearanceTabs;
std::string mFilterSubString;
std::auto_ptr<LLSaveOutfitComboBtn> mSaveComboBtn;
-public:
- //////////////////////////////////////////////////////////////////////////////////
- // tab panels
- // TODO: change getActivePanel() to return the active tab instead of returning
- // a pointer to "Wearing" inventory panel.
- LLInventoryPanel* getActivePanel() { return mCurrentOutfitPanel; }
-
- BOOL isTabPanel(LLInventoryPanel *panel) const;
- BOOL isCOFPanelActive() const;
+ //////////////////////////////////////////////////////////////////////////////////
+ // tab panels //
protected:
void initTabPanels();
- void onTabSelectionChange(LLInventoryPanel* tab_panel, const std::deque<LLFolderViewItem*> &items, BOOL user_action);
void onTabChange();
+ bool isCOFPanelActive() const;
private:
+ LLPanelAppearanceTab* mActivePanel;
LLOutfitsList* mMyOutfitsPanel;
- LLInventoryPanel* mCurrentOutfitPanel;
+ LLPanelWearing* mCurrentOutfitPanel;
- // tab panels //
- ////////////////////////////////////////////////////////////////////////////////
-
+ // tab panels //
+ //////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////
// List Commands //
@@ -118,21 +89,16 @@ protected:
void onWearButtonClick();
void showGearMenu();
void onTrashButtonClick();
- void onClipboardAction(const LLSD& userdata);
- BOOL isActionEnabled(const LLSD& command_name);
- void onCustomAction(const LLSD& command_name);
- bool handleDragAndDropToTrash(BOOL drop, EDragAndDropType cargo_type, EAcceptance* accept);
- bool hasItemsSelected();
+ void onOutfitsRemovalConfirmation(const LLSD& notification, const LLSD& response);
+ bool isActionEnabled(const LLSD& userdata);
void setWearablesLoading(bool val);
void onWearablesLoaded();
void onWearablesLoading();
private:
LLPanel* mListCommands;
- LLOutfitListGearMenu* mGearMenu;
LLMenuGL* mMenuAdd;
- // List Commands //
- ////////////////////////////////////////////////////////////////////////////////
- ///
+ // List Commands //
+ //////////////////////////////////////////////////////////////////////////////////
bool mInitialized;
};
diff --git a/indra/newview/llpanelpeople.cpp b/indra/newview/llpanelpeople.cpp
index 6dd800c0c6..d096b17145 100644
--- a/indra/newview/llpanelpeople.cpp
+++ b/indra/newview/llpanelpeople.cpp
@@ -2,31 +2,25 @@
* @file llpanelpeople.cpp
* @brief Side tray "People" panel
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -272,6 +266,7 @@ public:
friend class LLInventoryFriendCardObserver;
LLFriendListUpdater(callback_t cb)
: LLAvatarListUpdater(cb, FRIEND_LIST_UPDATE_TIMEOUT)
+ , mIsActive(false)
{
LLAvatarTracker::instance().addObserver(this);
@@ -290,9 +285,12 @@ public:
/*virtual*/ void changed(U32 mask)
{
- // events can arrive quickly in bulk - we need not process EVERY one of them -
- // so we wait a short while to let others pile-in, and process them in aggregate.
- mEventTimer.start();
+ if (mIsActive)
+ {
+ // events can arrive quickly in bulk - we need not process EVERY one of them -
+ // so we wait a short while to let others pile-in, and process them in aggregate.
+ mEventTimer.start();
+ }
// save-up all the mask-bits which have come-in
mMask |= mask;
@@ -301,8 +299,12 @@ public:
/*virtual*/ BOOL tick()
{
+ if (!mIsActive) return FALSE;
+
if (mMask & (LLFriendObserver::ADD | LLFriendObserver::REMOVE | LLFriendObserver::ONLINE))
+ {
updateList();
+ }
// Stop updates.
mEventTimer.stop();
@@ -311,9 +313,20 @@ public:
return FALSE;
}
+ // virtual
+ void setActive(bool active)
+ {
+ mIsActive = active;
+ if (active)
+ {
+ tick();
+ }
+ }
+
private:
U32 mMask;
LLInventoryFriendCardObserver* mInvObserver;
+ bool mIsActive;
/**
* This class is intended for updating Friend List when Inventory Friend Card is added/removed.
@@ -496,22 +509,27 @@ void LLPanelPeople::onFriendsAccordionExpandedCollapsed(LLUICtrl* ctrl, const LL
BOOL LLPanelPeople::postBuild()
{
- setVisibleCallback(boost::bind(&LLPanelPeople::onVisibilityChange, this, _2));
-
mFilterEditor = getChild<LLFilterEditor>("filter_input");
mFilterEditor->setCommitCallback(boost::bind(&LLPanelPeople::onFilterEdit, this, _2));
mTabContainer = getChild<LLTabContainer>("tabs");
mTabContainer->setCommitCallback(boost::bind(&LLPanelPeople::onTabSelected, this, _2));
- mOnlineFriendList = getChild<LLPanel>(FRIENDS_TAB_NAME)->getChild<LLAvatarList>("avatars_online");
- mAllFriendList = getChild<LLPanel>(FRIENDS_TAB_NAME)->getChild<LLAvatarList>("avatars_all");
+ LLPanel* friends_tab = getChild<LLPanel>(FRIENDS_TAB_NAME);
+ // updater is active only if panel is visible to user.
+ friends_tab->setVisibleCallback(boost::bind(&Updater::setActive, mFriendListUpdater, _2));
+ mOnlineFriendList = friends_tab->getChild<LLAvatarList>("avatars_online");
+ mAllFriendList = friends_tab->getChild<LLAvatarList>("avatars_all");
mOnlineFriendList->setNoItemsCommentText(getString("no_friends_online"));
mOnlineFriendList->setShowIcons("FriendsListShowIcons");
+ mOnlineFriendList->showPermissions("FriendsListShowPermissions");
mAllFriendList->setNoItemsCommentText(getString("no_friends"));
mAllFriendList->setShowIcons("FriendsListShowIcons");
+ mAllFriendList->showPermissions("FriendsListShowPermissions");
- mNearbyList = getChild<LLPanel>(NEARBY_TAB_NAME)->getChild<LLAvatarList>("avatar_list");
+ LLPanel* nearby_tab = getChild<LLPanel>(NEARBY_TAB_NAME);
+ nearby_tab->setVisibleCallback(boost::bind(&Updater::setActive, mNearbyListUpdater, _2));
+ mNearbyList = nearby_tab->getChild<LLAvatarList>("avatar_list");
mNearbyList->setNoItemsCommentText(getString("no_one_near"));
mNearbyList->setNoItemsMsg(getString("no_one_near"));
mNearbyList->setNoFilteredItemsMsg(getString("no_one_filtered_near"));
@@ -760,12 +778,6 @@ void LLPanelPeople::buttonSetAction(const std::string& btn_name, const commit_si
button->setClickedCallback(cb);
}
-bool LLPanelPeople::isFriendOnline(const LLUUID& id)
-{
- uuid_vec_t ids = mOnlineFriendList->getIDs();
- return std::find(ids.begin(), ids.end(), id) != ids.end();
-}
-
void LLPanelPeople::updateButtons()
{
std::string cur_tab = getActiveTabName();
@@ -800,8 +812,8 @@ void LLPanelPeople::updateButtons()
}
LLPanel* groups_panel = mTabContainer->getCurrentPanel();
- groups_panel->childSetEnabled("activate_btn", item_selected && !cur_group_active); // "none" or a non-active group selected
- groups_panel->childSetEnabled("minus_btn", item_selected && selected_id.notNull());
+ groups_panel->getChildView("activate_btn")->setEnabled(item_selected && !cur_group_active); // "none" or a non-active group selected
+ groups_panel->getChildView("minus_btn")->setEnabled(item_selected && selected_id.notNull());
}
else
{
@@ -817,21 +829,21 @@ void LLPanelPeople::updateButtons()
LLPanel* cur_panel = mTabContainer->getCurrentPanel();
if (cur_panel)
{
- cur_panel->childSetEnabled("add_friend_btn", !is_friend);
+ cur_panel->getChildView("add_friend_btn")->setEnabled(!is_friend);
if (friends_tab_active)
{
- cur_panel->childSetEnabled("del_btn", multiple_selected);
+ cur_panel->getChildView("del_btn")->setEnabled(multiple_selected);
}
}
}
bool enable_calls = LLVoiceClient::getInstance()->isVoiceWorking() && LLVoiceClient::getInstance()->voiceEnabled();
- buttonSetEnabled("teleport_btn", friends_tab_active && item_selected && isFriendOnline(selected_uuids.front()));
- buttonSetEnabled("view_profile_btn", item_selected);
- buttonSetEnabled("im_btn", multiple_selected); // allow starting the friends conference for multiple selection
- buttonSetEnabled("call_btn", multiple_selected && enable_calls);
- buttonSetEnabled("share_btn", item_selected); // not implemented yet
+ buttonSetEnabled("view_profile_btn",item_selected);
+ buttonSetEnabled("share_btn", item_selected);
+ buttonSetEnabled("im_btn", multiple_selected); // allow starting the friends conference for multiple selection
+ buttonSetEnabled("call_btn", multiple_selected && enable_calls);
+ buttonSetEnabled("teleport_btn", multiple_selected && LLAvatarActions::canOfferTeleport(selected_uuids));
bool none_group_selected = item_selected && selected_id.isNull();
buttonSetEnabled("group_info_btn", !none_group_selected);
@@ -955,28 +967,6 @@ void LLPanelPeople::setSortOrder(LLAvatarList* list, ESortOrder order, bool save
}
}
-void LLPanelPeople::onVisibilityChange(const LLSD& new_visibility)
-{
- if (new_visibility.asBoolean() == FALSE)
- {
- // Don't update anything while we're invisible.
- mNearbyListUpdater->setActive(FALSE);
- }
- else
- {
- reSelectedCurrentTab();
- }
-}
-
-// Make the tab-container re-select current tab
-// for onTabSelected() callback to get called.
-// (currently this is needed to reactivate nearby list updates
-// when we get visible)
-void LLPanelPeople::reSelectedCurrentTab()
-{
- mTabContainer->selectTab(mTabContainer->getCurrentPanelIndex());
-}
-
bool LLPanelPeople::isRealGroup()
{
return getCurrentItemID() != LLUUID::null;
@@ -1024,7 +1014,6 @@ void LLPanelPeople::onFilterEdit(const std::string& search_string)
void LLPanelPeople::onTabSelected(const LLSD& param)
{
std::string tab_name = getChild<LLPanel>(param.asString())->getName();
- mNearbyListUpdater->setActive(tab_name == NEARBY_TAB_NAME);
updateButtons();
showFriendsAccordionsIfNeeded();
@@ -1218,6 +1207,14 @@ void LLPanelPeople::onFriendsViewSortMenuItemClicked(const LLSD& userdata)
mAllFriendList->toggleIcons();
mOnlineFriendList->toggleIcons();
}
+ else if (chosen_item == "view_permissions")
+ {
+ bool show_permissions = !gSavedSettings.getBOOL("FriendsListShowPermissions");
+ gSavedSettings.setBOOL("FriendsListShowPermissions", show_permissions);
+
+ mAllFriendList->showPermissions(show_permissions);
+ mOnlineFriendList->showPermissions(show_permissions);
+ }
}
void LLPanelPeople::onGroupsViewSortMenuItemClicked(const LLSD& userdata)
@@ -1335,7 +1332,9 @@ void LLPanelPeople::onGroupCallButtonClicked()
void LLPanelPeople::onTeleportButtonClicked()
{
- LLAvatarActions::offerTeleport(getCurrentItemID());
+ uuid_vec_t selected_uuids;
+ getCurrentItemIDs(selected_uuids);
+ LLAvatarActions::offerTeleport(selected_uuids);
}
void LLPanelPeople::onShareButtonClicked()
@@ -1388,8 +1387,6 @@ void LLPanelPeople::onOpen(const LLSD& key)
if (!tab_name.empty())
mTabContainer->selectTabByName(tab_name);
- else
- reSelectedCurrentTab();
}
bool LLPanelPeople::notifyChildren(const LLSD& info)
diff --git a/indra/newview/llpanelpeople.h b/indra/newview/llpanelpeople.h
index 17c45a034b..d0913ee756 100644
--- a/indra/newview/llpanelpeople.h
+++ b/indra/newview/llpanelpeople.h
@@ -2,31 +2,25 @@
* @file llpanelpeople.h
* @brief Side tray "People" panel
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -78,7 +72,6 @@ private:
void updateNearbyList();
void updateRecentList();
- bool isFriendOnline(const LLUUID& id);
bool isItemsFreeOfFriends(const uuid_vec_t& uuids);
void updateButtons();
@@ -91,10 +84,6 @@ private:
void showGroupMenu(LLMenuGL* menu);
void setSortOrder(LLAvatarList* list, ESortOrder order, bool save = true);
- void onVisibilityChange( const LLSD& new_visibility);
-
- void reSelectedCurrentTab();
-
// UI callbacks
void onFilterEdit(const std::string& search_string);
void onTabSelected(const LLSD& param);
diff --git a/indra/newview/llpanelpeoplemenus.cpp b/indra/newview/llpanelpeoplemenus.cpp
index 93be0bda9e..f12c4de2f7 100644
--- a/indra/newview/llpanelpeoplemenus.cpp
+++ b/indra/newview/llpanelpeoplemenus.cpp
@@ -2,31 +2,25 @@
* @file llpanelpeoplemenus.h
* @brief Menus used by the side tray "People" panel
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -87,6 +81,7 @@ LLContextMenu* NearbyMenu::createMenu()
// registrar.add("Avatar.AddFriend", boost::bind(&LLAvatarActions::requestFriendshipDialog, mUUIDs)); // *TODO: unimplemented
registrar.add("Avatar.IM", boost::bind(&LLAvatarActions::startConference, mUUIDs));
registrar.add("Avatar.Call", boost::bind(&LLAvatarActions::startAdhocCall, mUUIDs));
+ registrar.add("Avatar.OfferTeleport", boost::bind(&NearbyMenu::offerTeleport, this));
registrar.add("Avatar.RemoveFriend",boost::bind(&LLAvatarActions::removeFriendsDialog, mUUIDs));
// registrar.add("Avatar.Share", boost::bind(&LLAvatarActions::startIM, mUUIDs)); // *TODO: unimplemented
// registrar.add("Avatar.Pay", boost::bind(&LLAvatarActions::pay, mUUIDs)); // *TODO: unimplemented
@@ -174,8 +169,7 @@ bool NearbyMenu::enableContextMenuItem(const LLSD& userdata)
}
else if(item == std::string("can_offer_teleport"))
{
- const LLUUID& id = mUUIDs.front();
- return LLAvatarActions::canOfferTeleport(id);
+ return LLAvatarActions::canOfferTeleport(mUUIDs);
}
return false;
}
@@ -197,8 +191,7 @@ void NearbyMenu::offerTeleport()
{
// boost::bind cannot recognize overloaded method LLAvatarActions::offerTeleport(),
// so we have to use a wrapper.
- const LLUUID& id = mUUIDs.front();
- LLAvatarActions::offerTeleport(id);
+ LLAvatarActions::offerTeleport(mUUIDs);
}
} // namespace LLPanelPeopleMenus
diff --git a/indra/newview/llpanelpeoplemenus.h b/indra/newview/llpanelpeoplemenus.h
index e1f8790135..d51eaec716 100644
--- a/indra/newview/llpanelpeoplemenus.h
+++ b/indra/newview/llpanelpeoplemenus.h
@@ -2,31 +2,25 @@
* @file llpanelpeoplemenus.h
* @brief Menus used by the side tray "People" panel
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llpanelpermissions.cpp b/indra/newview/llpanelpermissions.cpp
index 71d16a08b4..e35574be6c 100644
--- a/indra/newview/llpanelpermissions.cpp
+++ b/indra/newview/llpanelpermissions.cpp
@@ -4,31 +4,25 @@
* This class represents the panel in the build view for
* viewing/editing object names, owners, permissions, etc.
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -142,9 +136,9 @@ LLPanelPermissions::LLPanelPermissions() :
BOOL LLPanelPermissions::postBuild()
{
childSetCommitCallback("Object Name",LLPanelPermissions::onCommitName,this);
- childSetPrevalidate("Object Name",LLTextValidate::validateASCIIPrintableNoPipe);
+ getChild<LLLineEditor>("Object Name")->setPrevalidate(LLTextValidate::validateASCIIPrintableNoPipe);
childSetCommitCallback("Object Description",LLPanelPermissions::onCommitDesc,this);
- childSetPrevalidate("Object Description",LLTextValidate::validateASCIIPrintableNoPipe);
+ getChild<LLLineEditor>("Object Description")->setPrevalidate(LLTextValidate::validateASCIIPrintableNoPipe);
getChild<LLUICtrl>("button set group")->setCommitCallback(boost::bind(&LLPanelPermissions::onClickGroup,this));
@@ -183,81 +177,81 @@ LLPanelPermissions::~LLPanelPermissions()
void LLPanelPermissions::disableAll()
{
- childSetEnabled("perm_modify", FALSE);
- childSetText("perm_modify", LLStringUtil::null);
-
- childSetEnabled("Creator:", FALSE);
- childSetText("Creator Name", LLStringUtil::null);
- childSetEnabled("Creator Name", FALSE);
-
- childSetEnabled("Owner:", FALSE);
- childSetText("Owner Name", LLStringUtil::null);
- childSetEnabled("Owner Name", FALSE);
-
- childSetEnabled("Group:", FALSE);
- childSetText("Group Name Proxy", LLStringUtil::null);
- childSetEnabled("Group Name Proxy", FALSE);
- childSetEnabled("button set group", FALSE);
-
- childSetText("Object Name", LLStringUtil::null);
- childSetEnabled("Object Name", FALSE);
- childSetEnabled("Name:", FALSE);
- childSetText("Group Name", LLStringUtil::null);
- childSetEnabled("Group Name", FALSE);
- childSetEnabled("Description:", FALSE);
- childSetText("Object Description", LLStringUtil::null);
- childSetEnabled("Object Description", FALSE);
-
- childSetEnabled("Permissions:", FALSE);
+ getChildView("perm_modify")->setEnabled(FALSE);
+ getChild<LLUICtrl>("perm_modify")->setValue(LLStringUtil::null);
+
+ getChildView("Creator:")->setEnabled(FALSE);
+ getChild<LLUICtrl>("Creator Name")->setValue(LLStringUtil::null);
+ getChildView("Creator Name")->setEnabled(FALSE);
+
+ getChildView("Owner:")->setEnabled(FALSE);
+ getChild<LLUICtrl>("Owner Name")->setValue(LLStringUtil::null);
+ getChildView("Owner Name")->setEnabled(FALSE);
+
+ getChildView("Group:")->setEnabled(FALSE);
+ getChild<LLUICtrl>("Group Name Proxy")->setValue(LLStringUtil::null);
+ getChildView("Group Name Proxy")->setEnabled(FALSE);
+ getChildView("button set group")->setEnabled(FALSE);
+
+ getChild<LLUICtrl>("Object Name")->setValue(LLStringUtil::null);
+ getChildView("Object Name")->setEnabled(FALSE);
+ getChildView("Name:")->setEnabled(FALSE);
+ getChild<LLUICtrl>("Group Name")->setValue(LLStringUtil::null);
+ getChildView("Group Name")->setEnabled(FALSE);
+ getChildView("Description:")->setEnabled(FALSE);
+ getChild<LLUICtrl>("Object Description")->setValue(LLStringUtil::null);
+ getChildView("Object Description")->setEnabled(FALSE);
+
+ getChildView("Permissions:")->setEnabled(FALSE);
- childSetValue("checkbox share with group", FALSE);
- childSetEnabled("checkbox share with group", FALSE);
- childSetEnabled("button deed", FALSE);
+ getChild<LLUICtrl>("checkbox share with group")->setValue(FALSE);
+ getChildView("checkbox share with group")->setEnabled(FALSE);
+ getChildView("button deed")->setEnabled(FALSE);
- childSetValue("checkbox allow everyone move", FALSE);
- childSetEnabled("checkbox allow everyone move", FALSE);
- childSetValue("checkbox allow everyone copy", FALSE);
- childSetEnabled("checkbox allow everyone copy", FALSE);
+ getChild<LLUICtrl>("checkbox allow everyone move")->setValue(FALSE);
+ getChildView("checkbox allow everyone move")->setEnabled(FALSE);
+ getChild<LLUICtrl>("checkbox allow everyone copy")->setValue(FALSE);
+ getChildView("checkbox allow everyone copy")->setEnabled(FALSE);
//Next owner can:
- childSetEnabled("Next owner can:", FALSE);
- childSetValue("checkbox next owner can modify", FALSE);
- childSetEnabled("checkbox next owner can modify", FALSE);
- childSetValue("checkbox next owner can copy", FALSE);
- childSetEnabled("checkbox next owner can copy", FALSE);
- childSetValue("checkbox next owner can transfer", FALSE);
- childSetEnabled("checkbox next owner can transfer", FALSE);
+ getChildView("Next owner can:")->setEnabled(FALSE);
+ getChild<LLUICtrl>("checkbox next owner can modify")->setValue(FALSE);
+ getChildView("checkbox next owner can modify")->setEnabled(FALSE);
+ getChild<LLUICtrl>("checkbox next owner can copy")->setValue(FALSE);
+ getChildView("checkbox next owner can copy")->setEnabled(FALSE);
+ getChild<LLUICtrl>("checkbox next owner can transfer")->setValue(FALSE);
+ getChildView("checkbox next owner can transfer")->setEnabled(FALSE);
//checkbox for sale
- childSetValue("checkbox for sale", FALSE);
- childSetEnabled("checkbox for sale", FALSE);
+ getChild<LLUICtrl>("checkbox for sale")->setValue(FALSE);
+ getChildView("checkbox for sale")->setEnabled(FALSE);
//checkbox include in search
- childSetValue("search_check", FALSE);
- childSetEnabled("search_check", FALSE);
+ getChild<LLUICtrl>("search_check")->setValue(FALSE);
+ getChildView("search_check")->setEnabled(FALSE);
LLComboBox* combo_sale_type = getChild<LLComboBox>("sale type");
combo_sale_type->setValue(LLSaleInfo::FS_COPY);
combo_sale_type->setEnabled(FALSE);
- childSetEnabled("Cost", FALSE);
- childSetText("Cost", getString("Cost Default"));
- childSetText("Edit Cost", LLStringUtil::null);
- childSetEnabled("Edit Cost", FALSE);
+ getChildView("Cost")->setEnabled(FALSE);
+ getChild<LLUICtrl>("Cost")->setValue(getString("Cost Default"));
+ getChild<LLUICtrl>("Edit Cost")->setValue(LLStringUtil::null);
+ getChildView("Edit Cost")->setEnabled(FALSE);
- childSetEnabled("label click action", FALSE);
+ getChildView("label click action")->setEnabled(FALSE);
LLComboBox* combo_click_action = getChild<LLComboBox>("clickaction");
if (combo_click_action)
{
combo_click_action->setEnabled(FALSE);
combo_click_action->clear();
}
- childSetVisible("B:", FALSE);
- childSetVisible("O:", FALSE);
- childSetVisible("G:", FALSE);
- childSetVisible("E:", FALSE);
- childSetVisible("N:", FALSE);
- childSetVisible("F:", FALSE);
+ getChildView("B:")->setVisible( FALSE);
+ getChildView("O:")->setVisible( FALSE);
+ getChildView("G:")->setVisible( FALSE);
+ getChildView("E:")->setVisible( FALSE);
+ getChildView("N:")->setVisible( FALSE);
+ getChildView("F:")->setVisible( FALSE);
}
void LLPanelPermissions::refresh()
@@ -323,23 +317,23 @@ void LLPanelPermissions::refresh()
{
++string_index;
}
- childSetEnabled("perm_modify", TRUE);
- childSetText("perm_modify", MODIFY_INFO_STRINGS[string_index]);
+ getChildView("perm_modify")->setEnabled(TRUE);
+ getChild<LLUICtrl>("perm_modify")->setValue(MODIFY_INFO_STRINGS[string_index]);
- childSetEnabled("Permissions:", TRUE);
+ getChildView("Permissions:")->setEnabled(TRUE);
// Update creator text field
- childSetEnabled("Creator:", TRUE);
+ getChildView("Creator:")->setEnabled(TRUE);
BOOL creators_identical;
std::string creator_name;
creators_identical = LLSelectMgr::getInstance()->selectGetCreator(mCreatorID,
creator_name);
- childSetText("Creator Name", creator_name);
- childSetEnabled("Creator Name", TRUE);
+ getChild<LLUICtrl>("Creator Name")->setValue(creator_name);
+ getChildView("Creator Name")->setEnabled(TRUE);
// Update owner text field
- childSetEnabled("Owner:", TRUE);
+ getChildView("Owner:")->setEnabled(TRUE);
std::string owner_name;
const BOOL owners_identical = LLSelectMgr::getInstance()->selectGetOwner(mOwnerID, owner_name);
@@ -364,12 +358,12 @@ void LLPanelPermissions::refresh()
}
}
}
- childSetText("Owner Name", owner_name);
- childSetEnabled("Owner Name", TRUE);
+ getChild<LLUICtrl>("Owner Name")->setValue(owner_name);
+ getChildView("Owner Name")->setEnabled(TRUE);
// update group text field
- childSetEnabled("Group:", TRUE);
- childSetText("Group Name", LLStringUtil::null);
+ getChildView("Group:")->setEnabled(TRUE);
+ getChild<LLUICtrl>("Group Name")->setValue(LLStringUtil::null);
LLUUID group_id;
BOOL groups_identical = LLSelectMgr::getInstance()->selectGetGroup(group_id);
if (groups_identical)
@@ -390,18 +384,18 @@ void LLPanelPermissions::refresh()
}
}
- childSetEnabled("button set group", owners_identical && (mOwnerID == gAgent.getID()));
+ getChildView("button set group")->setEnabled(owners_identical && (mOwnerID == gAgent.getID()));
- childSetEnabled("Name:", TRUE);
+ getChildView("Name:")->setEnabled(TRUE);
LLLineEditor* LineEditorObjectName = getChild<LLLineEditor>("Object Name");
- childSetEnabled("Description:", TRUE);
+ getChildView("Description:")->setEnabled(TRUE);
LLLineEditor* LineEditorObjectDesc = getChild<LLLineEditor>("Object Description");
if (is_one_object)
{
if (keyboard_focus_view != LineEditorObjectName)
{
- childSetText("Object Name",nodep->mName);
+ getChild<LLUICtrl>("Object Name")->setValue(nodep->mName);
}
if (LineEditorObjectDesc)
@@ -414,7 +408,7 @@ void LLPanelPermissions::refresh()
}
else
{
- childSetText("Object Name", LLStringUtil::null);
+ getChild<LLUICtrl>("Object Name")->setValue(LLStringUtil::null);
LineEditorObjectDesc->setText(LLStringUtil::null);
}
@@ -426,13 +420,13 @@ void LLPanelPermissions::refresh()
}
if (edit_name_desc)
{
- childSetEnabled("Object Name", TRUE);
- childSetEnabled("Object Description", TRUE);
+ getChildView("Object Name")->setEnabled(TRUE);
+ getChildView("Object Description")->setEnabled(TRUE);
}
else
{
- childSetEnabled("Object Name", FALSE);
- childSetEnabled("Object Description", FALSE);
+ getChildView("Object Name")->setEnabled(FALSE);
+ getChildView("Object Description")->setEnabled(FALSE);
}
S32 total_sale_price = 0;
@@ -454,9 +448,9 @@ void LLPanelPermissions::refresh()
if (!owners_identical)
{
- childSetEnabled("Cost", FALSE);
- childSetText("Edit Cost", LLStringUtil::null);
- childSetEnabled("Edit Cost", FALSE);
+ getChildView("Cost")->setEnabled(FALSE);
+ getChild<LLUICtrl>("Edit Cost")->setValue(LLStringUtil::null);
+ getChildView("Edit Cost")->setEnabled(FALSE);
}
// You own these objects.
else if (self_owned || (group_owned && gAgent.hasPowerInGroup(group_id,GP_OBJECT_SET_SALE)))
@@ -464,11 +458,11 @@ void LLPanelPermissions::refresh()
// If there are multiple items for sale then set text to PRICE PER UNIT.
if (num_for_sale > 1)
{
- childSetText("Cost", getString("Cost Per Unit"));
+ getChild<LLUICtrl>("Cost")->setValue(getString("Cost Per Unit"));
}
else
{
- childSetText("Cost", getString("Cost Default"));
+ getChild<LLUICtrl>("Cost")->setValue(getString("Cost Default"));
}
LLSpinCtrl *edit_price = getChild<LLSpinCtrl>("Edit Cost");
@@ -492,35 +486,35 @@ void LLPanelPermissions::refresh()
// The edit fields are only enabled if you can sell this object
// and the sale price is not mixed.
BOOL enable_edit = (num_for_sale && can_transfer) ? !is_for_sale_mixed : FALSE;
- childSetEnabled("Cost", enable_edit);
- childSetEnabled("Edit Cost", enable_edit);
+ getChildView("Cost")->setEnabled(enable_edit);
+ getChildView("Edit Cost")->setEnabled(enable_edit);
}
// Someone, not you, owns these objects.
else if (!public_owned)
{
- childSetEnabled("Cost", FALSE);
- childSetEnabled("Edit Cost", FALSE);
+ getChildView("Cost")->setEnabled(FALSE);
+ getChildView("Edit Cost")->setEnabled(FALSE);
// Don't show a price if none of the items are for sale.
if (num_for_sale)
- childSetText("Edit Cost", llformat("%d",total_sale_price));
+ getChild<LLUICtrl>("Edit Cost")->setValue(llformat("%d",total_sale_price));
else
- childSetText("Edit Cost", LLStringUtil::null);
+ getChild<LLUICtrl>("Edit Cost")->setValue(LLStringUtil::null);
// If multiple items are for sale, set text to TOTAL PRICE.
if (num_for_sale > 1)
- childSetText("Cost", getString("Cost Total"));
+ getChild<LLUICtrl>("Cost")->setValue(getString("Cost Total"));
else
- childSetText("Cost", getString("Cost Default"));
+ getChild<LLUICtrl>("Cost")->setValue(getString("Cost Default"));
}
// This is a public object.
else
{
- childSetEnabled("Cost", FALSE);
- childSetText("Cost", getString("Cost Default"));
+ getChildView("Cost")->setEnabled(FALSE);
+ getChild<LLUICtrl>("Cost")->setValue(getString("Cost Default"));
- childSetText("Edit Cost", LLStringUtil::null);
- childSetEnabled("Edit Cost", FALSE);
+ getChild<LLUICtrl>("Edit Cost")->setValue(LLStringUtil::null);
+ getChildView("Edit Cost")->setEnabled(FALSE);
}
// Enable and disable the permissions checkboxes
@@ -562,20 +556,20 @@ void LLPanelPermissions::refresh()
{
if (valid_base_perms)
{
- childSetText("B:", "B: " + mask_to_string(base_mask_on));
- childSetVisible("B:", TRUE);
+ getChild<LLUICtrl>("B:")->setValue("B: " + mask_to_string(base_mask_on));
+ getChildView("B:")->setVisible( TRUE);
- childSetText("O:", "O: " + mask_to_string(owner_mask_on));
- childSetVisible("O:", TRUE);
+ getChild<LLUICtrl>("O:")->setValue("O: " + mask_to_string(owner_mask_on));
+ getChildView("O:")->setVisible( TRUE);
- childSetText("G:", "G: " + mask_to_string(group_mask_on));
- childSetVisible("G:", TRUE);
+ getChild<LLUICtrl>("G:")->setValue("G: " + mask_to_string(group_mask_on));
+ getChildView("G:")->setVisible( TRUE);
- childSetText("E:", "E: " + mask_to_string(everyone_mask_on));
- childSetVisible("E:", TRUE);
+ getChild<LLUICtrl>("E:")->setValue("E: " + mask_to_string(everyone_mask_on));
+ getChildView("E:")->setVisible( TRUE);
- childSetText("N:", "N: " + mask_to_string(next_owner_mask_on));
- childSetVisible("N:", TRUE);
+ getChild<LLUICtrl>("N:")->setValue("N: " + mask_to_string(next_owner_mask_on));
+ getChildView("N:")->setVisible( TRUE);
}
U32 flag_mask = 0x0;
@@ -584,17 +578,17 @@ void LLPanelPermissions::refresh()
if (objectp->permCopy()) flag_mask |= PERM_COPY;
if (objectp->permTransfer()) flag_mask |= PERM_TRANSFER;
- childSetText("F:", "F:" + mask_to_string(flag_mask));
- childSetVisible("F:", TRUE);
+ getChild<LLUICtrl>("F:")->setValue("F:" + mask_to_string(flag_mask));
+ getChildView("F:")->setVisible( TRUE);
}
else
{
- childSetVisible("B:", FALSE);
- childSetVisible("O:", FALSE);
- childSetVisible("G:", FALSE);
- childSetVisible("E:", FALSE);
- childSetVisible("N:", FALSE);
- childSetVisible("F:", FALSE);
+ getChildView("B:")->setVisible( FALSE);
+ getChildView("O:")->setVisible( FALSE);
+ getChildView("G:")->setVisible( FALSE);
+ getChildView("E:")->setVisible( FALSE);
+ getChildView("N:")->setVisible( FALSE);
+ getChildView("F:")->setVisible( FALSE);
}
BOOL has_change_perm_ability = FALSE;
@@ -614,65 +608,65 @@ void LLPanelPermissions::refresh()
if (!has_change_perm_ability && !has_change_sale_ability && !root_selected)
{
// ...must select root to choose permissions
- childSetValue("perm_modify", getString("text modify warning"));
+ getChild<LLUICtrl>("perm_modify")->setValue(getString("text modify warning"));
}
if (has_change_perm_ability)
{
- childSetEnabled("checkbox share with group", TRUE);
- childSetEnabled("checkbox allow everyone move", owner_mask_on & PERM_MOVE);
- childSetEnabled("checkbox allow everyone copy", owner_mask_on & PERM_COPY && owner_mask_on & PERM_TRANSFER);
+ getChildView("checkbox share with group")->setEnabled(TRUE);
+ getChildView("checkbox allow everyone move")->setEnabled(owner_mask_on & PERM_MOVE);
+ getChildView("checkbox allow everyone copy")->setEnabled(owner_mask_on & PERM_COPY && owner_mask_on & PERM_TRANSFER);
}
else
{
- childSetEnabled("checkbox share with group", FALSE);
- childSetEnabled("checkbox allow everyone move", FALSE);
- childSetEnabled("checkbox allow everyone copy", FALSE);
+ getChildView("checkbox share with group")->setEnabled(FALSE);
+ getChildView("checkbox allow everyone move")->setEnabled(FALSE);
+ getChildView("checkbox allow everyone copy")->setEnabled(FALSE);
}
if (has_change_sale_ability && (owner_mask_on & PERM_TRANSFER))
{
- childSetEnabled("checkbox for sale", can_transfer || (!can_transfer && num_for_sale));
+ getChildView("checkbox for sale")->setEnabled(can_transfer || (!can_transfer && num_for_sale));
// Set the checkbox to tentative if the prices of each object selected
// are not the same.
- childSetTentative("checkbox for sale", is_for_sale_mixed);
- childSetEnabled("sale type", num_for_sale && can_transfer && !is_sale_price_mixed);
+ getChild<LLUICtrl>("checkbox for sale")->setTentative( is_for_sale_mixed);
+ getChildView("sale type")->setEnabled(num_for_sale && can_transfer && !is_sale_price_mixed);
- childSetEnabled("Next owner can:", TRUE);
- childSetEnabled("checkbox next owner can modify", base_mask_on & PERM_MODIFY);
- childSetEnabled("checkbox next owner can copy", base_mask_on & PERM_COPY);
- childSetEnabled("checkbox next owner can transfer", next_owner_mask_on & PERM_COPY);
+ getChildView("Next owner can:")->setEnabled(TRUE);
+ getChildView("checkbox next owner can modify")->setEnabled(base_mask_on & PERM_MODIFY);
+ getChildView("checkbox next owner can copy")->setEnabled(base_mask_on & PERM_COPY);
+ getChildView("checkbox next owner can transfer")->setEnabled(next_owner_mask_on & PERM_COPY);
}
else
{
- childSetEnabled("checkbox for sale", FALSE);
- childSetEnabled("sale type", FALSE);
+ getChildView("checkbox for sale")->setEnabled(FALSE);
+ getChildView("sale type")->setEnabled(FALSE);
- childSetEnabled("Next owner can:", FALSE);
- childSetEnabled("checkbox next owner can modify", FALSE);
- childSetEnabled("checkbox next owner can copy", FALSE);
- childSetEnabled("checkbox next owner can transfer", FALSE);
+ getChildView("Next owner can:")->setEnabled(FALSE);
+ getChildView("checkbox next owner can modify")->setEnabled(FALSE);
+ getChildView("checkbox next owner can copy")->setEnabled(FALSE);
+ getChildView("checkbox next owner can transfer")->setEnabled(FALSE);
}
if (valid_group_perms)
{
if ((group_mask_on & PERM_COPY) && (group_mask_on & PERM_MODIFY) && (group_mask_on & PERM_MOVE))
{
- childSetValue("checkbox share with group", TRUE);
- childSetTentative("checkbox share with group", FALSE);
- childSetEnabled("button deed", gAgent.hasPowerInGroup(group_id, GP_OBJECT_DEED) && (owner_mask_on & PERM_TRANSFER) && !group_owned && can_transfer);
+ getChild<LLUICtrl>("checkbox share with group")->setValue(TRUE);
+ getChild<LLUICtrl>("checkbox share with group")->setTentative( FALSE);
+ getChildView("button deed")->setEnabled(gAgent.hasPowerInGroup(group_id, GP_OBJECT_DEED) && (owner_mask_on & PERM_TRANSFER) && !group_owned && can_transfer);
}
else if ((group_mask_off & PERM_COPY) && (group_mask_off & PERM_MODIFY) && (group_mask_off & PERM_MOVE))
{
- childSetValue("checkbox share with group", FALSE);
- childSetTentative("checkbox share with group", FALSE);
- childSetEnabled("button deed", FALSE);
+ getChild<LLUICtrl>("checkbox share with group")->setValue(FALSE);
+ getChild<LLUICtrl>("checkbox share with group")->setTentative( FALSE);
+ getChildView("button deed")->setEnabled(FALSE);
}
else
{
- childSetValue("checkbox share with group", TRUE);
- childSetTentative("checkbox share with group", TRUE);
- childSetEnabled("button deed", gAgent.hasPowerInGroup(group_id, GP_OBJECT_DEED) && (group_mask_on & PERM_MOVE) && (owner_mask_on & PERM_TRANSFER) && !group_owned && can_transfer);
+ getChild<LLUICtrl>("checkbox share with group")->setValue(TRUE);
+ getChild<LLUICtrl>("checkbox share with group")->setTentative( TRUE);
+ getChildView("button deed")->setEnabled(gAgent.hasPowerInGroup(group_id, GP_OBJECT_DEED) && (group_mask_on & PERM_MOVE) && (owner_mask_on & PERM_TRANSFER) && !group_owned && can_transfer);
}
}
@@ -681,35 +675,35 @@ void LLPanelPermissions::refresh()
// Move
if (everyone_mask_on & PERM_MOVE)
{
- childSetValue("checkbox allow everyone move", TRUE);
- childSetTentative("checkbox allow everyone move", FALSE);
+ getChild<LLUICtrl>("checkbox allow everyone move")->setValue(TRUE);
+ getChild<LLUICtrl>("checkbox allow everyone move")->setTentative( FALSE);
}
else if (everyone_mask_off & PERM_MOVE)
{
- childSetValue("checkbox allow everyone move", FALSE);
- childSetTentative("checkbox allow everyone move", FALSE);
+ getChild<LLUICtrl>("checkbox allow everyone move")->setValue(FALSE);
+ getChild<LLUICtrl>("checkbox allow everyone move")->setTentative( FALSE);
}
else
{
- childSetValue("checkbox allow everyone move", TRUE);
- childSetTentative("checkbox allow everyone move", TRUE);
+ getChild<LLUICtrl>("checkbox allow everyone move")->setValue(TRUE);
+ getChild<LLUICtrl>("checkbox allow everyone move")->setTentative( TRUE);
}
// Copy == everyone can't copy
if (everyone_mask_on & PERM_COPY)
{
- childSetValue("checkbox allow everyone copy", TRUE);
- childSetTentative("checkbox allow everyone copy", !can_copy || !can_transfer);
+ getChild<LLUICtrl>("checkbox allow everyone copy")->setValue(TRUE);
+ getChild<LLUICtrl>("checkbox allow everyone copy")->setTentative( !can_copy || !can_transfer);
}
else if (everyone_mask_off & PERM_COPY)
{
- childSetValue("checkbox allow everyone copy", FALSE);
- childSetTentative("checkbox allow everyone copy", FALSE);
+ getChild<LLUICtrl>("checkbox allow everyone copy")->setValue(FALSE);
+ getChild<LLUICtrl>("checkbox allow everyone copy")->setTentative( FALSE);
}
else
{
- childSetValue("checkbox allow everyone copy", TRUE);
- childSetTentative("checkbox allow everyone copy", TRUE);
+ getChild<LLUICtrl>("checkbox allow everyone copy")->setValue(TRUE);
+ getChild<LLUICtrl>("checkbox allow everyone copy")->setTentative( TRUE);
}
}
@@ -718,52 +712,52 @@ void LLPanelPermissions::refresh()
// Modify == next owner canot modify
if (next_owner_mask_on & PERM_MODIFY)
{
- childSetValue("checkbox next owner can modify", TRUE);
- childSetTentative("checkbox next owner can modify", FALSE);
+ getChild<LLUICtrl>("checkbox next owner can modify")->setValue(TRUE);
+ getChild<LLUICtrl>("checkbox next owner can modify")->setTentative( FALSE);
}
else if (next_owner_mask_off & PERM_MODIFY)
{
- childSetValue("checkbox next owner can modify", FALSE);
- childSetTentative("checkbox next owner can modify", FALSE);
+ getChild<LLUICtrl>("checkbox next owner can modify")->setValue(FALSE);
+ getChild<LLUICtrl>("checkbox next owner can modify")->setTentative( FALSE);
}
else
{
- childSetValue("checkbox next owner can modify", TRUE);
- childSetTentative("checkbox next owner can modify", TRUE);
+ getChild<LLUICtrl>("checkbox next owner can modify")->setValue(TRUE);
+ getChild<LLUICtrl>("checkbox next owner can modify")->setTentative( TRUE);
}
// Copy == next owner cannot copy
if (next_owner_mask_on & PERM_COPY)
{
- childSetValue("checkbox next owner can copy", TRUE);
- childSetTentative("checkbox next owner can copy", !can_copy);
+ getChild<LLUICtrl>("checkbox next owner can copy")->setValue(TRUE);
+ getChild<LLUICtrl>("checkbox next owner can copy")->setTentative( !can_copy);
}
else if (next_owner_mask_off & PERM_COPY)
{
- childSetValue("checkbox next owner can copy", FALSE);
- childSetTentative("checkbox next owner can copy", FALSE);
+ getChild<LLUICtrl>("checkbox next owner can copy")->setValue(FALSE);
+ getChild<LLUICtrl>("checkbox next owner can copy")->setTentative( FALSE);
}
else
{
- childSetValue("checkbox next owner can copy", TRUE);
- childSetTentative("checkbox next owner can copy", TRUE);
+ getChild<LLUICtrl>("checkbox next owner can copy")->setValue(TRUE);
+ getChild<LLUICtrl>("checkbox next owner can copy")->setTentative( TRUE);
}
// Transfer == next owner cannot transfer
if (next_owner_mask_on & PERM_TRANSFER)
{
- childSetValue("checkbox next owner can transfer", TRUE);
- childSetTentative("checkbox next owner can transfer", !can_transfer);
+ getChild<LLUICtrl>("checkbox next owner can transfer")->setValue(TRUE);
+ getChild<LLUICtrl>("checkbox next owner can transfer")->setTentative( !can_transfer);
}
else if (next_owner_mask_off & PERM_TRANSFER)
{
- childSetValue("checkbox next owner can transfer", FALSE);
- childSetTentative("checkbox next owner can transfer", FALSE);
+ getChild<LLUICtrl>("checkbox next owner can transfer")->setValue(FALSE);
+ getChild<LLUICtrl>("checkbox next owner can transfer")->setTentative( FALSE);
}
else
{
- childSetValue("checkbox next owner can transfer", TRUE);
- childSetTentative("checkbox next owner can transfer", TRUE);
+ getChild<LLUICtrl>("checkbox next owner can transfer")->setValue(TRUE);
+ getChild<LLUICtrl>("checkbox next owner can transfer")->setTentative( TRUE);
}
}
@@ -785,7 +779,7 @@ void LLPanelPermissions::refresh()
combo_sale_type->setTentative( TRUE); // unfortunately this doesn't do anything at the moment.
}
- childSetValue("checkbox for sale", (num_for_sale != 0));
+ getChild<LLUICtrl>("checkbox for sale")->setValue((num_for_sale != 0));
// HACK: There are some old objects in world that are set for sale,
// but are no-transfer. We need to let users turn for-sale off, but only
@@ -795,7 +789,7 @@ void LLPanelPermissions::refresh()
{
if (num_for_sale && has_change_sale_ability)
{
- childSetEnabled("checkbox for sale", true);
+ getChildView("checkbox for sale")->setEnabled(true);
}
}
@@ -803,9 +797,9 @@ void LLPanelPermissions::refresh()
const BOOL all_volume = LLSelectMgr::getInstance()->selectionAllPCode( LL_PCODE_VOLUME );
bool include_in_search;
const BOOL all_include_in_search = LLSelectMgr::getInstance()->selectionGetIncludeInSearch(&include_in_search);
- childSetEnabled("search_check", has_change_sale_ability && all_volume);
- childSetValue("search_check", include_in_search);
- childSetTentative("search_check", !all_include_in_search);
+ getChildView("search_check")->setEnabled(has_change_sale_ability && all_volume);
+ getChild<LLUICtrl>("search_check")->setValue(include_in_search);
+ getChild<LLUICtrl>("search_check")->setTentative( !all_include_in_search);
// Click action (touch, sit, buy)
U8 click_action = 0;
@@ -818,8 +812,8 @@ void LLPanelPermissions::refresh()
combo_click_action->setValue(LLSD(combo_value));
}
}
- childSetEnabled("label click action", is_perm_modify && all_volume);
- childSetEnabled("clickaction", is_perm_modify && all_volume);
+ getChildView("label click action")->setEnabled(is_perm_modify && all_volume);
+ getChildView("clickaction")->setEnabled(is_perm_modify && all_volume);
}
diff --git a/indra/newview/llpanelpermissions.h b/indra/newview/llpanelpermissions.h
index 38d3be532f..87805bbf90 100644
--- a/indra/newview/llpanelpermissions.h
+++ b/indra/newview/llpanelpermissions.h
@@ -2,31 +2,25 @@
* @file llpanelpermissions.h
* @brief LLPanelPermissions class header file
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llpanelpick.cpp b/indra/newview/llpanelpick.cpp
index f0dc493ebe..271728220c 100644
--- a/indra/newview/llpanelpick.cpp
+++ b/indra/newview/llpanelpick.cpp
@@ -2,31 +2,25 @@
* @file llpanelpick.cpp
* @brief LLPanelPick class implementation
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -80,7 +74,7 @@
LLPanelPickInfo* LLPanelPickInfo::create()
{
LLPanelPickInfo* panel = new LLPanelPickInfo();
- LLUICtrlFactory::getInstance()->buildPanel(panel, XML_PANEL_PICK_INFO);
+ panel->buildFromFile(XML_PANEL_PICK_INFO);
return panel;
}
@@ -210,6 +204,9 @@ void LLPanelPickInfo::sendParcelInfoRequest()
{
if (mParcelId != mRequestedId)
{
+ //ext-4655, remove now incase this gets called twice without a remove
+ LLRemoteParcelInfoProcessor::getInstance()->removeObserver(mRequestedId, this);
+
LLRemoteParcelInfoProcessor::getInstance()->addObserver(mParcelId, this);
LLRemoteParcelInfoProcessor::getInstance()->sendParcelInfoRequest(mParcelId);
@@ -247,13 +244,13 @@ void LLPanelPickInfo::resetControls()
{
if(getAvatarId() == gAgent.getID())
{
- childSetEnabled("edit_btn", TRUE);
- childSetVisible("edit_btn", TRUE);
+ getChildView("edit_btn")->setEnabled(TRUE);
+ getChildView("edit_btn")->setVisible( TRUE);
}
else
{
- childSetEnabled("edit_btn", FALSE);
- childSetVisible("edit_btn", FALSE);
+ getChildView("edit_btn")->setEnabled(FALSE);
+ getChildView("edit_btn")->setVisible( FALSE);
}
}
@@ -306,17 +303,17 @@ void LLPanelPickInfo::setSnapshotId(const LLUUID& id)
void LLPanelPickInfo::setPickName(const std::string& name)
{
- childSetValue(XML_NAME, name);
+ getChild<LLUICtrl>(XML_NAME)->setValue(name);
}
void LLPanelPickInfo::setPickDesc(const std::string& desc)
{
- childSetValue(XML_DESC, desc);
+ getChild<LLUICtrl>(XML_DESC)->setValue(desc);
}
void LLPanelPickInfo::setPickLocation(const std::string& location)
{
- childSetValue(XML_LOCATION, location);
+ getChild<LLUICtrl>(XML_LOCATION)->setValue(location);
}
void LLPanelPickInfo::onClickMap()
@@ -347,7 +344,7 @@ void LLPanelPickInfo::onClickBack()
LLPanelPickEdit* LLPanelPickEdit::create()
{
LLPanelPickEdit* panel = new LLPanelPickEdit();
- LLUICtrlFactory::getInstance()->buildPanel(panel, XML_PANEL_EDIT_PICK);
+ panel->buildFromFile(XML_PANEL_EDIT_PICK);
return panel;
}
@@ -399,8 +396,8 @@ void LLPanelPickEdit::onOpen(const LLSD& key)
}
setParcelID(parcel_id);
- childSetValue("pick_name", pick_name.empty() ? region_name : pick_name);
- childSetValue("pick_desc", pick_desc);
+ getChild<LLUICtrl>("pick_name")->setValue(pick_name.empty() ? region_name : pick_name);
+ getChild<LLUICtrl>("pick_desc")->setValue(pick_desc);
setSnapshotId(snapshot_id);
setPickLocation(createLocationText(getLocationNotice(), pick_name, region_name, getPosGlobal()));
@@ -428,8 +425,8 @@ void LLPanelPickEdit::setPickData(const LLPickData* pick_data)
mNeedData = false;
setParcelID(pick_data->parcel_id);
- childSetValue("pick_name", pick_data->name);
- childSetValue("pick_desc", pick_data->desc);
+ getChild<LLUICtrl>("pick_name")->setValue(pick_data->name);
+ getChild<LLUICtrl>("pick_desc")->setValue(pick_data->desc);
setSnapshotId(pick_data->snapshot_id);
setPosGlobal(pick_data->pos_global);
setPickLocation(createLocationText(LLStringUtil::null, pick_data->name,
@@ -511,8 +508,8 @@ void LLPanelPickEdit::sendUpdate()
//legacy var need to be deleted
pick_data.top_pick = FALSE;
pick_data.parcel_id = mParcelId;
- pick_data.name = childGetValue(XML_NAME).asString();
- pick_data.desc = childGetValue(XML_DESC).asString();
+ pick_data.name = getChild<LLUICtrl>(XML_NAME)->getValue().asString();
+ pick_data.desc = getChild<LLUICtrl>(XML_DESC)->getValue().asString();
pick_data.snapshot_id = mSnapshotCtrl->getImageAssetID();
pick_data.pos_global = getPosGlobal();
pick_data.sort_order = 0;
@@ -547,7 +544,7 @@ void LLPanelPickEdit::resetData()
void LLPanelPickEdit::enableSaveButton(bool enable)
{
- childSetEnabled(XML_BTN_SAVE, enable);
+ getChildView(XML_BTN_SAVE)->setEnabled(enable);
}
void LLPanelPickEdit::onClickSetLocation()
diff --git a/indra/newview/llpanelpick.h b/indra/newview/llpanelpick.h
index 94ee2f83ab..3c1f14759c 100644
--- a/indra/newview/llpanelpick.h
+++ b/indra/newview/llpanelpick.h
@@ -2,31 +2,25 @@
* @file llpanelpick.h
* @brief LLPanelPick class definition
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llpanelpicks.cpp b/indra/newview/llpanelpicks.cpp
index bde8d02885..27787ac211 100644
--- a/indra/newview/llpanelpicks.cpp
+++ b/indra/newview/llpanelpicks.cpp
@@ -2,31 +2,25 @@
* @file llpanelpicks.cpp
* @brief LLPanelPicks and related class implementations
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -218,7 +212,7 @@ void LLPanelPicks::updateData()
mNoPicks = false;
mNoClassifieds = false;
- childSetValue("picks_panel_text", LLTrans::getString("PicksClassifiedsLoadingText"));
+ getChild<LLUICtrl>("picks_panel_text")->setValue(LLTrans::getString("PicksClassifiedsLoadingText"));
mPicksList->clear();
LLAvatarPropertiesProcessor::getInstance()->sendAvatarPicksRequest(getAvatarId());
@@ -237,7 +231,7 @@ void LLPanelPicks::processProperties(void* data, EAvatarProcessorType type)
{
std::string name, second_name;
gCacheName->getName(getAvatarId(),name,second_name);
- childSetTextArg("pick_title", "[NAME]",name);
+ getChild<LLUICtrl>("pick_title")->setTextArg("[NAME]", name);
// Save selection, to be able to edit same item after saving changes. See EXT-3023.
LLUUID selected_id = mPicksList->getSelectedValue()[PICK_ID];
@@ -324,11 +318,11 @@ void LLPanelPicks::processProperties(void* data, EAvatarProcessorType type)
{
if(getAvatarId() == gAgentID)
{
- childSetValue("picks_panel_text", LLTrans::getString("NoPicksClassifiedsText"));
+ getChild<LLUICtrl>("picks_panel_text")->setValue(LLTrans::getString("NoPicksClassifiedsText"));
}
else
{
- childSetValue("picks_panel_text", LLTrans::getString("NoAvatarPicksClassifiedsText"));
+ getChild<LLUICtrl>("picks_panel_text")->setValue(LLTrans::getString("NoAvatarPicksClassifiedsText"));
}
}
}
@@ -460,22 +454,22 @@ void LLPanelPicks::onOpen(const LLSD& key)
BOOL self = (gAgent.getID() == id);
// only agent can edit her picks
- childSetEnabled("edit_panel", self);
- childSetVisible("edit_panel", self);
+ getChildView("edit_panel")->setEnabled(self);
+ getChildView("edit_panel")->setVisible( self);
// Disable buttons when viewing profile for first time
if(getAvatarId() != id)
{
- childSetEnabled(XML_BTN_INFO,FALSE);
- childSetEnabled(XML_BTN_TELEPORT,FALSE);
- childSetEnabled(XML_BTN_SHOW_ON_MAP,FALSE);
+ getChildView(XML_BTN_INFO)->setEnabled(FALSE);
+ getChildView(XML_BTN_TELEPORT)->setEnabled(FALSE);
+ getChildView(XML_BTN_SHOW_ON_MAP)->setEnabled(FALSE);
}
// and see a special title - set as invisible by default in xml file
if (self)
{
- childSetVisible("pick_title", !self);
- childSetVisible("pick_title_agent", self);
+ getChildView("pick_title")->setVisible( !self);
+ getChildView("pick_title_agent")->setVisible( self);
mPopupMenu->setItemVisible("pick_delete", TRUE);
mPopupMenu->setItemVisible("pick_edit", TRUE);
@@ -670,17 +664,17 @@ void LLPanelPicks::updateButtons()
if (getAvatarId() == gAgentID)
{
- childSetEnabled(XML_BTN_DELETE, has_selected);
+ getChildView(XML_BTN_DELETE)->setEnabled(has_selected);
}
- childSetEnabled(XML_BTN_INFO, has_selected);
- childSetEnabled(XML_BTN_TELEPORT, has_selected);
- childSetEnabled(XML_BTN_SHOW_ON_MAP, has_selected);
+ getChildView(XML_BTN_INFO)->setEnabled(has_selected);
+ getChildView(XML_BTN_TELEPORT)->setEnabled(has_selected);
+ getChildView(XML_BTN_SHOW_ON_MAP)->setEnabled(has_selected);
LLClassifiedItem* c_item = dynamic_cast<LLClassifiedItem*>(mClassifiedsList->getSelectedItem());
if(c_item)
{
- childSetEnabled(XML_BTN_INFO, isClassifiedPublished(c_item));
+ getChildView(XML_BTN_INFO)->setEnabled(isClassifiedPublished(c_item));
}
}
@@ -701,8 +695,7 @@ void LLPanelPicks::buildPickPanel()
void LLPanelPicks::onClickPlusBtn()
{
- LLRect rect;
- childGetRect(XML_BTN_NEW, rect);
+ LLRect rect(getChildView(XML_BTN_NEW)->getRect());
mPlusMenu->updateParent(LLMenuGL::sMenuContainer);
mPlusMenu->setButtonRect(rect, this);
@@ -1046,7 +1039,7 @@ LLPickItem::LLPickItem()
, mSnapshotID(LLUUID::null)
, mNeedData(true)
{
- LLUICtrlFactory::getInstance()->buildPanel(this,"panel_pick_list_item.xml");
+ buildFromFile("panel_pick_list_item.xml");
}
LLPickItem::~LLPickItem()
@@ -1080,7 +1073,7 @@ void LLPickItem::init(LLPickData* pick_data)
void LLPickItem::setPickName(const std::string& name)
{
mPickName = name;
- childSetValue("picture_name",name);
+ getChild<LLUICtrl>("picture_name")->setValue(name);
}
@@ -1101,7 +1094,7 @@ const LLUUID& LLPickItem::getSnapshotId()
void LLPickItem::setPickDesc(const std::string& descr)
{
- childSetValue("picture_descr",descr);
+ getChild<LLUICtrl>("picture_descr")->setValue(descr);
}
void LLPickItem::setPickId(const LLUUID& id)
@@ -1121,7 +1114,7 @@ const LLVector3d& LLPickItem::getPosGlobal()
const std::string LLPickItem::getDescription()
{
- return childGetValue("picture_descr").asString();
+ return getChild<LLUICtrl>("picture_descr")->getValue().asString();
}
void LLPickItem::update()
@@ -1148,10 +1141,15 @@ void LLPickItem::processProperties(void *data, EAvatarProcessorType type)
LLAvatarPropertiesProcessor::instance().removeObserver(mCreatorID, this);
}
+void set_child_visible(LLView* parent, const std::string& child_name, bool visible)
+{
+ parent->getChildView(child_name)->setVisible(visible);
+}
+
BOOL LLPickItem::postBuild()
{
- setMouseEnterCallback(boost::bind(&LLPanelPickInfo::childSetVisible, this, "hovered_icon", true));
- setMouseLeaveCallback(boost::bind(&LLPanelPickInfo::childSetVisible, this, "hovered_icon", false));
+ setMouseEnterCallback(boost::bind(&set_child_visible, this, "hovered_icon", true));
+ setMouseLeaveCallback(boost::bind(&set_child_visible, this, "hovered_icon", false));
return TRUE;
}
@@ -1159,7 +1157,7 @@ void LLPickItem::setValue(const LLSD& value)
{
if (!value.isMap()) return;;
if (!value.has("selected")) return;
- childSetVisible("selected_icon", value["selected"]);
+ getChildView("selected_icon")->setVisible( value["selected"]);
}
//////////////////////////////////////////////////////////////////////////
@@ -1171,7 +1169,7 @@ LLClassifiedItem::LLClassifiedItem(const LLUUID& avatar_id, const LLUUID& classi
, mAvatarId(avatar_id)
, mClassifiedId(classified_id)
{
- LLUICtrlFactory::getInstance()->buildPanel(this,"panel_classifieds_list_item.xml");
+ buildFromFile("panel_classifieds_list_item.xml");
LLAvatarPropertiesProcessor::getInstance()->addObserver(getAvatarId(), this);
LLAvatarPropertiesProcessor::getInstance()->sendClassifiedInfoRequest(getClassifiedId());
@@ -1205,8 +1203,8 @@ void LLClassifiedItem::processProperties(void* data, EAvatarProcessorType type)
BOOL LLClassifiedItem::postBuild()
{
- setMouseEnterCallback(boost::bind(&LLPanelPickInfo::childSetVisible, this, "hovered_icon", true));
- setMouseLeaveCallback(boost::bind(&LLPanelPickInfo::childSetVisible, this, "hovered_icon", false));
+ setMouseEnterCallback(boost::bind(&set_child_visible, this, "hovered_icon", true));
+ setMouseLeaveCallback(boost::bind(&set_child_visible, this, "hovered_icon", false));
return TRUE;
}
@@ -1214,7 +1212,7 @@ void LLClassifiedItem::setValue(const LLSD& value)
{
if (!value.isMap()) return;;
if (!value.has("selected")) return;
- childSetVisible("selected_icon", value["selected"]);
+ getChildView("selected_icon")->setVisible( value["selected"]);
}
void LLClassifiedItem::fillIn(LLPanelClassifiedEdit* panel)
@@ -1237,22 +1235,22 @@ void LLClassifiedItem::fillIn(LLPanelClassifiedEdit* panel)
void LLClassifiedItem::setClassifiedName(const std::string& name)
{
- childSetValue("name", name);
+ getChild<LLUICtrl>("name")->setValue(name);
}
void LLClassifiedItem::setDescription(const std::string& desc)
{
- childSetValue("description", desc);
+ getChild<LLUICtrl>("description")->setValue(desc);
}
void LLClassifiedItem::setSnapshotId(const LLUUID& snapshot_id)
{
- childSetValue("picture", snapshot_id);
+ getChild<LLUICtrl>("picture")->setValue(snapshot_id);
}
LLUUID LLClassifiedItem::getSnapshotId()
{
- return childGetValue("picture");
+ return getChild<LLUICtrl>("picture")->getValue();
}
//EOF
diff --git a/indra/newview/llpanelpicks.h b/indra/newview/llpanelpicks.h
index a98b8c413e..526ba48dcb 100644
--- a/indra/newview/llpanelpicks.h
+++ b/indra/newview/llpanelpicks.h
@@ -2,31 +2,25 @@
* @file llpanelpicks.h
* @brief LLPanelPicks and related class definitions
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -275,11 +269,11 @@ public:
void setClassifiedName (const std::string& name);
- std::string getClassifiedName() { return childGetValue("name").asString(); }
+ std::string getClassifiedName() { return getChild<LLUICtrl>("name")->getValue().asString(); }
void setDescription(const std::string& desc);
- std::string getDescription() { return childGetValue("description").asString(); }
+ std::string getDescription() { return getChild<LLUICtrl>("description")->getValue().asString(); }
void setSnapshotId(const LLUUID& snapshot_id);
diff --git a/indra/newview/llpanelplace.cpp b/indra/newview/llpanelplace.cpp
deleted file mode 100644
index 6985b73200..0000000000
--- a/indra/newview/llpanelplace.cpp
+++ /dev/null
@@ -1,425 +0,0 @@
-/**
- * @file llpanelplace.cpp
- * @brief Display of a place in the Find directory.
- *
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
- * Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
- * $/LicenseInfo$
- */
-
-#include "llviewerprecompiledheaders.h"
-
-#include "llpanelplace.h"
-
-#include "llviewercontrol.h"
-#include "llqueryflags.h"
-#include "llui.h"
-#include "llsecondlifeurls.h"
-#include "llfloater.h"
-#include "llfloaterreg.h"
-#include "llregionhandle.h"
-
-#include "llagent.h"
-#include "llviewerwindow.h"
-#include "llbutton.h"
-#include "llfloaterworldmap.h"
-#include "lllineeditor.h"
-#include "llnotificationsutil.h"
-#include "lluiconstants.h"
-#include "lltextbox.h"
-#include "lltexteditor.h"
-#include "lltexturectrl.h"
-#include "lltrans.h"
-#include "llworldmap.h"
-#include "llviewerregion.h"
-#include "llvoavatarself.h"
-#include "lluictrlfactory.h"
-//#include "llviewermenu.h" // create_landmark()
-#include "llweb.h"
-#include "llsdutil.h"
-#include "llsdutil_math.h"
-
-LLPanelPlace::LLPanelPlace()
-: LLPanel(),
- mParcelID(),
- mRequestedID(),
- mRegionID(),
- mPosGlobal(),
- mPosRegion(),
- mAuctionID(0),
- mLandmarkAssetID()
-{}
-
-LLPanelPlace::~LLPanelPlace()
-{
- if (mParcelID.notNull())
- {
- LLRemoteParcelInfoProcessor::getInstance()->removeObserver(mParcelID, this);
- }
-}
-
-BOOL LLPanelPlace::postBuild()
-{
- // Since this is only used in the directory browser, always
- // disable the snapshot control. Otherwise clicking on it will
- // open a texture picker.
- mSnapshotCtrl = getChild<LLTextureCtrl>("snapshot_ctrl");
- mSnapshotCtrl->setEnabled(FALSE);
-
- mNameEditor = getChild<LLTextBox>("name_editor");
- // Text boxes appear to have a " " in them by default. This breaks the
- // emptiness test for filling in data from the network. Slam to empty.
- mNameEditor->setText( LLStringUtil::null );
-
- mDescEditor = getChild<LLTextEditor>("desc_editor");
-
- mInfoEditor = getChild<LLTextBox>("info_editor");
- mLandTypeEditor = getChild<LLTextBox>("land_type_display");
-
- mLocationDisplay = getChild<LLTextBox>("location_editor");
-
- mTeleportBtn = getChild<LLButton>( "teleport_btn");
- mTeleportBtn->setClickedCallback(onClickTeleport, this);
-
- mMapBtn = getChild<LLButton>( "map_btn");
- mMapBtn->setClickedCallback(onClickMap, this);
-
- //mLandmarkBtn = getChild<LLButton>( "landmark_btn");
- //mLandmarkBtn->setClickedCallback(onClickLandmark, this);
-
- mAuctionBtn = getChild<LLButton>( "auction_btn");
- mAuctionBtn->setClickedCallback(onClickAuction, this);
-
- // Default to no auction button. We'll show it if we get an auction id
- mAuctionBtn->setVisible(FALSE);
-
- // Temporary text to explain why the description panel is blank.
- // mDescEditor->setText("Parcel information not available without server update");
-
- return TRUE;
-}
-
-void LLPanelPlace::displayItemInfo(const LLInventoryItem* pItem)
-{
- if (pItem)
- {
- mNameEditor->setText(pItem->getName());
- mDescEditor->setText(pItem->getDescription());
- }
-}
-
-// Use this for search directory clicks, because we are totally
-// recycling the panel and don't need to use what's there.
-//
-// For SLURL clicks, don't call this, because we need to cache
-// the location info from the user.
-void LLPanelPlace::resetLocation()
-{
- mParcelID.setNull();
- mRequestedID.setNull();
- mRegionID.setNull();
- mLandmarkAssetID.setNull();
- mPosGlobal.clearVec();
- mPosRegion.clearVec();
- mAuctionID = 0;
- mNameEditor->setText( LLStringUtil::null );
- mDescEditor->setText( LLStringUtil::null );
- mInfoEditor->setText( LLStringUtil::null );
- mLandTypeEditor->setText( LLStringUtil::null );
- mLocationDisplay->setText( LLStringUtil::null );
-}
-
-
-// Set the name and clear other bits of info. Used for SLURL clicks
-void LLPanelPlace::resetName(const std::string& name)
-{
- setName(name);
- if(mDescEditor)
- {
- mDescEditor->setText( LLStringUtil::null );
- }
- if(mNameEditor)
- {
- llinfos << "Clearing place name" << llendl;
- mNameEditor->setText( LLStringUtil::null );
- }
- if(mInfoEditor)
- {
- mInfoEditor->setText( LLStringUtil::null );
- }
- if(mLandTypeEditor)
- {
- mLandTypeEditor->setText( LLStringUtil::null );
- }
-}
-
-//virtual
-void LLPanelPlace::setParcelID(const LLUUID& parcel_id)
-{
- mParcelID = parcel_id;
- sendParcelInfoRequest();
-}
-
-void LLPanelPlace::setSnapshot(const LLUUID& snapshot_id)
-{
- mSnapshotCtrl->setImageAssetID(snapshot_id);
-}
-
-void LLPanelPlace::setLocationString(const std::string& location)
-{
- mLocationDisplay->setText(location);
-}
-
-void LLPanelPlace::setLandTypeString(const std::string& land_type)
-{
- mLandTypeEditor->setText(land_type);
-}
-
-void LLPanelPlace::sendParcelInfoRequest()
-{
- if (mParcelID != mRequestedID)
- {
- LLRemoteParcelInfoProcessor::getInstance()->addObserver(mParcelID, this);
- LLRemoteParcelInfoProcessor::getInstance()->sendParcelInfoRequest(mParcelID);
-
- mRequestedID = mParcelID;
- }
-}
-
-//virtual
-void LLPanelPlace::setErrorStatus(U32 status, const std::string& reason)
-{
- // We only really handle 404 and 499 errors
- std::string error_text;
- if(status == 404)
- {
- error_text = getString("server_error_text");
- }
- else if(status == 499)
- {
- error_text = getString("server_forbidden_text");
- }
- mDescEditor->setText(error_text);
-}
-
-//virtual
-void LLPanelPlace::processParcelInfo(const LLParcelData& parcel_data)
-{
- mAuctionID = parcel_data.auction_id;
-
- if(parcel_data.snapshot_id.notNull())
- {
- mSnapshotCtrl->setImageAssetID(parcel_data.snapshot_id);
- }
-
- if( !parcel_data.name.empty()
- && mNameEditor && mNameEditor->getText().empty())
- {
- mNameEditor->setText(parcel_data.name);
- }
-
- if( !parcel_data.desc.empty()
- && mDescEditor && mDescEditor->getText().empty())
- {
- mDescEditor->setText(parcel_data.desc);
- }
-
- std::string info_text;
- LLUIString traffic = getString("traffic_text");
- traffic.setArg("[TRAFFIC]", llformat("%d ", (int)parcel_data.dwell));
- info_text = traffic;
- LLUIString area = getString("area_text");
- area.setArg("[AREA]", llformat("%d", parcel_data.actual_area));
- info_text += area;
- if (parcel_data.flags & DFQ_FOR_SALE)
- {
- LLUIString forsale = getString("forsale_text");
- forsale.setArg("[PRICE]", llformat("%d", parcel_data.sale_price));
- info_text += forsale;
- }
- if (parcel_data.auction_id != 0)
- {
- LLUIString auction = getString("auction_text");
- auction.setArg("[ID]", llformat("%010d ", parcel_data.auction_id));
- info_text += auction;
- }
- if (mInfoEditor)
- {
- mInfoEditor->setText(info_text);
- }
-
- // HACK: Flag 0x2 == adult region,
- // Flag 0x1 == mature region, otherwise assume PG
- std::string rating = LLViewerRegion::accessToString(SIM_ACCESS_PG);
- if (parcel_data.flags & 0x2)
- {
- rating = LLViewerRegion::accessToString(SIM_ACCESS_ADULT);
- }
- else if (parcel_data.flags & 0x1)
- {
- rating = LLViewerRegion::accessToString(SIM_ACCESS_MATURE);
- }
-
- // Just use given region position for display
- S32 region_x = llround(mPosRegion.mV[0]);
- S32 region_y = llround(mPosRegion.mV[1]);
- S32 region_z = llround(mPosRegion.mV[2]);
-
- // 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);
- }
-
- if(mPosGlobal.isExactlyZero())
- {
- mPosGlobal.setVec(parcel_data.global_x, parcel_data.global_y, parcel_data.global_z);
- }
-
- std::string location = llformat("%s %d, %d, %d (%s)",
- parcel_data.sim_name.c_str(), region_x, region_y, region_z, rating.c_str());
- if (mLocationDisplay)
- {
- mLocationDisplay->setText(location);
- }
-
- BOOL show_auction = (parcel_data.auction_id > 0);
- mAuctionBtn->setVisible(show_auction);
-}
-
-
-void LLPanelPlace::displayParcelInfo(const LLVector3& pos_region,
- const LLUUID& landmark_asset_id,
- const LLUUID& region_id,
- const LLVector3d& pos_global)
-{
- LLSD body;
- mPosRegion = pos_region;
- mPosGlobal = pos_global;
- mLandmarkAssetID = landmark_asset_id;
- std::string url = gAgent.getRegion()->getCapability("RemoteParcelRequest");
- if (!url.empty())
- {
- body["location"] = ll_sd_from_vector3(pos_region);
- if (!region_id.isNull())
- {
- body["region_id"] = region_id;
- }
- if (!pos_global.isExactlyZero())
- {
- U64 region_handle = to_region_handle(pos_global);
- body["region_handle"] = ll_sd_from_U64(region_handle);
- }
- LLHTTPClient::post(url, body, new LLRemoteParcelRequestResponder(getObserverHandle()));
- }
- else
- {
- mDescEditor->setText(getString("server_update_text"));
- }
- mSnapshotCtrl->setImageAssetID(LLUUID::null);
- mSnapshotCtrl->setFallbackImageName("default_land_picture.j2c");
-}
-
-// static
-void LLPanelPlace::onClickTeleport(void* data)
-{
- LLPanelPlace* self = (LLPanelPlace*)data;
-
- LLView* parent_viewp = self->getParent();
- LLFloater* parent_floaterp = dynamic_cast<LLFloater*>(parent_viewp);
- if (parent_floaterp)
- {
- parent_floaterp->closeFloater();
- }
- // LLFloater* parent_floaterp = (LLFloater*)self->getParent();
- parent_viewp->setVisible(false);
- LLFloaterWorldMap* worldmap_instance = LLFloaterWorldMap::getInstance();
- if(self->mLandmarkAssetID.notNull() && worldmap_instance)
- {
- gAgent.teleportViaLandmark(self->mLandmarkAssetID);
- worldmap_instance->trackLandmark(self->mLandmarkAssetID);
-
- }
- else if (!self->mPosGlobal.isExactlyZero() && worldmap_instance)
- {
- gAgent.teleportViaLocation(self->mPosGlobal);
- worldmap_instance->trackLocation(self->mPosGlobal);
- }
-}
-
-// static
-void LLPanelPlace::onClickMap(void* data)
-{
- LLPanelPlace* self = (LLPanelPlace*)data;
- LLFloaterWorldMap* worldmap_instance = LLFloaterWorldMap::getInstance();
-
- if (!self->mPosGlobal.isExactlyZero() && worldmap_instance)
- {
- worldmap_instance->trackLocation(self->mPosGlobal);
- LLFloaterReg::showInstance("world_map", "center");
- }
-}
-
-// static
-/*
-void LLPanelPlace::onClickLandmark(void* data)
-{
- LLPanelPlace* self = (LLPanelPlace*)data;
-
- create_landmark(self->mNameEditor->getText(), "", self->mPosGlobal);
-}
-*/
-
-
-// static
-void LLPanelPlace::onClickAuction(void* data)
-{
- LLPanelPlace* self = (LLPanelPlace*)data;
- LLSD args;
- args["AUCTION_ID"] = self->mAuctionID;
-
- LLNotificationsUtil::add("GoToAuctionPage", args);
-}
-/*
-// static
-bool LLPanelPlace::callbackAuctionWebPage(const LLSD& notification, const LLSD& response)
-{
- S32 option = LLNotificationsUtil::getSelectedOption(notification, response);
- if (0 == option)
- {
- std::string url;
- url = LLNotifications::instance().getGlobalString("AUCTION_URL") + llformat("%010d", response["auction_id"].asInteger());
-
- llinfos << "Loading auction page " << url << llendl;
-
- LLWeb::loadURL(url);
- }
- return false;
-}
-*/
-
diff --git a/indra/newview/llpanelplace.h b/indra/newview/llpanelplace.h
deleted file mode 100644
index f90a1b0567..0000000000
--- a/indra/newview/llpanelplace.h
+++ /dev/null
@@ -1,120 +0,0 @@
-/**
- * @file llpanelplace.h
- * @brief Display of a place in the Find directory.
- *
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
- * Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
- * $/LicenseInfo$
- */
-
-#ifndef LL_LLPANELPLACE_H
-#define LL_LLPANELPLACE_H
-
-#include "llpanel.h"
-
-#include "v3dmath.h"
-#include "lluuid.h"
-
-#include "llremoteparcelrequest.h"
-
-class LLButton;
-class LLTextBox;
-class LLLineEditor;
-class LLTextEditor;
-class LLTextureCtrl;
-class LLMessageSystem;
-class LLInventoryItem;
-
-class LLPanelPlace : public LLPanel, LLRemoteParcelInfoObserver
-{
-public:
- LLPanelPlace();
- /*virtual*/ ~LLPanelPlace();
-
- /*virtual*/ BOOL postBuild();
-
- void resetLocation();
- // Ignore all old location information, useful if you are
- // recycling an existing dialog and need to clear it.
-
- /*virtual*/ void setParcelID(const LLUUID& parcel_id);
- // Sends a request for data about the given parcel, which will
- // only update the location if there is none already available.
-
- void displayItemInfo(const LLInventoryItem* pItem);
- void setRegionID(const LLUUID& region_id) { mRegionID = region_id; }
- void setSnapshot(const LLUUID& snapshot_id);
- void setLocationString(const std::string& location);
- void setLandTypeString(const std::string& land_type);
- /*virtual*/ void setErrorStatus(U32 status, const std::string& reason);
- void resetName(const std::string& name);
-
- void sendParcelInfoRequest();
- void displayParcelInfo(const LLVector3& pos_region,
- const LLUUID& landmark_asset_id,
- const LLUUID& region_id,
- const LLVector3d& pos_global);
- /*virtual*/ void processParcelInfo(const LLParcelData& parcel_data);
-
- LLTextureCtrl *getSnapshotCtrl() const { return mSnapshotCtrl; }
-
-protected:
- static void onClickTeleport(void* data);
- static void onClickMap(void* data);
- //static void onClickLandmark(void* data);
- static void onClickAuction(void* data);
-
- // Go to auction web page if user clicked OK
- static bool callbackAuctionWebPage(const LLSD& notification, const LLSD& response);
-
-protected:
- LLUUID mParcelID;
- LLUUID mRequestedID;
- LLUUID mRegionID;
- LLUUID mLandmarkAssetID;
- // Absolute position of the location for teleport, may not
- // be available (hence zero)
- LLVector3d mPosGlobal;
- // Region-local position for teleport, always available.
- LLVector3 mPosRegion;
- // Zero if this is not an auction
- S32 mAuctionID;
-
- LLTextureCtrl* mSnapshotCtrl;
-
- LLTextBox* mNameEditor;
- LLTextEditor* mDescEditor;
- LLTextBox* mInfoEditor;
- LLTextBox* mLandTypeEditor;
- LLTextBox* mLocationDisplay; //not calling it "editor" because it isn't
-
- LLButton* mTeleportBtn;
- LLButton* mMapBtn;
- //LLButton* mLandmarkBtn;
- LLButton* mAuctionBtn;
-};
-
-#endif // LL_LLPANELPLACE_H
diff --git a/indra/newview/llpanelplaceinfo.cpp b/indra/newview/llpanelplaceinfo.cpp
index f6133d4446..bbaffda2f2 100644
--- a/indra/newview/llpanelplaceinfo.cpp
+++ b/indra/newview/llpanelplaceinfo.cpp
@@ -2,31 +2,25 @@
* @file llpanelplaceinfo.cpp
* @brief Base class for place information in Side Tray.
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -60,7 +54,8 @@ LLPanelPlaceInfo::LLPanelPlaceInfo()
mScrollingPanelWidth(0),
mInfoType(UNKNOWN),
mScrollingPanel(NULL),
- mScrollContainer(NULL)
+ mScrollContainer(NULL),
+ mDescEditor(NULL)
{}
//virtual
@@ -103,14 +98,13 @@ void LLPanelPlaceInfo::resetLocation()
mPosRegion.clearVec();
std::string loading = LLTrans::getString("LoadingData");
- mMaturityRatingIcon->setValue(loading);
mMaturityRatingText->setValue(loading);
mRegionName->setText(loading);
mParcelName->setText(loading);
mDescEditor->setText(loading);
+ mMaturityRatingIcon->setValue(LLUUID::null);
mSnapshotCtrl->setImageAssetID(LLUUID::null);
- mSnapshotCtrl->setFallbackImageName("default_land_picture.j2c");
}
//virtual
@@ -124,6 +118,7 @@ void LLPanelPlaceInfo::setParcelID(const LLUUID& parcel_id)
void LLPanelPlaceInfo::setInfoType(EInfoType type)
{
mTitle->setText(mCurrentTitle);
+ mTitle->setToolTip(mCurrentTitle);
mInfoType = type;
}
@@ -132,6 +127,10 @@ void LLPanelPlaceInfo::sendParcelInfoRequest()
{
if (mParcelID != mRequestedID)
{
+ //ext-4655, defensive. remove now incase this gets called twice without a remove
+ //as panel never closes its ok atm (but wrong :)
+ LLRemoteParcelInfoProcessor::getInstance()->removeObserver(mRequestedID, this);
+
LLRemoteParcelInfoProcessor::getInstance()->addObserver(mParcelID, this);
LLRemoteParcelInfoProcessor::getInstance()->sendParcelInfoRequest(mParcelID);
@@ -185,7 +184,21 @@ void LLPanelPlaceInfo::setErrorStatus(U32 status, const std::string& reason)
{
error_text = getString("server_forbidden_text");
}
+ else
+ {
+ error_text = getString("server_error_text");
+ }
+
mDescEditor->setText(error_text);
+
+ std::string not_available = getString("not_available");
+ mMaturityRatingText->setValue(not_available);
+ mRegionName->setText(not_available);
+ mParcelName->setText(not_available);
+ mMaturityRatingIcon->setValue(LLUUID::null);
+
+ // Enable "Back" button that was disabled when parcel request was sent.
+ getChild<LLButton>("back_btn")->setEnabled(TRUE);
}
// virtual
@@ -248,6 +261,16 @@ void LLPanelPlaceInfo::processParcelInfo(const LLParcelData& parcel_data)
// virtual
void LLPanelPlaceInfo::reshape(S32 width, S32 height, BOOL called_from_parent)
{
+
+ // This if was added to force collapsing description textbox on Windows at the beginning of reshape
+ // (the only case when reshape is skipped here is when it's caused by this textbox, so called_from_parent is FALSE)
+ // This way it is consistent with Linux where topLost collapses textbox at the beginning of reshape.
+ // On windows it collapsed only after reshape which caused EXT-8342.
+ if(called_from_parent)
+ {
+ if(mDescEditor) mDescEditor->onTopLost();
+ }
+
LLPanel::reshape(width, height, called_from_parent);
if (!mScrollContainer || !mScrollingPanel)
diff --git a/indra/newview/llpanelplaceinfo.h b/indra/newview/llpanelplaceinfo.h
index deedbd2b0f..1e0975a898 100644
--- a/indra/newview/llpanelplaceinfo.h
+++ b/indra/newview/llpanelplaceinfo.h
@@ -2,31 +2,25 @@
* @file llpanelplaceinfo.h
* @brief Base class for place information in Side Tray.
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llpanelplaceprofile.cpp b/indra/newview/llpanelplaceprofile.cpp
index 1f979b0ef1..801db1e741 100644
--- a/indra/newview/llpanelplaceprofile.cpp
+++ b/indra/newview/llpanelplaceprofile.cpp
@@ -2,31 +2,25 @@
* @file llpanelplaceprofile.cpp
* @brief Displays place profile in Side Tray.
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -79,7 +73,8 @@ LLPanelPlaceProfile::LLPanelPlaceProfile()
: LLPanelPlaceInfo(),
mForSalePanel(NULL),
mYouAreHerePanel(NULL),
- mSelectedParcelID(-1)
+ mSelectedParcelID(-1),
+ mAccordionCtrl(NULL)
{}
// virtual
@@ -139,6 +134,7 @@ BOOL LLPanelPlaceProfile::postBuild()
mSubdivideText = getChild<LLTextEditor>("subdivide");
mResaleText = getChild<LLTextEditor>("resale");
mSaleToText = getChild<LLTextBox>("sale_to");
+ mAccordionCtrl = getChild<LLAccordionCtrl>("advanced_info_accordion");
icon_pg = getString("icon_PG");
icon_m = getString("icon_M");
@@ -234,6 +230,11 @@ void LLPanelPlaceProfile::setInfoType(EInfoType type)
break;
}
+ if (mAccordionCtrl != NULL)
+ {
+ mAccordionCtrl->expandDefaultTab();
+ }
+
LLPanelPlaceInfo::setInfoType(type);
}
diff --git a/indra/newview/llpanelplaceprofile.h b/indra/newview/llpanelplaceprofile.h
index e77b441567..f28b3b3832 100644
--- a/indra/newview/llpanelplaceprofile.h
+++ b/indra/newview/llpanelplaceprofile.h
@@ -2,31 +2,25 @@
* @file llpanelplaceprofile.h
* @brief Displays place profile in Side Tray.
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -35,6 +29,7 @@
#include "llpanelplaceinfo.h"
+class LLAccordionCtrl;
class LLIconCtrl;
class LLTextEditor;
@@ -118,6 +113,7 @@ private:
LLTextEditor* mSubdivideText;
LLTextEditor* mResaleText;
LLTextBox* mSaleToText;
+ LLAccordionCtrl* mAccordionCtrl;
};
#endif // LL_LLPANELPLACEPROFILE_H
diff --git a/indra/newview/llpanelplaces.cpp b/indra/newview/llpanelplaces.cpp
index 705b196ef1..f0e60386b6 100644
--- a/indra/newview/llpanelplaces.cpp
+++ b/indra/newview/llpanelplaces.cpp
@@ -2,30 +2,25 @@
* @file llpanelplaces.cpp
* @brief Side Bar "Places" panel
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -42,6 +37,7 @@
#include "llcombobox.h"
#include "llfiltereditor.h"
+#include "llfirstuse.h"
#include "llfloaterreg.h"
#include "llnotificationsutil.h"
#include "lltabcontainer.h"
@@ -54,6 +50,7 @@
#include "llagent.h"
#include "llagentpicksinfo.h"
#include "llavatarpropertiesprocessor.h"
+#include "llcommandhandler.h"
#include "llfloaterworldmap.h"
#include "llinventorybridge.h"
#include "llinventoryobserver.h"
@@ -66,6 +63,7 @@
#include "llpanelplaceprofile.h"
#include "llpanelteleporthistory.h"
#include "llremoteparcelrequest.h"
+#include "llsidetray.h"
#include "llteleporthistorystorage.h"
#include "lltoggleablemenu.h"
#include "llviewerinventory.h"
@@ -75,6 +73,7 @@
#include "llviewerregion.h"
#include "llviewerwindow.h"
+// Constants
static const S32 LANDMARK_FOLDERS_MENU_WIDTH = 250;
static const F32 PLACE_INFO_UPDATE_INTERVAL = 3.0;
static const std::string AGENT_INFO_TYPE = "agent";
@@ -83,6 +82,40 @@ static const std::string LANDMARK_INFO_TYPE = "landmark";
static const std::string REMOTE_PLACE_INFO_TYPE = "remote_place";
static const std::string TELEPORT_HISTORY_INFO_TYPE = "teleport_history";
+// Support for secondlife:///app/parcel/{UUID}/about SLapps
+class LLParcelHandler : public LLCommandHandler
+{
+public:
+ // requires trusted browser to trigger
+ LLParcelHandler() : LLCommandHandler("parcel", UNTRUSTED_THROTTLE) { }
+ bool handle(const LLSD& params, const LLSD& query_map,
+ LLMediaCtrl* web)
+ {
+ if (params.size() < 2)
+ {
+ return false;
+ }
+ LLUUID parcel_id;
+ if (!parcel_id.set(params[0], FALSE))
+ {
+ return false;
+ }
+ if (params[1].asString() == "about")
+ {
+ if (parcel_id.notNull())
+ {
+ LLSD key;
+ key["type"] = "remote_place";
+ key["id"] = parcel_id;
+ LLSideTray::getInstance()->showPanel("panel_places", key);
+ return true;
+ }
+ }
+ return false;
+ }
+};
+LLParcelHandler gParcelHandler;
+
// Helper functions
static bool is_agent_in_selected_parcel(LLParcel* parcel);
static void onSLURLBuilt(std::string& slurl);
@@ -214,7 +247,7 @@ LLPanelPlaces::LLPanelPlaces()
LLViewerParcelMgr::getInstance()->addAgentParcelChangedCallback(
boost::bind(&LLPanelPlaces::updateVerbs, this));
- //LLUICtrlFactory::getInstance()->buildPanel(this, "panel_places.xml"); // Called from LLRegisterPanelClass::defaultPanelClassBuilder()
+ //buildFromFile( "panel_places.xml"); // Called from LLRegisterPanelClass::defaultPanelClassBuilder()
}
LLPanelPlaces::~LLPanelPlaces()
@@ -289,8 +322,8 @@ BOOL LLPanelPlaces::postBuild()
mFilterEditor->setCommitCallback(boost::bind(&LLPanelPlaces::onFilterEdit, this, _2, false));
}
- mPlaceProfile = getChild<LLPanelPlaceProfile>("panel_place_profile");
- mLandmarkInfo = getChild<LLPanelLandmarkInfo>("panel_landmark_info");
+ mPlaceProfile = findChild<LLPanelPlaceProfile>("panel_place_profile");
+ mLandmarkInfo = findChild<LLPanelLandmarkInfo>("panel_landmark_info");
if (!mPlaceProfile || !mLandmarkInfo)
return FALSE;
@@ -314,6 +347,8 @@ BOOL LLPanelPlaces::postBuild()
void LLPanelPlaces::onOpen(const LLSD& key)
{
+ LLFirstUse::notUsingDestinationGuide(false);
+
if (!mPlaceProfile || !mLandmarkInfo)
return;
@@ -718,8 +753,8 @@ void LLPanelPlaces::onOverflowButtonClicked()
bool is_agent_place_info_visible = mPlaceInfoType == AGENT_INFO_TYPE;
if ((is_agent_place_info_visible ||
- mPlaceInfoType == "remote_place" ||
- mPlaceInfoType == "teleport_history") && mPlaceMenu != NULL)
+ mPlaceInfoType == REMOTE_PLACE_INFO_TYPE ||
+ mPlaceInfoType == TELEPORT_HISTORY_INFO_TYPE) && mPlaceMenu != NULL)
{
menu = mPlaceMenu;
@@ -1089,6 +1124,8 @@ void LLPanelPlaces::updateVerbs()
if (is_place_info_visible)
{
+ mShowOnMapBtn->setEnabled(have_3d_pos);
+
if (is_agent_place_info_visible)
{
// We don't need to teleport to the current location
diff --git a/indra/newview/llpanelplaces.h b/indra/newview/llpanelplaces.h
index 7a77fc9300..c3b2ab806f 100644
--- a/indra/newview/llpanelplaces.h
+++ b/indra/newview/llpanelplaces.h
@@ -2,30 +2,25 @@
* @file llpanelplaces.h
* @brief Side Bar "Places" panel
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llpanelplacestab.cpp b/indra/newview/llpanelplacestab.cpp
index 0f3c51fb4f..9644b7518e 100644
--- a/indra/newview/llpanelplacestab.cpp
+++ b/indra/newview/llpanelplacestab.cpp
@@ -2,30 +2,25 @@
* @file llpanelplacestab.cpp
* @brief Tabs interface for Side Bar "Places" panel
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llpanelplacestab.h b/indra/newview/llpanelplacestab.h
index 4a155afd71..367ce46e2e 100644
--- a/indra/newview/llpanelplacestab.h
+++ b/indra/newview/llpanelplacestab.h
@@ -2,30 +2,25 @@
* @file llpanelplacestab.h
* @brief Tabs interface for Side Bar "Places" panel
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llpanelprimmediacontrols.cpp b/indra/newview/llpanelprimmediacontrols.cpp
index 0648d99685..b04971f980 100644
--- a/indra/newview/llpanelprimmediacontrols.cpp
+++ b/indra/newview/llpanelprimmediacontrols.cpp
@@ -2,30 +2,25 @@
* @file llpanelprimmediacontrols.cpp
* @brief media controls popup panel
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2007, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -119,7 +114,7 @@ LLPanelPrimMediaControls::LLPanelPrimMediaControls() :
mCommitCallbackRegistrar.add("MediaCtrl.SkipBack", boost::bind(&LLPanelPrimMediaControls::onClickSkipBack, this));
mCommitCallbackRegistrar.add("MediaCtrl.SkipForward", boost::bind(&LLPanelPrimMediaControls::onClickSkipForward, this));
- LLUICtrlFactory::getInstance()->buildPanel(this, "panel_prim_media_controls.xml");
+ buildFromFile( "panel_prim_media_controls.xml");
mInactivityTimer.reset();
mFadeTimer.stop();
mCurrentZoom = ZOOM_NONE;
@@ -985,6 +980,13 @@ void LLPanelPrimMediaControls::onClickZoom()
void LLPanelPrimMediaControls::nextZoomLevel()
{
+ LLViewerObject* objectp = getTargetObject();
+ if(objectp && objectp->isHUDAttachment())
+ {
+ // Never allow zooming on HUD attachments.
+ return;
+ }
+
int index = 0;
while (index < kNumZoomLevels)
{
@@ -1171,7 +1173,7 @@ void LLPanelPrimMediaControls::setCurrentURL()
// if (media_address_combo && mCurrentURL != "about:blank")
// {
// media_address_combo->remove(mCurrentURL);
-// media_address_combo->add(mCurrentURL, ADD_SORTED);
+// media_address_combo->add(mCurrentURL);
// media_address_combo->selectByValue(mCurrentURL);
// }
#else // USE_COMBO_BOX_FOR_MEDIA_URL
diff --git a/indra/newview/llpanelprimmediacontrols.h b/indra/newview/llpanelprimmediacontrols.h
index 2e0de7866c..3ec24f0e24 100644
--- a/indra/newview/llpanelprimmediacontrols.h
+++ b/indra/newview/llpanelprimmediacontrols.h
@@ -2,30 +2,25 @@
* @file llpanelprimmediacontrols.h
* @brief Pop-up media controls panel
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2007, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llpanelprofile.cpp b/indra/newview/llpanelprofile.cpp
index 18da8dd48c..4e63563979 100644
--- a/indra/newview/llpanelprofile.cpp
+++ b/indra/newview/llpanelprofile.cpp
@@ -2,31 +2,25 @@
* @file llpanelprofile.cpp
* @brief Profile panel implementation
*
-* $LicenseInfo:firstyear=2009&license=viewergpl$
-*
-* Copyright (c) 2009, Linden Research, Inc.
-*
+* $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
-* The source code in this file ("Source Code") is provided by Linden Lab
-* to you under the terms of the GNU General Public License, version 2.0
-* ("GPL"), unless you have obtained a separate licensing agreement
-* ("Other License"), formally executed by you and Linden Lab. Terms of
-* the GPL can be found in doc/GPL-license.txt in this distribution, or
-* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+* 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.
*
-* There are special exceptions to the terms and conditions of the GPL as
-* it is applied to this Source Code. View the full text of the exception
-* in the file doc/FLOSS-exception.txt in this software distribution, or
-* online at
-* http://secondlifegrid.net/programs/open_source/licensing/flossexception
+* 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.
*
-* By copying, modifying or distributing this software, you acknowledge
-* that you have read and understood your obligations described above,
-* and agree to abide by those obligations.
+* 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
*
-* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
-* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
-* COMPLETENESS OR PERFORMANCE.
+* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -133,11 +127,11 @@ BOOL LLPanelProfile::postBuild()
getTabCtrl()->setCommitCallback(boost::bind(&LLPanelProfile::onTabSelected, this, _2));
- LLPanelPicks* panel_picks = getChild<LLPanelPicks>(PANEL_PICKS);
+ LLPanelPicks* panel_picks = findChild<LLPanelPicks>(PANEL_PICKS);
panel_picks->setProfilePanel(this);
getTabContainer()[PANEL_PICKS] = panel_picks;
- getTabContainer()[PANEL_PROFILE] = getChild<LLPanelAvatarProfile>(PANEL_PROFILE);
+ getTabContainer()[PANEL_PROFILE] = findChild<LLPanelAvatarProfile>(PANEL_PROFILE);
return TRUE;
}
diff --git a/indra/newview/llpanelprofile.h b/indra/newview/llpanelprofile.h
index f1aa3f10f8..0546c18583 100644
--- a/indra/newview/llpanelprofile.h
+++ b/indra/newview/llpanelprofile.h
@@ -2,31 +2,25 @@
* @file llpanelprofile.h
* @brief Profile panel
*
-* $LicenseInfo:firstyear=2009&license=viewergpl$
-*
-* Copyright (c) 2009, Linden Research, Inc.
-*
+* $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
-* The source code in this file ("Source Code") is provided by Linden Lab
-* to you under the terms of the GNU General Public License, version 2.0
-* ("GPL"), unless you have obtained a separate licensing agreement
-* ("Other License"), formally executed by you and Linden Lab. Terms of
-* the GPL can be found in doc/GPL-license.txt in this distribution, or
-* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+* 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.
*
-* There are special exceptions to the terms and conditions of the GPL as
-* it is applied to this Source Code. View the full text of the exception
-* in the file doc/FLOSS-exception.txt in this software distribution, or
-* online at
-* http://secondlifegrid.net/programs/open_source/licensing/flossexception
+* 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.
*
-* By copying, modifying or distributing this software, you acknowledge
-* that you have read and understood your obligations described above,
-* and agree to abide by those obligations.
+* 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
*
-* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
-* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
-* COMPLETENESS OR PERFORMANCE.
+* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llpanelprofileview.cpp b/indra/newview/llpanelprofileview.cpp
index 044036ea50..dba047660d 100644
--- a/indra/newview/llpanelprofileview.cpp
+++ b/indra/newview/llpanelprofileview.cpp
@@ -2,31 +2,25 @@
* @file llpanelprofileview.cpp
* @brief Side tray "Profile View" panel
*
-* $LicenseInfo:firstyear=2009&license=viewergpl$
-*
-* Copyright (c) 2009, Linden Research, Inc.
-*
+* $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
-* The source code in this file ("Source Code") is provided by Linden Lab
-* to you under the terms of the GNU General Public License, version 2.0
-* ("GPL"), unless you have obtained a separate licensing agreement
-* ("Other License"), formally executed by you and Linden Lab. Terms of
-* the GPL can be found in doc/GPL-license.txt in this distribution, or
-* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+* 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.
*
-* There are special exceptions to the terms and conditions of the GPL as
-* it is applied to this Source Code. View the full text of the exception
-* in the file doc/FLOSS-exception.txt in this software distribution, or
-* online at
-* http://secondlifegrid.net/programs/open_source/licensing/flossexception
+* 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.
*
-* By copying, modifying or distributing this software, you acknowledge
-* that you have read and understood your obligations described above,
-* and agree to abide by those obligations.
+* 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
*
-* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
-* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
-* COMPLETENESS OR PERFORMANCE.
+* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -120,11 +114,11 @@ BOOL LLPanelProfileView::postBuild()
{
LLPanelProfile::postBuild();
- getTabContainer()[PANEL_NOTES] = getChild<LLPanelAvatarNotes>(PANEL_NOTES);
+ getTabContainer()[PANEL_NOTES] = findChild<LLPanelAvatarNotes>(PANEL_NOTES);
//*TODO remove this, according to style guide we don't use status combobox
- getTabContainer()[PANEL_PROFILE]->childSetVisible("online_me_status_text", FALSE);
- getTabContainer()[PANEL_PROFILE]->childSetVisible("status_combo", FALSE);
+ getTabContainer()[PANEL_PROFILE]->getChildView("online_me_status_text")->setVisible( FALSE);
+ getTabContainer()[PANEL_PROFILE]->getChildView("status_combo")->setVisible( FALSE);
mStatusText = getChild<LLTextBox>("status");
mStatusText->setVisible(false);
diff --git a/indra/newview/llpanelprofileview.h b/indra/newview/llpanelprofileview.h
index 9b87e146a8..9972b085d8 100644
--- a/indra/newview/llpanelprofileview.h
+++ b/indra/newview/llpanelprofileview.h
@@ -2,31 +2,25 @@
* @file llpanelprofileview.h
* @brief Side tray "Profile View" panel
*
-* $LicenseInfo:firstyear=2009&license=viewergpl$
-*
-* Copyright (c) 2009, Linden Research, Inc.
-*
+* $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
-* The source code in this file ("Source Code") is provided by Linden Lab
-* to you under the terms of the GNU General Public License, version 2.0
-* ("GPL"), unless you have obtained a separate licensing agreement
-* ("Other License"), formally executed by you and Linden Lab. Terms of
-* the GPL can be found in doc/GPL-license.txt in this distribution, or
-* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+* 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.
*
-* There are special exceptions to the terms and conditions of the GPL as
-* it is applied to this Source Code. View the full text of the exception
-* in the file doc/FLOSS-exception.txt in this software distribution, or
-* online at
-* http://secondlifegrid.net/programs/open_source/licensing/flossexception
+* 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.
*
-* By copying, modifying or distributing this software, you acknowledge
-* that you have read and understood your obligations described above,
-* and agree to abide by those obligations.
+* 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
*
-* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
-* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
-* COMPLETENESS OR PERFORMANCE.
+* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llpanelteleporthistory.cpp b/indra/newview/llpanelteleporthistory.cpp
index 1048e3fcc0..9b8167b15a 100644
--- a/indra/newview/llpanelteleporthistory.cpp
+++ b/indra/newview/llpanelteleporthistory.cpp
@@ -2,30 +2,25 @@
* @file llpanelteleporthistory.cpp
* @brief Teleport history represented by a scrolling list
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -131,7 +126,7 @@ LLTeleportHistoryFlatItem::LLTeleportHistoryFlatItem(S32 index, LLTeleportHistor
mRegionName(region_name),
mHighlight(hl)
{
- LLUICtrlFactory::getInstance()->buildPanel(this, "panel_teleport_history_item.xml");
+ buildFromFile( "panel_teleport_history_item.xml");
}
LLTeleportHistoryFlatItem::~LLTeleportHistoryFlatItem()
@@ -169,7 +164,7 @@ void LLTeleportHistoryFlatItem::setValue(const LLSD& value)
{
if (!value.isMap()) return;;
if (!value.has("selected")) return;
- childSetVisible("selected_icon", value["selected"]);
+ getChildView("selected_icon")->setVisible( value["selected"]);
}
void LLTeleportHistoryFlatItem::setHighlightedText(const std::string& text)
@@ -193,7 +188,7 @@ void LLTeleportHistoryFlatItem::updateTitle()
void LLTeleportHistoryFlatItem::onMouseEnter(S32 x, S32 y, MASK mask)
{
- childSetVisible("hovered_icon", true);
+ getChildView("hovered_icon")->setVisible( true);
mProfileBtn->setVisible(true);
LLPanel::onMouseEnter(x, y, mask);
@@ -201,7 +196,7 @@ void LLTeleportHistoryFlatItem::onMouseEnter(S32 x, S32 y, MASK mask)
void LLTeleportHistoryFlatItem::onMouseLeave(S32 x, S32 y, MASK mask)
{
- childSetVisible("hovered_icon", false);
+ getChildView("hovered_icon")->setVisible( false);
mProfileBtn->setVisible(false);
LLPanel::onMouseLeave(x, y, mask);
@@ -382,7 +377,7 @@ LLTeleportHistoryPanel::LLTeleportHistoryPanel()
mLastSelectedFlatlList(NULL),
mLastSelectedItemIndex(-1)
{
- LLUICtrlFactory::getInstance()->buildPanel(this, "panel_teleport_history.xml");
+ buildFromFile( "panel_teleport_history.xml");
}
LLTeleportHistoryPanel::~LLTeleportHistoryPanel()
diff --git a/indra/newview/llpanelteleporthistory.h b/indra/newview/llpanelteleporthistory.h
index 87e7044222..b5a025b39b 100644
--- a/indra/newview/llpanelteleporthistory.h
+++ b/indra/newview/llpanelteleporthistory.h
@@ -3,30 +3,25 @@
* @brief Teleport history represented by a scrolling list
* class definition
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llpaneltiptoast.cpp b/indra/newview/llpaneltiptoast.cpp
index 23367df41a..35009a552d 100644
--- a/indra/newview/llpaneltiptoast.cpp
+++ b/indra/newview/llpaneltiptoast.cpp
@@ -2,31 +2,25 @@
* @file llpaneltiptoast.cpp
* @brief Represents a base class of tip toast panels.
*
- * $LicenseInfo:firstyear=2010&license=viewergpl$
- *
- * Copyright (c) 2010, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2010&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
diff --git a/indra/newview/llpaneltiptoast.h b/indra/newview/llpaneltiptoast.h
index e8678aa1d3..cb09f1dca6 100644
--- a/indra/newview/llpaneltiptoast.h
+++ b/indra/newview/llpaneltiptoast.h
@@ -2,31 +2,25 @@
* @file llpaneltiptoast.h
* @brief Represents a base class of tip toast panels.
*
- * $LicenseInfo:firstyear=2010&license=viewergpl$
- *
- * Copyright (c) 2010, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2010&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
diff --git a/indra/newview/llpaneltopinfobar.cpp b/indra/newview/llpaneltopinfobar.cpp
index 68dc1cdf71..a9ca7314ce 100644
--- a/indra/newview/llpaneltopinfobar.cpp
+++ b/indra/newview/llpaneltopinfobar.cpp
@@ -2,31 +2,25 @@
* @file llpaneltopinfobar.cpp
* @brief Coordinates and Parcel Settings information panel definition
*
- * $LicenseInfo:firstyear=2010&license=viewergpl$
- *
- * Copyright (c) 2010, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2010&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -72,7 +66,7 @@ LLPanelTopInfoBar::LLPanelTopInfoBar(): mParcelChangedObserver(0)
LLUICtrl::CommitCallbackRegistry::currentRegistrar()
.add("TopInfoBar.Action", boost::bind(&LLPanelTopInfoBar::onContextMenuItemClicked, this, _2));
- LLUICtrlFactory::getInstance()->buildPanel(this, "panel_topinfo_bar.xml");
+ buildFromFile( "panel_topinfo_bar.xml");
}
LLPanelTopInfoBar::~LLPanelTopInfoBar()
@@ -161,6 +155,8 @@ BOOL LLPanelTopInfoBar::postBuild()
mParcelMgrConnection = LLViewerParcelMgr::getInstance()->addAgentParcelChangedCallback(
boost::bind(&LLPanelTopInfoBar::onAgentParcelChange, this));
+ setVisibleCallback(boost::bind(&LLPanelTopInfoBar::onVisibilityChange, this, _2));
+
return TRUE;
}
@@ -174,6 +170,27 @@ void LLPanelTopInfoBar::onNavBarShowParcelPropertiesCtrlChanged()
setParcelInfoText(new_text);
}
+// when panel is shown, all minimized floaters should be shifted downwards to prevent overlapping of
+// PanelTopInfoBar. See EXT-7951.
+void LLPanelTopInfoBar::onVisibilityChange(const LLSD& show)
+{
+ // this height is used as a vertical offset for ALREADY MINIMIZED floaters
+ // when PanelTopInfoBar visibility changes
+ S32 height = getRect().getHeight();
+
+ // this vertical offset is used for a start minimize position of floaters that
+ // are NOT MIMIMIZED YET
+ S32 minimize_pos_offset = 0;
+
+ if (show.asBoolean())
+ {
+ height = minimize_pos_offset = -height;
+ }
+
+ gFloaterView->shiftFloaters(0, height);
+ gFloaterView->setMinimizePositionVerticalOffset(minimize_pos_offset);
+}
+
void LLPanelTopInfoBar::draw()
{
updateParcelInfoText();
diff --git a/indra/newview/llpaneltopinfobar.h b/indra/newview/llpaneltopinfobar.h
index e417a06a64..db922ef424 100644
--- a/indra/newview/llpaneltopinfobar.h
+++ b/indra/newview/llpaneltopinfobar.h
@@ -2,31 +2,25 @@
* @file llpaneltopinfobar.h
* @brief Coordinates and Parcel Settings information panel definition
*
- * $LicenseInfo:firstyear=2010&license=viewergpl$
- *
- * Copyright (c) 2010, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2010&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -40,10 +34,12 @@ class LLTextBox;
class LLIconCtrl;
class LLParcelChangeObserver;
-class LLPanelTopInfoBar : public LLPanel, public LLSingleton<LLPanelTopInfoBar>
+class LLPanelTopInfoBar : public LLPanel, public LLSingleton<LLPanelTopInfoBar>, private LLDestroyClass<LLPanelTopInfoBar>
{
LOG_CLASS(LLPanelTopInfoBar);
+ friend class LLDestroyClass<LLPanelTopInfoBar>;
+
public:
LLPanelTopInfoBar();
~LLPanelTopInfoBar();
@@ -56,6 +52,11 @@ public:
*/
void handleLoginComplete();
+ /**
+ * Called when the top info bar gets shown or hidden
+ */
+ void onVisibilityChange(const LLSD& show);
+
private:
class LLParcelChangeObserver;
@@ -145,6 +146,17 @@ private:
*/
void setParcelInfoText(const std::string& new_text);
+ /**
+ * Implementation of LLDestroyClass<LLSideTray>
+ */
+ static void destroyClass()
+ {
+ if (LLPanelTopInfoBar::instanceExists())
+ {
+ LLPanelTopInfoBar::getInstance()->setEnabled(FALSE);
+ }
+ }
+
LLButton* mInfoBtn;
LLTextBox* mParcelInfoText;
LLTextBox* mDamageText;
diff --git a/indra/newview/llfloatervoicedevicesettings.cpp b/indra/newview/llpanelvoicedevicesettings.cpp
index 63365e3461..aef870d352 100644
--- a/indra/newview/llfloatervoicedevicesettings.cpp
+++ b/indra/newview/llpanelvoicedevicesettings.cpp
@@ -1,45 +1,36 @@
/**
- * @file llfloatervoicedevicesettings.cpp
+ * @file llpanelvoicedevicesettings.cpp
* @author Richard Nelson
* @brief Voice communication set-up
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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 "llfloatervoicedevicesettings.h"
+#include "llpanelvoicedevicesettings.h"
// Viewer includes
-#include "llbutton.h"
#include "llcombobox.h"
-#include "llfocusmgr.h"
-#include "lliconctrl.h"
#include "llsliderctrl.h"
#include "llviewercontrol.h"
#include "llvoiceclient.h"
@@ -76,8 +67,10 @@ BOOL LLPanelVoiceDeviceSettings::postBuild()
// set mic volume tuning slider based on last mic volume setting
volume_slider->setValue(mMicVolume);
- childSetCommitCallback("voice_input_device", onCommitInputDevice, this);
- childSetCommitCallback("voice_output_device", onCommitOutputDevice, this);
+ getChild<LLComboBox>("voice_input_device")->setCommitCallback(
+ boost::bind(&LLPanelVoiceDeviceSettings::onCommitInputDevice, this));
+ getChild<LLComboBox>("voice_output_device")->setCommitCallback(
+ boost::bind(&LLPanelVoiceDeviceSettings::onCommitOutputDevice, this));
return TRUE;
}
@@ -103,7 +96,7 @@ void LLPanelVoiceDeviceSettings::draw()
// let user know that volume indicator is not yet available
bool is_in_tuning_mode = LLVoiceClient::getInstance()->inTuningMode();
- childSetVisible("wait_text", !is_in_tuning_mode);
+ getChildView("wait_text")->setVisible( !is_in_tuning_mode);
LLPanel::draw();
@@ -227,7 +220,23 @@ void LLPanelVoiceDeviceSettings::refresh()
iter != LLVoiceClient::getInstance()->getCaptureDevices().end();
iter++)
{
- mCtrlInputDevices->add( *iter, ADD_BOTTOM );
+ // Lets try to localize some system device names. EXT-8375
+ std::string device_name = *iter;
+ LLStringUtil::toLower(device_name); //compare in low case
+ if ("default system device" == device_name)
+ {
+ device_name = getString(device_name);
+ }
+ else if ("no device" == device_name)
+ {
+ device_name = getString(device_name);
+ }
+ else
+ {
+ // restore original value
+ device_name = *iter;
+ }
+ mCtrlInputDevices->add(device_name, ADD_BOTTOM );
}
if(!mCtrlInputDevices->setSimple(mInputDevice))
@@ -244,7 +253,23 @@ void LLPanelVoiceDeviceSettings::refresh()
for(iter= LLVoiceClient::getInstance()->getRenderDevices().begin();
iter != LLVoiceClient::getInstance()->getRenderDevices().end(); iter++)
{
- mCtrlOutputDevices->add( *iter, ADD_BOTTOM );
+ // Lets try to localize some system device names. EXT-8375
+ std::string device_name = *iter;
+ LLStringUtil::toLower(device_name); //compare in low case
+ if ("default system device" == device_name)
+ {
+ device_name = getString(device_name);
+ }
+ else if ("no device" == device_name)
+ {
+ device_name = getString(device_name);
+ }
+ else
+ {
+ // restore original value
+ device_name = *iter;
+ }
+ mCtrlOutputDevices->add(device_name, ADD_BOTTOM );
}
if(!mCtrlOutputDevices->setSimple(mOutputDevice))
@@ -277,91 +302,20 @@ void LLPanelVoiceDeviceSettings::cleanup()
LLVoiceChannel::resume();
}
-// static
-void LLPanelVoiceDeviceSettings::onCommitInputDevice(LLUICtrl* ctrl, void* user_data)
+void LLPanelVoiceDeviceSettings::onCommitInputDevice()
{
if(LLVoiceClient::getInstance())
{
- LLVoiceClient::getInstance()->setCaptureDevice(ctrl->getValue().asString());
+ LLVoiceClient::getInstance()->setCaptureDevice(
+ getChild<LLComboBox>("voice_input_device")->getValue().asString());
}
}
-// static
-void LLPanelVoiceDeviceSettings::onCommitOutputDevice(LLUICtrl* ctrl, void* user_data)
+void LLPanelVoiceDeviceSettings::onCommitOutputDevice()
{
if(LLVoiceClient::getInstance())
{
- LLVoiceClient::getInstance()->setRenderDevice(ctrl->getValue().asString());
- }
-}
-
-//
-// LLFloaterVoiceDeviceSettings
-//
-
-LLFloaterVoiceDeviceSettings::LLFloaterVoiceDeviceSettings(const LLSD& seed)
- : LLFloater(seed),
- mDevicePanel(NULL)
-{
- mFactoryMap["device_settings"] = LLCallbackMap(createPanelVoiceDeviceSettings, this);
- // do not automatically open singleton floaters (as result of getInstance())
-// BOOL no_open = FALSE;
-// Called from floater reg: LLUICtrlFactory::getInstance()->buildFloater(this, "floater_device_settings.xml", no_open);
-}
-BOOL LLFloaterVoiceDeviceSettings::postBuild()
-{
- center();
- return TRUE;
-}
-
-// virtual
-void LLFloaterVoiceDeviceSettings::onOpen(const LLSD& key)
-{
- if(mDevicePanel)
- {
- mDevicePanel->initialize();
- }
-}
-
-// virtual
-void LLFloaterVoiceDeviceSettings::onClose(bool app_settings)
-{
- if(mDevicePanel)
- {
- mDevicePanel->apply();
- mDevicePanel->cleanup();
- }
-}
-
-void LLFloaterVoiceDeviceSettings::apply()
-{
- if (mDevicePanel)
- {
- mDevicePanel->apply();
+ LLVoiceClient::getInstance()->setRenderDevice(
+ getChild<LLComboBox>("voice_input_device")->getValue().asString());
}
}
-
-void LLFloaterVoiceDeviceSettings::cancel()
-{
- if (mDevicePanel)
- {
- mDevicePanel->cancel();
- }
-}
-
-void LLFloaterVoiceDeviceSettings::draw()
-{
- if (mDevicePanel)
- {
- mDevicePanel->refresh();
- }
- LLFloater::draw();
-}
-
-// static
-void* LLFloaterVoiceDeviceSettings::createPanelVoiceDeviceSettings(void* user_data)
-{
- LLFloaterVoiceDeviceSettings* floaterp = (LLFloaterVoiceDeviceSettings*)user_data;
- floaterp->mDevicePanel = new LLPanelVoiceDeviceSettings();
- return floaterp->mDevicePanel;
-}
diff --git a/indra/newview/llpanelvoicedevicesettings.h b/indra/newview/llpanelvoicedevicesettings.h
new file mode 100644
index 0000000000..636b8b9948
--- /dev/null
+++ b/indra/newview/llpanelvoicedevicesettings.h
@@ -0,0 +1,61 @@
+/**
+ * @file llpanelvoicedevicesettings.h
+ * @author Richard Nelson
+ * @brief Voice communication set-up wizard
+ *
+ * $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_LLPANELVOICEDEVICESETTINGS_H
+#define LL_LLPANELVOICEDEVICESETTINGS_H
+
+#include "llpanel.h"
+
+class LLPanelVoiceDeviceSettings : public LLPanel
+{
+public:
+ LLPanelVoiceDeviceSettings();
+ ~LLPanelVoiceDeviceSettings();
+
+ /*virtual*/ void draw();
+ /*virtual*/ BOOL postBuild();
+ void apply();
+ void cancel();
+ void refresh();
+ void initialize();
+ void cleanup();
+
+ /*virtual*/ void handleVisibilityChange ( BOOL new_visibility );
+
+protected:
+ void onCommitInputDevice();
+ void onCommitOutputDevice();
+
+ F32 mMicVolume;
+ std::string mInputDevice;
+ std::string mOutputDevice;
+ class LLComboBox *mCtrlInputDevices;
+ class LLComboBox *mCtrlOutputDevices;
+ BOOL mDevicesUpdated;
+};
+
+#endif // LL_LLPANELVOICEDEVICESETTINGS_H
diff --git a/indra/newview/llpanelvoiceeffect.cpp b/indra/newview/llpanelvoiceeffect.cpp
index fd470798ee..4bbfec8ab7 100644
--- a/indra/newview/llpanelvoiceeffect.cpp
+++ b/indra/newview/llpanelvoiceeffect.cpp
@@ -3,31 +3,25 @@
* @author Aimee
* @brief Panel to select Voice Morphs.
*
- * $LicenseInfo:firstyear=2010&license=viewergpl$
- *
- * Copyright (c) 2010, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2010&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -129,6 +123,8 @@ void LLPanelVoiceEffect::update(bool list_updated)
if (mVoiceEffectCombo)
{
LLVoiceEffectInterface* effect_interface = LLVoiceClient::instance().getVoiceEffectInterface();
+ llassert(effect_interface);
+ if (!effect_interface) return;
if (list_updated)
{
// Add the default "No Voice Morph" entry.
diff --git a/indra/newview/llpanelvoiceeffect.h b/indra/newview/llpanelvoiceeffect.h
index b5bf2f05a8..bba525e1df 100644
--- a/indra/newview/llpanelvoiceeffect.h
+++ b/indra/newview/llpanelvoiceeffect.h
@@ -3,31 +3,25 @@
* @author Aimee
* @brief Panel to select Voice Effects.
*
- * $LicenseInfo:firstyear=2010&license=viewergpl$
- *
- * Copyright (c) 2010, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2010&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llpanelvolume.cpp b/indra/newview/llpanelvolume.cpp
index fbe68b4d92..065c4d0b92 100644
--- a/indra/newview/llpanelvolume.cpp
+++ b/indra/newview/llpanelvolume.cpp
@@ -2,31 +2,25 @@
* @file llpanelvolume.cpp
* @brief Object editing (position, scale, etc.) in the tools floater
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -85,21 +79,21 @@ BOOL LLPanelVolume::postBuild()
{
childSetCommitCallback("Flexible1D Checkbox Ctrl",onCommitIsFlexible,this);
childSetCommitCallback("FlexNumSections",onCommitFlexible,this);
- childSetValidate("FlexNumSections",precommitValidate);
+ getChild<LLUICtrl>("FlexNumSections")->setValidateBeforeCommit(precommitValidate);
childSetCommitCallback("FlexGravity",onCommitFlexible,this);
- childSetValidate("FlexGravity",precommitValidate);
+ getChild<LLUICtrl>("FlexGravity")->setValidateBeforeCommit(precommitValidate);
childSetCommitCallback("FlexFriction",onCommitFlexible,this);
- childSetValidate("FlexFriction",precommitValidate);
+ getChild<LLUICtrl>("FlexFriction")->setValidateBeforeCommit(precommitValidate);
childSetCommitCallback("FlexWind",onCommitFlexible,this);
- childSetValidate("FlexWind",precommitValidate);
+ getChild<LLUICtrl>("FlexWind")->setValidateBeforeCommit(precommitValidate);
childSetCommitCallback("FlexTension",onCommitFlexible,this);
- childSetValidate("FlexTension",precommitValidate);
+ getChild<LLUICtrl>("FlexTension")->setValidateBeforeCommit(precommitValidate);
childSetCommitCallback("FlexForceX",onCommitFlexible,this);
- childSetValidate("FlexForceX",precommitValidate);
+ getChild<LLUICtrl>("FlexForceX")->setValidateBeforeCommit(precommitValidate);
childSetCommitCallback("FlexForceY",onCommitFlexible,this);
- childSetValidate("FlexForceY",precommitValidate);
+ getChild<LLUICtrl>("FlexForceY")->setValidateBeforeCommit(precommitValidate);
childSetCommitCallback("FlexForceZ",onCommitFlexible,this);
- childSetValidate("FlexForceZ",precommitValidate);
+ getChild<LLUICtrl>("FlexForceZ")->setValidateBeforeCommit(precommitValidate);
}
// LIGHT Parameters
@@ -121,18 +115,18 @@ BOOL LLPanelVolume::postBuild()
}
childSetCommitCallback("Light Intensity",onCommitLight,this);
- childSetValidate("Light Intensity",precommitValidate);
+ getChild<LLUICtrl>("Light Intensity")->setValidateBeforeCommit(precommitValidate);
childSetCommitCallback("Light Radius",onCommitLight,this);
- childSetValidate("Light Radius",precommitValidate);
+ getChild<LLUICtrl>("Light Radius")->setValidateBeforeCommit(precommitValidate);
childSetCommitCallback("Light Falloff",onCommitLight,this);
- childSetValidate("Light Falloff",precommitValidate);
+ getChild<LLUICtrl>("Light Falloff")->setValidateBeforeCommit(precommitValidate);
childSetCommitCallback("Light FOV", onCommitLight, this);
- childSetValidate("Light FOV", precommitValidate);
+ getChild<LLUICtrl>("Light FOV")->setValidateBeforeCommit( precommitValidate);
childSetCommitCallback("Light Focus", onCommitLight, this);
- childSetValidate("Light Focus", precommitValidate);
+ getChild<LLUICtrl>("Light Focus")->setValidateBeforeCommit( precommitValidate);
childSetCommitCallback("Light Ambiance", onCommitLight, this);
- childSetValidate("Light Ambiance", precommitValidate);
+ getChild<LLUICtrl>("Light Ambiance")->setValidateBeforeCommit( precommitValidate);
}
// Start with everyone disabled
@@ -210,25 +204,25 @@ void LLPanelVolume::getState( )
// Select Single Message
if (single_volume)
{
- childSetVisible("edit_object",true);
- childSetEnabled("edit_object",true);
- childSetVisible("select_single",false);
+ getChildView("edit_object")->setVisible(true);
+ getChildView("edit_object")->setEnabled(true);
+ getChildView("select_single")->setVisible(false);
}
else
{
- childSetVisible("edit_object",false);
- childSetVisible("select_single",true);
- childSetEnabled("select_single",true);
+ getChildView("edit_object")->setVisible(false);
+ getChildView("select_single")->setVisible(true);
+ getChildView("select_single")->setEnabled(true);
}
// Light properties
BOOL is_light = volobjp && volobjp->getIsLight();
- childSetValue("Light Checkbox Ctrl",is_light);
- childSetEnabled("Light Checkbox Ctrl",editable && single_volume && volobjp);
+ getChild<LLUICtrl>("Light Checkbox Ctrl")->setValue(is_light);
+ getChildView("Light Checkbox Ctrl")->setEnabled(editable && single_volume && volobjp);
if (is_light && editable && single_volume)
{
- childSetEnabled("label color",true);
+ getChildView("label color")->setEnabled(true);
//mLabelColor ->setEnabled( TRUE );
LLColorSwatchCtrl* LightColorSwatch = getChild<LLColorSwatchCtrl>("colorswatch");
if(LightColorSwatch)
@@ -246,22 +240,22 @@ void LLPanelVolume::getState( )
LightTextureCtrl->setImageAssetID(volobjp->getLightTextureID());
}
- childSetEnabled("Light Intensity",true);
- childSetEnabled("Light Radius",true);
- childSetEnabled("Light Falloff",true);
+ getChildView("Light Intensity")->setEnabled(true);
+ getChildView("Light Radius")->setEnabled(true);
+ getChildView("Light Falloff")->setEnabled(true);
- childSetEnabled("Light FOV", true);
- childSetEnabled("Light Focus", true);
- childSetEnabled("Light Ambiance", true);
+ getChildView("Light FOV")->setEnabled(true);
+ getChildView("Light Focus")->setEnabled(true);
+ getChildView("Light Ambiance")->setEnabled(true);
- childSetValue("Light Intensity",volobjp->getLightIntensity());
- childSetValue("Light Radius",volobjp->getLightRadius());
- childSetValue("Light Falloff",volobjp->getLightFalloff());
+ getChild<LLUICtrl>("Light Intensity")->setValue(volobjp->getLightIntensity());
+ getChild<LLUICtrl>("Light Radius")->setValue(volobjp->getLightRadius());
+ getChild<LLUICtrl>("Light Falloff")->setValue(volobjp->getLightFalloff());
LLVector3 params = volobjp->getSpotLightParams();
- childSetValue("Light FOV", params.mV[0]);
- childSetValue("Light Focus", params.mV[1]);
- childSetValue("Light Ambiance", params.mV[2]);
+ getChild<LLUICtrl>("Light FOV")->setValue(params.mV[0]);
+ getChild<LLUICtrl>("Light Focus")->setValue(params.mV[1]);
+ getChild<LLUICtrl>("Light Ambiance")->setValue(params.mV[2]);
mLightSavedColor = volobjp->getLightColor();
}
@@ -271,7 +265,7 @@ void LLPanelVolume::getState( )
getChild<LLSpinCtrl>("Light Radius", true)->clear();
getChild<LLSpinCtrl>("Light Falloff", true)->clear();
- childSetEnabled("label color",false);
+ getChildView("label color")->setEnabled(false);
LLColorSwatchCtrl* LightColorSwatch = getChild<LLColorSwatchCtrl>("colorswatch");
if(LightColorSwatch)
{
@@ -285,56 +279,56 @@ void LLPanelVolume::getState( )
LightTextureCtrl->setValid(FALSE);
}
- childSetEnabled("Light Intensity",false);
- childSetEnabled("Light Radius",false);
- childSetEnabled("Light Falloff",false);
+ getChildView("Light Intensity")->setEnabled(false);
+ getChildView("Light Radius")->setEnabled(false);
+ getChildView("Light Falloff")->setEnabled(false);
- childSetEnabled("Light FOV",false);
- childSetEnabled("Light Focus",false);
- childSetEnabled("Light Ambiance",false);
+ getChildView("Light FOV")->setEnabled(false);
+ getChildView("Light Focus")->setEnabled(false);
+ getChildView("Light Ambiance")->setEnabled(false);
}
// Flexible properties
BOOL is_flexible = volobjp && volobjp->isFlexible();
- childSetValue("Flexible1D Checkbox Ctrl",is_flexible);
+ getChild<LLUICtrl>("Flexible1D Checkbox Ctrl")->setValue(is_flexible);
if (is_flexible || (volobjp && volobjp->canBeFlexible()))
{
- childSetEnabled("Flexible1D Checkbox Ctrl", editable && single_volume && volobjp);
+ getChildView("Flexible1D Checkbox Ctrl")->setEnabled(editable && single_volume && volobjp);
}
else
{
- childSetEnabled("Flexible1D Checkbox Ctrl", false);
+ getChildView("Flexible1D Checkbox Ctrl")->setEnabled(false);
}
if (is_flexible && editable && single_volume)
{
- childSetVisible("FlexNumSections",true);
- childSetVisible("FlexGravity",true);
- childSetVisible("FlexTension",true);
- childSetVisible("FlexFriction",true);
- childSetVisible("FlexWind",true);
- childSetVisible("FlexForceX",true);
- childSetVisible("FlexForceY",true);
- childSetVisible("FlexForceZ",true);
-
- childSetEnabled("FlexNumSections",true);
- childSetEnabled("FlexGravity",true);
- childSetEnabled("FlexTension",true);
- childSetEnabled("FlexFriction",true);
- childSetEnabled("FlexWind",true);
- childSetEnabled("FlexForceX",true);
- childSetEnabled("FlexForceY",true);
- childSetEnabled("FlexForceZ",true);
+ getChildView("FlexNumSections")->setVisible(true);
+ getChildView("FlexGravity")->setVisible(true);
+ getChildView("FlexTension")->setVisible(true);
+ getChildView("FlexFriction")->setVisible(true);
+ getChildView("FlexWind")->setVisible(true);
+ getChildView("FlexForceX")->setVisible(true);
+ getChildView("FlexForceY")->setVisible(true);
+ getChildView("FlexForceZ")->setVisible(true);
+
+ getChildView("FlexNumSections")->setEnabled(true);
+ getChildView("FlexGravity")->setEnabled(true);
+ getChildView("FlexTension")->setEnabled(true);
+ getChildView("FlexFriction")->setEnabled(true);
+ getChildView("FlexWind")->setEnabled(true);
+ getChildView("FlexForceX")->setEnabled(true);
+ getChildView("FlexForceY")->setEnabled(true);
+ getChildView("FlexForceZ")->setEnabled(true);
LLFlexibleObjectData *attributes = (LLFlexibleObjectData *)objectp->getParameterEntry(LLNetworkData::PARAMS_FLEXIBLE);
- childSetValue("FlexNumSections",(F32)attributes->getSimulateLOD());
- childSetValue("FlexGravity",attributes->getGravity());
- childSetValue("FlexTension",attributes->getTension());
- childSetValue("FlexFriction",attributes->getAirFriction());
- childSetValue("FlexWind",attributes->getWindSensitivity());
- childSetValue("FlexForceX",attributes->getUserForce().mV[VX]);
- childSetValue("FlexForceY",attributes->getUserForce().mV[VY]);
- childSetValue("FlexForceZ",attributes->getUserForce().mV[VZ]);
+ getChild<LLUICtrl>("FlexNumSections")->setValue((F32)attributes->getSimulateLOD());
+ getChild<LLUICtrl>("FlexGravity")->setValue(attributes->getGravity());
+ getChild<LLUICtrl>("FlexTension")->setValue(attributes->getTension());
+ getChild<LLUICtrl>("FlexFriction")->setValue(attributes->getAirFriction());
+ getChild<LLUICtrl>("FlexWind")->setValue(attributes->getWindSensitivity());
+ getChild<LLUICtrl>("FlexForceX")->setValue(attributes->getUserForce().mV[VX]);
+ getChild<LLUICtrl>("FlexForceY")->setValue(attributes->getUserForce().mV[VY]);
+ getChild<LLUICtrl>("FlexForceZ")->setValue(attributes->getUserForce().mV[VZ]);
}
else
{
@@ -347,14 +341,14 @@ void LLPanelVolume::getState( )
getChild<LLSpinCtrl>("FlexForceY", true)->clear();
getChild<LLSpinCtrl>("FlexForceZ", true)->clear();
- childSetEnabled("FlexNumSections",false);
- childSetEnabled("FlexGravity",false);
- childSetEnabled("FlexTension",false);
- childSetEnabled("FlexFriction",false);
- childSetEnabled("FlexWind",false);
- childSetEnabled("FlexForceX",false);
- childSetEnabled("FlexForceY",false);
- childSetEnabled("FlexForceZ",false);
+ getChildView("FlexNumSections")->setEnabled(false);
+ getChildView("FlexGravity")->setEnabled(false);
+ getChildView("FlexTension")->setEnabled(false);
+ getChildView("FlexFriction")->setEnabled(false);
+ getChildView("FlexWind")->setEnabled(false);
+ getChildView("FlexForceX")->setEnabled(false);
+ getChildView("FlexForceY")->setEnabled(false);
+ getChildView("FlexForceZ")->setEnabled(false);
}
mObject = objectp;
@@ -384,11 +378,11 @@ void LLPanelVolume::refresh()
BOOL visible = LLViewerShaderMgr::instance()->getVertexShaderLevel(LLViewerShaderMgr::SHADER_DEFERRED) > 0 ? TRUE : FALSE;
- childSetVisible("label texture", visible);
- childSetVisible("Light FOV", visible);
- childSetVisible("Light Focus", visible);
- childSetVisible("Light Ambiance", visible);
- childSetVisible("light texture control", visible);
+ getChildView("label texture")->setVisible( visible);
+ getChildView("Light FOV")->setVisible( visible);
+ getChildView("Light Focus")->setVisible( visible);
+ getChildView("Light Ambiance")->setVisible( visible);
+ getChildView("light texture control")->setVisible( visible);
}
@@ -403,13 +397,13 @@ void LLPanelVolume::clearCtrls()
{
LLPanel::clearCtrls();
- childSetEnabled("select_single",false);
- childSetVisible("select_single",true);
- childSetEnabled("edit_object",false);
- childSetVisible("edit_object",false);
- childSetEnabled("Light Checkbox Ctrl",false);
- childSetEnabled("label color",false);
- childSetEnabled("label color",false);
+ getChildView("select_single")->setEnabled(false);
+ getChildView("select_single")->setVisible(true);
+ getChildView("edit_object")->setEnabled(false);
+ getChildView("edit_object")->setVisible(false);
+ getChildView("Light Checkbox Ctrl")->setEnabled(false);
+ getChildView("label color")->setEnabled(false);
+ getChildView("label color")->setEnabled(false);
LLColorSwatchCtrl* LightColorSwatch = getChild<LLColorSwatchCtrl>("colorswatch");
if(LightColorSwatch)
{
@@ -423,19 +417,19 @@ void LLPanelVolume::clearCtrls()
LightTextureCtrl->setValid( FALSE );
}
- childSetEnabled("Light Intensity",false);
- childSetEnabled("Light Radius",false);
- childSetEnabled("Light Falloff",false);
-
- childSetEnabled("Flexible1D Checkbox Ctrl",false);
- childSetEnabled("FlexNumSections",false);
- childSetEnabled("FlexGravity",false);
- childSetEnabled("FlexTension",false);
- childSetEnabled("FlexFriction",false);
- childSetEnabled("FlexWind",false);
- childSetEnabled("FlexForceX",false);
- childSetEnabled("FlexForceY",false);
- childSetEnabled("FlexForceZ",false);
+ getChildView("Light Intensity")->setEnabled(false);
+ getChildView("Light Radius")->setEnabled(false);
+ getChildView("Light Falloff")->setEnabled(false);
+
+ getChildView("Flexible1D Checkbox Ctrl")->setEnabled(false);
+ getChildView("FlexNumSections")->setEnabled(false);
+ getChildView("FlexGravity")->setEnabled(false);
+ getChildView("FlexTension")->setEnabled(false);
+ getChildView("FlexFriction")->setEnabled(false);
+ getChildView("FlexWind")->setEnabled(false);
+ getChildView("FlexForceX")->setEnabled(false);
+ getChildView("FlexForceY")->setEnabled(false);
+ getChildView("FlexForceZ")->setEnabled(false);
}
//
@@ -451,7 +445,7 @@ void LLPanelVolume::sendIsLight()
}
LLVOVolume *volobjp = (LLVOVolume *)objectp;
- BOOL value = childGetValue("Light Checkbox Ctrl");
+ BOOL value = getChild<LLUICtrl>("Light Checkbox Ctrl")->getValue();
volobjp->setIsLight(value);
llinfos << "update light sent" << llendl;
}
@@ -465,7 +459,7 @@ void LLPanelVolume::sendIsFlexible()
}
LLVOVolume *volobjp = (LLVOVolume *)objectp;
- BOOL is_flexible = childGetValue("Flexible1D Checkbox Ctrl");
+ BOOL is_flexible = getChild<LLUICtrl>("Flexible1D Checkbox Ctrl")->getValue();
//BOOL is_flexible = mCheckFlexible1D->get();
if (is_flexible)
@@ -557,9 +551,9 @@ void LLPanelVolume::onCommitLight( LLUICtrl* ctrl, void* userdata )
LLVOVolume *volobjp = (LLVOVolume *)objectp;
- volobjp->setLightIntensity((F32)self->childGetValue("Light Intensity").asReal());
- volobjp->setLightRadius((F32)self->childGetValue("Light Radius").asReal());
- volobjp->setLightFalloff((F32)self->childGetValue("Light Falloff").asReal());
+ volobjp->setLightIntensity((F32)self->getChild<LLUICtrl>("Light Intensity")->getValue().asReal());
+ volobjp->setLightRadius((F32)self->getChild<LLUICtrl>("Light Radius")->getValue().asReal());
+ volobjp->setLightFalloff((F32)self->getChild<LLUICtrl>("Light Falloff")->getValue().asReal());
LLColorSwatchCtrl* LightColorSwatch = self->getChild<LLColorSwatchCtrl>("colorswatch");
if(LightColorSwatch)
@@ -574,29 +568,29 @@ void LLPanelVolume::onCommitLight( LLUICtrl* ctrl, void* userdata )
LLUUID id = LightTextureCtrl->getImageAssetID();
if (id.notNull())
{
- if (volobjp->getLightTextureID().isNull())
+ if (!volobjp->isLightSpotlight())
{ //this commit is making this a spot light, set UI to default params
volobjp->setLightTextureID(id);
LLVector3 spot_params = volobjp->getSpotLightParams();
- self->childSetValue("Light FOV", spot_params.mV[0]);
- self->childSetValue("Light Focus", spot_params.mV[1]);
- self->childSetValue("Light Ambiance", spot_params.mV[2]);
+ self->getChild<LLUICtrl>("Light FOV")->setValue(spot_params.mV[0]);
+ self->getChild<LLUICtrl>("Light Focus")->setValue(spot_params.mV[1]);
+ self->getChild<LLUICtrl>("Light Ambiance")->setValue(spot_params.mV[2]);
}
else
{ //modifying existing params
LLVector3 spot_params;
- spot_params.mV[0] = (F32) self->childGetValue("Light FOV").asReal();
- spot_params.mV[1] = (F32) self->childGetValue("Light Focus").asReal();
- spot_params.mV[2] = (F32) self->childGetValue("Light Ambiance").asReal();
+ spot_params.mV[0] = (F32) self->getChild<LLUICtrl>("Light FOV")->getValue().asReal();
+ spot_params.mV[1] = (F32) self->getChild<LLUICtrl>("Light Focus")->getValue().asReal();
+ spot_params.mV[2] = (F32) self->getChild<LLUICtrl>("Light Ambiance")->getValue().asReal();
volobjp->setSpotLightParams(spot_params);
}
}
- else if (volobjp->getLightTextureID().notNull())
+ else if (volobjp->isLightSpotlight())
{ //no longer a spot light
volobjp->setLightTextureID(id);
- //self->childDisable("Light FOV");
- //self->childDisable("Light Focus");
- //self->childDisable("Light Ambiance");
+ //self->getChildView("Light FOV")->setEnabled(FALSE);
+ //self->getChildView("Light Focus")->setEnabled(FALSE);
+ //self->getChildView("Light Ambiance")->setEnabled(FALSE);
}
}
@@ -629,14 +623,14 @@ void LLPanelVolume::onCommitFlexible( LLUICtrl* ctrl, void* userdata )
new_attributes = *attributes;
- new_attributes.setSimulateLOD(self->childGetValue("FlexNumSections").asInteger());//(S32)self->mSpinSections->get());
- new_attributes.setGravity((F32)self->childGetValue("FlexGravity").asReal());
- new_attributes.setTension((F32)self->childGetValue("FlexTension").asReal());
- new_attributes.setAirFriction((F32)self->childGetValue("FlexFriction").asReal());
- new_attributes.setWindSensitivity((F32)self->childGetValue("FlexWind").asReal());
- F32 fx = (F32)self->childGetValue("FlexForceX").asReal();
- F32 fy = (F32)self->childGetValue("FlexForceY").asReal();
- F32 fz = (F32)self->childGetValue("FlexForceZ").asReal();
+ new_attributes.setSimulateLOD(self->getChild<LLUICtrl>("FlexNumSections")->getValue().asInteger());//(S32)self->mSpinSections->get());
+ new_attributes.setGravity((F32)self->getChild<LLUICtrl>("FlexGravity")->getValue().asReal());
+ new_attributes.setTension((F32)self->getChild<LLUICtrl>("FlexTension")->getValue().asReal());
+ new_attributes.setAirFriction((F32)self->getChild<LLUICtrl>("FlexFriction")->getValue().asReal());
+ new_attributes.setWindSensitivity((F32)self->getChild<LLUICtrl>("FlexWind")->getValue().asReal());
+ F32 fx = (F32)self->getChild<LLUICtrl>("FlexForceX")->getValue().asReal();
+ F32 fy = (F32)self->getChild<LLUICtrl>("FlexForceY")->getValue().asReal();
+ F32 fz = (F32)self->getChild<LLUICtrl>("FlexForceZ")->getValue().asReal();
LLVector3 force(fx,fy,fz);
new_attributes.setUserForce(force);
diff --git a/indra/newview/llpanelvolume.h b/indra/newview/llpanelvolume.h
index 7bc935f986..90a2abda25 100644
--- a/indra/newview/llpanelvolume.h
+++ b/indra/newview/llpanelvolume.h
@@ -2,31 +2,25 @@
* @file llpanelvolume.h
* @brief Object editing (position, scale, etc.) in the tools floater
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llpanelvolumepulldown.cpp b/indra/newview/llpanelvolumepulldown.cpp
index ae52bd3703..aea7b33d7f 100644
--- a/indra/newview/llpanelvolumepulldown.cpp
+++ b/indra/newview/llpanelvolumepulldown.cpp
@@ -3,31 +3,25 @@
* @author Tofu Linden
* @brief A floater showing the master volume pull-down
*
- * $LicenseInfo:firstyear=2008&license=viewergpl$
- *
- * Copyright (c) 2008-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2008&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -44,7 +38,7 @@
#include "lltabcontainer.h"
#include "llfloaterreg.h"
#include "llfloaterpreference.h"
-#include "llslider.h"
+#include "llsliderctrl.h"
/* static */ const F32 LLPanelVolumePulldown::sAutoCloseFadeStartTimeSec = 4.0f;
/* static */ const F32 LLPanelVolumePulldown::sAutoCloseTotalTimeSec = 5.0f;
@@ -60,13 +54,13 @@ LLPanelVolumePulldown::LLPanelVolumePulldown()
mCommitCallbackRegistrar.add("Vol.setControlFalse", boost::bind(&LLPanelVolumePulldown::setControlFalse, this, _2));
mCommitCallbackRegistrar.add("Vol.GoAudioPrefs", boost::bind(&LLPanelVolumePulldown::onAdvancedButtonClick, this, _2));
- LLUICtrlFactory::instance().buildPanel(this, "panel_volume_pulldown.xml");
+ buildFromFile( "panel_volume_pulldown.xml");
}
BOOL LLPanelVolumePulldown::postBuild()
{
// set the initial volume-slider's position to reflect reality
- LLSlider* volslider = getChild<LLSlider>( "mastervolume" );
+ LLSliderCtrl* volslider = getChild<LLSliderCtrl>( "mastervolume" );
volslider->setValue(gSavedSettings.getF32("AudioLevelMaster"));
return LLPanel::postBuild();
diff --git a/indra/newview/llpanelvolumepulldown.h b/indra/newview/llpanelvolumepulldown.h
index 7fb025f329..0d86e6bd28 100644
--- a/indra/newview/llpanelvolumepulldown.h
+++ b/indra/newview/llpanelvolumepulldown.h
@@ -3,31 +3,25 @@
* @author Tofu Linden
* @brief A panel showing the master volume pull-down
*
- * $LicenseInfo:firstyear=2008&license=viewergpl$
- *
- * Copyright (c) 2008-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2008&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llpanelwearing.cpp b/indra/newview/llpanelwearing.cpp
new file mode 100644
index 0000000000..860470cd73
--- /dev/null
+++ b/indra/newview/llpanelwearing.cpp
@@ -0,0 +1,292 @@
+/**
+ * @file llpanelwearing.cpp
+ * @brief List of agent's worn items.
+ *
+ * $LicenseInfo:firstyear=2010&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 "llpanelwearing.h"
+
+#include "llappearancemgr.h"
+#include "llinventoryfunctions.h"
+#include "llinventorymodel.h"
+#include "llinventoryobserver.h"
+#include "llsidetray.h"
+#include "llviewermenu.h"
+#include "llwearableitemslist.h"
+
+// Context menu and Gear menu helper.
+static void edit_outfit()
+{
+ LLSideTray::getInstance()->showPanel("sidepanel_appearance", LLSD().with("type", "edit_outfit"));
+}
+
+//////////////////////////////////////////////////////////////////////////
+
+class LLWearingGearMenu
+{
+public:
+ LLWearingGearMenu(LLPanelWearing* panel_wearing)
+ : mMenu(NULL), mPanelWearing(panel_wearing)
+ {
+ LLUICtrl::CommitCallbackRegistry::ScopedRegistrar registrar;
+ LLUICtrl::EnableCallbackRegistry::ScopedRegistrar enable_registrar;
+
+ registrar.add("Gear.Edit", boost::bind(&edit_outfit));
+ registrar.add("Gear.TakeOff", boost::bind(&LLWearingGearMenu::onTakeOff, this));
+
+ enable_registrar.add("Gear.OnEnable", boost::bind(&LLPanelWearing::isActionEnabled, mPanelWearing, _2));
+
+ mMenu = LLUICtrlFactory::getInstance()->createFromFile<LLMenuGL>(
+ "menu_wearing_gear.xml", gMenuHolder, LLViewerMenuHolderGL::child_registry_t::instance());
+ llassert(mMenu);
+ }
+
+ void show(LLView* spawning_view)
+ {
+ if (!mMenu) return;
+
+ mMenu->buildDrawLabels();
+ mMenu->updateParent(LLMenuGL::sMenuContainer);
+ S32 menu_x = 0;
+ S32 menu_y = spawning_view->getRect().getHeight() + mMenu->getRect().getHeight();
+ LLMenuGL::showPopup(spawning_view, mMenu, menu_x, menu_y);
+ }
+
+private:
+
+ void onTakeOff()
+ {
+ 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);
+ }
+ }
+
+ LLMenuGL* mMenu;
+ LLPanelWearing* mPanelWearing;
+};
+
+//////////////////////////////////////////////////////////////////////////
+
+class LLWearingContextMenu : public LLListContextMenu
+{
+protected:
+ /* virtual */ LLContextMenu* createMenu()
+ {
+ 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));
+
+ LLContextMenu* menu = createFromFile("menu_wearing_tab.xml");
+
+ updateMenuItemsVisibility(menu);
+
+ return menu;
+ }
+
+ void updateMenuItemsVisibility(LLContextMenu* menu)
+ {
+ bool bp_selected = false; // true if body parts selected
+ bool clothes_selected = false;
+ bool attachments_selected = false;
+
+ // See what types of wearables are selected.
+ for (uuid_vec_t::const_iterator it = mUUIDs.begin(); it != mUUIDs.end(); ++it)
+ {
+ LLViewerInventoryItem* item = gInventory.getItem(*it);
+
+ if (!item)
+ {
+ llwarns << "Invalid item" << llendl;
+ continue;
+ }
+
+ LLAssetType::EType type = item->getType();
+ if (type == LLAssetType::AT_CLOTHING)
+ {
+ clothes_selected = true;
+ }
+ else if (type == LLAssetType::AT_BODYPART)
+ {
+ bp_selected = true;
+ }
+ else if (type == LLAssetType::AT_OBJECT)
+ {
+ attachments_selected = true;
+ }
+ }
+
+ // Enable/disable some menu items depending on the selection.
+ bool allow_detach = !bp_selected && !clothes_selected && attachments_selected;
+ bool allow_take_off = !bp_selected && clothes_selected && !attachments_selected;
+
+ menu->setItemVisible("take_off", allow_take_off);
+ menu->setItemVisible("detach", allow_detach);
+ menu->setItemVisible("edit_outfit_separator", allow_take_off || allow_detach);
+ }
+};
+
+//////////////////////////////////////////////////////////////////////////
+
+std::string LLPanelAppearanceTab::sFilterSubString = LLStringUtil::null;
+
+static LLRegisterPanelClassWrapper<LLPanelWearing> t_panel_wearing("panel_wearing");
+
+LLPanelWearing::LLPanelWearing()
+ : LLPanelAppearanceTab()
+ , mCOFItemsList(NULL)
+ , mIsInitialized(false)
+{
+ mCategoriesObserver = new LLInventoryCategoriesObserver();
+
+ mGearMenu = new LLWearingGearMenu(this);
+ mContextMenu = new LLWearingContextMenu();
+}
+
+LLPanelWearing::~LLPanelWearing()
+{
+ delete mGearMenu;
+ delete mContextMenu;
+
+ if (gInventory.containsObserver(mCategoriesObserver))
+ {
+ gInventory.removeObserver(mCategoriesObserver);
+ delete mCategoriesObserver;
+ }
+}
+
+BOOL LLPanelWearing::postBuild()
+{
+ mCOFItemsList = getChild<LLWearableItemsList>("cof_items_list");
+ mCOFItemsList->setRightMouseDownCallback(boost::bind(&LLPanelWearing::onWearableItemsListRightClick, this, _1, _2, _3));
+
+ return TRUE;
+}
+
+//virtual
+void LLPanelWearing::onOpen(const LLSD& /*info*/)
+{
+ if (!mIsInitialized)
+ {
+ // *TODO: I'm not sure is this check necessary but it never match while developing.
+ if (!gInventory.isInventoryUsable())
+ return;
+
+ const LLUUID cof = gInventory.findCategoryUUIDForType(LLFolderType::FT_CURRENT_OUTFIT);
+
+ // *TODO: I'm not sure is this check necessary but it never match while developing.
+ LLViewerInventoryCategory* category = gInventory.getCategory(cof);
+ if (!category)
+ return;
+
+ gInventory.addObserver(mCategoriesObserver);
+
+ // Start observing changes in Current Outfit category.
+ mCategoriesObserver->addCategory(cof, boost::bind(&LLWearableItemsList::updateList, mCOFItemsList, cof));
+
+ // Fetch Current Outfit contents and refresh the list to display
+ // initially fetched items. If not all items are fetched now
+ // the observer will refresh the list as soon as the new items
+ // arrive.
+ category->fetch();
+
+ mCOFItemsList->updateList(cof);
+
+ mIsInitialized = true;
+ }
+}
+
+// virtual
+void LLPanelWearing::setFilterSubString(const std::string& string)
+{
+ sFilterSubString = string;
+ mCOFItemsList->setFilterSubString(sFilterSubString);
+}
+
+// virtual
+bool LLPanelWearing::isActionEnabled(const LLSD& userdata)
+{
+ const std::string command_name = userdata.asString();
+
+ if (command_name == "save_outfit")
+ {
+ bool outfit_locked = LLAppearanceMgr::getInstance()->isOutfitLocked();
+ bool outfit_dirty = LLAppearanceMgr::getInstance()->isOutfitDirty();
+ // allow save only if outfit isn't locked and is dirty
+ return !outfit_locked && outfit_dirty;
+ }
+
+ if (command_name == "take_off")
+ {
+ return hasItemSelected() && canTakeOffSelected();
+ }
+
+ return false;
+}
+
+// virtual
+void LLPanelWearing::showGearMenu(LLView* spawning_view)
+{
+ if (!mGearMenu) return;
+ mGearMenu->show(spawning_view);
+}
+
+boost::signals2::connection LLPanelWearing::setSelectionChangeCallback(commit_callback_t cb)
+{
+ if (!mCOFItemsList) return boost::signals2::connection();
+
+ return mCOFItemsList->setCommitCallback(cb);
+}
+
+void LLPanelWearing::onWearableItemsListRightClick(LLUICtrl* ctrl, S32 x, S32 y)
+{
+ LLWearableItemsList* list = dynamic_cast<LLWearableItemsList*>(ctrl);
+ if (!list) return;
+
+ uuid_vec_t selected_uuids;
+
+ list->getSelectedUUIDs(selected_uuids);
+
+ mContextMenu->show(ctrl, selected_uuids, x, y);
+}
+
+bool LLPanelWearing::hasItemSelected()
+{
+ return mCOFItemsList->getSelectedItem() != NULL;
+}
+
+void LLPanelWearing::getSelectedItemsUUIDs(uuid_vec_t& selected_uuids) const
+{
+ mCOFItemsList->getSelectedUUIDs(selected_uuids);
+}
+
+// EOF
diff --git a/indra/newview/llpanelwearing.h b/indra/newview/llpanelwearing.h
new file mode 100644
index 0000000000..1fa97735b1
--- /dev/null
+++ b/indra/newview/llpanelwearing.h
@@ -0,0 +1,80 @@
+/**
+ * @file llpanelwearing.h
+ * @brief List of agent's worn items.
+ *
+ * $LicenseInfo:firstyear=2010&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_LLPANELWEARING_H
+#define LL_LLPANELWEARING_H
+
+#include "llpanel.h"
+
+// newview
+#include "llpanelappearancetab.h"
+
+class LLInventoryCategoriesObserver;
+class LLListContextMenu;
+class LLWearableItemsList;
+class LLWearingGearMenu;
+
+/**
+ * @class LLPanelWearing
+ *
+ * A list of agents's currently worn items represented by
+ * a flat list view.
+ * Starts fetching necessary inventory content on first opening.
+ */
+class LLPanelWearing : public LLPanelAppearanceTab
+{
+public:
+ LLPanelWearing();
+ virtual ~LLPanelWearing();
+
+ /*virtual*/ BOOL postBuild();
+
+ /*virtual*/ void onOpen(const LLSD& info);
+
+ /*virtual*/ void setFilterSubString(const std::string& string);
+
+ /*virtual*/ bool isActionEnabled(const LLSD& userdata);
+
+ /*virtual*/ void showGearMenu(LLView* spawning_view);
+
+ /*virtual*/ void getSelectedItemsUUIDs(uuid_vec_t& selected_uuids) const;
+
+ boost::signals2::connection setSelectionChangeCallback(commit_callback_t cb);
+
+ bool hasItemSelected();
+
+private:
+ void onWearableItemsListRightClick(LLUICtrl* ctrl, S32 x, S32 y);
+
+ LLInventoryCategoriesObserver* mCategoriesObserver;
+ LLWearableItemsList* mCOFItemsList;
+ LLWearingGearMenu* mGearMenu;
+ LLListContextMenu* mContextMenu;
+
+ bool mIsInitialized;
+};
+
+#endif //LL_LLPANELWEARING_H
diff --git a/indra/newview/llparcelselection.cpp b/indra/newview/llparcelselection.cpp
index 4296bd721c..4d1901adc9 100644
--- a/indra/newview/llparcelselection.cpp
+++ b/indra/newview/llparcelselection.cpp
@@ -2,31 +2,25 @@
* @file llparcelselection.cpp
* @brief Information about the currently selected parcel
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llparcelselection.h b/indra/newview/llparcelselection.h
index 0481bea6f7..1cbdfc6f74 100644
--- a/indra/newview/llparcelselection.h
+++ b/indra/newview/llparcelselection.h
@@ -2,31 +2,25 @@
* @file llparcelselection.h
* @brief Information about the currently selected parcel
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llparticipantlist.cpp b/indra/newview/llparticipantlist.cpp
index 8fe78a0f81..c8aa9ac91e 100644
--- a/indra/newview/llparticipantlist.cpp
+++ b/indra/newview/llparticipantlist.cpp
@@ -2,31 +2,25 @@
* @file llparticipantlist.cpp
* @brief LLParticipantList intended to update view(LLAvatarList) according to incoming messages
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -582,7 +576,7 @@ void LLParticipantList::addAvatarIDExceptAgent(const LLUUID& avatar_id)
else
{
std::string display_name = LLVoiceClient::getInstance()->getDisplayName(avatar_id);
- mAvatarList->addAvalineItem(avatar_id, mSpeakerMgr->getSessionID(), display_name.empty() ? display_name : LLTrans::getString("AvatarNameWaiting"));
+ mAvatarList->addAvalineItem(avatar_id, mSpeakerMgr->getSessionID(), display_name.empty() ? LLTrans::getString("AvatarNameWaiting") : display_name);
mAvalineUpdater->watchAvalineCaller(avatar_id);
}
adjustParticipant(avatar_id);
@@ -695,11 +689,11 @@ void LLParticipantList::LLParticipantListMenu::show(LLView* spawning_view, const
if (is_muted)
{
- LLMenuGL::sMenuContainer->childSetVisible("ModerateVoiceMuteSelected", false);
+ LLMenuGL::sMenuContainer->getChildView("ModerateVoiceMuteSelected")->setVisible( false);
}
else
{
- LLMenuGL::sMenuContainer->childSetVisible("ModerateVoiceUnMuteSelected", false);
+ LLMenuGL::sMenuContainer->getChildView("ModerateVoiceUnMuteSelected")->setVisible( false);
}
}
diff --git a/indra/newview/llparticipantlist.h b/indra/newview/llparticipantlist.h
index 3fe45fa591..722a749d19 100644
--- a/indra/newview/llparticipantlist.h
+++ b/indra/newview/llparticipantlist.h
@@ -2,31 +2,25 @@
* @file llparticipantlist.h
* @brief LLParticipantList intended to update view(LLAvatarList) according to incoming messages
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llpatchvertexarray.cpp b/indra/newview/llpatchvertexarray.cpp
index 4eab931670..dece2928c0 100644
--- a/indra/newview/llpatchvertexarray.cpp
+++ b/indra/newview/llpatchvertexarray.cpp
@@ -2,31 +2,25 @@
* @file llpatchvertexarray.cpp
* @brief Implementation of the LLSurfaceVertexArray class.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llpatchvertexarray.h b/indra/newview/llpatchvertexarray.h
index 62f1e8b28a..721f3f18b1 100644
--- a/indra/newview/llpatchvertexarray.h
+++ b/indra/newview/llpatchvertexarray.h
@@ -2,31 +2,25 @@
* @file llpatchvertexarray.h
* @brief description of Surface class
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llplacesinventorybridge.cpp b/indra/newview/llplacesinventorybridge.cpp
index f59a55cb8b..225ac6e224 100644
--- a/indra/newview/llplacesinventorybridge.cpp
+++ b/indra/newview/llplacesinventorybridge.cpp
@@ -2,31 +2,25 @@
* @file llplacesinventorybridge.cpp
* @brief Implementation of the Inventory-Folder-View-Bridge classes for Places Panel.
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -115,7 +109,7 @@ void LLPlacesFolderBridge::buildContextMenu(LLMenuGL& menu, U32 flags)
// they should be synchronized with Places/My Landmarks/Gear menu. See EXT-1601
// repeat parent functionality
- sSelf = this; // necessary for "New Folder" functionality
+ sSelf = getHandle(); // necessary for "New Folder" functionality
hide_context_entries(menu, items, disabled_items);
}
diff --git a/indra/newview/llplacesinventorybridge.h b/indra/newview/llplacesinventorybridge.h
index 7e5170cc33..52beacef9c 100644
--- a/indra/newview/llplacesinventorybridge.h
+++ b/indra/newview/llplacesinventorybridge.h
@@ -2,31 +2,25 @@
* @file llplacesinventorybridge.h
* @brief Declaration of the Inventory-Folder-View-Bridge classes for Places Panel.
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llplacesinventorypanel.cpp b/indra/newview/llplacesinventorypanel.cpp
index 0930a7be7f..29e262199e 100644
--- a/indra/newview/llplacesinventorypanel.cpp
+++ b/indra/newview/llplacesinventorypanel.cpp
@@ -2,31 +2,25 @@
* @file llplacesinventorypanel.cpp
* @brief LLPlacesInventoryPanel class definition
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llplacesinventorypanel.h b/indra/newview/llplacesinventorypanel.h
index 04c6758eae..6641871a0b 100644
--- a/indra/newview/llplacesinventorypanel.h
+++ b/indra/newview/llplacesinventorypanel.h
@@ -2,31 +2,25 @@
* @file llplacesinventorypanel.h
* @brief LLPlacesInventoryPanel class declaration
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llpolymesh.cpp b/indra/newview/llpolymesh.cpp
index d5a2d66bcf..363b0b8e9d 100644
--- a/indra/newview/llpolymesh.cpp
+++ b/indra/newview/llpolymesh.cpp
@@ -2,31 +2,25 @@
* @file llpolymesh.cpp
* @brief Implementation of LLPolyMesh class
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llpolymesh.h b/indra/newview/llpolymesh.h
index c2e5451dfe..894cd307c4 100644
--- a/indra/newview/llpolymesh.h
+++ b/indra/newview/llpolymesh.h
@@ -2,31 +2,25 @@
* @file llpolymesh.h
* @brief Implementation of LLPolyMesh class
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llpolymorph.cpp b/indra/newview/llpolymorph.cpp
index 80983cad24..0ffe1c635f 100644
--- a/indra/newview/llpolymorph.cpp
+++ b/indra/newview/llpolymorph.cpp
@@ -2,31 +2,25 @@
* @file llpolymorph.cpp
* @brief Implementation of LLPolyMesh class
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llpolymorph.h b/indra/newview/llpolymorph.h
index 01731402df..bc111882b7 100644
--- a/indra/newview/llpolymorph.h
+++ b/indra/newview/llpolymorph.h
@@ -2,31 +2,25 @@
* @file llpolymorph.h
* @brief Implementation of LLPolyMesh class
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llpopupview.cpp b/indra/newview/llpopupview.cpp
index 4523bf2ba4..499b6a8f5f 100644
--- a/indra/newview/llpopupview.cpp
+++ b/indra/newview/llpopupview.cpp
@@ -2,31 +2,25 @@
* @file llpopupview.cpp
* @brief Holds transient popups
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2010, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
#include "llviewerprecompiledheaders.h"
diff --git a/indra/newview/llpopupview.h b/indra/newview/llpopupview.h
index 1ec61d5450..fec4afd79c 100644
--- a/indra/newview/llpopupview.h
+++ b/indra/newview/llpopupview.h
@@ -2,31 +2,25 @@
* @file llpopupview.h
* @brief Holds transient popups
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llpreview.cpp b/indra/newview/llpreview.cpp
index dd31a62642..69542764d2 100644
--- a/indra/newview/llpreview.cpp
+++ b/indra/newview/llpreview.cpp
@@ -2,31 +2,25 @@
* @file llpreview.cpp
* @brief LLPreview class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -149,12 +143,12 @@ void LLPreview::onCommit()
}
LLPointer<LLViewerInventoryItem> new_item = new LLViewerInventoryItem(item);
- new_item->setDescription(childGetText("desc"));
+ new_item->setDescription(getChild<LLUICtrl>("desc")->getValue().asString());
- std::string new_name = childGetText("name");
+ std::string new_name = getChild<LLUICtrl>("name")->getValue().asString();
if ( (new_item->getName() != new_name) && !new_name.empty())
{
- new_item->rename(childGetText("name"));
+ new_item->rename(getChild<LLUICtrl>("name")->getValue().asString());
}
if(mObjectUUID.notNull())
@@ -186,7 +180,7 @@ void LLPreview::onCommit()
{
LLSelectMgr::getInstance()->deselectAll();
LLSelectMgr::getInstance()->addAsIndividual( obj, SELECT_ALL_TES, FALSE );
- LLSelectMgr::getInstance()->selectionSetObjectDescription( childGetText("desc") );
+ LLSelectMgr::getInstance()->selectionSetObjectDescription( getChild<LLUICtrl>("desc")->getValue().asString() );
LLSelectMgr::getInstance()->deselectAll();
}
@@ -232,10 +226,10 @@ void LLPreview::refreshFromItem()
LLUIString title = getString("Title", args);
setTitle(title.getString());
}
- childSetText("desc",item->getDescription());
+ getChild<LLUICtrl>("desc")->setValue(item->getDescription());
BOOL can_agent_manipulate = item->getPermissions().allowModifyBy(gAgent.getID());
- childSetEnabled("desc",can_agent_manipulate);
+ getChildView("desc")->setEnabled(can_agent_manipulate);
}
// static
diff --git a/indra/newview/llpreview.h b/indra/newview/llpreview.h
index 551e247d8c..896e17c3c3 100644
--- a/indra/newview/llpreview.h
+++ b/indra/newview/llpreview.h
@@ -2,31 +2,25 @@
* @file llpreview.h
* @brief LLPreview class definition
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llpreviewanim.cpp b/indra/newview/llpreviewanim.cpp
index 262961b73b..8e8b530e13 100644
--- a/indra/newview/llpreviewanim.cpp
+++ b/indra/newview/llpreviewanim.cpp
@@ -2,31 +2,25 @@
* @file llpreviewanim.cpp
* @brief LLPreviewAnim class implementation
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -49,7 +43,6 @@ extern LLAgent gAgent;
LLPreviewAnim::LLPreviewAnim(const LLSD& key)
: LLPreview( key )
{
- //Called from floater reg: LLUICtrlFactory::getInstance()->buildFloater(this,"floater_preview_animation.xml", FALSE);
}
// static
@@ -60,8 +53,8 @@ void LLPreviewAnim::endAnimCallback( void *userdata )
delete handlep; // done with the handle
if (self)
{
- self->childSetValue("Anim play btn", FALSE);
- self->childSetValue("Anim audition btn", FALSE);
+ self->getChild<LLUICtrl>("Anim play btn")->setValue(FALSE);
+ self->getChild<LLUICtrl>("Anim audition btn")->setValue(FALSE);
}
}
@@ -72,14 +65,14 @@ BOOL LLPreviewAnim::postBuild()
if(item)
{
gAgentAvatarp->createMotion(item->getAssetUUID()); // preload the animation
- childSetText("desc", item->getDescription());
+ getChild<LLUICtrl>("desc")->setValue(item->getDescription());
}
childSetAction("Anim play btn",playAnim, this);
childSetAction("Anim audition btn",auditionAnim, this);
childSetCommitCallback("desc", LLPreview::onText, this);
- childSetPrevalidate("desc", &LLTextValidate::validateASCIIPrintableNoPipe);
+ getChild<LLLineEditor>("desc")->setPrevalidate(&LLTextValidate::validateASCIIPrintableNoPipe);
return LLPreview::postBuild();
}
@@ -121,7 +114,7 @@ void LLPreviewAnim::playAnim( void *userdata )
btn->toggleState();
}
- if (self->childGetValue("Anim play btn").asBoolean() )
+ if (self->getChild<LLUICtrl>("Anim play btn")->getValue().asBoolean() )
{
self->mPauseRequest = NULL;
gAgent.sendAnimationRequest(itemID, ANIM_REQUEST_START);
@@ -155,7 +148,7 @@ void LLPreviewAnim::auditionAnim( void *userdata )
btn->toggleState();
}
- if (self->childGetValue("Anim audition btn").asBoolean() )
+ if (self->getChild<LLUICtrl>("Anim audition btn")->getValue().asBoolean() )
{
self->mPauseRequest = NULL;
gAgentAvatarp->startMotion(item->getAssetUUID());
diff --git a/indra/newview/llpreviewanim.h b/indra/newview/llpreviewanim.h
index 616c5789ac..32e07ee33a 100644
--- a/indra/newview/llpreviewanim.h
+++ b/indra/newview/llpreviewanim.h
@@ -2,31 +2,25 @@
* @file llpreviewanim.h
* @brief LLPreviewAnim class definition
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llpreviewgesture.cpp b/indra/newview/llpreviewgesture.cpp
index ff315d3c53..16284d1a7e 100644
--- a/indra/newview/llpreviewgesture.cpp
+++ b/indra/newview/llpreviewgesture.cpp
@@ -2,31 +2,25 @@
* @file llpreviewgesture.cpp
* @brief Editing UI for inventory-based gestures.
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -317,9 +311,6 @@ LLPreviewGesture::LLPreviewGesture(const LLSD& key)
NONE_LABEL = LLTrans::getString("---");
SHIFT_LABEL = LLTrans::getString("KBShift");
CTRL_LABEL = LLTrans::getString("KBCtrl");
-
- //Called from floater reg: LLUICtrlFactory::getInstance()->buildFloater(this, "floater_preview_gesture.xml", FALSE);
-
}
@@ -482,11 +473,11 @@ BOOL LLPreviewGesture::postBuild()
if (item)
{
- childSetText("desc", item->getDescription());
- childSetPrevalidate("desc", &LLTextValidate::validateASCIIPrintableNoPipe);
+ getChild<LLUICtrl>("desc")->setValue(item->getDescription());
+ getChild<LLLineEditor>("desc")->setPrevalidate(&LLTextValidate::validateASCIIPrintableNoPipe);
- childSetText("name", item->getName());
- childSetPrevalidate("name", &LLTextValidate::validateASCIIPrintableNoPipe);
+ getChild<LLUICtrl>("name")->setValue(item->getName());
+ getChild<LLLineEditor>("name")->setPrevalidate(&LLTextValidate::validateASCIIPrintableNoPipe);
}
return LLPreview::postBuild();
@@ -628,7 +619,7 @@ void LLPreviewGesture::refresh()
if (mPreviewGesture || !is_complete)
{
- childSetEnabled("desc", FALSE);
+ getChildView("desc")->setEnabled(FALSE);
//mDescEditor->setEnabled(FALSE);
mTriggerEditor->setEnabled(FALSE);
mReplaceText->setEnabled(FALSE);
@@ -659,7 +650,7 @@ void LLPreviewGesture::refresh()
BOOL modifiable = item->getPermissions().allowModifyBy(gAgent.getID());
- childSetEnabled("desc", modifiable);
+ getChildView("desc")->setEnabled(modifiable);
mTriggerEditor->setEnabled(TRUE);
mLibraryList->setEnabled(modifiable);
mStepList->setEnabled(modifiable);
@@ -876,6 +867,7 @@ void LLPreviewGesture::onLoadComplete(LLVFS *vfs,
self->mDirty = FALSE;
self->refresh();
+ self->refreshFromItem(); // to update description and title
}
else
{
@@ -1624,7 +1616,17 @@ std::string LLPreviewGesture::getLabel(std::vector<std::string> labels)
result=LLTrans::getString("AnimFlagStart");
}
- result.append(v_labels[1]);
+ // lets localize action value
+ std::string action = v_labels[1];
+ if ("None" == action)
+ {
+ action = LLTrans::getString("GestureActionNone");
+ }
+ else if ("until animations are done" == action)
+ {
+ action = LLFloaterReg::getInstance("preview_gesture")->getChild<LLCheckBoxCtrl>("wait_anim_check")->getLabel();
+ }
+ result.append(action);
return result;
}
diff --git a/indra/newview/llpreviewgesture.h b/indra/newview/llpreviewgesture.h
index b141b14445..fd4fcf9d8f 100644
--- a/indra/newview/llpreviewgesture.h
+++ b/indra/newview/llpreviewgesture.h
@@ -2,31 +2,25 @@
* @file llpreviewgesture.h
* @brief Editing UI for inventory-based gestures.
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llpreviewnotecard.cpp b/indra/newview/llpreviewnotecard.cpp
index fb7ac0d86b..9f3ee6ac5d 100644
--- a/indra/newview/llpreviewnotecard.cpp
+++ b/indra/newview/llpreviewnotecard.cpp
@@ -2,31 +2,25 @@
* @file llpreviewnotecard.cpp
* @brief Implementation of the notecard editor
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -77,7 +71,6 @@ LLPreviewNotecard::LLPreviewNotecard(const LLSD& key) //const LLUUID& item_id,
{
mAssetID = item->getAssetUUID();
}
- //Called from floater reg: LLUICtrlFactory::getInstance()->buildFloater(this,"floater_preview_notecard.xml", FALSE);
}
LLPreviewNotecard::~LLPreviewNotecard()
@@ -91,20 +84,20 @@ BOOL LLPreviewNotecard::postBuild()
ed->makePristine();
childSetAction("Save", onClickSave, this);
- childSetVisible("lock", FALSE);
+ getChildView("lock")->setVisible( FALSE);
childSetAction("Delete", onClickDelete, this);
- childSetEnabled("Delete", false);
+ getChildView("Delete")->setEnabled(false);
const LLInventoryItem* item = getItem();
childSetCommitCallback("desc", LLPreview::onText, this);
if (item)
{
- childSetText("desc", item->getDescription());
- childSetEnabled("Delete", true);
+ getChild<LLUICtrl>("desc")->setValue(item->getDescription());
+ getChildView("Delete")->setEnabled(true);
}
- childSetPrevalidate("desc", &LLTextValidate::validateASCIIPrintableNoPipe);
+ getChild<LLLineEditor>("desc")->setPrevalidate(&LLTextValidate::validateASCIIPrintableNoPipe);
return LLPreview::postBuild();
}
@@ -120,10 +113,10 @@ void LLPreviewNotecard::setEnabled( BOOL enabled )
LLViewerTextEditor* editor = getChild<LLViewerTextEditor>("Notecard Editor");
- childSetEnabled("Notecard Editor", enabled);
- childSetVisible("lock", !enabled);
- childSetEnabled("desc", enabled);
- childSetEnabled("Save", enabled && editor && (!editor->isPristine()));
+ getChildView("Notecard Editor")->setEnabled(enabled);
+ getChildView("lock")->setVisible( !enabled);
+ getChildView("desc")->setEnabled(enabled);
+ getChildView("Save")->setEnabled(enabled && editor && (!editor->isPristine()));
}
@@ -132,7 +125,7 @@ void LLPreviewNotecard::draw()
LLViewerTextEditor* editor = getChild<LLViewerTextEditor>("Notecard Editor");
BOOL changed = !editor->isPristine();
- childSetEnabled("Save", changed && getEnabled());
+ getChildView("Save")->setEnabled(changed && getEnabled());
LLPreview::draw();
}
@@ -283,7 +276,7 @@ void LLPreviewNotecard::loadAsset()
GP_OBJECT_MANIPULATE))
{
editor->setEnabled(FALSE);
- childSetVisible("lock", TRUE);
+ getChildView("lock")->setVisible( TRUE);
}
}
else
diff --git a/indra/newview/llpreviewnotecard.h b/indra/newview/llpreviewnotecard.h
index 98de99aa33..b53c0da6be 100644
--- a/indra/newview/llpreviewnotecard.h
+++ b/indra/newview/llpreviewnotecard.h
@@ -2,31 +2,25 @@
* @file llpreviewnotecard.h
* @brief LLPreviewNotecard class header file
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llpreviewscript.cpp b/indra/newview/llpreviewscript.cpp
index 7b926f468d..cf2ea38288 100644
--- a/indra/newview/llpreviewscript.cpp
+++ b/indra/newview/llpreviewscript.cpp
@@ -2,31 +2,25 @@
* @file llpreviewscript.cpp
* @brief LLPreviewScript class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -144,6 +138,9 @@ public:
LLScriptEdCore* getEditorCore() { return mEditorCore; }
static LLFloaterScriptSearch* getInstance() { return sInstance; }
+ virtual bool hasAccelerators() const;
+ virtual BOOL handleKeyHere(KEY key, MASK mask);
+
private:
LLScriptEdCore* mEditorCore;
@@ -157,7 +154,7 @@ LLFloaterScriptSearch::LLFloaterScriptSearch(LLScriptEdCore* editor_core)
: LLFloater(LLSD()),
mEditorCore(editor_core)
{
- LLUICtrlFactory::getInstance()->buildFloater(this,"floater_script_search.xml", NULL);
+ buildFromFile("floater_script_search.xml");
sInstance = this;
@@ -219,7 +216,7 @@ void LLFloaterScriptSearch::onBtnSearch(void *userdata)
void LLFloaterScriptSearch::handleBtnSearch()
{
LLCheckBoxCtrl* caseChk = getChild<LLCheckBoxCtrl>("case_text");
- mEditorCore->mEditor->selectNext(childGetText("search_text"), caseChk->get());
+ mEditorCore->mEditor->selectNext(getChild<LLUICtrl>("search_text")->getValue().asString(), caseChk->get());
}
// static
@@ -232,7 +229,7 @@ void LLFloaterScriptSearch::onBtnReplace(void *userdata)
void LLFloaterScriptSearch::handleBtnReplace()
{
LLCheckBoxCtrl* caseChk = getChild<LLCheckBoxCtrl>("case_text");
- mEditorCore->mEditor->replaceText(childGetText("search_text"), childGetText("replace_text"), caseChk->get());
+ mEditorCore->mEditor->replaceText(getChild<LLUICtrl>("search_text")->getValue().asString(), getChild<LLUICtrl>("replace_text")->getValue().asString(), caseChk->get());
}
// static
@@ -245,10 +242,27 @@ void LLFloaterScriptSearch::onBtnReplaceAll(void *userdata)
void LLFloaterScriptSearch::handleBtnReplaceAll()
{
LLCheckBoxCtrl* caseChk = getChild<LLCheckBoxCtrl>("case_text");
- mEditorCore->mEditor->replaceTextAll(childGetText("search_text"), childGetText("replace_text"), caseChk->get());
+ mEditorCore->mEditor->replaceTextAll(getChild<LLUICtrl>("search_text")->getValue().asString(), getChild<LLUICtrl>("replace_text")->getValue().asString(), caseChk->get());
}
+bool LLFloaterScriptSearch::hasAccelerators() const
+{
+ if (mEditorCore)
+ {
+ return mEditorCore->hasAccelerators();
+ }
+ return FALSE;
+}
+BOOL LLFloaterScriptSearch::handleKeyHere(KEY key, MASK mask)
+{
+ if (mEditorCore)
+ {
+ return mEditorCore->handleKeyHere(key, mask);
+ }
+
+ return FALSE;
+}
/// ---------------------------------------------------------------------------
/// LLScriptEdCore
@@ -457,7 +471,7 @@ bool LLScriptEdCore::hasChanged()
void LLScriptEdCore::draw()
{
BOOL script_changed = hasChanged();
- childSetEnabled("Save_btn", script_changed);
+ getChildView("Save_btn")->setEnabled(script_changed);
if( mEditor->hasFocus() )
{
@@ -469,11 +483,11 @@ void LLScriptEdCore::draw()
args["[LINE]"] = llformat ("%d", line);
args["[COLUMN]"] = llformat ("%d", column);
cursor_pos = LLTrans::getString("CursorPos", args);
- childSetText("line_col", cursor_pos);
+ getChild<LLUICtrl>("line_col")->setValue(cursor_pos);
}
else
{
- childSetText("line_col", LLStringUtil::null);
+ getChild<LLUICtrl>("line_col")->setValue(LLStringUtil::null);
}
updateDynamicHelp();
@@ -660,13 +674,13 @@ void LLScriptEdCore::onBtnDynamicHelp()
if (!live_help_floater)
{
live_help_floater = new LLFloater(LLSD());
- LLUICtrlFactory::getInstance()->buildFloater(live_help_floater, "floater_lsl_guide.xml", NULL);
+ live_help_floater->buildFromFile("floater_lsl_guide.xml", NULL);
LLFloater* parent = dynamic_cast<LLFloater*>(getParent());
llassert(parent);
if (parent)
parent->addDependentFloater(live_help_floater, TRUE);
live_help_floater->childSetCommitCallback("lock_check", onCheckLock, this);
- live_help_floater->childSetValue("lock_check", gSavedSettings.getBOOL("ScriptHelpFollowsCursor"));
+ live_help_floater->getChild<LLUICtrl>("lock_check")->setValue(gSavedSettings.getBOOL("ScriptHelpFollowsCursor"));
live_help_floater->childSetCommitCallback("history_combo", onHelpComboCommit, this);
live_help_floater->childSetAction("back_btn", onClickBack, this);
live_help_floater->childSetAction("fwd_btn", onClickForward, this);
@@ -948,7 +962,6 @@ LLPreviewLSL::LLPreviewLSL(const LLSD& key )
mPendingUploads(0)
{
mFactoryMap["script panel"] = LLCallbackMap(LLPreviewLSL::createScriptEdPanel, this);
- //Called from floater reg: LLUICtrlFactory::getInstance()->buildFloater(this,"floater_script_preview.xml", FALSE);
}
// virtual
@@ -959,10 +972,10 @@ BOOL LLPreviewLSL::postBuild()
llassert(item);
if (item)
{
- childSetText("desc", item->getDescription());
+ getChild<LLUICtrl>("desc")->setValue(item->getDescription());
}
childSetCommitCallback("desc", LLPreview::onText, this);
- childSetPrevalidate("desc", &LLTextValidate::validateASCIIPrintableNoPipe);
+ getChild<LLLineEditor>("desc")->setPrevalidate(&LLTextValidate::validateASCIIPrintableNoPipe);
return LLPreview::postBuild();
}
@@ -1040,8 +1053,8 @@ void LLPreviewLSL::loadAsset()
mScriptEd->mFunctions->setEnabled(FALSE);
mAssetStatus = PREVIEW_ASSET_LOADED;
}
- childSetVisible("lock", !is_modifiable);
- mScriptEd->childSetEnabled("Insert...", is_modifiable);
+ getChildView("lock")->setVisible( !is_modifiable);
+ mScriptEd->getChildView("Insert...")->setEnabled(is_modifiable);
}
else
{
@@ -1423,20 +1436,19 @@ LLLiveLSLEditor::LLLiveLSLEditor(const LLSD& key) :
mIsNew(false)
{
mFactoryMap["script ed panel"] = LLCallbackMap(LLLiveLSLEditor::createScriptEdPanel, this);
- //Called from floater reg: LLUICtrlFactory::getInstance()->buildFloater(this,"floater_live_lsleditor.xml", FALSE);
}
BOOL LLLiveLSLEditor::postBuild()
{
childSetCommitCallback("running", LLLiveLSLEditor::onRunningCheckboxClicked, this);
- childSetEnabled("running", FALSE);
+ getChildView("running")->setEnabled(FALSE);
childSetAction("Reset",&LLLiveLSLEditor::onReset,this);
- childSetEnabled("Reset", TRUE);
+ getChildView("Reset")->setEnabled(TRUE);
mMonoCheckbox = getChild<LLCheckBoxCtrl>("mono");
childSetCommitCallback("mono", &LLLiveLSLEditor::onMonoCheckboxClicked, this);
- childSetEnabled("mono", FALSE);
+ getChildView("mono")->setEnabled(FALSE);
mScriptEd->mEditor->makePristine();
mScriptEd->mEditor->setFocus(TRUE);
diff --git a/indra/newview/llpreviewscript.h b/indra/newview/llpreviewscript.h
index 9d194c5557..f4b31e5962 100644
--- a/indra/newview/llpreviewscript.h
+++ b/indra/newview/llpreviewscript.h
@@ -2,31 +2,25 @@
* @file llpreviewscript.h
* @brief LLPreviewScript class definition
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -93,6 +87,8 @@ public:
static void onBtnInsertSample(void*);
static void onBtnInsertFunction(LLUICtrl*, void*);
+ virtual bool hasAccelerators() const { return true; }
+
private:
void onBtnHelp();
void onBtnDynamicHelp();
diff --git a/indra/newview/llpreviewsound.cpp b/indra/newview/llpreviewsound.cpp
index 44b828854b..33d2d015ad 100644
--- a/indra/newview/llpreviewsound.cpp
+++ b/indra/newview/llpreviewsound.cpp
@@ -2,31 +2,25 @@
* @file llpreviewsound.cpp
* @brief LLPreviewSound class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -51,7 +45,6 @@ const F32 SOUND_GAIN = 1.0f;
LLPreviewSound::LLPreviewSound(const LLSD& key)
: LLPreview( key )
{
- //Called from floater reg: LLUICtrlFactory::getInstance()->buildFloater(this,"floater_preview_sound.xml", FALSE);
}
// virtual
@@ -60,7 +53,7 @@ BOOL LLPreviewSound::postBuild()
const LLInventoryItem* item = getItem();
if (item)
{
- childSetText("desc", item->getDescription());
+ getChild<LLUICtrl>("desc")->setValue(item->getDescription());
if (gAudiop)
gAudiop->preloadSound(item->getAssetUUID()); // preload the sound
}
@@ -75,7 +68,7 @@ BOOL LLPreviewSound::postBuild()
button->setSoundFlags(LLView::SILENT);
childSetCommitCallback("desc", LLPreview::onText, this);
- childSetPrevalidate("desc", &LLTextValidate::validateASCIIPrintableNoPipe);
+ getChild<LLLineEditor>("desc")->setPrevalidate(&LLTextValidate::validateASCIIPrintableNoPipe);
return LLPreview::postBuild();
}
diff --git a/indra/newview/llpreviewsound.h b/indra/newview/llpreviewsound.h
index c4bf8c9a30..0453bfd936 100644
--- a/indra/newview/llpreviewsound.h
+++ b/indra/newview/llpreviewsound.h
@@ -2,31 +2,25 @@
* @file llpreviewsound.h
* @brief LLPreviewSound class definition
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llpreviewtexture.cpp b/indra/newview/llpreviewtexture.cpp
index 22a1ef94a7..fd6b326ef1 100644
--- a/indra/newview/llpreviewtexture.cpp
+++ b/indra/newview/llpreviewtexture.cpp
@@ -2,31 +2,25 @@
* @file llpreviewtexture.cpp
* @brief LLPreviewTexture class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -75,23 +69,25 @@ LLPreviewTexture::LLPreviewTexture(const LLSD& key)
mLastWidth(0),
mAspectRatio(0.f),
mPreviewToSave(FALSE),
- mImage(NULL)
+ mImage(NULL),
+ mImageOldBoostLevel(LLViewerTexture::BOOST_NONE)
{
updateImageID();
if (key.has("save_as"))
{
mPreviewToSave = TRUE;
}
- //Called from floater reg: LLUICtrlFactory::getInstance()->buildFloater(this, "floater_preview_texture.xml", FALSE);
}
LLPreviewTexture::~LLPreviewTexture()
{
+ LLLoadedCallbackEntry::cleanUpCallbackList(&mCallbackTextureList) ;
+
if( mLoadingFullImage )
{
getWindow()->decBusyCount();
}
-
+ mImage->setBoostLevel(mImageOldBoostLevel);
mImage = NULL;
}
@@ -102,7 +98,7 @@ BOOL LLPreviewTexture::postBuild()
{
getChild<LLButton>("Keep")->setLabel(getString("Copy"));
childSetAction("Keep",LLPreview::onBtnCopyToInv,this);
- childSetVisible("Discard", false);
+ getChildView("Discard")->setVisible( false);
}
else if (mShowKeepDiscard)
{
@@ -111,13 +107,13 @@ BOOL LLPreviewTexture::postBuild()
}
else
{
- childSetVisible("Keep", false);
- childSetVisible("Discard", false);
+ getChildView("Keep")->setVisible( false);
+ getChildView("Discard")->setVisible( false);
}
childSetAction("save_tex_btn", LLPreviewTexture::onSaveAsBtn, this);
- childSetVisible("save_tex_btn", true);
- childSetEnabled("save_tex_btn", canSaveAs());
+ getChildView("save_tex_btn")->setVisible( true);
+ getChildView("save_tex_btn")->setEnabled(canSaveAs());
if (!mCopyToInv)
{
@@ -126,8 +122,8 @@ BOOL LLPreviewTexture::postBuild()
if (item)
{
childSetCommitCallback("desc", LLPreview::onText, this);
- childSetText("desc", item->getDescription());
- childSetPrevalidate("desc", &LLTextValidate::validateASCIIPrintableNoPipe);
+ getChild<LLUICtrl>("desc")->setValue(item->getDescription());
+ getChild<LLLineEditor>("desc")->setPrevalidate(&LLTextValidate::validateASCIIPrintableNoPipe);
}
}
@@ -278,7 +274,7 @@ void LLPreviewTexture::saveAs()
mLoadingFullImage = TRUE;
getWindow()->incBusyCount();
mImage->setLoadedCallback( LLPreviewTexture::onFileLoadedForSave,
- 0, TRUE, FALSE, new LLUUID( mItemUUID ) );
+ 0, TRUE, FALSE, new LLUUID( mItemUUID ), &mCallbackTextureList );
}
// virtual
@@ -286,8 +282,7 @@ void LLPreviewTexture::reshape(S32 width, S32 height, BOOL called_from_parent)
{
LLPreview::reshape(width, height, called_from_parent);
- LLRect dim_rect;
- childGetRect("dimensions", dim_rect);
+ LLRect dim_rect(getChildView("dimensions")->getRect());
S32 horiz_pad = 2 * (LLPANEL_BORDER_WIDTH + PREVIEW_PAD) + PREVIEW_RESIZE_HANDLE_SIZE;
@@ -409,12 +404,11 @@ void LLPreviewTexture::updateDimensions()
mUpdateDimensions = FALSE;
- childSetTextArg("dimensions", "[WIDTH]", llformat("%d", mImage->getFullWidth()));
- childSetTextArg("dimensions", "[HEIGHT]", llformat("%d", mImage->getFullHeight()));
+ getChild<LLUICtrl>("dimensions")->setTextArg("[WIDTH]", llformat("%d", mImage->getFullWidth()));
+ getChild<LLUICtrl>("dimensions")->setTextArg("[HEIGHT]", llformat("%d", mImage->getFullHeight()));
- LLRect dim_rect;
- childGetRect("dimensions", dim_rect);
+ LLRect dim_rect(getChildView("dimensions")->getRect());
S32 horiz_pad = 2 * (LLPANEL_BORDER_WIDTH + PREVIEW_PAD) + PREVIEW_RESIZE_HANDLE_SIZE;
@@ -488,9 +482,8 @@ void LLPreviewTexture::updateDimensions()
// Hide the aspect ratio label if the window is too narrow
// Assumes the label should be to the right of the dimensions
- LLRect aspect_label_rect;
- childGetRect("aspect_ratio", aspect_label_rect);
- childSetVisible("aspect_ratio", dim_rect.mRight < aspect_label_rect.mLeft);
+ LLRect aspect_label_rect(getChildView("aspect_ratio")->getRect());
+ getChildView("aspect_ratio")->setVisible( dim_rect.mRight < aspect_label_rect.mLeft);
}
@@ -541,12 +534,13 @@ void LLPreviewTexture::onAspectRatioCommit(LLUICtrl* ctrl, void* userdata)
void LLPreviewTexture::loadAsset()
{
mImage = LLViewerTextureManager::getFetchedTexture(mImageID, MIPMAP_TRUE, LLViewerTexture::BOOST_NONE, LLViewerTexture::LOD_TEXTURE);
+ mImageOldBoostLevel = mImage->getBoostLevel();
mImage->setBoostLevel(LLViewerTexture::BOOST_PREVIEW);
mImage->forceToSaveRawImage(0) ;
mAssetStatus = PREVIEW_ASSET_LOADING;
mUpdateDimensions = TRUE;
updateDimensions();
- childSetEnabled("save_tex_btn", canSaveAs());
+ getChildView("save_tex_btn")->setEnabled(canSaveAs());
}
LLPreview::EAssetStatus LLPreviewTexture::getAssetStatus()
diff --git a/indra/newview/llpreviewtexture.h b/indra/newview/llpreviewtexture.h
index 7cd2adad56..cd16bacde2 100644
--- a/indra/newview/llpreviewtexture.h
+++ b/indra/newview/llpreviewtexture.h
@@ -2,31 +2,25 @@
* @file llpreviewtexture.h
* @brief LLPreviewTexture class definition
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -82,9 +76,10 @@ private:
void updateDimensions();
LLUUID mImageID;
LLPointer<LLViewerFetchedTexture> mImage;
- BOOL mLoadingFullImage;
+ S32 mImageOldBoostLevel;
std::string mSaveFileName;
LLFrameTimer mSavedFileTimer;
+ BOOL mLoadingFullImage;
BOOL mShowKeepDiscard;
BOOL mCopyToInv;
@@ -94,10 +89,11 @@ private:
// This is stored off in a member variable, because the save-as
// button and drag and drop functionality need to know.
BOOL mIsCopyable;
-
+ BOOL mUpdateDimensions;
S32 mLastHeight;
S32 mLastWidth;
- F32 mAspectRatio;
- BOOL mUpdateDimensions;
+ F32 mAspectRatio;
+
+ LLLoadedCallbackEntry::source_callback_list_t mCallbackTextureList ;
};
#endif // LL_LLPREVIEWTEXTURE_H
diff --git a/indra/newview/llproductinforequest.cpp b/indra/newview/llproductinforequest.cpp
index eda8cb659e..93bf8b2328 100644
--- a/indra/newview/llproductinforequest.cpp
+++ b/indra/newview/llproductinforequest.cpp
@@ -3,31 +3,25 @@
* @author Kent Quirk
* @brief Get region type descriptions (translation from SKU to description)
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llproductinforequest.h b/indra/newview/llproductinforequest.h
index 354f04e8cf..fe8f7093b0 100644
--- a/indra/newview/llproductinforequest.h
+++ b/indra/newview/llproductinforequest.h
@@ -3,31 +3,25 @@
* @author Kent Quirk
* @brief Get region type descriptions (translation from SKU to description)
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llprogressview.cpp b/indra/newview/llprogressview.cpp
index 9b5e38d0aa..e9504cbba0 100644
--- a/indra/newview/llprogressview.cpp
+++ b/indra/newview/llprogressview.cpp
@@ -2,31 +2,25 @@
* @file llprogressview.cpp
* @brief LLProgressView class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -47,6 +41,7 @@
#include "llagent.h"
#include "llbutton.h"
#include "llfocusmgr.h"
+#include "llnotifications.h"
#include "llprogressbar.h"
#include "llstartup.h"
#include "llviewercontrol.h"
@@ -96,6 +91,8 @@ BOOL LLProgressView::postBuild()
// hidden initially, until we need it
LLPanel::setVisible(FALSE);
+ LLNotifications::instance().getChannel("AlertModal")->connectChanged(boost::bind(&LLProgressView::onAlertModal, this, _1));
+
sInstance = this;
return TRUE;
}
@@ -134,15 +131,10 @@ void LLProgressView::setVisible(BOOL visible)
if (getVisible() && !visible)
{
mFadeTimer.start();
- // hiding progress view, so show menu bars
- LLUI::getRootView()->getChildView("menu_bar_holder")->setVisible(TRUE);
}
// showing progress view
else if (!getVisible() && visible)
{
- // showing progress view, so hide menu bars
- LLUI::getRootView()->getChildView("menu_bar_holder")->setVisible(FALSE);
-
setFocus(TRUE);
mFadeTimer.stop();
mProgressTimer.start();
@@ -300,3 +292,18 @@ bool LLProgressView::handleUpdate(const LLSD& event_data)
}
return false;
}
+
+bool LLProgressView::onAlertModal(const LLSD& notify)
+{
+ // if the progress view is visible, it will obscure the notification window
+ // in this case, we want to auto-accept WebLaunchExternalTarget notifications
+ if (isInVisibleChain() && notify["sigtype"].asString() == "add")
+ {
+ LLNotificationPtr notifyp = LLNotifications::instance().find(notify["id"].asUUID());
+ if (notifyp && notifyp->getName() == "WebLaunchExternalTarget")
+ {
+ notifyp->respondWithDefault();
+ }
+ }
+ return false;
+}
diff --git a/indra/newview/llprogressview.h b/indra/newview/llprogressview.h
index 374b14be83..be1744f08a 100644
--- a/indra/newview/llprogressview.h
+++ b/indra/newview/llprogressview.h
@@ -2,31 +2,25 @@
* @file llprogressview.h
* @brief LLProgressView class definition
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -65,6 +59,7 @@ public:
static void onCancelButtonClicked( void* );
static void onClickMessage(void*);
+ bool onAlertModal(const LLSD& sd);
protected:
LLProgressBar* mProgressBar;
diff --git a/indra/newview/llrecentpeople.cpp b/indra/newview/llrecentpeople.cpp
index 62c2ddfd9f..959fd51bbf 100644
--- a/indra/newview/llrecentpeople.cpp
+++ b/indra/newview/llrecentpeople.cpp
@@ -2,31 +2,25 @@
* @file llrecentpeople.cpp
* @brief List of people with which the user has recently interacted.
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llrecentpeople.h b/indra/newview/llrecentpeople.h
index c718997f7e..852a92ff80 100644
--- a/indra/newview/llrecentpeople.h
+++ b/indra/newview/llrecentpeople.h
@@ -2,31 +2,25 @@
* @file llrecentpeople.h
* @brief List of people with which the user has recently interacted.
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llregionposition.cpp b/indra/newview/llregionposition.cpp
index d0920c5756..32c271b2b8 100644
--- a/indra/newview/llregionposition.cpp
+++ b/indra/newview/llregionposition.cpp
@@ -2,31 +2,25 @@
* @file llregionposition.cpp
* @brief Region position storing class definition
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llregionposition.h b/indra/newview/llregionposition.h
index 8c9dd1ea00..8f72fa2e4e 100644
--- a/indra/newview/llregionposition.h
+++ b/indra/newview/llregionposition.h
@@ -2,31 +2,25 @@
* @file llregionposition.h
* @brief Region position storing class definition
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llremoteparcelrequest.cpp b/indra/newview/llremoteparcelrequest.cpp
index 95e3dd6d78..d63a48647d 100644
--- a/indra/newview/llremoteparcelrequest.cpp
+++ b/indra/newview/llremoteparcelrequest.cpp
@@ -4,31 +4,25 @@
* @brief Get information about a parcel you aren't standing in to display
* landmark/teleport information.
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -36,7 +30,6 @@
#include "message.h"
-#include "llpanelplace.h"
#include "llpanel.h"
#include "llhttpclient.h"
#include "llsdserialize.h"
diff --git a/indra/newview/llremoteparcelrequest.h b/indra/newview/llremoteparcelrequest.h
index c04f6b1858..a6c62995a9 100644
--- a/indra/newview/llremoteparcelrequest.h
+++ b/indra/newview/llremoteparcelrequest.h
@@ -4,31 +4,25 @@
* @brief Get information about a parcel you aren't standing in to display
* landmark/teleport information.
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llresourcedata.h b/indra/newview/llresourcedata.h
index b4b9042689..28b97ed130 100644
--- a/indra/newview/llresourcedata.h
+++ b/indra/newview/llresourcedata.h
@@ -2,31 +2,25 @@
* @file llresourcedata.h
* @brief Tracking object for uploads.
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llrootview.h b/indra/newview/llrootview.h
index 38029e3a9d..4b1ba15a0b 100644
--- a/indra/newview/llrootview.h
+++ b/indra/newview/llrootview.h
@@ -2,31 +2,25 @@
* @file llrootview.h
* @brief Mother of all Views
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llsavedsettingsglue.cpp b/indra/newview/llsavedsettingsglue.cpp
index 4736afa7ba..37b576814d 100644
--- a/indra/newview/llsavedsettingsglue.cpp
+++ b/indra/newview/llsavedsettingsglue.cpp
@@ -3,31 +3,25 @@
* @author James Cook
* @brief LLSavedSettingsGlue class implementation
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llsavedsettingsglue.h b/indra/newview/llsavedsettingsglue.h
index 6c8662dd58..e8c6a7dbdb 100644
--- a/indra/newview/llsavedsettingsglue.h
+++ b/indra/newview/llsavedsettingsglue.h
@@ -3,31 +3,25 @@
* @author James Cook
* @brief LLSavedSettingsGlue class definition
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llsaveoutfitcombobtn.cpp b/indra/newview/llsaveoutfitcombobtn.cpp
index 9518b0cbb3..cbad85cfd3 100644
--- a/indra/newview/llsaveoutfitcombobtn.cpp
+++ b/indra/newview/llsaveoutfitcombobtn.cpp
@@ -2,31 +2,25 @@
* @file llsaveoutfitcombobtn.cpp
* @brief Represents outfit save/save as combo button.
*
- * $LicenseInfo:firstyear=2010&license=viewergpl$
- *
- * Copyright (c) 2010, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2010&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -94,5 +88,5 @@ void LLSaveOutfitComboBtn::setMenuItemEnabled(const std::string& item, bool enab
void LLSaveOutfitComboBtn::setSaveBtnEnabled(bool enabled)
{
- mParent->childSetEnabled(SAVE_BTN, enabled);
+ mParent->getChildView(SAVE_BTN)->setEnabled(enabled);
}
diff --git a/indra/newview/llsaveoutfitcombobtn.h b/indra/newview/llsaveoutfitcombobtn.h
index fec7122194..3987a99f51 100644
--- a/indra/newview/llsaveoutfitcombobtn.h
+++ b/indra/newview/llsaveoutfitcombobtn.h
@@ -2,31 +2,25 @@
* @file llsaveoutfitcombobtn.h
* @brief Represents outfit save/save as combo button.
*
- * $LicenseInfo:firstyear=2010&license=viewergpl$
- *
- * Copyright (c) 2010, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2010&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llscreenchannel.cpp b/indra/newview/llscreenchannel.cpp
index de1da248c1..5c923a0409 100644
--- a/indra/newview/llscreenchannel.cpp
+++ b/indra/newview/llscreenchannel.cpp
@@ -2,31 +2,25 @@
* @file llscreenchannel.cpp
* @brief Class implements a channel on a screen in which appropriate toasts may appear.
*
- * $LicenseInfo:firstyear=2000&license=viewergpl$
- *
- * Copyright (c) 2000-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2000&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -47,6 +41,7 @@
#include "llsyswellwindow.h"
#include "llimfloater.h"
#include "llscriptfloater.h"
+#include "llsidetray.h"
#include <algorithm>
@@ -58,6 +53,7 @@ bool LLScreenChannel::mWasStartUpToastShown = false;
//////////////////////
// LLScreenChannelBase
//////////////////////
+
LLScreenChannelBase::LLScreenChannelBase(const LLUUID& id) :
mToastAlignment(NA_BOTTOM)
,mCanStoreToasts(true)
@@ -68,6 +64,7 @@ LLScreenChannelBase::LLScreenChannelBase(const LLUUID& id) :
{
mID = id;
mWorldViewRectConnection = gViewerWindow->setOnWorldViewRectUpdated(boost::bind(&LLScreenChannelBase::updatePositionAndSize, this, _1, _2));
+
setMouseOpaque( false );
setVisible(FALSE);
}
@@ -86,11 +83,30 @@ bool LLScreenChannelBase::isHovering()
return mHoveredToast->isHovered();
}
+bool LLScreenChannelBase::resetPositionAndSize(const LLSD& newvalue)
+{
+ LLRect rc = gViewerWindow->getWorldViewRectScaled();
+ updatePositionAndSize(rc, rc);
+ return true;
+}
+
void LLScreenChannelBase::updatePositionAndSize(LLRect old_world_rect, LLRect new_world_rect)
{
- S32 top_delta = old_world_rect.mTop - new_world_rect.mTop;
- S32 right_delta = old_world_rect.mRight - new_world_rect.mRight;
+ /*
+ take sidetray into account - screenchannel should not overlap sidetray
+ */
+ S32 world_rect_padding = 0;
+ if (gSavedSettings.getBOOL("SidebarCameraMovement") == FALSE
+ && LLSideTray::instanceCreated ())
+ {
+ LLSideTray* side_bar = LLSideTray::getInstance();
+
+ if (side_bar->getVisible() && !side_bar->getCollapsed())
+ world_rect_padding += side_bar->getRect().getWidth();
+ }
+
+ S32 top_delta = old_world_rect.mTop - new_world_rect.mTop;
LLRect this_rect = getRect();
this_rect.mTop -= top_delta;
@@ -99,11 +115,13 @@ void LLScreenChannelBase::updatePositionAndSize(LLRect old_world_rect, LLRect ne
case CA_LEFT :
break;
case CA_CENTRE :
- this_rect.setCenterAndSize(new_world_rect.getWidth() / 2, new_world_rect.getHeight() / 2, this_rect.getWidth(), this_rect.getHeight());
+ this_rect.setCenterAndSize( (new_world_rect.getWidth() - world_rect_padding) / 2, new_world_rect.getHeight() / 2, this_rect.getWidth(), this_rect.getHeight());
break;
case CA_RIGHT :
- this_rect.mLeft -= right_delta;
- this_rect.mRight -= right_delta;
+ this_rect.setLeftTopAndSize(new_world_rect.mRight - world_rect_padding - this_rect.getWidth(),
+ this_rect.mTop,
+ this_rect.getWidth(),
+ this_rect.getHeight());
}
setRect(this_rect);
redrawToasts();
@@ -112,6 +130,12 @@ void LLScreenChannelBase::updatePositionAndSize(LLRect old_world_rect, LLRect ne
void LLScreenChannelBase::init(S32 channel_left, S32 channel_right)
{
+ if(LLSideTray::instanceCreated())
+ {
+ LLSideTray* side_bar = LLSideTray::getInstance();
+ side_bar->getCollapseSignal().connect(boost::bind(&LLScreenChannelBase::resetPositionAndSize, this, _2));
+ }
+
S32 channel_top = gViewerWindow->getWorldViewRectScaled().getHeight();
S32 channel_bottom = gViewerWindow->getWorldViewRectScaled().mBottom + gSavedSettings.getS32("ChannelBottomPanelMargin");
setRect(LLRect(channel_left, channel_top, channel_right, channel_bottom));
@@ -173,7 +197,20 @@ std::list<LLToast*> LLScreenChannel::findToasts(const Matcher& matcher)
//--------------------------------------------------------------------------
void LLScreenChannel::updatePositionAndSize(LLRect old_world_rect, LLRect new_world_rect)
{
- S32 right_delta = old_world_rect.mRight - new_world_rect.mRight;
+ /*
+ take sidetray into account - screenchannel should not overlap sidetray
+ */
+ S32 world_rect_padding = 0;
+ if (gSavedSettings.getBOOL("SidebarCameraMovement") == FALSE
+ && LLSideTray::instanceCreated ())
+ {
+ LLSideTray* side_bar = LLSideTray::getInstance();
+
+ if (side_bar->getVisible() && !side_bar->getCollapsed())
+ world_rect_padding += side_bar->getRect().getWidth();
+ }
+
+
LLRect this_rect = getRect();
switch(mChannelAlignment)
@@ -186,8 +223,10 @@ void LLScreenChannel::updatePositionAndSize(LLRect old_world_rect, LLRect new_wo
return;
case CA_RIGHT :
this_rect.mTop = (S32) (new_world_rect.getHeight() * getHeightRatio());
- this_rect.mLeft -= right_delta;
- this_rect.mRight -= right_delta;
+ this_rect.setLeftTopAndSize(new_world_rect.mRight - world_rect_padding - this_rect.getWidth(),
+ this_rect.mTop,
+ this_rect.getWidth(),
+ this_rect.getHeight());
}
setRect(this_rect);
redrawToasts();
@@ -252,6 +291,12 @@ void LLScreenChannel::onToastDestroyed(LLToast* toast)
{
mStoredToastList.erase(it);
}
+
+ // if destroyed toast is hovered - reset hovered
+ if (mHoveredToast == toast)
+ {
+ mHoveredToast = NULL;
+ }
}
diff --git a/indra/newview/llscreenchannel.h b/indra/newview/llscreenchannel.h
index 46c5fed7b6..6cf6d97550 100644
--- a/indra/newview/llscreenchannel.h
+++ b/indra/newview/llscreenchannel.h
@@ -2,31 +2,25 @@
* @file llscreenchannel.h
* @brief Class implements a channel on a screen in which appropriate toasts may appear.
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -65,6 +59,8 @@ public:
// Channel's outfit-functions
// update channel's size and position in the World View
virtual void updatePositionAndSize(LLRect old_world_rect, LLRect new_world_rect);
+
+ bool resetPositionAndSize(const LLSD& newvalue);
// initialization of channel's shape and position
virtual void init(S32 channel_left, S32 channel_right);
diff --git a/indra/newview/llscriptfloater.cpp b/indra/newview/llscriptfloater.cpp
index b68fc3b002..2334f0cde5 100644
--- a/indra/newview/llscriptfloater.cpp
+++ b/indra/newview/llscriptfloater.cpp
@@ -2,36 +2,31 @@
* @file llscriptfloater.cpp
* @brief LLScriptFloater class definition
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
#include "llviewerprecompiledheaders.h"
#include "llscriptfloater.h"
+#include "llagentcamera.h"
#include "llbottomtray.h"
#include "llchannelmanager.h"
@@ -71,6 +66,7 @@ LLScriptFloater::LLScriptFloater(const LLSD& key)
{
setMouseDownCallback(boost::bind(&LLScriptFloater::onMouseDown, this));
setOverlapsScreenChannel(true);
+ mIsDockedStateForcedCallback = boost::bind(&LLAgentCamera::cameraMouselook, &gAgentCamera);
}
bool LLScriptFloater::toggle(const LLUUID& notification_id)
@@ -176,7 +172,15 @@ void LLScriptFloater::onClose(bool app_quitting)
if(getNotificationId().notNull())
{
- LLScriptFloaterManager::getInstance()->onRemoveNotification(getNotificationId());
+ // we shouldn't kill notification on exit since it may be used as persistent.
+ if (app_quitting)
+ {
+ LLScriptFloaterManager::getInstance()->onRemoveNotification(getNotificationId());
+ }
+ else
+ {
+ LLScriptFloaterManager::getInstance()->removeNotification(getNotificationId());
+ }
}
}
@@ -352,7 +356,7 @@ void LLScriptFloaterManager::onAddNotification(const LLUUID& notification_id)
set_new_message |= !floater->hasFocus();
}
- onRemoveNotification(it->first);
+ removeNotification(it->first);
}
}
@@ -379,6 +383,17 @@ void LLScriptFloaterManager::onAddNotification(const LLUUID& notification_id)
toggleScriptFloater(notification_id, set_new_message);
}
+void LLScriptFloaterManager::removeNotification(const LLUUID& notification_id)
+{
+ LLNotificationPtr notification = LLNotifications::instance().find(notification_id);
+ if (notification != NULL && !notification->isCancelled())
+ {
+ LLNotificationsUtil::cancel(notification);
+ }
+
+ onRemoveNotification(notification_id);
+}
+
void LLScriptFloaterManager::onRemoveNotification(const LLUUID& notification_id)
{
if(notification_id.isNull())
@@ -392,6 +407,8 @@ void LLScriptFloaterManager::onRemoveNotification(const LLUUID& notification_id)
LLIMWellWindow::getInstance()->removeObjectRow(notification_id);
+ mNotifications.erase(notification_id);
+
// close floater
LLScriptFloater* floater = LLFloaterReg::findTypedInstance<LLScriptFloater>("script_floater", notification_id);
if(floater)
@@ -400,8 +417,6 @@ void LLScriptFloaterManager::onRemoveNotification(const LLUUID& notification_id)
floater->setNotificationId(LLUUID::null);
floater->closeFloater();
}
-
- mNotifications.erase(notification_id);
}
void LLScriptFloaterManager::toggleScriptFloater(const LLUUID& notification_id, bool set_new_message)
diff --git a/indra/newview/llscriptfloater.h b/indra/newview/llscriptfloater.h
index dc0cfc2400..da70bb4334 100644
--- a/indra/newview/llscriptfloater.h
+++ b/indra/newview/llscriptfloater.h
@@ -2,31 +2,25 @@
* @file llscriptfloater.h
* @brief LLScriptFloater class definition
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -65,6 +59,11 @@ public:
void onAddNotification(const LLUUID& notification_id);
/**
+ * Removes notification.
+ */
+ void removeNotification(const LLUUID& notification_id);
+
+ /**
* Handles notification removal.
* Removes script notification toast, removes script chiclet, closes script floater
*/
diff --git a/indra/newview/llscrollingpanelparam.cpp b/indra/newview/llscrollingpanelparam.cpp
index 6f5238f0a1..05b273cd29 100644
--- a/indra/newview/llscrollingpanelparam.cpp
+++ b/indra/newview/llscrollingpanelparam.cpp
@@ -2,31 +2,25 @@
* @file llscrollingpanelparam.cpp
* @brief UI panel for a list of visual param panels
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -62,7 +56,7 @@ LLScrollingPanelParam::LLScrollingPanelParam( const LLPanel::Params& panel_param
mAllowModify(allow_modify),
mWearable(wearable)
{
- LLUICtrlFactory::getInstance()->buildPanel(this, "panel_scrolling_param.xml");
+ buildFromFile( "panel_scrolling_param.xml");
// *HACK To avoid hard coding texture position, lets use border's position for texture.
LLViewBorder* left_border = getChild<LLViewBorder>("left_border");
@@ -79,17 +73,17 @@ LLScrollingPanelParam::LLScrollingPanelParam( const LLPanel::Params& panel_param
mHintMin->setAllowsUpdates( FALSE );
mHintMax->setAllowsUpdates( FALSE );
- childSetValue("param slider", weightToPercent(param->getWeight()));
+ getChild<LLUICtrl>("param slider")->setValue(weightToPercent(param->getWeight()));
std::string display_name = LLTrans::getString(param->getDisplayName());
- childSetLabelArg("param slider", "[DESC]", display_name);
- childSetEnabled("param slider", mAllowModify);
+ getChild<LLUICtrl>("param slider")->setLabelArg("[DESC]", display_name);
+ getChildView("param slider")->setEnabled(mAllowModify);
childSetCommitCallback("param slider", LLScrollingPanelParam::onSliderMoved, this);
std::string min_name = LLTrans::getString(param->getMinDisplayName());
std::string max_name = LLTrans::getString(param->getMaxDisplayName());
- childSetValue("min param text", min_name);
- childSetValue("max param text", max_name);
+ getChild<LLUICtrl>("min param text")->setValue(min_name);
+ getChild<LLUICtrl>("max param text")->setValue(max_name);
LLButton* less = getChild<LLButton>("less");
if (less)
@@ -126,14 +120,14 @@ void LLScrollingPanelParam::updatePanel(BOOL allow_modify)
return;
}
F32 current_weight = mWearable->getVisualParamWeight( param->getID() );
- childSetValue("param slider", weightToPercent( current_weight ) );
+ getChild<LLUICtrl>("param slider")->setValue(weightToPercent( current_weight ) );
mHintMin->requestUpdate( sUpdateDelayFrames++ );
mHintMax->requestUpdate( sUpdateDelayFrames++ );
mAllowModify = allow_modify;
- childSetEnabled("param slider", mAllowModify);
- childSetEnabled("less", mAllowModify);
- childSetEnabled("more", mAllowModify);
+ getChildView("param slider")->setEnabled(mAllowModify);
+ getChildView("less")->setEnabled(mAllowModify);
+ getChildView("more")->setEnabled(mAllowModify);
}
void LLScrollingPanelParam::setVisible( BOOL visible )
@@ -159,16 +153,16 @@ void LLScrollingPanelParam::draw()
return;
}
- childSetVisible("less", mHintMin->getVisible());
- childSetVisible("more", mHintMax->getVisible());
+ getChildView("less")->setVisible( mHintMin->getVisible());
+ getChildView("more")->setVisible( mHintMax->getVisible());
// hide borders if texture has been loaded
- childSetVisible("left_border", !mHintMin->getVisible());
- childSetVisible("right_border", !mHintMax->getVisible());
+ getChildView("left_border")->setVisible( !mHintMin->getVisible());
+ getChildView("right_border")->setVisible( !mHintMax->getVisible());
// Draw all the children except for the labels
- childSetVisible( "min param text", FALSE );
- childSetVisible( "max param text", FALSE );
+ getChildView("min param text")->setVisible( FALSE );
+ getChildView("max param text")->setVisible( FALSE );
LLPanel::draw();
// Draw the hints over the "less" and "more" buttons.
@@ -190,10 +184,10 @@ void LLScrollingPanelParam::draw()
// Draw labels on top of the buttons
- childSetVisible( "min param text", TRUE );
+ getChildView("min param text")->setVisible( TRUE );
drawChild(getChild<LLView>("min param text"));
- childSetVisible( "max param text", TRUE );
+ getChildView("max param text")->setVisible( TRUE );
drawChild(getChild<LLView>("max param text"));
}
@@ -209,6 +203,7 @@ void LLScrollingPanelParam::onSliderMoved(LLUICtrl* ctrl, void* userdata)
if (current_weight != new_weight )
{
self->mWearable->setVisualParamWeight( param->getID(), new_weight, FALSE );
+ self->mWearable->writeToAvatar();
gAgentAvatarp->updateVisualParams();
}
}
@@ -298,6 +293,7 @@ void LLScrollingPanelParam::onHintHeldDown( LLVisualParamHint* hint )
&& new_percent < slider->getMaxValue())
{
mWearable->setVisualParamWeight( hint->getVisualParam()->getID(), new_weight, FALSE);
+ mWearable->writeToAvatar();
gAgentAvatarp->updateVisualParams();
slider->setValue( weightToPercent( new_weight ) );
@@ -330,6 +326,7 @@ void LLScrollingPanelParam::onHintMinMouseUp( void* userdata )
&& new_percent < slider->getMaxValue())
{
self->mWearable->setVisualParamWeight(hint->getVisualParam()->getID(), new_weight, FALSE);
+ self->mWearable->writeToAvatar();
slider->setValue( self->weightToPercent( new_weight ) );
}
}
@@ -363,6 +360,7 @@ void LLScrollingPanelParam::onHintMaxMouseUp( void* userdata )
&& new_percent < slider->getMaxValue())
{
self->mWearable->setVisualParamWeight(hint->getVisualParam()->getID(), new_weight, FALSE);
+ self->mWearable->writeToAvatar();
slider->setValue( self->weightToPercent( new_weight ) );
}
}
diff --git a/indra/newview/llscrollingpanelparam.h b/indra/newview/llscrollingpanelparam.h
index 3cdfd188a8..1cbc64f45a 100644
--- a/indra/newview/llscrollingpanelparam.h
+++ b/indra/newview/llscrollingpanelparam.h
@@ -3,31 +3,25 @@
* @brief the scrolling panel containing a list of visual param
* panels
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llsearchcombobox.cpp b/indra/newview/llsearchcombobox.cpp
index a130878176..db531b5695 100644
--- a/indra/newview/llsearchcombobox.cpp
+++ b/indra/newview/llsearchcombobox.cpp
@@ -2,31 +2,25 @@
* @file llsearchcombobox.cpp
* @brief Search Combobox implementation
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llsearchcombobox.h b/indra/newview/llsearchcombobox.h
index c23ebc8923..68f3979532 100644
--- a/indra/newview/llsearchcombobox.h
+++ b/indra/newview/llsearchcombobox.h
@@ -2,31 +2,25 @@
* @file llsearchcombobox.h
* @brief LLSearchComboBox class definition
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llsearchhistory.cpp b/indra/newview/llsearchhistory.cpp
index d45a1efa0e..7b4bf63740 100644
--- a/indra/newview/llsearchhistory.cpp
+++ b/indra/newview/llsearchhistory.cpp
@@ -2,31 +2,25 @@
* @file llsearchhistory.cpp
* @brief Search history container implementation
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llsearchhistory.h b/indra/newview/llsearchhistory.h
index eb6efdb86f..3309a8fcac 100644
--- a/indra/newview/llsearchhistory.h
+++ b/indra/newview/llsearchhistory.h
@@ -2,31 +2,25 @@
* @file llsearchhistory.h
* @brief Search history container definition
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llsecapi.cpp b/indra/newview/llsecapi.cpp
index 6389fd292c..43bb7b1596 100644
--- a/indra/newview/llsecapi.cpp
+++ b/indra/newview/llsecapi.cpp
@@ -3,30 +3,25 @@
* @brief Security API for services such as certificate handling
* secure local storage, etc.
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llsecapi.h b/indra/newview/llsecapi.h
index 5a1a3879d4..b65cf37e7f 100644
--- a/indra/newview/llsecapi.h
+++ b/indra/newview/llsecapi.h
@@ -3,30 +3,25 @@
* @brief Security API for services such as certificate handling
* secure local storage, etc.
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llsechandler_basic.cpp b/indra/newview/llsechandler_basic.cpp
index e191e50c4b..90e8ff0aae 100644
--- a/indra/newview/llsechandler_basic.cpp
+++ b/indra/newview/llsechandler_basic.cpp
@@ -3,30 +3,25 @@
* @brief Security API for services such as certificate handling
* secure local storage, etc.
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2000, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * 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.
*
-LLS * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llsechandler_basic.h b/indra/newview/llsechandler_basic.h
index 356ea7efcb..1ce5a87c75 100644
--- a/indra/newview/llsechandler_basic.h
+++ b/indra/newview/llsechandler_basic.h
@@ -3,30 +3,25 @@
* @brief Security API for services such as certificate handling
* secure local storage, etc.
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llselectmgr.cpp b/indra/newview/llselectmgr.cpp
index af16b962e6..da891d1c51 100644
--- a/indra/newview/llselectmgr.cpp
+++ b/indra/newview/llselectmgr.cpp
@@ -2,31 +2,25 @@
* @file llselectmgr.cpp
* @brief A manager for selected objects and faces.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -187,6 +181,7 @@ template class LLSelectMgr* LLSingleton<class LLSelectMgr>::getInstance();
//-----------------------------------------------------------------------------
LLSelectMgr::LLSelectMgr()
: mHideSelectedObjects(LLCachedControl<bool>(gSavedSettings, "HideSelectedObjects", FALSE)),
+ mRenderHighlightSelections(LLCachedControl<bool>(gSavedSettings, "RenderHighlightSelections", TRUE)),
mAllowSelectAvatar( LLCachedControl<bool>(gSavedSettings, "AllowSelectAvatar", FALSE)),
mDebugSelectMgr(LLCachedControl<bool>(gSavedSettings, "DebugSelectMgr", FALSE))
{
@@ -3615,7 +3610,7 @@ void LLSelectMgr::selectionSetObjectSaleInfo(const LLSaleInfo& sale_info)
// Attachments
//----------------------------------------------------------------------
-void LLSelectMgr::sendAttach(U8 attachment_point)
+void LLSelectMgr::sendAttach(U8 attachment_point, bool replace)
{
LLViewerObject* attach_object = mSelectedObjects->getFirstRootObject();
@@ -3629,9 +3624,13 @@ void LLSelectMgr::sendAttach(U8 attachment_point)
if (0 == attachment_point ||
get_if_there(gAgentAvatarp->mAttachmentPoints, (S32)attachment_point, (LLViewerJointAttachment*)NULL))
{
-#if ENABLE_MULTIATTACHMENTS
- attachment_point |= ATTACHMENT_ADD;
-#endif
+ if (!replace || attachment_point != 0)
+ {
+ // If we know the attachment point then we got here by clicking an
+ // "Attach to..." context menu item, so we should add, not replace.
+ attachment_point |= ATTACHMENT_ADD;
+ }
+
sendListToRegions(
"ObjectAttach",
packAgentIDAndSessionAndAttachment,
@@ -4900,7 +4899,7 @@ void LLSelectMgr::updateSelectionSilhouette(LLObjectSelectionHandle object_handl
}
void LLSelectMgr::renderSilhouettes(BOOL for_hud)
{
- if (!mRenderSilhouettes)
+ if (!mRenderSilhouettes || !mRenderHighlightSelections)
{
return;
}
@@ -5060,23 +5059,13 @@ LLSelectNode::LLSelectNode(LLViewerObject* object, BOOL glow)
mSilhouetteExists(FALSE),
mDuplicated(FALSE),
mTESelectMask(0),
- mLastTESelected(0)
+ mLastTESelected(0),
+ mName(LLStringUtil::null),
+ mDescription(LLStringUtil::null),
+ mTouchName(LLStringUtil::null),
+ mSitName(LLStringUtil::null),
+ mCreationDate(0)
{
- mObject = object;
- selectAllTEs(FALSE);
- mIndividualSelection = FALSE;
- mTransient = FALSE;
- mValid = FALSE;
- mPermissions = new LLPermissions();
- mInventorySerial = 0;
- mName = LLStringUtil::null;
- mDescription = LLStringUtil::null;
- mTouchName = LLStringUtil::null;
- mSitName = LLStringUtil::null;
- mSilhouetteExists = FALSE;
- mDuplicated = FALSE;
- mCreationDate = 0;
-
saveColors();
}
@@ -5631,6 +5620,10 @@ void LLSelectMgr::updateSelectionCenter()
LLVector3d select_center;
// keep a list of jointed objects for showing the joint HUDEffects
+ // Initialize the bounding box to the root prim, so the BBox orientation
+ // matches the root prim's (affecting the orientation of the manipulators).
+ bbox.addBBoxAgent( (mSelectedObjects->getFirstRootObject(TRUE))->getBoundingBoxAgent() );
+
std::vector < LLViewerObject *> jointed_objects;
for (LLObjectSelection::iterator iter = mSelectedObjects->begin();
diff --git a/indra/newview/llselectmgr.h b/indra/newview/llselectmgr.h
index 668c04cf15..7478ed5f9a 100644
--- a/indra/newview/llselectmgr.h
+++ b/indra/newview/llselectmgr.h
@@ -2,31 +2,25 @@
* @file llselectmgr.h
* @brief A manager for selected objects and TEs.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -353,6 +347,7 @@ public:
static LLColor4 sContextSilhouetteColor;
LLCachedControl<bool> mHideSelectedObjects;
+ LLCachedControl<bool> mRenderHighlightSelections;
LLCachedControl<bool> mAllowSelectAvatar;
LLCachedControl<bool> mDebugSelectMgr;
@@ -612,7 +607,7 @@ public:
// verification only, if it doesn't match region info then sale is
// canceled
void sendBuy(const LLUUID& buyer_id, const LLUUID& category_id, const LLSaleInfo sale_info);
- void sendAttach(U8 attachment_point);
+ void sendAttach(U8 attachment_point, bool replace);
void sendDetach();
void sendDropAttachment();
void sendLink();
diff --git a/indra/newview/llsidepanelappearance.cpp b/indra/newview/llsidepanelappearance.cpp
index 0d1be91125..a3c6a7b6f1 100644
--- a/indra/newview/llsidepanelappearance.cpp
+++ b/indra/newview/llsidepanelappearance.cpp
@@ -2,30 +2,25 @@
* @file llsidepanelappearance.cpp
* @brief Side Bar "Appearance" panel
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -190,12 +185,29 @@ void LLSidepanelAppearance::onVisibilityChange(const LLSD &new_visibility)
{
if (new_visibility.asBoolean())
{
- if ((mOutfitEdit && mOutfitEdit->getVisible()) || (mEditWearable && mEditWearable->getVisible()))
+ bool is_outfit_edit_visible = mOutfitEdit && mOutfitEdit->getVisible();
+ bool is_wearable_edit_visible = mEditWearable && mEditWearable->getVisible();
+
+ if (is_outfit_edit_visible || is_wearable_edit_visible)
{
if (!gAgentCamera.cameraCustomizeAvatar() && gSavedSettings.getBOOL("AppearanceCameraMovement"))
{
gAgentCamera.changeCameraToCustomizeAvatar();
}
+ if (is_wearable_edit_visible)
+ {
+ LLWearable *wearable_ptr = mEditWearable->getWearable();
+ if (gAgentWearables.getWearableIndex(wearable_ptr) == LLAgentWearables::MAX_CLOTHING_PER_TYPE)
+ {
+ // we're no longer wearing the wearable we were last editing, switch back to outfit editor
+ showOutfitEditPanel();
+ }
+ }
+
+ if (is_outfit_edit_visible)
+ {
+ mOutfitEdit->resetAccordionState();
+ }
}
}
else
@@ -274,6 +286,17 @@ void LLSidepanelAppearance::showOutfitsInventoryPanel()
void LLSidepanelAppearance::showOutfitEditPanel()
{
+ if (mOutfitEdit && mOutfitEdit->getVisible()) return;
+
+ // Accordion's state must be reset in all cases except the one when user
+ // is returning back to the mOutfitEdit panel from the mEditWearable panel.
+ // The simplest way to control this is to check the visibility state of the mEditWearable
+ // BEFORE it is changed by the call to the toggleWearableEditPanel(FALSE, NULL, TRUE).
+ if (mEditWearable != NULL && !mEditWearable->getVisible() && mOutfitEdit != NULL)
+ {
+ mOutfitEdit->resetAccordionState();
+ }
+
togglMyOutfitsPanel(FALSE);
toggleWearableEditPanel(FALSE, NULL, TRUE); // don't switch out of edit appearance mode
toggleOutfitEditPanel(TRUE);
@@ -390,8 +413,8 @@ void LLSidepanelAppearance::refreshCurrentOutfitName(const std::string& name)
return;
}
- std::string look_name = gAgentWearables.isCOFChangeInProgress() ? "" : getString("No Outfit");
- mCurrentLookName->setText(look_name);
+ std::string string_name = gAgentWearables.isCOFChangeInProgress() ? "Changing outfits" : "No Outfit";
+ mCurrentLookName->setText(getString(string_name));
mOpenOutfitBtn->setEnabled(FALSE);
}
else
@@ -405,6 +428,8 @@ void LLSidepanelAppearance::refreshCurrentOutfitName(const std::string& name)
//static
void LLSidepanelAppearance::editWearable(LLWearable *wearable, LLView *data)
{
+ LLSideTray::getInstance()->showPanel("sidepanel_appearance");
+
LLSidepanelAppearance *panel = dynamic_cast<LLSidepanelAppearance*>(data);
if (panel)
{
@@ -445,7 +470,7 @@ void LLSidepanelAppearance::fetchInventory()
{
LLViewerObject* attached_object = (*attachment_iter);
if (!attached_object) continue;
- const LLUUID& item_id = attached_object->getItemID();
+ const LLUUID& item_id = attached_object->getAttachmentItemID();
if (item_id.isNull()) continue;
ids.push_back(item_id);
}
@@ -473,8 +498,14 @@ void LLSidepanelAppearance::inventoryFetched()
void LLSidepanelAppearance::setWearablesLoading(bool val)
{
- childSetVisible("wearables_loading_indicator", val);
- childSetVisible("edit_outfit_btn", !val);
+ getChildView("wearables_loading_indicator")->setVisible( val);
+ getChildView("edit_outfit_btn")->setVisible( !val);
+
+ if (!val)
+ {
+ // refresh outfit name when COF is already changed.
+ refreshCurrentOutfitName();
+ }
}
void LLSidepanelAppearance::showDefaultSubpart()
diff --git a/indra/newview/llsidepanelappearance.h b/indra/newview/llsidepanelappearance.h
index 812d6362ef..f28cdfa49a 100644
--- a/indra/newview/llsidepanelappearance.h
+++ b/indra/newview/llsidepanelappearance.h
@@ -2,30 +2,25 @@
* @file llsidepanelappearance.h
* @brief Side Bar "Appearance" panel
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llsidepanelinventory.cpp b/indra/newview/llsidepanelinventory.cpp
index 63b6fe5ef0..23e96c22fa 100644
--- a/indra/newview/llsidepanelinventory.cpp
+++ b/indra/newview/llsidepanelinventory.cpp
@@ -2,30 +2,25 @@
* @file LLSidepanelInventory.cpp
* @brief Side Bar "Inventory" panel
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -33,10 +28,14 @@
#include "llsidepanelinventory.h"
#include "llagent.h"
+#include "llappearancemgr.h"
#include "llavataractions.h"
#include "llbutton.h"
+#include "llfirstuse.h"
#include "llinventorybridge.h"
+#include "llinventoryfunctions.h"
#include "llinventorypanel.h"
+#include "lloutfitobserver.h"
#include "llpanelmaininventory.h"
#include "llsidepaneliteminfo.h"
#include "llsidepaneltaskinfo.h"
@@ -52,7 +51,7 @@ LLSidepanelInventory::LLSidepanelInventory()
mPanelMainInventory(NULL)
{
- //LLUICtrlFactory::getInstance()->buildPanel(this, "panel_inventory.xml"); // Called from LLRegisterPanelClass::defaultPanelClassBuilder()
+ //buildFromFile( "panel_inventory.xml"); // Called from LLRegisterPanelClass::defaultPanelClassBuilder()
}
LLSidepanelInventory::~LLSidepanelInventory()
@@ -71,8 +70,8 @@ BOOL LLSidepanelInventory::postBuild()
mShareBtn = mInventoryPanel->getChild<LLButton>("share_btn");
mShareBtn->setClickedCallback(boost::bind(&LLSidepanelInventory::onShareButtonClicked, this));
- LLButton* shop_btn = mInventoryPanel->getChild<LLButton>("shop_btn");
- shop_btn->setClickedCallback(boost::bind(&LLSidepanelInventory::onShopButtonClicked, this));
+ mShopBtn = mInventoryPanel->getChild<LLButton>("shop_btn");
+ mShopBtn->setClickedCallback(boost::bind(&LLSidepanelInventory::onShopButtonClicked, this));
mWearBtn = mInventoryPanel->getChild<LLButton>("wear_btn");
mWearBtn->setClickedCallback(boost::bind(&LLSidepanelInventory::onWearButtonClicked, this));
@@ -86,7 +85,7 @@ BOOL LLSidepanelInventory::postBuild()
mOverflowBtn = mInventoryPanel->getChild<LLButton>("overflow_btn");
mOverflowBtn->setClickedCallback(boost::bind(&LLSidepanelInventory::onOverflowButtonClicked, this));
- mPanelMainInventory = mInventoryPanel->getChild<LLPanelMainInventory>("panel_main_inventory");
+ mPanelMainInventory = mInventoryPanel->findChild<LLPanelMainInventory>("panel_main_inventory");
mPanelMainInventory->setSelectCallback(boost::bind(&LLSidepanelInventory::onSelectionChange, this, _1, _2));
LLTabContainer* tabs = mPanelMainInventory->getChild<LLTabContainer>("inventory filter tabs");
tabs->setCommitCallback(boost::bind(&LLSidepanelInventory::updateVerbs, this));
@@ -98,11 +97,13 @@ BOOL LLSidepanelInventory::postBuild()
my_inventory_panel->addHideFolderType(LLFolderType::FT_LANDMARK);
my_inventory_panel->addHideFolderType(LLFolderType::FT_FAVORITE);
*/
+
+ LLOutfitObserver::instance().addCOFChangedCallback(boost::bind(&LLSidepanelInventory::updateVerbs, this));
}
// UI elements from item panel
{
- mItemPanel = getChild<LLSidepanelItemInfo>("sidepanel__item_panel");
+ mItemPanel = findChild<LLSidepanelItemInfo>("sidepanel__item_panel");
LLButton* back_btn = mItemPanel->getChild<LLButton>("back_btn");
back_btn->setClickedCallback(boost::bind(&LLSidepanelInventory::onBackButtonClicked, this));
@@ -110,7 +111,7 @@ BOOL LLSidepanelInventory::postBuild()
// UI elements from task panel
{
- mTaskPanel = getChild<LLSidepanelTaskInfo>("sidepanel__task_panel");
+ mTaskPanel = findChild<LLSidepanelTaskInfo>("sidepanel__task_panel");
if (mTaskPanel)
{
LLButton* back_btn = mTaskPanel->getChild<LLButton>("back_btn");
@@ -123,6 +124,8 @@ BOOL LLSidepanelInventory::postBuild()
void LLSidepanelInventory::onOpen(const LLSD& key)
{
+ LLFirstUse::newInventory(false);
+
if(key.size() == 0)
return;
@@ -168,7 +171,7 @@ void LLSidepanelInventory::onShopButtonClicked()
void LLSidepanelInventory::performActionOnSelection(const std::string &action)
{
- LLPanelMainInventory *panel_main_inventory = mInventoryPanel->getChild<LLPanelMainInventory>("panel_main_inventory");
+ LLPanelMainInventory *panel_main_inventory = mInventoryPanel->findChild<LLPanelMainInventory>("panel_main_inventory");
LLFolderViewItem* current_item = panel_main_inventory->getActivePanel()->getRootFolder()->getCurSelectedItem();
if (!current_item)
{
@@ -265,6 +268,7 @@ void LLSidepanelInventory::updateVerbs()
mPlayBtn->setEnabled(FALSE);
mTeleportBtn->setVisible(FALSE);
mTeleportBtn->setEnabled(FALSE);
+ mShopBtn->setVisible(TRUE);
mShareBtn->setEnabled(canShare());
@@ -282,17 +286,20 @@ void LLSidepanelInventory::updateVerbs()
case LLInventoryType::IT_OBJECT:
case LLInventoryType::IT_ATTACHMENT:
mWearBtn->setVisible(TRUE);
- mWearBtn->setEnabled(TRUE);
+ mWearBtn->setEnabled(get_can_item_be_worn(item->getLinkedUUID()));
+ mShopBtn->setVisible(FALSE);
break;
case LLInventoryType::IT_SOUND:
case LLInventoryType::IT_GESTURE:
case LLInventoryType::IT_ANIMATION:
mPlayBtn->setVisible(TRUE);
mPlayBtn->setEnabled(TRUE);
+ mShopBtn->setVisible(FALSE);
break;
case LLInventoryType::IT_LANDMARK:
mTeleportBtn->setVisible(TRUE);
mTeleportBtn->setEnabled(TRUE);
+ mShopBtn->setVisible(FALSE);
break;
default:
break;
@@ -302,7 +309,7 @@ void LLSidepanelInventory::updateVerbs()
bool LLSidepanelInventory::canShare()
{
LLPanelMainInventory* panel_main_inventory =
- mInventoryPanel->getChild<LLPanelMainInventory>("panel_main_inventory");
+ mInventoryPanel->findChild<LLPanelMainInventory>("panel_main_inventory");
LLFolderView* root_folder =
panel_main_inventory->getActivePanel()->getRootFolder();
@@ -320,7 +327,7 @@ bool LLSidepanelInventory::canShare()
LLInventoryItem *LLSidepanelInventory::getSelectedItem()
{
- LLPanelMainInventory *panel_main_inventory = mInventoryPanel->getChild<LLPanelMainInventory>("panel_main_inventory");
+ LLPanelMainInventory *panel_main_inventory = mInventoryPanel->findChild<LLPanelMainInventory>("panel_main_inventory");
LLFolderViewItem* current_item = panel_main_inventory->getActivePanel()->getRootFolder()->getCurSelectedItem();
if (!current_item)
{
@@ -333,7 +340,7 @@ LLInventoryItem *LLSidepanelInventory::getSelectedItem()
U32 LLSidepanelInventory::getSelectedCount()
{
- LLPanelMainInventory *panel_main_inventory = mInventoryPanel->getChild<LLPanelMainInventory>("panel_main_inventory");
+ LLPanelMainInventory *panel_main_inventory = mInventoryPanel->findChild<LLPanelMainInventory>("panel_main_inventory");
std::set<LLUUID> selection_list = panel_main_inventory->getActivePanel()->getRootFolder()->getSelectionList();
return selection_list.size();
}
diff --git a/indra/newview/llsidepanelinventory.h b/indra/newview/llsidepanelinventory.h
index 13275d14c0..4776dd7530 100644
--- a/indra/newview/llsidepanelinventory.h
+++ b/indra/newview/llsidepanelinventory.h
@@ -2,30 +2,25 @@
* @file LLSidepanelInventory.h
* @brief Side Bar "Inventory" panel
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -58,6 +53,9 @@ public:
void showTaskInfoPanel();
void showInventoryPanel();
+ // checks can share selected item(s)
+ bool canShare();
+
protected:
// Tracks highlighted (selected) item in inventory panel.
LLInventoryItem *getSelectedItem();
@@ -65,8 +63,6 @@ protected:
void onSelectionChange(const std::deque<LLFolderViewItem*> &items, BOOL user_action);
// "wear", "teleport", etc.
void performActionOnSelection(const std::string &action);
- bool canShare();
-
void updateVerbs();
//
@@ -94,6 +90,7 @@ private:
LLButton* mPlayBtn;
LLButton* mTeleportBtn;
LLButton* mOverflowBtn;
+ LLButton* mShopBtn;
};
diff --git a/indra/newview/llsidepanelinventorysubpanel.cpp b/indra/newview/llsidepanelinventorysubpanel.cpp
index f51462dcce..37b10b592f 100644
--- a/indra/newview/llsidepanelinventorysubpanel.cpp
+++ b/indra/newview/llsidepanelinventorysubpanel.cpp
@@ -2,31 +2,25 @@
* @file llsidepanelinventorysubpanel.cpp
* @brief A floater which shows an inventory item's properties.
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llsidepanelinventorysubpanel.h b/indra/newview/llsidepanelinventorysubpanel.h
index b7bee6809f..b2de7d3b0b 100644
--- a/indra/newview/llsidepanelinventorysubpanel.h
+++ b/indra/newview/llsidepanelinventorysubpanel.h
@@ -2,31 +2,25 @@
* @file llsidepanelinventorysubpanel.h
* @brief A panel which shows an inventory item's properties.
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llsidepaneliteminfo.cpp b/indra/newview/llsidepaneliteminfo.cpp
index 0ec351965a..b053432f9c 100644
--- a/indra/newview/llsidepaneliteminfo.cpp
+++ b/indra/newview/llsidepaneliteminfo.cpp
@@ -2,31 +2,25 @@
* @file llsidepaneliteminfo.cpp
* @brief A floater which shows an inventory item's properties.
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -81,7 +75,40 @@ void LLItemPropertiesObserver::changed(U32 mask)
}
}
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+// Class LLObjectInventoryObserver
+//
+// Helper class to watch for changes in an object inventory.
+// Used to update item properties in LLSidepanelItemInfo.
+//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+class LLObjectInventoryObserver : public LLVOInventoryListener
+{
+public:
+ LLObjectInventoryObserver(LLSidepanelItemInfo* floater, LLViewerObject* object)
+ : mFloater(floater)
+ {
+ registerVOInventoryListener(object, NULL);
+ }
+ virtual ~LLObjectInventoryObserver()
+ {
+ removeVOInventoryListener();
+ }
+ /*virtual*/ void inventoryChanged(LLViewerObject* object,
+ LLInventoryObject::object_list_t* inventory,
+ S32 serial_num,
+ void* user_data);
+private:
+ LLSidepanelItemInfo* mFloater;
+};
+/*virtual*/
+void LLObjectInventoryObserver::inventoryChanged(LLViewerObject* object,
+ LLInventoryObject::object_list_t* inventory,
+ S32 serial_num,
+ void* user_data)
+{
+ mFloater->dirty();
+}
///----------------------------------------------------------------------------
/// Class LLSidepanelItemInfo
@@ -92,10 +119,9 @@ static LLRegisterPanelClassWrapper<LLSidepanelItemInfo> t_item_info("sidepanel_i
// Default constructor
LLSidepanelItemInfo::LLSidepanelItemInfo()
: mItemID(LLUUID::null)
+ , mObjectInventoryObserver(NULL)
{
mPropertiesObserver = new LLItemPropertiesObserver(this);
-
- //LLUICtrlFactory::getInstance()->buildFloater(this,"floater_inventory_item_properties.xml");
}
// Destroys the object
@@ -103,6 +129,8 @@ LLSidepanelItemInfo::~LLSidepanelItemInfo()
{
delete mPropertiesObserver;
mPropertiesObserver = NULL;
+
+ stopObjectInventoryObserver();
}
// virtual
@@ -110,9 +138,9 @@ BOOL LLSidepanelItemInfo::postBuild()
{
LLSidepanelInventorySubpanel::postBuild();
- childSetPrevalidate("LabelItemName",&LLTextValidate::validateASCIIPrintableNoPipe);
+ getChild<LLLineEditor>("LabelItemName")->setPrevalidate(&LLTextValidate::validateASCIIPrintableNoPipe);
getChild<LLUICtrl>("LabelItemName")->setCommitCallback(boost::bind(&LLSidepanelItemInfo::onCommitName,this));
- childSetPrevalidate("LabelItemDesc",&LLTextValidate::validateASCIIPrintableNoPipe);
+ getChild<LLLineEditor>("LabelItemDesc")->setPrevalidate(&LLTextValidate::validateASCIIPrintableNoPipe);
getChild<LLUICtrl>("LabelItemDesc")->setCommitCallback(boost::bind(&LLSidepanelItemInfo:: onCommitDescription, this));
// Creator information
getChild<LLUICtrl>("BtnCreator")->setCommitCallback(boost::bind(&LLSidepanelItemInfo::onClickCreator,this));
@@ -131,7 +159,6 @@ BOOL LLSidepanelItemInfo::postBuild()
getChild<LLUICtrl>("CheckNextOwnerTransfer")->setCommitCallback(boost::bind(&LLSidepanelItemInfo::onCommitPermissions, this));
// Mark for sale or not, and sale info
getChild<LLUICtrl>("CheckPurchase")->setCommitCallback(boost::bind(&LLSidepanelItemInfo::onCommitSaleInfo, this));
- getChild<LLUICtrl>("RadioSaleType")->setCommitCallback(boost::bind(&LLSidepanelItemInfo::onCommitSaleType, this));
// "Price" label for edit
getChild<LLUICtrl>("Edit Cost")->setCommitCallback(boost::bind(&LLSidepanelItemInfo::onCommitSaleInfo, this));
refresh();
@@ -141,6 +168,10 @@ BOOL LLSidepanelItemInfo::postBuild()
void LLSidepanelItemInfo::setObjectID(const LLUUID& object_id)
{
mObjectID = object_id;
+
+ // Start monitoring changes in the object inventory to update
+ // selected inventory item properties in Item Profile panel. See STORM-148.
+ startObjectInventoryObserver();
}
void LLSidepanelItemInfo::setItemID(const LLUUID& item_id)
@@ -154,6 +185,8 @@ void LLSidepanelItemInfo::reset()
mObjectID = LLUUID::null;
mItemID = LLUUID::null;
+
+ stopObjectInventoryObserver();
}
void LLSidepanelItemInfo::refresh()
@@ -189,13 +222,12 @@ void LLSidepanelItemInfo::refresh()
"CheckNextOwnerCopy",
"CheckNextOwnerTransfer",
"CheckPurchase",
- "RadioSaleType",
"Edit Cost"
};
for(size_t t=0; t<LL_ARRAY_SIZE(no_item_names); ++t)
{
- childSetEnabled(no_item_names[t],false);
+ getChildView(no_item_names[t])->setEnabled(false);
}
const std::string hide_names[]={
@@ -207,7 +239,7 @@ void LLSidepanelItemInfo::refresh()
};
for(size_t t=0; t<LL_ARRAY_SIZE(hide_names); ++t)
{
- childSetVisible(hide_names[t],false);
+ getChildView(hide_names[t])->setVisible(false);
}
}
@@ -219,7 +251,7 @@ void LLSidepanelItemInfo::refresh()
};
for(size_t t=0; t<LL_ARRAY_SIZE(no_edit_mode_names); ++t)
{
- childSetEnabled(no_edit_mode_names[t],false);
+ getChildView(no_edit_mode_names[t])->setEnabled(false);
}
}
@@ -267,13 +299,13 @@ void LLSidepanelItemInfo::refreshFromItem(LLViewerInventoryItem* item)
GP_OBJECT_MANIPULATE)
&& is_obj_modify && is_complete && not_in_trash;
- childSetEnabled("LabelItemNameTitle",TRUE);
- childSetEnabled("LabelItemName",is_modifiable && !is_calling_card); // for now, don't allow rename of calling cards
- childSetText("LabelItemName",item->getName());
- childSetEnabled("LabelItemDescTitle",TRUE);
- childSetEnabled("LabelItemDesc",is_modifiable);
- childSetVisible("IconLocked",!is_modifiable);
- childSetText("LabelItemDesc",item->getDescription());
+ getChildView("LabelItemNameTitle")->setEnabled(TRUE);
+ getChildView("LabelItemName")->setEnabled(is_modifiable && !is_calling_card); // for now, don't allow rename of calling cards
+ getChild<LLUICtrl>("LabelItemName")->setValue(item->getName());
+ getChildView("LabelItemDescTitle")->setEnabled(TRUE);
+ getChildView("LabelItemDesc")->setEnabled(is_modifiable);
+ getChildView("IconLocked")->setVisible(!is_modifiable);
+ getChild<LLUICtrl>("LabelItemDesc")->setValue(item->getDescription());
//////////////////
// CREATOR NAME //
@@ -285,17 +317,17 @@ void LLSidepanelItemInfo::refreshFromItem(LLViewerInventoryItem* item)
{
std::string name;
gCacheName->getFullName(item->getCreatorUUID(), name);
- childSetEnabled("BtnCreator",TRUE);
- childSetEnabled("LabelCreatorTitle",TRUE);
- childSetEnabled("LabelCreatorName",TRUE);
- childSetText("LabelCreatorName",name);
+ getChildView("BtnCreator")->setEnabled(TRUE);
+ getChildView("LabelCreatorTitle")->setEnabled(TRUE);
+ getChildView("LabelCreatorName")->setEnabled(TRUE);
+ getChild<LLUICtrl>("LabelCreatorName")->setValue(name);
}
else
{
- childSetEnabled("BtnCreator",FALSE);
- childSetEnabled("LabelCreatorTitle",FALSE);
- childSetEnabled("LabelCreatorName",FALSE);
- childSetText("LabelCreatorName",getString("unknown"));
+ getChildView("BtnCreator")->setEnabled(FALSE);
+ getChildView("LabelCreatorTitle")->setEnabled(FALSE);
+ getChildView("LabelCreatorName")->setEnabled(FALSE);
+ getChild<LLUICtrl>("LabelCreatorName")->setValue(getString("unknown"));
}
////////////////
@@ -312,19 +344,32 @@ void LLSidepanelItemInfo::refreshFromItem(LLViewerInventoryItem* item)
{
gCacheName->getFullName(perm.getOwner(), name);
}
- childSetEnabled("BtnOwner",TRUE);
- childSetEnabled("LabelOwnerTitle",TRUE);
- childSetEnabled("LabelOwnerName",TRUE);
- childSetText("LabelOwnerName",name);
+ getChildView("BtnOwner")->setEnabled(TRUE);
+ getChildView("LabelOwnerTitle")->setEnabled(TRUE);
+ getChildView("LabelOwnerName")->setEnabled(TRUE);
+ getChild<LLUICtrl>("LabelOwnerName")->setValue(name);
}
else
{
- childSetEnabled("BtnOwner",FALSE);
- childSetEnabled("LabelOwnerTitle",FALSE);
- childSetEnabled("LabelOwnerName",FALSE);
- childSetText("LabelOwnerName",getString("public"));
+ getChildView("BtnOwner")->setEnabled(FALSE);
+ getChildView("LabelOwnerTitle")->setEnabled(FALSE);
+ getChildView("LabelOwnerName")->setEnabled(FALSE);
+ getChild<LLUICtrl>("LabelOwnerName")->setValue(getString("public"));
}
+ ////////////
+ // ORIGIN //
+ ////////////
+
+ if (object)
+ {
+ getChild<LLUICtrl>("origin")->setValue(getString("origin_inworld"));
+ }
+ else
+ {
+ getChild<LLUICtrl>("origin")->setValue(getString("origin_inventory"));
+ }
+
//////////////////
// ACQUIRE DATE //
//////////////////
@@ -332,7 +377,7 @@ void LLSidepanelItemInfo::refreshFromItem(LLViewerInventoryItem* item)
time_t time_utc = item->getCreationDate();
if (0 == time_utc)
{
- childSetText("LabelAcquiredDate",getString("unknown"));
+ getChild<LLUICtrl>("LabelAcquiredDate")->setValue(getString("unknown"));
}
else
{
@@ -340,12 +385,12 @@ void LLSidepanelItemInfo::refreshFromItem(LLViewerInventoryItem* item)
LLSD substitution;
substitution["datetime"] = (S32) time_utc;
LLStringUtil::format (timeStr, substitution);
- childSetText ("LabelAcquiredDate", timeStr);
+ getChild<LLUICtrl>("LabelAcquiredDate")->setValue(timeStr);
}
- /////////////////////////////////////
- // PERMISSIONS AND SALE ITEM HIDING
- /////////////////////////////////////
+ //////////////////////////////////////
+ // PERMISSIONS AND SALE ITEM HIDING //
+ //////////////////////////////////////
const std::string perm_and_sale_items[]={
"perms_inv",
@@ -364,7 +409,6 @@ void LLSidepanelItemInfo::refreshFromItem(LLViewerInventoryItem* item)
"CheckNextOwnerTransfer",
"CheckPurchase",
"SaleLabel",
- "RadioSaleType",
"combobox sale copy",
"Edit Cost",
"TextPrice"
@@ -384,12 +428,12 @@ void LLSidepanelItemInfo::refreshFromItem(LLViewerInventoryItem* item)
{
for(size_t t=0; t<LL_ARRAY_SIZE(perm_and_sale_items); ++t)
{
- childSetVisible(perm_and_sale_items[t],false);
+ getChildView(perm_and_sale_items[t])->setVisible(false);
}
for(size_t t=0; t<LL_ARRAY_SIZE(debug_items); ++t)
{
- childSetVisible(debug_items[t],false);
+ getChildView(debug_items[t])->setVisible(false);
}
return;
}
@@ -397,7 +441,7 @@ void LLSidepanelItemInfo::refreshFromItem(LLViewerInventoryItem* item)
{
for(size_t t=0; t<LL_ARRAY_SIZE(perm_and_sale_items); ++t)
{
- childSetVisible(perm_and_sale_items[t],true);
+ getChildView(perm_and_sale_items[t])->setVisible(true);
}
}
@@ -406,11 +450,11 @@ void LLSidepanelItemInfo::refreshFromItem(LLViewerInventoryItem* item)
///////////////////////
if(can_agent_manipulate)
{
- childSetText("OwnerLabel",getString("you_can"));
+ getChild<LLUICtrl>("OwnerLabel")->setValue(getString("you_can"));
}
else
{
- childSetText("OwnerLabel",getString("owner_can"));
+ getChild<LLUICtrl>("OwnerLabel")->setValue(getString("owner_can"));
}
U32 base_mask = perm.getMaskBase();
@@ -419,13 +463,13 @@ void LLSidepanelItemInfo::refreshFromItem(LLViewerInventoryItem* item)
U32 everyone_mask = perm.getMaskEveryone();
U32 next_owner_mask = perm.getMaskNextOwner();
- childSetEnabled("OwnerLabel",TRUE);
- childSetEnabled("CheckOwnerModify",FALSE);
- childSetValue("CheckOwnerModify",LLSD((BOOL)(owner_mask & PERM_MODIFY)));
- childSetEnabled("CheckOwnerCopy",FALSE);
- childSetValue("CheckOwnerCopy",LLSD((BOOL)(owner_mask & PERM_COPY)));
- childSetEnabled("CheckOwnerTransfer",FALSE);
- childSetValue("CheckOwnerTransfer",LLSD((BOOL)(owner_mask & PERM_TRANSFER)));
+ getChildView("OwnerLabel")->setEnabled(TRUE);
+ getChildView("CheckOwnerModify")->setEnabled(FALSE);
+ getChild<LLUICtrl>("CheckOwnerModify")->setValue(LLSD((BOOL)(owner_mask & PERM_MODIFY)));
+ getChildView("CheckOwnerCopy")->setEnabled(FALSE);
+ getChild<LLUICtrl>("CheckOwnerCopy")->setValue(LLSD((BOOL)(owner_mask & PERM_COPY)));
+ getChildView("CheckOwnerTransfer")->setEnabled(FALSE);
+ getChild<LLUICtrl>("CheckOwnerTransfer")->setValue(LLSD((BOOL)(owner_mask & PERM_TRANSFER)));
///////////////////////
// DEBUG PERMISSIONS //
@@ -449,39 +493,39 @@ void LLSidepanelItemInfo::refreshFromItem(LLViewerInventoryItem* item)
perm_string = "B: ";
perm_string += mask_to_string(base_mask);
- childSetText("BaseMaskDebug",perm_string);
- childSetVisible("BaseMaskDebug",TRUE);
+ getChild<LLUICtrl>("BaseMaskDebug")->setValue(perm_string);
+ getChildView("BaseMaskDebug")->setVisible(TRUE);
perm_string = "O: ";
perm_string += mask_to_string(owner_mask);
- childSetText("OwnerMaskDebug",perm_string);
- childSetVisible("OwnerMaskDebug",TRUE);
+ getChild<LLUICtrl>("OwnerMaskDebug")->setValue(perm_string);
+ getChildView("OwnerMaskDebug")->setVisible(TRUE);
perm_string = "G";
perm_string += overwrite_group ? "*: " : ": ";
perm_string += mask_to_string(group_mask);
- childSetText("GroupMaskDebug",perm_string);
- childSetVisible("GroupMaskDebug",TRUE);
+ getChild<LLUICtrl>("GroupMaskDebug")->setValue(perm_string);
+ getChildView("GroupMaskDebug")->setVisible(TRUE);
perm_string = "E";
perm_string += overwrite_everyone ? "*: " : ": ";
perm_string += mask_to_string(everyone_mask);
- childSetText("EveryoneMaskDebug",perm_string);
- childSetVisible("EveryoneMaskDebug",TRUE);
+ getChild<LLUICtrl>("EveryoneMaskDebug")->setValue(perm_string);
+ getChildView("EveryoneMaskDebug")->setVisible(TRUE);
perm_string = "N";
perm_string += slam_perm ? "*: " : ": ";
perm_string += mask_to_string(next_owner_mask);
- childSetText("NextMaskDebug",perm_string);
- childSetVisible("NextMaskDebug",TRUE);
+ getChild<LLUICtrl>("NextMaskDebug")->setValue(perm_string);
+ getChildView("NextMaskDebug")->setVisible(TRUE);
}
else
{
- childSetVisible("BaseMaskDebug",FALSE);
- childSetVisible("OwnerMaskDebug",FALSE);
- childSetVisible("GroupMaskDebug",FALSE);
- childSetVisible("EveryoneMaskDebug",FALSE);
- childSetVisible("NextMaskDebug",FALSE);
+ getChildView("BaseMaskDebug")->setVisible(FALSE);
+ getChildView("OwnerMaskDebug")->setVisible(FALSE);
+ getChildView("GroupMaskDebug")->setVisible(FALSE);
+ getChildView("EveryoneMaskDebug")->setVisible(FALSE);
+ getChildView("NextMaskDebug")->setVisible(FALSE);
}
/////////////
@@ -491,18 +535,18 @@ void LLSidepanelItemInfo::refreshFromItem(LLViewerInventoryItem* item)
// Check for ability to change values.
if (is_link || cannot_restrict_permissions)
{
- childSetEnabled("CheckShareWithGroup",FALSE);
- childSetEnabled("CheckEveryoneCopy",FALSE);
+ getChildView("CheckShareWithGroup")->setEnabled(FALSE);
+ getChildView("CheckEveryoneCopy")->setEnabled(FALSE);
}
else if (is_obj_modify && can_agent_manipulate)
{
- childSetEnabled("CheckShareWithGroup",TRUE);
- childSetEnabled("CheckEveryoneCopy",(owner_mask & PERM_COPY) && (owner_mask & PERM_TRANSFER));
+ getChildView("CheckShareWithGroup")->setEnabled(TRUE);
+ getChildView("CheckEveryoneCopy")->setEnabled((owner_mask & PERM_COPY) && (owner_mask & PERM_TRANSFER));
}
else
{
- childSetEnabled("CheckShareWithGroup",FALSE);
- childSetEnabled("CheckEveryoneCopy",FALSE);
+ getChildView("CheckShareWithGroup")->setEnabled(FALSE);
+ getChildView("CheckEveryoneCopy")->setEnabled(FALSE);
}
// Set values.
@@ -512,7 +556,7 @@ void LLSidepanelItemInfo::refreshFromItem(LLViewerInventoryItem* item)
if (is_group_copy && is_group_modify && is_group_move)
{
- childSetValue("CheckShareWithGroup",LLSD((BOOL)TRUE));
+ getChild<LLUICtrl>("CheckShareWithGroup")->setValue(LLSD((BOOL)TRUE));
LLCheckBoxCtrl* ctl = getChild<LLCheckBoxCtrl>("CheckShareWithGroup");
if(ctl)
@@ -522,7 +566,7 @@ void LLSidepanelItemInfo::refreshFromItem(LLViewerInventoryItem* item)
}
else if (!is_group_copy && !is_group_modify && !is_group_move)
{
- childSetValue("CheckShareWithGroup",LLSD((BOOL)FALSE));
+ getChild<LLUICtrl>("CheckShareWithGroup")->setValue(LLSD((BOOL)FALSE));
LLCheckBoxCtrl* ctl = getChild<LLCheckBoxCtrl>("CheckShareWithGroup");
if(ctl)
{
@@ -539,7 +583,7 @@ void LLSidepanelItemInfo::refreshFromItem(LLViewerInventoryItem* item)
}
}
- childSetValue("CheckEveryoneCopy",LLSD((BOOL)(everyone_mask & PERM_COPY)));
+ getChild<LLUICtrl>("CheckEveryoneCopy")->setValue(LLSD((BOOL)(everyone_mask & PERM_COPY)));
///////////////
// SALE INFO //
@@ -551,54 +595,76 @@ void LLSidepanelItemInfo::refreshFromItem(LLViewerInventoryItem* item)
if (is_obj_modify && can_agent_sell
&& gAgent.allowOperation(PERM_TRANSFER, perm, GP_OBJECT_MANIPULATE))
{
- childSetEnabled("SaleLabel",is_complete);
- childSetEnabled("CheckPurchase",is_complete);
+ getChildView("SaleLabel")->setEnabled(is_complete);
+ getChildView("CheckPurchase")->setEnabled(is_complete);
- childSetEnabled("NextOwnerLabel",TRUE);
- childSetEnabled("CheckNextOwnerModify",(base_mask & PERM_MODIFY) && !cannot_restrict_permissions);
- childSetEnabled("CheckNextOwnerCopy",(base_mask & PERM_COPY) && !cannot_restrict_permissions);
- childSetEnabled("CheckNextOwnerTransfer",(next_owner_mask & PERM_COPY) && !cannot_restrict_permissions);
+ getChildView("NextOwnerLabel")->setEnabled(TRUE);
+ getChildView("CheckNextOwnerModify")->setEnabled((base_mask & PERM_MODIFY) && !cannot_restrict_permissions);
+ getChildView("CheckNextOwnerCopy")->setEnabled((base_mask & PERM_COPY) && !cannot_restrict_permissions);
+ getChildView("CheckNextOwnerTransfer")->setEnabled((next_owner_mask & PERM_COPY) && !cannot_restrict_permissions);
- childSetEnabled("RadioSaleType",is_complete && is_for_sale);
- childSetEnabled("TextPrice",is_complete && is_for_sale);
- childSetEnabled("Edit Cost",is_complete && is_for_sale);
+ getChildView("TextPrice")->setEnabled(is_complete && is_for_sale);
+ getChildView("Edit Cost")->setEnabled(is_complete && is_for_sale);
}
else
{
- childSetEnabled("SaleLabel",FALSE);
- childSetEnabled("CheckPurchase",FALSE);
+ getChildView("SaleLabel")->setEnabled(FALSE);
+ getChildView("CheckPurchase")->setEnabled(FALSE);
- childSetEnabled("NextOwnerLabel",FALSE);
- childSetEnabled("CheckNextOwnerModify",FALSE);
- childSetEnabled("CheckNextOwnerCopy",FALSE);
- childSetEnabled("CheckNextOwnerTransfer",FALSE);
+ getChildView("NextOwnerLabel")->setEnabled(FALSE);
+ getChildView("CheckNextOwnerModify")->setEnabled(FALSE);
+ getChildView("CheckNextOwnerCopy")->setEnabled(FALSE);
+ getChildView("CheckNextOwnerTransfer")->setEnabled(FALSE);
- childSetEnabled("RadioSaleType",FALSE);
- childSetEnabled("TextPrice",FALSE);
- childSetEnabled("Edit Cost",FALSE);
+ getChildView("TextPrice")->setEnabled(FALSE);
+ getChildView("Edit Cost")->setEnabled(FALSE);
}
// Set values.
- childSetValue("CheckPurchase", is_for_sale);
- childSetEnabled("combobox sale copy", is_for_sale);
- childSetEnabled("Edit Cost", is_for_sale);
- childSetValue("CheckNextOwnerModify",LLSD(BOOL(next_owner_mask & PERM_MODIFY)));
- childSetValue("CheckNextOwnerCopy",LLSD(BOOL(next_owner_mask & PERM_COPY)));
- childSetValue("CheckNextOwnerTransfer",LLSD(BOOL(next_owner_mask & PERM_TRANSFER)));
-
- LLRadioGroup* radioSaleType = getChild<LLRadioGroup>("RadioSaleType");
+ getChild<LLUICtrl>("CheckPurchase")->setValue(is_for_sale);
+ getChildView("combobox sale copy")->setEnabled(is_for_sale);
+ getChildView("Edit Cost")->setEnabled(is_for_sale);
+ getChild<LLUICtrl>("CheckNextOwnerModify")->setValue(LLSD(BOOL(next_owner_mask & PERM_MODIFY)));
+ getChild<LLUICtrl>("CheckNextOwnerCopy")->setValue(LLSD(BOOL(next_owner_mask & PERM_COPY)));
+ getChild<LLUICtrl>("CheckNextOwnerTransfer")->setValue(LLSD(BOOL(next_owner_mask & PERM_TRANSFER)));
+
if (is_for_sale)
{
- radioSaleType->setSelectedIndex((S32)sale_info.getSaleType() - 1);
S32 numerical_price;
numerical_price = sale_info.getSalePrice();
- childSetText("Edit Cost",llformat("%d",numerical_price));
+ getChild<LLUICtrl>("Edit Cost")->setValue(llformat("%d",numerical_price));
}
else
{
- radioSaleType->setSelectedIndex(-1);
- childSetText("Edit Cost",llformat("%d",0));
+ getChild<LLUICtrl>("Edit Cost")->setValue(llformat("%d",0));
+ }
+}
+
+void LLSidepanelItemInfo::startObjectInventoryObserver()
+{
+ if (!mObjectInventoryObserver)
+ {
+ stopObjectInventoryObserver();
+
+ // Previous object observer should be removed before starting to observe a new object.
+ llassert(mObjectInventoryObserver == NULL);
+ }
+
+ if (mObjectID.isNull())
+ {
+ llwarns << "Empty object id passed to inventory observer" << llendl;
+ return;
}
+
+ LLViewerObject* object = gObjectList.findObject(mObjectID);
+
+ mObjectInventoryObserver = new LLObjectInventoryObserver(this, object);
+}
+
+void LLSidepanelItemInfo::stopObjectInventoryObserver()
+{
+ delete mObjectInventoryObserver;
+ mObjectInventoryObserver = NULL;
}
void LLSidepanelItemInfo::onClickCreator()
@@ -818,10 +884,10 @@ void LLSidepanelItemInfo::updateSaleInfo()
LLSaleInfo sale_info(item->getSaleInfo());
if(!gAgent.allowOperation(PERM_TRANSFER, item->getPermissions(), GP_OBJECT_SET_SALE))
{
- childSetValue("CheckPurchase",LLSD((BOOL)FALSE));
+ getChild<LLUICtrl>("CheckPurchase")->setValue(LLSD((BOOL)FALSE));
}
- if((BOOL)childGetValue("CheckPurchase"))
+ if((BOOL)getChild<LLUICtrl>("CheckPurchase")->getValue())
{
// turn on sale info
LLSaleInfo::EForSale sale_type = LLSaleInfo::FS_COPY;
diff --git a/indra/newview/llsidepaneliteminfo.h b/indra/newview/llsidepaneliteminfo.h
index e6dbf400ee..10e93dd7de 100644
--- a/indra/newview/llsidepaneliteminfo.h
+++ b/indra/newview/llsidepaneliteminfo.h
@@ -2,31 +2,25 @@
* @file llsidepaneliteminfo.h
* @brief A panel which shows an inventory item's properties.
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -43,6 +37,7 @@
class LLButton;
class LLViewerInventoryItem;
class LLItemPropertiesObserver;
+class LLObjectInventoryObserver;
class LLViewerObject;
class LLPermissions;
@@ -69,9 +64,13 @@ protected:
void refreshFromItem(LLViewerInventoryItem* item);
private:
+ void startObjectInventoryObserver();
+ void stopObjectInventoryObserver();
+
LLUUID mItemID; // inventory UUID for the inventory item.
LLUUID mObjectID; // in-world task UUID, or null if in agent inventory.
LLItemPropertiesObserver* mPropertiesObserver; // for syncing changes to item
+ LLObjectInventoryObserver* mObjectInventoryObserver; // for syncing changes to items inside an object
//
// UI Elements
diff --git a/indra/newview/llsidepaneltaskinfo.cpp b/indra/newview/llsidepaneltaskinfo.cpp
index 3ab71eac64..4552088cad 100644
--- a/indra/newview/llsidepaneltaskinfo.cpp
+++ b/indra/newview/llsidepaneltaskinfo.cpp
@@ -4,31 +4,25 @@
* This class represents the panel in the build view for
* viewing/editing object names, owners, permissions, etc.
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -107,9 +101,9 @@ BOOL LLSidepanelTaskInfo::postBuild()
mLabelGroupName = getChild<LLNameBox>("Group Name Proxy");
childSetCommitCallback("Object Name", LLSidepanelTaskInfo::onCommitName,this);
- childSetPrevalidate("Object Name", LLTextValidate::validateASCIIPrintableNoPipe);
+ getChild<LLLineEditor>("Object Name")->setPrevalidate(LLTextValidate::validateASCIIPrintableNoPipe);
childSetCommitCallback("Object Description", LLSidepanelTaskInfo::onCommitDesc,this);
- childSetPrevalidate("Object Description", LLTextValidate::validateASCIIPrintableNoPipe);
+ getChild<LLLineEditor>("Object Description")->setPrevalidate(LLTextValidate::validateASCIIPrintableNoPipe);
getChild<LLUICtrl>("button set group")->setCommitCallback(boost::bind(&LLSidepanelTaskInfo::onClickGroup,this));
childSetCommitCallback("checkbox share with group", &LLSidepanelTaskInfo::onCommitGroupShare,this);
childSetAction("button deed", &LLSidepanelTaskInfo::onClickDeedToGroup,this);
@@ -144,81 +138,81 @@ BOOL LLSidepanelTaskInfo::postBuild()
void LLSidepanelTaskInfo::disableAll()
{
- childSetEnabled("perm_modify", FALSE);
- childSetText("perm_modify", LLStringUtil::null);
-
- childSetEnabled("Creator:", FALSE);
- childSetText("Creator Name", LLStringUtil::null);
- childSetEnabled("Creator Name", FALSE);
-
- childSetEnabled("Owner:", FALSE);
- childSetText("Owner Name", LLStringUtil::null);
- childSetEnabled("Owner Name", FALSE);
-
- childSetEnabled("Group:", FALSE);
- childSetText("Group Name", LLStringUtil::null);
- childSetEnabled("Group Name", FALSE);
- childSetEnabled("button set group", FALSE);
-
- childSetText("Object Name", LLStringUtil::null);
- childSetEnabled("Object Name", FALSE);
- childSetEnabled("Name:", FALSE);
- childSetText("Group Name", LLStringUtil::null);
- childSetEnabled("Group Name", FALSE);
- childSetEnabled("Description:", FALSE);
- childSetText("Object Description", LLStringUtil::null);
- childSetEnabled("Object Description", FALSE);
-
- childSetEnabled("Permissions:", FALSE);
+ getChildView("perm_modify")->setEnabled(FALSE);
+ getChild<LLUICtrl>("perm_modify")->setValue(LLStringUtil::null);
+
+ getChildView("Creator:")->setEnabled(FALSE);
+ getChild<LLUICtrl>("Creator Name")->setValue(LLStringUtil::null);
+ getChildView("Creator Name")->setEnabled(FALSE);
+
+ getChildView("Owner:")->setEnabled(FALSE);
+ getChild<LLUICtrl>("Owner Name")->setValue(LLStringUtil::null);
+ getChildView("Owner Name")->setEnabled(FALSE);
+
+ getChildView("Group:")->setEnabled(FALSE);
+ getChild<LLUICtrl>("Group Name")->setValue(LLStringUtil::null);
+ getChildView("Group Name")->setEnabled(FALSE);
+ getChildView("button set group")->setEnabled(FALSE);
+
+ getChild<LLUICtrl>("Object Name")->setValue(LLStringUtil::null);
+ getChildView("Object Name")->setEnabled(FALSE);
+ getChildView("Name:")->setEnabled(FALSE);
+ getChild<LLUICtrl>("Group Name")->setValue(LLStringUtil::null);
+ getChildView("Group Name")->setEnabled(FALSE);
+ getChildView("Description:")->setEnabled(FALSE);
+ getChild<LLUICtrl>("Object Description")->setValue(LLStringUtil::null);
+ getChildView("Object Description")->setEnabled(FALSE);
+
+ getChildView("Permissions:")->setEnabled(FALSE);
- childSetValue("checkbox share with group", FALSE);
- childSetEnabled("checkbox share with group", FALSE);
- childSetEnabled("button deed", FALSE);
+ getChild<LLUICtrl>("checkbox share with group")->setValue(FALSE);
+ getChildView("checkbox share with group")->setEnabled(FALSE);
+ getChildView("button deed")->setEnabled(FALSE);
- childSetValue("checkbox allow everyone move", FALSE);
- childSetEnabled("checkbox allow everyone move", FALSE);
- childSetValue("checkbox allow everyone copy", FALSE);
- childSetEnabled("checkbox allow everyone copy", FALSE);
+ getChild<LLUICtrl>("checkbox allow everyone move")->setValue(FALSE);
+ getChildView("checkbox allow everyone move")->setEnabled(FALSE);
+ getChild<LLUICtrl>("checkbox allow everyone copy")->setValue(FALSE);
+ getChildView("checkbox allow everyone copy")->setEnabled(FALSE);
//Next owner can:
- childSetEnabled("Next owner can:", FALSE);
- childSetValue("checkbox next owner can modify", FALSE);
- childSetEnabled("checkbox next owner can modify", FALSE);
- childSetValue("checkbox next owner can copy", FALSE);
- childSetEnabled("checkbox next owner can copy", FALSE);
- childSetValue("checkbox next owner can transfer", FALSE);
- childSetEnabled("checkbox next owner can transfer", FALSE);
+ getChildView("Next owner can:")->setEnabled(FALSE);
+ getChild<LLUICtrl>("checkbox next owner can modify")->setValue(FALSE);
+ getChildView("checkbox next owner can modify")->setEnabled(FALSE);
+ getChild<LLUICtrl>("checkbox next owner can copy")->setValue(FALSE);
+ getChildView("checkbox next owner can copy")->setEnabled(FALSE);
+ getChild<LLUICtrl>("checkbox next owner can transfer")->setValue(FALSE);
+ getChildView("checkbox next owner can transfer")->setEnabled(FALSE);
//checkbox for sale
- childSetValue("checkbox for sale", FALSE);
- childSetEnabled("checkbox for sale", FALSE);
+ getChild<LLUICtrl>("checkbox for sale")->setValue(FALSE);
+ getChildView("checkbox for sale")->setEnabled(FALSE);
//checkbox include in search
- childSetValue("search_check", FALSE);
- childSetEnabled("search_check", FALSE);
+ getChild<LLUICtrl>("search_check")->setValue(FALSE);
+ getChildView("search_check")->setEnabled(FALSE);
LLComboBox* combo_sale_type = getChild<LLComboBox>("sale type");
combo_sale_type->setValue(LLSaleInfo::FS_COPY);
combo_sale_type->setEnabled(FALSE);
- childSetEnabled("Cost", FALSE);
- childSetText("Cost", getString("Cost Default"));
- childSetText("Edit Cost", LLStringUtil::null);
- childSetEnabled("Edit Cost", FALSE);
+ getChildView("Cost")->setEnabled(FALSE);
+ getChild<LLUICtrl>("Cost")->setValue(getString("Cost Default"));
+ getChild<LLUICtrl>("Edit Cost")->setValue(LLStringUtil::null);
+ getChildView("Edit Cost")->setEnabled(FALSE);
- childSetEnabled("label click action", FALSE);
+ getChildView("label click action")->setEnabled(FALSE);
LLComboBox* combo_click_action = getChild<LLComboBox>("clickaction");
if (combo_click_action)
{
combo_click_action->setEnabled(FALSE);
combo_click_action->clear();
}
- childSetVisible("B:", FALSE);
- childSetVisible("O:", FALSE);
- childSetVisible("G:", FALSE);
- childSetVisible("E:", FALSE);
- childSetVisible("N:", FALSE);
- childSetVisible("F:", FALSE);
+ getChildView("B:")->setVisible( FALSE);
+ getChildView("O:")->setVisible( FALSE);
+ getChildView("G:")->setVisible( FALSE);
+ getChildView("E:")->setVisible( FALSE);
+ getChildView("N:")->setVisible( FALSE);
+ getChildView("F:")->setVisible( FALSE);
mOpenBtn->setEnabled(FALSE);
mPayBtn->setEnabled(FALSE);
@@ -289,23 +283,23 @@ void LLSidepanelTaskInfo::refresh()
{
++string_index;
}
- childSetEnabled("perm_modify", TRUE);
- childSetText("perm_modify", MODIFY_INFO_STRINGS[string_index]);
+ getChildView("perm_modify")->setEnabled(TRUE);
+ getChild<LLUICtrl>("perm_modify")->setValue(MODIFY_INFO_STRINGS[string_index]);
- childSetEnabled("Permissions:", TRUE);
+ getChildView("Permissions:")->setEnabled(TRUE);
// Update creator text field
- childSetEnabled("Creator:", TRUE);
+ getChildView("Creator:")->setEnabled(TRUE);
BOOL creators_identical;
std::string creator_name;
creators_identical = LLSelectMgr::getInstance()->selectGetCreator(mCreatorID,
creator_name);
- childSetText("Creator Name", creator_name);
- childSetEnabled("Creator Name", TRUE);
+ getChild<LLUICtrl>("Creator Name")->setValue(creator_name);
+ getChildView("Creator Name")->setEnabled(TRUE);
// Update owner text field
- childSetEnabled("Owner:", TRUE);
+ getChildView("Owner:")->setEnabled(TRUE);
std::string owner_name;
const BOOL owners_identical = LLSelectMgr::getInstance()->selectGetOwner(mOwnerID, owner_name);
@@ -330,12 +324,12 @@ void LLSidepanelTaskInfo::refresh()
}
}
}
- childSetText("Owner Name", owner_name);
- childSetEnabled("Owner Name", TRUE);
+ getChild<LLUICtrl>("Owner Name")->setValue(owner_name);
+ getChildView("Owner Name")->setEnabled(TRUE);
// update group text field
- childSetEnabled("Group:", TRUE);
- childSetText("Group Name", LLStringUtil::null);
+ getChildView("Group:")->setEnabled(TRUE);
+ getChild<LLUICtrl>("Group Name")->setValue(LLStringUtil::null);
LLUUID group_id;
BOOL groups_identical = LLSelectMgr::getInstance()->selectGetGroup(group_id);
if (groups_identical)
@@ -356,18 +350,18 @@ void LLSidepanelTaskInfo::refresh()
}
}
- childSetEnabled("button set group", owners_identical && (mOwnerID == gAgent.getID()));
+ getChildView("button set group")->setEnabled(owners_identical && (mOwnerID == gAgent.getID()));
- childSetEnabled("Name:", TRUE);
+ getChildView("Name:")->setEnabled(TRUE);
LLLineEditor* LineEditorObjectName = getChild<LLLineEditor>("Object Name");
- childSetEnabled("Description:", TRUE);
+ getChildView("Description:")->setEnabled(TRUE);
LLLineEditor* LineEditorObjectDesc = getChild<LLLineEditor>("Object Description");
if (is_one_object)
{
if (!LineEditorObjectName->hasFocus())
{
- childSetText("Object Name",nodep->mName);
+ getChild<LLUICtrl>("Object Name")->setValue(nodep->mName);
}
if (LineEditorObjectDesc)
@@ -380,7 +374,7 @@ void LLSidepanelTaskInfo::refresh()
}
else
{
- childSetText("Object Name", LLStringUtil::null);
+ getChild<LLUICtrl>("Object Name")->setValue(LLStringUtil::null);
LineEditorObjectDesc->setText(LLStringUtil::null);
}
@@ -392,13 +386,13 @@ void LLSidepanelTaskInfo::refresh()
}
if (edit_name_desc)
{
- childSetEnabled("Object Name", TRUE);
- childSetEnabled("Object Description", TRUE);
+ getChildView("Object Name")->setEnabled(TRUE);
+ getChildView("Object Description")->setEnabled(TRUE);
}
else
{
- childSetEnabled("Object Name", FALSE);
- childSetEnabled("Object Description", FALSE);
+ getChildView("Object Name")->setEnabled(FALSE);
+ getChildView("Object Description")->setEnabled(FALSE);
}
S32 total_sale_price = 0;
@@ -420,9 +414,9 @@ void LLSidepanelTaskInfo::refresh()
if (!owners_identical)
{
- childSetEnabled("Cost", FALSE);
- childSetText("Edit Cost", LLStringUtil::null);
- childSetEnabled("Edit Cost", FALSE);
+ getChildView("Cost")->setEnabled(FALSE);
+ getChild<LLUICtrl>("Edit Cost")->setValue(LLStringUtil::null);
+ getChildView("Edit Cost")->setEnabled(FALSE);
}
// You own these objects.
else if (self_owned || (group_owned && gAgent.hasPowerInGroup(group_id,GP_OBJECT_SET_SALE)))
@@ -430,11 +424,11 @@ void LLSidepanelTaskInfo::refresh()
// If there are multiple items for sale then set text to PRICE PER UNIT.
if (num_for_sale > 1)
{
- childSetText("Cost", getString("Cost Per Unit"));
+ getChild<LLUICtrl>("Cost")->setValue(getString("Cost Per Unit"));
}
else
{
- childSetText("Cost", getString("Cost Default"));
+ getChild<LLUICtrl>("Cost")->setValue(getString("Cost Default"));
}
LLSpinCtrl *edit_price = getChild<LLSpinCtrl>("Edit Cost");
@@ -458,35 +452,35 @@ void LLSidepanelTaskInfo::refresh()
// The edit fields are only enabled if you can sell this object
// and the sale price is not mixed.
BOOL enable_edit = (num_for_sale && can_transfer) ? !is_for_sale_mixed : FALSE;
- childSetEnabled("Cost", enable_edit);
- childSetEnabled("Edit Cost", enable_edit);
+ getChildView("Cost")->setEnabled(enable_edit);
+ getChildView("Edit Cost")->setEnabled(enable_edit);
}
// Someone, not you, owns these objects.
else if (!public_owned)
{
- childSetEnabled("Cost", FALSE);
- childSetEnabled("Edit Cost", FALSE);
+ getChildView("Cost")->setEnabled(FALSE);
+ getChildView("Edit Cost")->setEnabled(FALSE);
// Don't show a price if none of the items are for sale.
if (num_for_sale)
- childSetText("Edit Cost", llformat("%d",total_sale_price));
+ getChild<LLUICtrl>("Edit Cost")->setValue(llformat("%d",total_sale_price));
else
- childSetText("Edit Cost", LLStringUtil::null);
+ getChild<LLUICtrl>("Edit Cost")->setValue(LLStringUtil::null);
// If multiple items are for sale, set text to TOTAL PRICE.
if (num_for_sale > 1)
- childSetText("Cost", getString("Cost Total"));
+ getChild<LLUICtrl>("Cost")->setValue(getString("Cost Total"));
else
- childSetText("Cost", getString("Cost Default"));
+ getChild<LLUICtrl>("Cost")->setValue(getString("Cost Default"));
}
// This is a public object.
else
{
- childSetEnabled("Cost", FALSE);
- childSetText("Cost", getString("Cost Default"));
+ getChildView("Cost")->setEnabled(FALSE);
+ getChild<LLUICtrl>("Cost")->setValue(getString("Cost Default"));
- childSetText("Edit Cost", LLStringUtil::null);
- childSetEnabled("Edit Cost", FALSE);
+ getChild<LLUICtrl>("Edit Cost")->setValue(LLStringUtil::null);
+ getChildView("Edit Cost")->setEnabled(FALSE);
}
// Enable and disable the permissions checkboxes
@@ -528,20 +522,20 @@ void LLSidepanelTaskInfo::refresh()
{
if (valid_base_perms)
{
- childSetText("B:", "B: " + mask_to_string(base_mask_on));
- childSetVisible("B:", TRUE);
+ getChild<LLUICtrl>("B:")->setValue("B: " + mask_to_string(base_mask_on));
+ getChildView("B:")->setVisible( TRUE);
- childSetText("O:", "O: " + mask_to_string(owner_mask_on));
- childSetVisible("O:", TRUE);
+ getChild<LLUICtrl>("O:")->setValue("O: " + mask_to_string(owner_mask_on));
+ getChildView("O:")->setVisible( TRUE);
- childSetText("G:", "G: " + mask_to_string(group_mask_on));
- childSetVisible("G:", TRUE);
+ getChild<LLUICtrl>("G:")->setValue("G: " + mask_to_string(group_mask_on));
+ getChildView("G:")->setVisible( TRUE);
- childSetText("E:", "E: " + mask_to_string(everyone_mask_on));
- childSetVisible("E:", TRUE);
+ getChild<LLUICtrl>("E:")->setValue("E: " + mask_to_string(everyone_mask_on));
+ getChildView("E:")->setVisible( TRUE);
- childSetText("N:", "N: " + mask_to_string(next_owner_mask_on));
- childSetVisible("N:", TRUE);
+ getChild<LLUICtrl>("N:")->setValue("N: " + mask_to_string(next_owner_mask_on));
+ getChildView("N:")->setVisible( TRUE);
}
U32 flag_mask = 0x0;
@@ -550,17 +544,17 @@ void LLSidepanelTaskInfo::refresh()
if (objectp->permCopy()) flag_mask |= PERM_COPY;
if (objectp->permTransfer()) flag_mask |= PERM_TRANSFER;
- childSetText("F:", "F:" + mask_to_string(flag_mask));
- childSetVisible("F:", TRUE);
+ getChild<LLUICtrl>("F:")->setValue("F:" + mask_to_string(flag_mask));
+ getChildView("F:")->setVisible( TRUE);
}
else
{
- childSetVisible("B:", FALSE);
- childSetVisible("O:", FALSE);
- childSetVisible("G:", FALSE);
- childSetVisible("E:", FALSE);
- childSetVisible("N:", FALSE);
- childSetVisible("F:", FALSE);
+ getChildView("B:")->setVisible( FALSE);
+ getChildView("O:")->setVisible( FALSE);
+ getChildView("G:")->setVisible( FALSE);
+ getChildView("E:")->setVisible( FALSE);
+ getChildView("N:")->setVisible( FALSE);
+ getChildView("F:")->setVisible( FALSE);
}
BOOL has_change_perm_ability = FALSE;
@@ -580,65 +574,65 @@ void LLSidepanelTaskInfo::refresh()
if (!has_change_perm_ability && !has_change_sale_ability && !root_selected)
{
// ...must select root to choose permissions
- childSetValue("perm_modify", getString("text modify warning"));
+ getChild<LLUICtrl>("perm_modify")->setValue(getString("text modify warning"));
}
if (has_change_perm_ability)
{
- childSetEnabled("checkbox share with group", TRUE);
- childSetEnabled("checkbox allow everyone move", owner_mask_on & PERM_MOVE);
- childSetEnabled("checkbox allow everyone copy", owner_mask_on & PERM_COPY && owner_mask_on & PERM_TRANSFER);
+ getChildView("checkbox share with group")->setEnabled(TRUE);
+ getChildView("checkbox allow everyone move")->setEnabled(owner_mask_on & PERM_MOVE);
+ getChildView("checkbox allow everyone copy")->setEnabled(owner_mask_on & PERM_COPY && owner_mask_on & PERM_TRANSFER);
}
else
{
- childSetEnabled("checkbox share with group", FALSE);
- childSetEnabled("checkbox allow everyone move", FALSE);
- childSetEnabled("checkbox allow everyone copy", FALSE);
+ getChildView("checkbox share with group")->setEnabled(FALSE);
+ getChildView("checkbox allow everyone move")->setEnabled(FALSE);
+ getChildView("checkbox allow everyone copy")->setEnabled(FALSE);
}
if (has_change_sale_ability && (owner_mask_on & PERM_TRANSFER))
{
- childSetEnabled("checkbox for sale", can_transfer || (!can_transfer && num_for_sale));
+ getChildView("checkbox for sale")->setEnabled(can_transfer || (!can_transfer && num_for_sale));
// Set the checkbox to tentative if the prices of each object selected
// are not the same.
- childSetTentative("checkbox for sale", is_for_sale_mixed);
- childSetEnabled("sale type", num_for_sale && can_transfer && !is_sale_price_mixed);
+ getChild<LLUICtrl>("checkbox for sale")->setTentative( is_for_sale_mixed);
+ getChildView("sale type")->setEnabled(num_for_sale && can_transfer && !is_sale_price_mixed);
- childSetEnabled("Next owner can:", TRUE);
- childSetEnabled("checkbox next owner can modify", base_mask_on & PERM_MODIFY);
- childSetEnabled("checkbox next owner can copy", base_mask_on & PERM_COPY);
- childSetEnabled("checkbox next owner can transfer", next_owner_mask_on & PERM_COPY);
+ getChildView("Next owner can:")->setEnabled(TRUE);
+ getChildView("checkbox next owner can modify")->setEnabled(base_mask_on & PERM_MODIFY);
+ getChildView("checkbox next owner can copy")->setEnabled(base_mask_on & PERM_COPY);
+ getChildView("checkbox next owner can transfer")->setEnabled(next_owner_mask_on & PERM_COPY);
}
else
{
- childSetEnabled("checkbox for sale", FALSE);
- childSetEnabled("sale type", FALSE);
+ getChildView("checkbox for sale")->setEnabled(FALSE);
+ getChildView("sale type")->setEnabled(FALSE);
- childSetEnabled("Next owner can:", FALSE);
- childSetEnabled("checkbox next owner can modify", FALSE);
- childSetEnabled("checkbox next owner can copy", FALSE);
- childSetEnabled("checkbox next owner can transfer", FALSE);
+ getChildView("Next owner can:")->setEnabled(FALSE);
+ getChildView("checkbox next owner can modify")->setEnabled(FALSE);
+ getChildView("checkbox next owner can copy")->setEnabled(FALSE);
+ getChildView("checkbox next owner can transfer")->setEnabled(FALSE);
}
if (valid_group_perms)
{
if ((group_mask_on & PERM_COPY) && (group_mask_on & PERM_MODIFY) && (group_mask_on & PERM_MOVE))
{
- childSetValue("checkbox share with group", TRUE);
- childSetTentative("checkbox share with group", FALSE);
- childSetEnabled("button deed", gAgent.hasPowerInGroup(group_id, GP_OBJECT_DEED) && (owner_mask_on & PERM_TRANSFER) && !group_owned && can_transfer);
+ getChild<LLUICtrl>("checkbox share with group")->setValue(TRUE);
+ getChild<LLUICtrl>("checkbox share with group")->setTentative( FALSE);
+ getChildView("button deed")->setEnabled(gAgent.hasPowerInGroup(group_id, GP_OBJECT_DEED) && (owner_mask_on & PERM_TRANSFER) && !group_owned && can_transfer);
}
else if ((group_mask_off & PERM_COPY) && (group_mask_off & PERM_MODIFY) && (group_mask_off & PERM_MOVE))
{
- childSetValue("checkbox share with group", FALSE);
- childSetTentative("checkbox share with group", FALSE);
- childSetEnabled("button deed", FALSE);
+ getChild<LLUICtrl>("checkbox share with group")->setValue(FALSE);
+ getChild<LLUICtrl>("checkbox share with group")->setTentative( FALSE);
+ getChildView("button deed")->setEnabled(FALSE);
}
else
{
- childSetValue("checkbox share with group", TRUE);
- childSetTentative("checkbox share with group", TRUE);
- childSetEnabled("button deed", gAgent.hasPowerInGroup(group_id, GP_OBJECT_DEED) && (group_mask_on & PERM_MOVE) && (owner_mask_on & PERM_TRANSFER) && !group_owned && can_transfer);
+ getChild<LLUICtrl>("checkbox share with group")->setValue(TRUE);
+ getChild<LLUICtrl>("checkbox share with group")->setTentative( TRUE);
+ getChildView("button deed")->setEnabled(gAgent.hasPowerInGroup(group_id, GP_OBJECT_DEED) && (group_mask_on & PERM_MOVE) && (owner_mask_on & PERM_TRANSFER) && !group_owned && can_transfer);
}
}
@@ -647,35 +641,35 @@ void LLSidepanelTaskInfo::refresh()
// Move
if (everyone_mask_on & PERM_MOVE)
{
- childSetValue("checkbox allow everyone move", TRUE);
- childSetTentative("checkbox allow everyone move", FALSE);
+ getChild<LLUICtrl>("checkbox allow everyone move")->setValue(TRUE);
+ getChild<LLUICtrl>("checkbox allow everyone move")->setTentative( FALSE);
}
else if (everyone_mask_off & PERM_MOVE)
{
- childSetValue("checkbox allow everyone move", FALSE);
- childSetTentative("checkbox allow everyone move", FALSE);
+ getChild<LLUICtrl>("checkbox allow everyone move")->setValue(FALSE);
+ getChild<LLUICtrl>("checkbox allow everyone move")->setTentative( FALSE);
}
else
{
- childSetValue("checkbox allow everyone move", TRUE);
- childSetTentative("checkbox allow everyone move", TRUE);
+ getChild<LLUICtrl>("checkbox allow everyone move")->setValue(TRUE);
+ getChild<LLUICtrl>("checkbox allow everyone move")->setTentative( TRUE);
}
// Copy == everyone can't copy
if (everyone_mask_on & PERM_COPY)
{
- childSetValue("checkbox allow everyone copy", TRUE);
- childSetTentative("checkbox allow everyone copy", !can_copy || !can_transfer);
+ getChild<LLUICtrl>("checkbox allow everyone copy")->setValue(TRUE);
+ getChild<LLUICtrl>("checkbox allow everyone copy")->setTentative( !can_copy || !can_transfer);
}
else if (everyone_mask_off & PERM_COPY)
{
- childSetValue("checkbox allow everyone copy", FALSE);
- childSetTentative("checkbox allow everyone copy", FALSE);
+ getChild<LLUICtrl>("checkbox allow everyone copy")->setValue(FALSE);
+ getChild<LLUICtrl>("checkbox allow everyone copy")->setTentative( FALSE);
}
else
{
- childSetValue("checkbox allow everyone copy", TRUE);
- childSetTentative("checkbox allow everyone copy", TRUE);
+ getChild<LLUICtrl>("checkbox allow everyone copy")->setValue(TRUE);
+ getChild<LLUICtrl>("checkbox allow everyone copy")->setTentative( TRUE);
}
}
@@ -684,52 +678,52 @@ void LLSidepanelTaskInfo::refresh()
// Modify == next owner canot modify
if (next_owner_mask_on & PERM_MODIFY)
{
- childSetValue("checkbox next owner can modify", TRUE);
- childSetTentative("checkbox next owner can modify", FALSE);
+ getChild<LLUICtrl>("checkbox next owner can modify")->setValue(TRUE);
+ getChild<LLUICtrl>("checkbox next owner can modify")->setTentative( FALSE);
}
else if (next_owner_mask_off & PERM_MODIFY)
{
- childSetValue("checkbox next owner can modify", FALSE);
- childSetTentative("checkbox next owner can modify", FALSE);
+ getChild<LLUICtrl>("checkbox next owner can modify")->setValue(FALSE);
+ getChild<LLUICtrl>("checkbox next owner can modify")->setTentative( FALSE);
}
else
{
- childSetValue("checkbox next owner can modify", TRUE);
- childSetTentative("checkbox next owner can modify", TRUE);
+ getChild<LLUICtrl>("checkbox next owner can modify")->setValue(TRUE);
+ getChild<LLUICtrl>("checkbox next owner can modify")->setTentative( TRUE);
}
// Copy == next owner cannot copy
if (next_owner_mask_on & PERM_COPY)
{
- childSetValue("checkbox next owner can copy", TRUE);
- childSetTentative("checkbox next owner can copy", !can_copy);
+ getChild<LLUICtrl>("checkbox next owner can copy")->setValue(TRUE);
+ getChild<LLUICtrl>("checkbox next owner can copy")->setTentative( !can_copy);
}
else if (next_owner_mask_off & PERM_COPY)
{
- childSetValue("checkbox next owner can copy", FALSE);
- childSetTentative("checkbox next owner can copy", FALSE);
+ getChild<LLUICtrl>("checkbox next owner can copy")->setValue(FALSE);
+ getChild<LLUICtrl>("checkbox next owner can copy")->setTentative( FALSE);
}
else
{
- childSetValue("checkbox next owner can copy", TRUE);
- childSetTentative("checkbox next owner can copy", TRUE);
+ getChild<LLUICtrl>("checkbox next owner can copy")->setValue(TRUE);
+ getChild<LLUICtrl>("checkbox next owner can copy")->setTentative( TRUE);
}
// Transfer == next owner cannot transfer
if (next_owner_mask_on & PERM_TRANSFER)
{
- childSetValue("checkbox next owner can transfer", TRUE);
- childSetTentative("checkbox next owner can transfer", !can_transfer);
+ getChild<LLUICtrl>("checkbox next owner can transfer")->setValue(TRUE);
+ getChild<LLUICtrl>("checkbox next owner can transfer")->setTentative( !can_transfer);
}
else if (next_owner_mask_off & PERM_TRANSFER)
{
- childSetValue("checkbox next owner can transfer", FALSE);
- childSetTentative("checkbox next owner can transfer", FALSE);
+ getChild<LLUICtrl>("checkbox next owner can transfer")->setValue(FALSE);
+ getChild<LLUICtrl>("checkbox next owner can transfer")->setTentative( FALSE);
}
else
{
- childSetValue("checkbox next owner can transfer", TRUE);
- childSetTentative("checkbox next owner can transfer", TRUE);
+ getChild<LLUICtrl>("checkbox next owner can transfer")->setValue(TRUE);
+ getChild<LLUICtrl>("checkbox next owner can transfer")->setTentative( TRUE);
}
}
@@ -751,7 +745,7 @@ void LLSidepanelTaskInfo::refresh()
combo_sale_type->setTentative( TRUE); // unfortunately this doesn't do anything at the moment.
}
- childSetValue("checkbox for sale", (num_for_sale != 0));
+ getChild<LLUICtrl>("checkbox for sale")->setValue((num_for_sale != 0));
// HACK: There are some old objects in world that are set for sale,
// but are no-transfer. We need to let users turn for-sale off, but only
@@ -761,7 +755,7 @@ void LLSidepanelTaskInfo::refresh()
{
if (num_for_sale && has_change_sale_ability)
{
- childSetEnabled("checkbox for sale", true);
+ getChildView("checkbox for sale")->setEnabled(true);
}
}
@@ -769,9 +763,9 @@ void LLSidepanelTaskInfo::refresh()
const BOOL all_volume = LLSelectMgr::getInstance()->selectionAllPCode( LL_PCODE_VOLUME );
bool include_in_search;
const BOOL all_include_in_search = LLSelectMgr::getInstance()->selectionGetIncludeInSearch(&include_in_search);
- childSetEnabled("search_check", has_change_sale_ability && all_volume);
- childSetValue("search_check", include_in_search);
- childSetTentative("search_check", !all_include_in_search);
+ getChildView("search_check")->setEnabled(has_change_sale_ability && all_volume);
+ getChild<LLUICtrl>("search_check")->setValue(include_in_search);
+ getChild<LLUICtrl>("search_check")->setTentative( !all_include_in_search);
// Click action (touch, sit, buy)
U8 click_action = 0;
@@ -783,8 +777,8 @@ void LLSidepanelTaskInfo::refresh()
ComboClickAction->setCurrentByIndex((S32)click_action);
}
}
- childSetEnabled("label click action", is_perm_modify && all_volume);
- childSetEnabled("clickaction", is_perm_modify && all_volume);
+ getChildView("label click action")->setEnabled(is_perm_modify && all_volume);
+ getChildView("clickaction")->setEnabled(is_perm_modify && all_volume);
if (!getIsEditing())
{
@@ -810,7 +804,7 @@ void LLSidepanelTaskInfo::refresh()
};
for (size_t t=0; t<LL_ARRAY_SIZE(no_item_names); ++t)
{
- childSetEnabled(no_item_names[t], FALSE);
+ getChildView(no_item_names[t])->setEnabled( FALSE);
}
}
updateVerbs();
diff --git a/indra/newview/llsidepaneltaskinfo.h b/indra/newview/llsidepaneltaskinfo.h
index 010173e84e..384bc479d6 100644
--- a/indra/newview/llsidepaneltaskinfo.h
+++ b/indra/newview/llsidepaneltaskinfo.h
@@ -2,31 +2,25 @@
* @file llsidepaneltaskinfo.h
* @brief LLSidepanelTaskInfo class header file
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -121,7 +115,7 @@ private:
protected:
LLViewerObject* getObject();
private:
- LLViewerObject* mObject;
+ LLPointer<LLViewerObject> mObject;
LLObjectSelectionHandle mObjectSelection;
static LLSidepanelTaskInfo* sActivePanel;
};
diff --git a/indra/newview/llsidetray.cpp b/indra/newview/llsidetray.cpp
index fed39c362e..521e5005e8 100644
--- a/indra/newview/llsidetray.cpp
+++ b/indra/newview/llsidetray.cpp
@@ -2,31 +2,25 @@
* @file llsidetray.cpp
* @brief SideBar implementation
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -37,6 +31,9 @@
#include "llagentcamera.h"
#include "llappviewer.h"
#include "llbottomtray.h"
+#include "llfloaterreg.h"
+#include "llfirstuse.h"
+#include "llhints.h"
#include "llsidetray.h"
#include "llviewerwindow.h"
#include "llaccordionctrl.h"
@@ -49,12 +46,15 @@
#include "llfloater.h" //for gFloaterView
#include "lliconctrl.h"//for OpenClose tab icon
#include "llsidetraypanelcontainer.h"
+#include "llscreenchannel.h"
+#include "llchannelmanager.h"
#include "llwindow.h"//for SetCursor
#include "lltransientfloatermgr.h"
//#include "llscrollcontainer.h"
using namespace std;
+using namespace LLNotificationsUI;
static LLRootViewRegistry::Register<LLSideTray> t1("side_tray");
static LLDefaultChildRegistry::Register<LLSideTrayTab> t2("sidetray_tab");
@@ -67,6 +67,7 @@ static const std::string TAB_PANEL_CAPTION_TITLE_BOX = "sidetray_tab_title";
LLSideTray* LLSideTray::sInstance = 0;
+// static
LLSideTray* LLSideTray::getInstance()
{
if (!sInstance)
@@ -78,6 +79,7 @@ LLSideTray* LLSideTray::getInstance()
return sInstance;
}
+// static
bool LLSideTray::instanceCreated ()
{
return sInstance!=0;
@@ -112,6 +114,10 @@ public:
protected:
LLSideTrayTab(const Params& params);
+ void dock();
+ void undock(LLFloater* floater_tab);
+
+ LLSideTray* getSideTray();
public:
virtual ~LLSideTrayTab();
@@ -129,6 +135,8 @@ public:
void onOpen (const LLSD& key);
+ void toggleTabDocked();
+
LLPanel *getPanel();
private:
std::string mTabTitle;
@@ -174,6 +182,9 @@ BOOL LLSideTrayTab::postBuild()
title_panel->getChild<LLTextBox>(TAB_PANEL_CAPTION_TITLE_BOX)->setValue(mTabTitle);
+ getChild<LLButton>("undock")->setCommitCallback(boost::bind(&LLSideTrayTab::toggleTabDocked, this));
+ getChild<LLButton>("dock")->setCommitCallback(boost::bind(&LLSideTrayTab::toggleTabDocked, this));
+
return true;
}
@@ -206,6 +217,145 @@ void LLSideTrayTab::onOpen (const LLSD& key)
panel->onOpen(key);
}
+// Attempts to get the existing side tray instance.
+// Needed to avoid recursive calls of LLSideTray::getInstance().
+LLSideTray* LLSideTrayTab::getSideTray()
+{
+ // First, check if the side tray is our parent (i.e. we're attached).
+ LLSideTray* side_tray = dynamic_cast<LLSideTray*>(getParent());
+ if (!side_tray)
+ {
+ // Detached? Ok, check if the instance exists at all/
+ if (LLSideTray::instanceCreated())
+ {
+ side_tray = LLSideTray::getInstance();
+ }
+ else
+ {
+ llerrs << "No safe way to get the side tray instance" << llendl;
+ }
+ }
+
+ return side_tray;
+}
+
+void LLSideTrayTab::toggleTabDocked()
+{
+ std::string tab_name = getName();
+
+ LLFloater* floater_tab = LLFloaterReg::getInstance("side_bar_tab", tab_name);
+ if (!floater_tab) return;
+
+ bool docking = LLFloater::isShown(floater_tab);
+
+ // Hide the "Tear Off" button when a tab gets undocked
+ // and show "Dock" button instead.
+ getChild<LLButton>("undock")->setVisible(docking);
+ getChild<LLButton>("dock")->setVisible(!docking);
+
+ if (docking)
+ {
+ dock();
+ }
+ else
+ {
+ undock(floater_tab);
+ }
+
+ // Open/close the floater *after* we reparent the tab panel,
+ // so that it doesn't receive redundant visibility change notifications.
+ LLFloaterReg::toggleInstance("side_bar_tab", tab_name);
+}
+
+void LLSideTrayTab::dock()
+{
+ LLSideTray* side_tray = getSideTray();
+ if (!side_tray) return;
+
+ if (!side_tray->addTab(this))
+ {
+ llwarns << "Failed to add tab " << getName() << " to side tray" << llendl;
+ return;
+ }
+
+ setRect(side_tray->getLocalRect());
+ reshape(getRect().getWidth(), getRect().getHeight());
+
+ // Select the re-docked tab.
+ side_tray->selectTabByName(getName());
+
+ if (side_tray->getCollapsed())
+ {
+ side_tray->expandSideBar(false);
+ }
+}
+
+void LLSideTrayTab::undock(LLFloater* floater_tab)
+{
+ LLSideTray* side_tray = getSideTray();
+ if (!side_tray) return;
+
+ // Remember whether the tab have been active before detaching
+ // because removeTab() will change active tab.
+ bool was_active = side_tray->getActiveTab() == this;
+
+ // Remove the tab from Side Tray's tabs list.
+ // We have to do it despite removing the tab from Side Tray's child view tree
+ // by addChild(). Otherwise the tab could be accessed by the pointer in LLSideTray::mTabs.
+ if (!side_tray->removeTab(this))
+ {
+ llwarns << "Failed to remove tab " << getName() << " from side tray" << llendl;
+ return;
+ }
+
+ // If we're undocking while side tray is collapsed we need to explicitly show the panel.
+ if (!getVisible())
+ {
+ setVisible(true);
+ }
+
+ floater_tab->addChild(this);
+ floater_tab->setTitle(mTabTitle);
+ floater_tab->setName(getName());
+
+ // Reshape the floater if needed.
+ LLRect floater_rect;
+ if (floater_tab->hasSavedRect())
+ {
+ // We've got saved rect for the floater, hence no need to reshape it.
+ floater_rect = floater_tab->getLocalRect();
+ }
+ else
+ {
+ // Detaching for the first time. Reshape the floater.
+ floater_rect = side_tray->getLocalRect();
+ floater_tab->reshape(floater_rect.getWidth(), floater_rect.getHeight());
+ }
+
+ // Reshape the panel.
+ {
+ LLRect panel_rect = floater_rect;
+ panel_rect.mTop -= floater_tab->getHeaderHeight();
+ setRect(panel_rect);
+ reshape(panel_rect.getWidth(), panel_rect.getHeight());
+ }
+
+ // Set FOLLOWS_ALL flag for the tab to follow floater dimensions upon resizing.
+ setFollowsAll();
+
+ if (!side_tray->getCollapsed())
+ {
+ side_tray->collapseSideBar();
+ }
+
+ if (!was_active)
+ {
+ // When a tab other then current active tab is detached from Side Tray
+ // onOpen() should be called as tab visibility is changed.
+ onOpen(LLSD());
+ }
+}
+
LLPanel* LLSideTrayTab::getPanel()
{
LLPanel* panel = dynamic_cast<LLPanel*>(mMainPanel);
@@ -222,20 +372,106 @@ LLSideTrayTab* LLSideTrayTab::createInstance ()
}
//////////////////////////////////////////////////////////////////////////////
+// LLSideTrayButton
+// Side Tray tab button with "tear off" handling.
+//////////////////////////////////////////////////////////////////////////////
+
+class LLSideTrayButton : public LLButton
+{
+public:
+ /*virtual*/ BOOL handleMouseDown(S32 x, S32 y, MASK mask)
+ {
+ // Route future Mouse messages here preemptively. (Release on mouse up.)
+ // No handler needed for focus lost since this class has no state that depends on it.
+ gFocusMgr.setMouseCapture(this);
+
+ localPointToScreen(x, y, &mDragLastScreenX, &mDragLastScreenY);
+
+ // Note: don't pass on to children
+ return TRUE;
+ }
+
+ /*virtual*/ BOOL handleHover(S32 x, S32 y, MASK mask)
+ {
+ // We only handle the click if the click both started and ended within us
+ if( !hasMouseCapture() ) return FALSE;
+
+ S32 screen_x;
+ S32 screen_y;
+ localPointToScreen(x, y, &screen_x, &screen_y);
+
+ S32 delta_x = screen_x - mDragLastScreenX;
+ S32 delta_y = screen_y - mDragLastScreenY;
+
+ LLSideTray* side_tray = LLSideTray::getInstance();
+
+ // Check if the tab we are dragging is docked.
+ if (!side_tray->isTabAttached(getName())) return FALSE;
+
+ // Same value is hardcoded in LLDragHandle::handleHover().
+ const S32 undock_threshold = 12;
+
+ // Detach a tab if it has been pulled further than undock_threshold.
+ if (delta_x <= -undock_threshold || delta_x >= undock_threshold ||
+ delta_y <= -undock_threshold || delta_y >= undock_threshold)
+ {
+ LLSideTrayTab* tab = side_tray->getTab(getName());
+ if (!tab) return FALSE;
+
+ tab->toggleTabDocked();
+
+ LLFloater* floater_tab = LLFloaterReg::getInstance("side_bar_tab", tab->getName());
+ if (!floater_tab) return FALSE;
+
+ LLRect original_rect = floater_tab->getRect();
+ S32 header_snap_y = floater_tab->getHeaderHeight() / 2;
+ S32 snap_x = screen_x - original_rect.mLeft - original_rect.getWidth() / 2;
+ S32 snap_y = screen_y - original_rect.mTop + header_snap_y;
+
+ // Move the floater to appear "under" the mouse pointer.
+ floater_tab->setRect(original_rect.translate(snap_x, snap_y));
+
+ // Snap the mouse pointer to the center of the floater header
+ // and call 'mouse down' event handler to begin dragging.
+ floater_tab->handleMouseDown(original_rect.getWidth() / 2,
+ original_rect.getHeight() - header_snap_y,
+ mask);
+
+ return TRUE;
+ }
+
+ return FALSE;
+ }
+
+protected:
+ LLSideTrayButton(const LLButton::Params& p)
+ : LLButton(p)
+ , mDragLastScreenX(0)
+ , mDragLastScreenY(0)
+ {}
+
+ friend class LLUICtrlFactory;
+
+private:
+ S32 mDragLastScreenX;
+ S32 mDragLastScreenY;
+};
+
+//////////////////////////////////////////////////////////////////////////////
// LLSideTray
//////////////////////////////////////////////////////////////////////////////
LLSideTray::Params::Params()
: collapsed("collapsed",false),
- tab_btn_image_normal("tab_btn_image","sidebar_tab_left.tga"),
- tab_btn_image_selected("tab_btn_image_selected","button_enabled_selected_32x128.tga"),
+ tab_btn_image_normal("tab_btn_image",LLUI::getUIImage("sidebar_tab_left.tga")),
+ tab_btn_image_selected("tab_btn_image_selected",LLUI::getUIImage("button_enabled_selected_32x128.tga")),
default_button_width("tab_btn_width",32),
default_button_height("tab_btn_height",32),
default_button_margin("tab_btn_margin",0)
{}
//virtual
-LLSideTray::LLSideTray(Params& params)
+LLSideTray::LLSideTray(const Params& params)
: LLPanel(params)
,mActiveTab(0)
,mCollapsed(false)
@@ -276,6 +512,24 @@ BOOL LLSideTray::postBuild()
LLAppViewer::instance()->setOnLoginCompletedCallback(boost::bind(&LLSideTray::handleLoginComplete, this));
+ // Remember original tabs order, so that we can restore it if user detaches and then re-attaches a tab.
+ for (child_vector_const_iter_t it = mTabs.begin(); it != mTabs.end(); ++it)
+ {
+ std::string tab_name = (*it)->getName();
+ mOriginalTabOrder.push_back(tab_name);
+ }
+
+ //EXT-8045
+ //connect all already created channels to reflect sidetray collapse/expand
+ std::vector<LLChannelManager::ChannelElem>& channels = LLChannelManager::getInstance()->getChannelList();
+ for(std::vector<LLChannelManager::ChannelElem>::iterator it = channels.begin();it!=channels.end();++it)
+ {
+ if ((*it).channel)
+ {
+ getCollapseSignal().connect(boost::bind(&LLScreenChannelBase::resetPositionAndSize, (*it).channel, _2));
+ }
+ }
+
return true;
}
@@ -283,13 +537,28 @@ void LLSideTray::handleLoginComplete()
{
//reset tab to "home" tab if it was changesd during login process
selectTabByName("sidebar_home");
+
+ detachTabs();
}
LLSideTrayTab* LLSideTray::getTab(const std::string& name)
{
- return getChild<LLSideTrayTab>(name,false);
+ return findChild<LLSideTrayTab>(name,false);
}
+bool LLSideTray::isTabAttached(const std::string& name)
+{
+ LLSideTrayTab* tab = getTab(name);
+ if (!tab) return false;
+
+ return std::find(mTabs.begin(), mTabs.end(), tab) != mTabs.end();
+}
+
+bool LLSideTray::hasTabs()
+{
+ // The open/close tab doesn't count.
+ return mTabs.size() > 1;
+}
void LLSideTray::toggleTabButton(LLSideTrayTab* tab)
{
@@ -302,10 +571,59 @@ void LLSideTray::toggleTabButton(LLSideTrayTab* tab)
LLButton* btn = it->second;
bool new_state = !btn->getToggleState();
btn->setToggleState(new_state);
- btn->setImageOverlay( new_state ? tab->mImageSelected : tab->mImage );
+ // Only highlight the tab if side tray is expanded (STORM-157).
+ btn->setImageOverlay( new_state && !getCollapsed() ? tab->mImageSelected : tab->mImage );
}
}
+LLPanel* LLSideTray::openChildPanel(LLSideTrayTab* tab, const std::string& panel_name, const LLSD& params)
+{
+ LLView* view = tab->findChildView(panel_name, true);
+ if (!view) return NULL;
+
+ std::string tab_name = tab->getName();
+
+ // Select tab and expand Side Tray only when a tab is attached.
+ if (isTabAttached(tab_name))
+ {
+ selectTabByName(tab_name);
+ if (mCollapsed)
+ expandSideBar();
+ }
+ else
+ {
+ LLFloater* floater_tab = LLFloaterReg::getInstance("side_bar_tab", tab_name);
+ if (!floater_tab) return NULL;
+
+ // Restore the floater if it was minimized.
+ if (floater_tab->isMinimized())
+ {
+ floater_tab->setMinimized(FALSE);
+ }
+
+ // Send the floater to the front.
+ floater_tab->setFrontmost();
+ }
+
+ LLSideTrayPanelContainer* container = dynamic_cast<LLSideTrayPanelContainer*>(view->getParent());
+ if (container)
+ {
+ LLSD new_params = params;
+ new_params[LLSideTrayPanelContainer::PARAM_SUB_PANEL_NAME] = panel_name;
+ container->onOpen(new_params);
+
+ return container->getCurrentPanel();
+ }
+
+ LLPanel* panel = dynamic_cast<LLPanel*>(view);
+ if (panel)
+ {
+ panel->onOpen(params);
+ }
+
+ return panel;
+}
+
bool LLSideTray::selectTabByIndex(size_t index)
{
if(index>=mTabs.size())
@@ -315,24 +633,33 @@ bool LLSideTray::selectTabByIndex(size_t index)
return selectTabByName(sidebar_tab->getName());
}
-bool LLSideTray::selectTabByName (const std::string& name)
+bool LLSideTray::selectTabByName(const std::string& name, bool keep_prev_visible)
{
- LLSideTrayTab* side_bar = getTab(name);
+ LLSideTrayTab* tab_to_keep_visible = NULL;
+ LLSideTrayTab* new_tab = getTab(name);
+ if (!new_tab) return false;
- if(side_bar == mActiveTab)
+ // Bail out if already selected.
+ if (new_tab == mActiveTab)
return false;
+
//deselect old tab
+ if (mActiveTab)
+ {
+ // Keep previously active tab visible if requested.
+ if (keep_prev_visible) tab_to_keep_visible = mActiveTab;
toggleTabButton(mActiveTab);
- if(mActiveTab)
- mActiveTab->setVisible(false);
+ }
//select new tab
- mActiveTab = side_bar;
+ mActiveTab = new_tab;
+
+ if (mActiveTab)
+ {
toggleTabButton(mActiveTab);
LLSD key;//empty
mActiveTab->onOpen(key);
-
- mActiveTab->setVisible(true);
+ }
//arrange();
@@ -341,7 +668,17 @@ bool LLSideTray::selectTabByName (const std::string& name)
for ( child_it = mTabs.begin(); child_it != mTabs.end(); ++child_it)
{
LLSideTrayTab* sidebar_tab = *child_it;
- sidebar_tab->setVisible(sidebar_tab == mActiveTab);
+
+ bool vis = sidebar_tab == mActiveTab;
+
+ // Force keeping the tab visible if requested.
+ vis |= sidebar_tab == tab_to_keep_visible;
+
+ // When the last tab gets detached, for a short moment the "Toggle Sidebar" pseudo-tab
+ // is shown. So, to avoid the flicker we make sure it never gets visible.
+ vis &= (*child_it)->getName() != "sidebar_openclose";
+
+ sidebar_tab->setVisible(vis);
}
return true;
}
@@ -360,13 +697,23 @@ LLButton* LLSideTray::createButton (const std::string& name,const std::string& i
bparams.follows.flags (FOLLOWS_LEFT | FOLLOWS_TOP);
bparams.rect (rect);
bparams.tab_stop(false);
- bparams.image_unselected.name(sidetray_params.tab_btn_image_normal);
- bparams.image_selected.name(sidetray_params.tab_btn_image_selected);
- bparams.image_disabled.name(sidetray_params.tab_btn_image_normal);
- bparams.image_disabled_selected.name(sidetray_params.tab_btn_image_selected);
+ bparams.image_unselected(sidetray_params.tab_btn_image_normal);
+ bparams.image_selected(sidetray_params.tab_btn_image_selected);
+ bparams.image_disabled(sidetray_params.tab_btn_image_normal);
+ bparams.image_disabled_selected(sidetray_params.tab_btn_image_selected);
+
+ LLButton* button;
+ if (name == "sidebar_openclose")
+ {
+ // "Open/Close" button shouldn't allow "tear off"
+ // hence it is created as LLButton instance.
+ button = LLUICtrlFactory::create<LLButton>(bparams);
+ }
+ else
+ {
+ button = LLUICtrlFactory::create<LLSideTrayButton>(bparams);
+ }
- LLButton* button = LLUICtrlFactory::create<LLButton> (bparams);
- button->setLabel(name);
button->setClickedCallback(callback);
button->setToolTip(tooltip);
@@ -393,6 +740,120 @@ bool LLSideTray::addChild(LLView* view, S32 tab_group)
return LLUICtrl::addChild(view, tab_group);
}
+bool LLSideTray::removeTab(LLSideTrayTab* tab)
+{
+ if (!tab) return false;
+ std::string tab_name = tab->getName();
+
+ // Look up the tab in the list of known tabs.
+ child_vector_iter_t tab_it = std::find(mTabs.begin(), mTabs.end(), tab);
+ if (tab_it == mTabs.end())
+ {
+ llwarns << "Cannot find tab named " << tab_name << llendl;
+ return false;
+ }
+
+ // Find the button corresponding to the tab.
+ button_map_t::iterator btn_it = mTabButtons.find(tab_name);
+ if (btn_it == mTabButtons.end())
+ {
+ llwarns << "Cannot find button for tab named " << tab_name << llendl;
+ return false;
+ }
+ LLButton* btn = btn_it->second;
+
+ // Deselect the tab.
+ if (mActiveTab == tab)
+ {
+ // Select the next tab (or first one, if we're removing the last tab),
+ // skipping the fake open/close tab (STORM-155).
+ child_vector_iter_t next_tab_it = tab_it;
+ do
+ {
+ next_tab_it = (next_tab_it < (mTabs.end() - 1)) ? next_tab_it + 1 : mTabs.begin();
+ }
+ while ((*next_tab_it)->getName() == "sidebar_openclose");
+
+ selectTabByName((*next_tab_it)->getName(), true); // Don't hide the tab being removed.
+ }
+
+ // Remove the tab.
+ removeChild(tab);
+ mTabs.erase(tab_it);
+
+ // Add the tab to detached tabs list.
+ mDetachedTabs.push_back(tab);
+
+ // Remove the button from the buttons panel so that it isn't drawn anymore.
+ mButtonsPanel->removeChild(btn);
+
+ // Re-arrange remaining tabs.
+ arrange();
+
+ return true;
+}
+
+bool LLSideTray::addTab(LLSideTrayTab* tab)
+{
+ if (tab == NULL) return false;
+
+ std::string tab_name = tab->getName();
+
+ // Make sure the tab isn't already in the list.
+ if (std::find(mTabs.begin(), mTabs.end(), tab) != mTabs.end())
+ {
+ llwarns << "Attempt to re-add existing tab " << tab_name << llendl;
+ return false;
+ }
+
+ // Look up the corresponding button.
+ button_map_t::const_iterator btn_it = mTabButtons.find(tab_name);
+ if (btn_it == mTabButtons.end())
+ {
+ llwarns << "Tab " << tab_name << " has no associated button" << llendl;
+ return false;
+ }
+ LLButton* btn = btn_it->second;
+
+ // Insert the tab at its original position.
+ LLUICtrl::addChild(tab);
+ {
+ tab_order_vector_const_iter_t new_tab_orig_pos =
+ std::find(mOriginalTabOrder.begin(), mOriginalTabOrder.end(), tab_name);
+ llassert(new_tab_orig_pos != mOriginalTabOrder.end());
+ child_vector_iter_t insert_pos = mTabs.end();
+
+ for (child_vector_iter_t tab_it = mTabs.begin(); tab_it != mTabs.end(); ++tab_it)
+ {
+ tab_order_vector_const_iter_t cur_tab_orig_pos =
+ std::find(mOriginalTabOrder.begin(), mOriginalTabOrder.end(), (*tab_it)->getName());
+ llassert(cur_tab_orig_pos != mOriginalTabOrder.end());
+
+ if (new_tab_orig_pos < cur_tab_orig_pos)
+ {
+ insert_pos = tab_it;
+ break;
+ }
+ }
+
+ mTabs.insert(insert_pos, tab);
+ }
+
+ // Add the button to the buttons panel so that it's drawn again.
+ mButtonsPanel->addChildInBack(btn);
+
+ // Arrange tabs after inserting a new one.
+ arrange();
+
+ // Remove the tab from the list of detached tabs.
+ child_vector_iter_t tab_it = std::find(mDetachedTabs.begin(), mDetachedTabs.end(), tab);
+ if (tab_it != mDetachedTabs.end())
+ {
+ mDetachedTabs.erase(tab_it);
+ }
+
+ return true;
+}
void LLSideTray::createButtons ()
{
@@ -407,16 +868,19 @@ void LLSideTray::createButtons ()
// The "OpenClose" button will open/close the whole panel
if (name == "sidebar_openclose")
{
- mCollapseButton = createButton("",sidebar_tab->mImage,sidebar_tab->getTabTitle(),
+ mCollapseButton = createButton(name,sidebar_tab->mImage,sidebar_tab->getTabTitle(),
boost::bind(&LLSideTray::onToggleCollapse, this));
+ LLHints::registerHintTarget("side_panel_btn", mCollapseButton->getHandle());
}
else
{
- LLButton* button = createButton("",sidebar_tab->mImage,sidebar_tab->getTabTitle(),
+ LLButton* button = createButton(name,sidebar_tab->mImage,sidebar_tab->getTabTitle(),
boost::bind(&LLSideTray::onTabButtonClick, this, name));
mTabButtons[name] = button;
}
}
+ LLHints::registerHintTarget("inventory_btn", mTabButtons["sidebar_inventory"]->getHandle());
+ LLHints::registerHintTarget("dest_guide_btn", mTabButtons["sidebar_places"]->getHandle());
}
void LLSideTray::processTriState ()
@@ -440,8 +904,10 @@ void LLSideTray::processTriState ()
void LLSideTray::onTabButtonClick(string name)
{
- LLSideTrayTab* side_bar = getTab(name);
- if(side_bar == mActiveTab)
+ LLSideTrayTab* tab = getTab(name);
+ if (!tab) return;
+
+ if(tab == mActiveTab)
{
processTriState ();
return;
@@ -453,6 +919,7 @@ void LLSideTray::onTabButtonClick(string name)
void LLSideTray::onToggleCollapse()
{
+ LLFirstUse::notUsingSidePanel(false);
if(mCollapsed)
{
expandSideBar();
@@ -529,6 +996,31 @@ void LLSideTray::arrange()
LLSideTrayTab* sidebar_tab = *child_it;
sidebar_tab->setShape(getLocalRect());
}
+
+ // The tab buttons should be shown only if there is at least one non-detached tab.
+ mButtonsPanel->setVisible(hasTabs());
+}
+
+// Detach those tabs that were detached when the viewer exited last time.
+void LLSideTray::detachTabs()
+{
+ // copy mTabs because LLSideTray::toggleTabDocked() modifies it.
+ child_vector_t tabs = mTabs;
+
+ for (child_vector_const_iter_t it = tabs.begin(); it != tabs.end(); ++it)
+ {
+ LLSideTrayTab* tab = *it;
+
+ std::string floater_ctrl_name = LLFloater::getControlName("side_bar_tab", LLSD(tab->getName()));
+ std::string vis_ctrl_name = LLFloaterReg::getVisibilityControlName(floater_ctrl_name);
+ if (!LLFloater::getControlGroup()->controlExists(vis_ctrl_name)) continue;
+
+ bool is_visible = LLFloater::getControlGroup()->getBOOL(vis_ctrl_name);
+ if (!is_visible) continue;
+
+ llassert(isTabAttached(tab->getName()));
+ tab->toggleTabDocked();
+ }
}
void LLSideTray::collapseSideBar()
@@ -561,7 +1053,7 @@ void LLSideTray::collapseSideBar()
setFocus( FALSE );
}
-void LLSideTray::expandSideBar()
+void LLSideTray::expandSideBar(bool open_active)
{
mCollapsed = false;
LLSideTrayTab* openclose_tab = getTab("sidebar_openclose");
@@ -569,8 +1061,11 @@ void LLSideTray::expandSideBar()
{
mCollapseButton->setImageOverlay( openclose_tab->mImageSelected );
}
- LLSD key;//empty
- mActiveTab->onOpen(key);
+
+ if (open_active)
+ {
+ mActiveTab->onOpen(LLSD());
+ }
reflectCollapseChange();
@@ -623,35 +1118,19 @@ void LLSideTray::reshape(S32 width, S32 height, BOOL called_from_parent)
*/
LLPanel* LLSideTray::showPanel (const std::string& panel_name, const LLSD& params)
{
- //arrange tabs
+ // Look up the tab in the list of detached tabs.
child_vector_const_iter_t child_it;
- for ( child_it = mTabs.begin(); child_it != mTabs.end(); ++child_it)
+ for ( child_it = mDetachedTabs.begin(); child_it != mDetachedTabs.end(); ++child_it)
{
- LLView* view = (*child_it)->findChildView(panel_name,true);
- if(view)
- {
- selectTabByName ((*child_it)->getName());
- if(mCollapsed)
- expandSideBar();
-
- LLSideTrayPanelContainer* container = dynamic_cast<LLSideTrayPanelContainer*>(view->getParent());
- if(container)
- {
- LLSD new_params = params;
- new_params[LLSideTrayPanelContainer::PARAM_SUB_PANEL_NAME] = panel_name;
- container->onOpen(new_params);
-
- return container->getCurrentPanel();
+ LLPanel* panel = openChildPanel(*child_it, panel_name, params);
+ if (panel) return panel;
}
- LLPanel* panel = dynamic_cast<LLPanel*>(view);
- if(panel)
+ // Look up the tab in the list of attached tabs.
+ for ( child_it = mTabs.begin(); child_it != mTabs.end(); ++child_it)
{
- panel->onOpen(params);
- }
-
- return panel;
- }
+ LLPanel* panel = openChildPanel(*child_it, panel_name, params);
+ if (panel) return panel;
}
return NULL;
}
@@ -661,7 +1140,9 @@ void LLSideTray::togglePanel(LLPanel* &sub_panel, const std::string& panel_name,
if(!sub_panel)
return;
- if (sub_panel->isInVisibleChain())
+ // If a panel is visible and attached to Side Tray (has LLSideTray among its ancestors)
+ // it should be toggled off by collapsing Side Tray.
+ if (sub_panel->isInVisibleChain() && sub_panel->hasAncestor(this))
{
LLSideTray::getInstance()->collapseSideBar();
}
@@ -705,6 +1186,17 @@ LLPanel *findChildPanel(LLPanel *panel, const std::string& name, bool recurse)
LLPanel* LLSideTray::getPanel(const std::string& panel_name)
{
+ // Look up the panel in the list of detached tabs.
+ for ( child_vector_const_iter_t child_it = mDetachedTabs.begin(); child_it != mDetachedTabs.end(); ++child_it)
+ {
+ LLPanel *panel = findChildPanel(*child_it,panel_name,true);
+ if(panel)
+ {
+ return panel;
+ }
+ }
+
+ // Look up the panel in the list of attached tabs.
for ( child_vector_const_iter_t child_it = mTabs.begin(); child_it != mTabs.end(); ++child_it)
{
LLPanel *panel = findChildPanel(*child_it,panel_name,true);
diff --git a/indra/newview/llsidetray.h b/indra/newview/llsidetray.h
index 3a8d308425..4e79007c13 100644
--- a/indra/newview/llsidetray.h
+++ b/indra/newview/llsidetray.h
@@ -2,31 +2,25 @@
* @file LLSideTray.h
* @brief SideBar header file
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -54,13 +48,13 @@ public:
: public LLInitParam::Block<Params, LLPanel::Params>
{
// initial state
- Optional<bool> collapsed;
- Optional<std::string> tab_btn_image_normal;
- Optional<std::string> tab_btn_image_selected;
+ Optional<bool> collapsed;
+ Optional<LLUIImage*> tab_btn_image_normal,
+ tab_btn_image_selected;
- Optional<S32> default_button_width;
- Optional<S32> default_button_height;
- Optional<S32> default_button_margin;
+ Optional<S32> default_button_width,
+ default_button_height,
+ default_button_margin;
Params();
};
@@ -68,21 +62,26 @@ public:
static LLSideTray* getInstance ();
static bool instanceCreated ();
protected:
- LLSideTray(Params& params);
+ LLSideTray(const Params& params);
typedef std::vector<LLSideTrayTab*> child_vector_t;
typedef child_vector_t::iterator child_vector_iter_t;
typedef child_vector_t::const_iterator child_vector_const_iter_t;
typedef child_vector_t::reverse_iterator child_vector_reverse_iter_t;
typedef child_vector_t::const_reverse_iterator child_vector_const_reverse_iter_t;
+ typedef std::vector<std::string> tab_order_vector_t;
+ typedef tab_order_vector_t::const_iterator tab_order_vector_const_iter_t;
public:
// interface functions
/**
- * Select tab with specific name and set it active
- */
- bool selectTabByName (const std::string& name);
+ * Select tab with specific name and set it active
+ *
+ * @param name Tab to switch to.
+ * @param keep_prev_visible Whether to keep the previously selected tab visible.
+ */
+ bool selectTabByName (const std::string& name, bool keep_prev_visible = false);
/**
* Select tab with specific index and set it active
@@ -123,8 +122,10 @@ public:
/*
* expand SideBar
+ *
+ * @param open_active Whether to call onOpen() for the active tab.
*/
- void expandSideBar ();
+ void expandSideBar(bool open_active = true);
/**
@@ -150,6 +151,8 @@ public:
void onToggleCollapse();
bool addChild (LLView* view, S32 tab_group);
+ bool removeTab (LLSideTrayTab* tab); // Used to detach tabs temporarily
+ bool addTab (LLSideTrayTab* tab); // Used to re-attach tabs
BOOL handleMouseDown (S32 x, S32 y, MASK mask);
@@ -163,17 +166,25 @@ public:
void handleLoginComplete();
-protected:
LLSideTrayTab* getTab (const std::string& name);
+ bool isTabAttached (const std::string& name);
+
+protected:
+ bool hasTabs ();
+
void createButtons ();
+
LLButton* createButton (const std::string& name,const std::string& image,const std::string& tooltip,
LLUICtrl::commit_callback_t callback);
void arrange ();
+ void detachTabs ();
void reflectCollapseChange();
void toggleTabButton (LLSideTrayTab* tab);
+ LLPanel* openChildPanel (LLSideTrayTab* tab, const std::string& panel_name, const LLSD& params);
+
private:
// Implementation of LLDestroyClass<LLSideTray>
static void destroyClass()
@@ -184,11 +195,12 @@ private:
}
private:
-
LLPanel* mButtonsPanel;
typedef std::map<std::string,LLButton*> button_map_t;
button_map_t mTabButtons;
child_vector_t mTabs;
+ child_vector_t mDetachedTabs;
+ tab_order_vector_t mOriginalTabOrder;
LLSideTrayTab* mActiveTab;
commit_signal_t mCollapseSignal;
diff --git a/indra/newview/llsidetraypanelcontainer.cpp b/indra/newview/llsidetraypanelcontainer.cpp
index f2215a2250..214f595772 100644
--- a/indra/newview/llsidetraypanelcontainer.cpp
+++ b/indra/newview/llsidetraypanelcontainer.cpp
@@ -2,31 +2,25 @@
* @file llsidetraypanelcontainer.cpp
* @brief LLSideTrayPanelContainer implementation
*
-* $LicenseInfo:firstyear=2001&license=viewergpl$
-*
-* Copyright (c) 2001-2009, Linden Research, Inc.
-*
+* $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
-* The source code in this file ("Source Code") is provided by Linden Lab
-* to you under the terms of the GNU General Public License, version 2.0
-* ("GPL"), unless you have obtained a separate licensing agreement
-* ("Other License"), formally executed by you and Linden Lab. Terms of
-* the GPL can be found in doc/GPL-license.txt in this distribution, or
-* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+* 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.
*
-* There are special exceptions to the terms and conditions of the GPL as
-* it is applied to this Source Code. View the full text of the exception
-* in the file doc/FLOSS-exception.txt in this software distribution, or
-* online at
-* http://secondlifegrid.net/programs/open_source/licensing/flossexception
+* 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.
*
-* By copying, modifying or distributing this software, you acknowledge
-* that you have read and understood your obligations described above,
-* and agree to abide by those obligations.
+* 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
*
-* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
-* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
-* COMPLETENESS OR PERFORMANCE.
+* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llsidetraypanelcontainer.h b/indra/newview/llsidetraypanelcontainer.h
index beed328269..14269b002b 100644
--- a/indra/newview/llsidetraypanelcontainer.h
+++ b/indra/newview/llsidetraypanelcontainer.h
@@ -2,31 +2,25 @@
* @file llsidetraypanelcontainer.h
* @brief LLSideTrayPanelContainer class declaration
*
-* $LicenseInfo:firstyear=2009&license=viewergpl$
-*
-* Copyright (c) 2009, Linden Research, Inc.
-*
+* $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
-* The source code in this file ("Source Code") is provided by Linden Lab
-* to you under the terms of the GNU General Public License, version 2.0
-* ("GPL"), unless you have obtained a separate licensing agreement
-* ("Other License"), formally executed by you and Linden Lab. Terms of
-* the GPL can be found in doc/GPL-license.txt in this distribution, or
-* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+* 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.
*
-* There are special exceptions to the terms and conditions of the GPL as
-* it is applied to this Source Code. View the full text of the exception
-* in the file doc/FLOSS-exception.txt in this software distribution, or
-* online at
-* http://secondlifegrid.net/programs/open_source/licensing/flossexception
+* 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.
*
-* By copying, modifying or distributing this software, you acknowledge
-* that you have read and understood your obligations described above,
-* and agree to abide by those obligations.
+* 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
*
-* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
-* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
-* COMPLETENESS OR PERFORMANCE.
+* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llsky.cpp b/indra/newview/llsky.cpp
index de99cb86fa..a961f0e3b4 100644
--- a/indra/newview/llsky.cpp
+++ b/indra/newview/llsky.cpp
@@ -2,31 +2,25 @@
* @file llsky.cpp
* @brief IndraWorld sky class
*
- * $LicenseInfo:firstyear=2000&license=viewergpl$
- *
- * Copyright (c) 2000-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2000&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llsky.h b/indra/newview/llsky.h
index d7796dea83..7b98c97840 100644
--- a/indra/newview/llsky.h
+++ b/indra/newview/llsky.h
@@ -2,31 +2,25 @@
* @file llsky.h
* @brief It's, uh, the sky!
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llslurl.cpp b/indra/newview/llslurl.cpp
index 0df7035f84..4cf1df1655 100644
--- a/indra/newview/llslurl.cpp
+++ b/indra/newview/llslurl.cpp
@@ -3,30 +3,25 @@
* @brief Handles "SLURL fragments" like Ahern/123/45 for
* startup processing, login screen, prefs, etc.
*
- * $LicenseInfo:firstyear=2010&license=viewergpl$
- *
- * Copyright (c) 2006-2010, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2010&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -49,7 +44,6 @@ const char* LLSLURL::SLURL_COM = "slurl.com";
// version is required also.
const char* LLSLURL::WWW_SLURL_COM = "www.slurl.com";
-const char* LLSLURL::SECONDLIFE_COM = "secondlife.com";
const char* LLSLURL::MAPS_SECONDLIFE_COM = "maps.secondlife.com";
const char* LLSLURL::SLURL_X_GRID_LOCATION_INFO_SCHEME = "x-grid-location-info";
const char* LLSLURL::SLURL_APP_PATH = "app";
@@ -188,15 +182,6 @@ LLSLURL::LLSLURL(const std::string& slurl)
(slurl_uri.scheme() == LLSLURL::SLURL_HTTPS_SCHEME) ||
(slurl_uri.scheme() == LLSLURL::SLURL_X_GRID_LOCATION_INFO_SCHEME))
{
- // *HACK: ignore http://secondlife.com/ URLs so that we can use
- // http://secondlife.com/app/ redirect URLs
- // This is only necessary while the server returns Release Note
- // urls using this format rather that pointing to the wiki
- if ((slurl_uri.scheme() == LLSLURL::SLURL_HTTP_SCHEME ||
- slurl_uri.scheme() == LLSLURL::SLURL_HTTPS_SCHEME) &&
- slurl_uri.hostName() == LLSLURL::SECONDLIFE_COM)
- return;
-
// We're dealing with either a Standalone style slurl or slurl.com slurl
if ((slurl_uri.hostName() == LLSLURL::SLURL_COM) ||
(slurl_uri.hostName() == LLSLURL::WWW_SLURL_COM) ||
@@ -207,6 +192,17 @@ LLSLURL::LLSLURL(const std::string& slurl)
}
else
{
+ // Don't try to match any old http://<host>/ URL as a SLurl.
+ // SLE SLurls will have the grid hostname in the URL, so only
+ // match http URLs if the hostname matches the grid hostname
+ // (or its a slurl.com or maps.secondlife.com URL).
+ if ((slurl_uri.scheme() == LLSLURL::SLURL_HTTP_SCHEME ||
+ slurl_uri.scheme() == LLSLURL::SLURL_HTTPS_SCHEME) &&
+ slurl_uri.hostName() != LLGridManager::getInstance()->getGrid())
+ {
+ return;
+ }
+
// As it's a Standalone grid/open, we will always have a hostname, as Standalone/open style
// urls are properly formed, unlike the stinky maingrid style
mGrid = slurl_uri.hostName();
diff --git a/indra/newview/llslurl.h b/indra/newview/llslurl.h
index e9b0e7f52a..1a3f0543dd 100644
--- a/indra/newview/llslurl.h
+++ b/indra/newview/llslurl.h
@@ -3,30 +3,25 @@
* @brief Handles "SLURL fragments" like Ahern/123/45 for
* startup processing, login screen, prefs, etc.
*
- * $LicenseInfo:firstyear=2010&license=viewergpl$
- *
- * Copyright (c) 2006-2010, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2010&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
#ifndef LLSLURL_H
diff --git a/indra/newview/llspatialpartition.cpp b/indra/newview/llspatialpartition.cpp
index d6e9256fee..fb984a7c62 100644
--- a/indra/newview/llspatialpartition.cpp
+++ b/indra/newview/llspatialpartition.cpp
@@ -2,31 +2,25 @@
* @file llspatialpartition.cpp
* @brief LLSpatialGroup class implementation and supporting functions
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -300,6 +294,7 @@ LLSpatialGroup::~LLSpatialGroup()
}
delete [] mOcclusionVerts;
+ mOcclusionVerts = NULL;
LLMemType mt(LLMemType::MTYPE_SPACE_PARTITION);
clearDrawMap();
@@ -1513,6 +1508,7 @@ void LLSpatialGroup::checkOcclusion()
{
if (LLPipeline::sUseOcclusion > 1)
{
+ LLFastTimer t(FTM_OCCLUSION_READBACK);
LLSpatialGroup* parent = getParent();
if (parent && parent->isOcclusionState(LLSpatialGroup::OCCLUDED))
{ //if the parent has been marked as occluded, the child is implicitly occluded
@@ -1520,7 +1516,6 @@ void LLSpatialGroup::checkOcclusion()
}
else if (isOcclusionState(QUERY_PENDING))
{ //otherwise, if a query is pending, read it back
- LLFastTimer t(FTM_OCCLUSION_READBACK);
GLuint res = 1;
if (!isOcclusionState(DISCARD_QUERY) && mOcclusionQuery[LLViewerCamera::sCurCameraID])
{
@@ -1924,11 +1919,8 @@ public:
return;
}
- if (mRes == 2)
- {
- //fully in, don't traverse further (won't effect extents
- }
- else if (mRes && group->isState(LLSpatialGroup::SKIP_FRUSTUM_CHECK))
+ if ((mRes && group->isState(LLSpatialGroup::SKIP_FRUSTUM_CHECK)) ||
+ mRes == 2)
{ //don't need to do frustum check
LLSpatialGroup::OctreeTraveler::traverse(n);
}
@@ -3423,11 +3415,23 @@ LLCullResult::LLCullResult()
void LLCullResult::clear()
{
mVisibleGroupsSize = 0;
+ mVisibleGroupsEnd = mVisibleGroups.begin();
+
mAlphaGroupsSize = 0;
+ mAlphaGroupsEnd = mAlphaGroups.begin();
+
mOcclusionGroupsSize = 0;
+ mOcclusionGroupsEnd = mOcclusionGroups.begin();
+
mDrawableGroupsSize = 0;
+ mDrawableGroupsEnd = mDrawableGroups.begin();
+
mVisibleListSize = 0;
+ mVisibleListEnd = mVisibleList.begin();
+
mVisibleBridgeSize = 0;
+ mVisibleBridgeEnd = mVisibleBridge.begin();
+
for (U32 i = 0; i < LLRenderPass::NUM_RENDER_TYPES; i++)
{
@@ -3436,6 +3440,7 @@ void LLCullResult::clear()
mRenderMap[i][j] = 0;
}
mRenderMapSize[i] = 0;
+ mRenderMapEnd[i] = mRenderMap[i].begin();
}
}
@@ -3446,7 +3451,7 @@ LLCullResult::sg_list_t::iterator LLCullResult::beginVisibleGroups()
LLCullResult::sg_list_t::iterator LLCullResult::endVisibleGroups()
{
- return mVisibleGroups.begin() + mVisibleGroupsSize;
+ return mVisibleGroupsEnd;
}
LLCullResult::sg_list_t::iterator LLCullResult::beginAlphaGroups()
@@ -3456,7 +3461,7 @@ LLCullResult::sg_list_t::iterator LLCullResult::beginAlphaGroups()
LLCullResult::sg_list_t::iterator LLCullResult::endAlphaGroups()
{
- return mAlphaGroups.begin() + mAlphaGroupsSize;
+ return mAlphaGroupsEnd;
}
LLCullResult::sg_list_t::iterator LLCullResult::beginOcclusionGroups()
@@ -3466,7 +3471,7 @@ LLCullResult::sg_list_t::iterator LLCullResult::beginOcclusionGroups()
LLCullResult::sg_list_t::iterator LLCullResult::endOcclusionGroups()
{
- return mOcclusionGroups.begin() + mOcclusionGroupsSize;
+ return mOcclusionGroupsEnd;
}
LLCullResult::sg_list_t::iterator LLCullResult::beginDrawableGroups()
@@ -3476,7 +3481,7 @@ LLCullResult::sg_list_t::iterator LLCullResult::beginDrawableGroups()
LLCullResult::sg_list_t::iterator LLCullResult::endDrawableGroups()
{
- return mDrawableGroups.begin() + mDrawableGroupsSize;
+ return mDrawableGroupsEnd;
}
LLCullResult::drawable_list_t::iterator LLCullResult::beginVisibleList()
@@ -3486,7 +3491,7 @@ LLCullResult::drawable_list_t::iterator LLCullResult::beginVisibleList()
LLCullResult::drawable_list_t::iterator LLCullResult::endVisibleList()
{
- return mVisibleList.begin() + mVisibleListSize;
+ return mVisibleListEnd;
}
LLCullResult::bridge_list_t::iterator LLCullResult::beginVisibleBridge()
@@ -3496,7 +3501,7 @@ LLCullResult::bridge_list_t::iterator LLCullResult::beginVisibleBridge()
LLCullResult::bridge_list_t::iterator LLCullResult::endVisibleBridge()
{
- return mVisibleBridge.begin() + mVisibleBridgeSize;
+ return mVisibleBridgeEnd;
}
LLCullResult::drawinfo_list_t::iterator LLCullResult::beginRenderMap(U32 type)
@@ -3506,7 +3511,7 @@ LLCullResult::drawinfo_list_t::iterator LLCullResult::beginRenderMap(U32 type)
LLCullResult::drawinfo_list_t::iterator LLCullResult::endRenderMap(U32 type)
{
- return mRenderMap[type].begin() + mRenderMapSize[type];
+ return mRenderMapEnd[type];
}
void LLCullResult::pushVisibleGroup(LLSpatialGroup* group)
@@ -3520,6 +3525,7 @@ void LLCullResult::pushVisibleGroup(LLSpatialGroup* group)
mVisibleGroups.push_back(group);
}
++mVisibleGroupsSize;
+ mVisibleGroupsEnd = mVisibleGroups.begin()+mVisibleGroupsSize;
}
void LLCullResult::pushAlphaGroup(LLSpatialGroup* group)
@@ -3533,6 +3539,7 @@ void LLCullResult::pushAlphaGroup(LLSpatialGroup* group)
mAlphaGroups.push_back(group);
}
++mAlphaGroupsSize;
+ mAlphaGroupsEnd = mAlphaGroups.begin()+mAlphaGroupsSize;
}
void LLCullResult::pushOcclusionGroup(LLSpatialGroup* group)
@@ -3546,6 +3553,7 @@ void LLCullResult::pushOcclusionGroup(LLSpatialGroup* group)
mOcclusionGroups.push_back(group);
}
++mOcclusionGroupsSize;
+ mOcclusionGroupsEnd = mOcclusionGroups.begin()+mOcclusionGroupsSize;
}
void LLCullResult::pushDrawableGroup(LLSpatialGroup* group)
@@ -3559,6 +3567,7 @@ void LLCullResult::pushDrawableGroup(LLSpatialGroup* group)
mDrawableGroups.push_back(group);
}
++mDrawableGroupsSize;
+ mDrawableGroupsEnd = mDrawableGroups.begin()+mDrawableGroupsSize;
}
void LLCullResult::pushDrawable(LLDrawable* drawable)
@@ -3572,6 +3581,7 @@ void LLCullResult::pushDrawable(LLDrawable* drawable)
mVisibleList.push_back(drawable);
}
++mVisibleListSize;
+ mVisibleListEnd = mVisibleList.begin()+mVisibleListSize;
}
void LLCullResult::pushBridge(LLSpatialBridge* bridge)
@@ -3585,6 +3595,7 @@ void LLCullResult::pushBridge(LLSpatialBridge* bridge)
mVisibleBridge.push_back(bridge);
}
++mVisibleBridgeSize;
+ mVisibleBridgeEnd = mVisibleBridge.begin()+mVisibleBridgeSize;
}
void LLCullResult::pushDrawInfo(U32 type, LLDrawInfo* draw_info)
@@ -3598,6 +3609,7 @@ void LLCullResult::pushDrawInfo(U32 type, LLDrawInfo* draw_info)
mRenderMap[type].push_back(draw_info);
}
++mRenderMapSize[type];
+ mRenderMapEnd[type] = mRenderMap[type].begin() + mRenderMapSize[type];
}
diff --git a/indra/newview/llspatialpartition.h b/indra/newview/llspatialpartition.h
index 7896488379..1a25f3f85d 100644
--- a/indra/newview/llspatialpartition.h
+++ b/indra/newview/llspatialpartition.h
@@ -2,31 +2,25 @@
* @file llspatialpartition.h
* @brief LLSpatialGroup header file including definitions for supporting functions
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -164,8 +158,6 @@ public:
static BOOL sNoDelete; //deletion of spatial groups and draw info not allowed if TRUE
typedef std::vector<LLPointer<LLSpatialGroup> > sg_vector_t;
- typedef std::set<LLPointer<LLSpatialGroup> > sg_set_t;
- typedef std::list<LLPointer<LLSpatialGroup> > sg_list_t;
typedef std::vector<LLPointer<LLSpatialBridge> > bridge_list_t;
typedef std::vector<LLPointer<LLDrawInfo> > drawmap_elem_t;
typedef std::map<U32, drawmap_elem_t > draw_map_t;
@@ -346,11 +338,11 @@ public:
F32 mBuilt;
OctreeNode* mOctreeNode;
LLSpatialPartition* mSpatialPartition;
- LLVector3 mBounds[2];
- LLVector3 mExtents[2];
+ LLVector3 mBounds[2]; // bounding box (center, size) of this node and all its children (tight fit to objects)
+ LLVector3 mExtents[2]; // extents (min, max) of this node and all its children
- LLVector3 mObjectExtents[2];
- LLVector3 mObjectBounds[2];
+ LLVector3 mObjectExtents[2]; // extents (min, max) of objects in this node
+ LLVector3 mObjectBounds[2]; // bounding box (center, size) of objects in this node
LLPointer<LLVertexBuffer> mVertexBuffer;
F32* mOcclusionVerts;
@@ -534,12 +526,19 @@ private:
U32 mRenderMapSize[LLRenderPass::NUM_RENDER_TYPES];
sg_list_t mVisibleGroups;
+ sg_list_t::iterator mVisibleGroupsEnd;
sg_list_t mAlphaGroups;
+ sg_list_t::iterator mAlphaGroupsEnd;
sg_list_t mOcclusionGroups;
+ sg_list_t::iterator mOcclusionGroupsEnd;
sg_list_t mDrawableGroups;
+ sg_list_t::iterator mDrawableGroupsEnd;
drawable_list_t mVisibleList;
+ drawable_list_t::iterator mVisibleListEnd;
bridge_list_t mVisibleBridge;
+ bridge_list_t::iterator mVisibleBridgeEnd;
drawinfo_list_t mRenderMap[LLRenderPass::NUM_RENDER_TYPES];
+ drawinfo_list_t::iterator mRenderMapEnd[LLRenderPass::NUM_RENDER_TYPES];
};
@@ -606,14 +605,13 @@ public:
//class for wrangling geometry out of volumes (implemented in LLVOVolume.cpp)
class LLVolumeGeometryManager: public LLGeometryManager
{
-public:
+ public:
virtual ~LLVolumeGeometryManager() { }
virtual void rebuildGeom(LLSpatialGroup* group);
virtual void rebuildMesh(LLSpatialGroup* group);
virtual void getGeometry(LLSpatialGroup* group);
void genDrawInfo(LLSpatialGroup* group, U32 mask, std::vector<LLFace*>& faces, BOOL distance_sort = FALSE);
void registerFace(LLSpatialGroup* group, LLFace* facep, U32 type);
-
};
//spatial partition that uses volume geometry manager (implemented in LLVOVolume.cpp)
diff --git a/indra/newview/llspeakbutton.cpp b/indra/newview/llspeakbutton.cpp
index d7de050636..3dce66f394 100644
--- a/indra/newview/llspeakbutton.cpp
+++ b/indra/newview/llspeakbutton.cpp
@@ -2,31 +2,25 @@
* @file llspeakbutton.cpp
* @brief LLSpeakButton class implementation
*
-* $LicenseInfo:firstyear=2002&license=viewergpl$
-*
-* Copyright (c) 2002-2009, Linden Research, Inc.
-*
+* $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
-* The source code in this file ("Source Code") is provided by Linden Lab
-* to you under the terms of the GNU General Public License, version 2.0
-* ("GPL"), unless you have obtained a separate licensing agreement
-* ("Other License"), formally executed by you and Linden Lab. Terms of
-* the GPL can be found in doc/GPL-license.txt in this distribution, or
-* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+* 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.
*
-* There are special exceptions to the terms and conditions of the GPL as
-* it is applied to this Source Code. View the full text of the exception
-* in the file doc/FLOSS-exception.txt in this software distribution, or
-* online at
-* http://secondlifegrid.net/programs/open_source/licensing/flossexception
+* 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.
*
-* By copying, modifying or distributing this software, you acknowledge
-* that you have read and understood your obligations described above,
-* and agree to abide by those obligations.
+* 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
*
-* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
-* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
-* COMPLETENESS OR PERFORMANCE.
+* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -43,6 +37,8 @@
#include "llspeakbutton.h"
+#include "llbottomtray.h"
+
static LLDefaultChildRegistry::Register<LLSpeakButton> t1("talk_button");
//////////////////////////////////////////////////////////////////////////
@@ -73,7 +69,7 @@ void LLSpeakButton::setSpeakBtnEnabled(bool enabled)
}
void LLSpeakButton::setFlyoutBtnEnabled(bool enabled)
{
- LLButton* show_btn = getChild<LLButton>("speak_flyout_btn");
+ LLButton* show_btn = getChild<LLBottomtrayButton>("speak_flyout_btn");
show_btn->setEnabled(enabled);
}
@@ -102,9 +98,9 @@ LLSpeakButton::LLSpeakButton(const Params& p)
mSpeakBtn->setMouseUpCallback(boost::bind(&LLSpeakButton::onMouseUp_SpeakBtn, this));
mSpeakBtn->setToggleState(FALSE);
- LLButton::Params show_params = p.show_button;
+ LLBottomtrayButton::Params show_params = p.show_button;
show_params.rect(show_rect);
- mShowBtn = LLUICtrlFactory::create<LLButton>(show_params);
+ mShowBtn = LLUICtrlFactory::create<LLBottomtrayButton>(show_params);
addChild(mShowBtn);
LLTransientFloaterMgr::getInstance()->addControlView(mShowBtn);
diff --git a/indra/newview/llspeakbutton.h b/indra/newview/llspeakbutton.h
index 85c97f1a2c..2fdf80c1f2 100644
--- a/indra/newview/llspeakbutton.h
+++ b/indra/newview/llspeakbutton.h
@@ -2,31 +2,25 @@
* @file llspeakbutton.h
* @brief LLSpeakButton class header file
*
-* $LicenseInfo:firstyear=2002&license=viewergpl$
-*
-* Copyright (c) 2002-2009, Linden Research, Inc.
-*
+* $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
-* The source code in this file ("Source Code") is provided by Linden Lab
-* to you under the terms of the GNU General Public License, version 2.0
-* ("GPL"), unless you have obtained a separate licensing agreement
-* ("Other License"), formally executed by you and Linden Lab. Terms of
-* the GPL can be found in doc/GPL-license.txt in this distribution, or
-* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+* Copyright (C) 2010, Linden Research, Inc.
*
-* There are special exceptions to the terms and conditions of the GPL as
-* it is applied to this Source Code. View the full text of the exception
-* in the file doc/FLOSS-exception.txt in this software distribution, or
-* online at
-* http://secondlifegrid.net/programs/open_source/licensing/flossexception
+* 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.
*
-* By copying, modifying or distributing this software, you acknowledge
-* that you have read and understood your obligations described above,
-* and agree to abide by those obligations.
+* 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.
*
-* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
-* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
-* COMPLETENESS OR PERFORMANCE.
+* 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$
*/
@@ -39,6 +33,7 @@
class LLCallFloater;
class LLButton;
class LLOutputMonitorCtrl;
+class LLBottomtrayButton;
/*
* Button displaying voice chat status. Displays voice chat options when
@@ -50,10 +45,8 @@ public:
struct Params : public LLInitParam::Block<Params, LLUICtrl::Params>
{
- Optional<LLButton::Params>
- speak_button,
- show_button;
-
+ Optional<LLButton::Params> speak_button;
+ Optional<LLBottomtrayButton::Params> show_button;
Optional<LLOutputMonitorCtrl::Params> monitor;
Params();
@@ -92,7 +85,7 @@ protected:
private:
LLButton* mSpeakBtn;
- LLButton* mShowBtn;
+ LLBottomtrayButton* mShowBtn;
LLHandle<LLFloater> mPrivateCallPanel;
LLOutputMonitorCtrl* mOutputMonitor;
};
diff --git a/indra/newview/llspeakers.cpp b/indra/newview/llspeakers.cpp
index bf00b47c21..196ed5e0bb 100644
--- a/indra/newview/llspeakers.cpp
+++ b/indra/newview/llspeakers.cpp
@@ -2,31 +2,25 @@
* @file llspeakers.cpp
* @brief Management interface for muting and controlling volume of residents currently speaking
*
- * $LicenseInfo:firstyear=2005&license=viewergpl$
- *
- * Copyright (c) 2005-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -74,7 +68,10 @@ LLSpeaker::LLSpeaker(const LLUUID& id, const std::string& name, const ESpeakerTy
void LLSpeaker::lookupName()
{
- gCacheName->get(mID, FALSE, boost::bind(&LLSpeaker::onAvatarNameLookup, this, _1, _2, _3, _4));
+ if (mDisplayName.empty())
+ {
+ gCacheName->get(mID, FALSE, boost::bind(&LLSpeaker::onAvatarNameLookup, this, _1, _2, _3, _4));
+ }
}
void LLSpeaker::onAvatarNameLookup(const LLUUID& id, const std::string& first, const std::string& last, BOOL is_group)
diff --git a/indra/newview/llspeakers.h b/indra/newview/llspeakers.h
index 4a250de82f..08fb405265 100644
--- a/indra/newview/llspeakers.h
+++ b/indra/newview/llspeakers.h
@@ -2,31 +2,25 @@
* @file llspeakers.h
* @brief Management interface for muting and controlling volume of residents currently speaking
*
- * $LicenseInfo:firstyear=2005&license=viewergpl$
- *
- * Copyright (c) 2005-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llspeakingindicatormanager.cpp b/indra/newview/llspeakingindicatormanager.cpp
index ea7601517d..ede1d6bebe 100644
--- a/indra/newview/llspeakingindicatormanager.cpp
+++ b/indra/newview/llspeakingindicatormanager.cpp
@@ -4,31 +4,25 @@
* @brief Implementation of SpeackerIndicatorManager class to process registered LLSpeackerIndicator
* depend on avatars are in the same voice channel.
*
- * $LicenseInfo:firstyear=2010&license=viewergpl$
- *
- * Copyright (c) 2010, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2010&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llspeakingindicatormanager.h b/indra/newview/llspeakingindicatormanager.h
index 8d7aba1d6c..b0a147865b 100644
--- a/indra/newview/llspeakingindicatormanager.h
+++ b/indra/newview/llspeakingindicatormanager.h
@@ -4,31 +4,25 @@
* @brief Interfeace of LLSpeackerIndicator class to be processed depend on avatars are in the same voice channel.
* Also register/unregister methods for this class are declared
*
- * $LicenseInfo:firstyear=2010&license=viewergpl$
- *
- * Copyright (c) 2010, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2010&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llsplitbutton.cpp b/indra/newview/llsplitbutton.cpp
index e5323db466..790305103d 100644
--- a/indra/newview/llsplitbutton.cpp
+++ b/indra/newview/llsplitbutton.cpp
@@ -2,31 +2,25 @@
* @file llsplitbutton.cpp
* @brief LLSplitButton base class
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -226,7 +220,7 @@ LLSplitButton::LLSplitButton(const LLSplitButton::Params& p)
addChild(mItemsPanel);
- LLInitParam::ParamIterator<ItemParams>::const_iterator it = p.items().begin();
+ LLInitParam::ParamIterator<ItemParams>::const_iterator it = p.items.begin();
//processing shown item button
mShownItem = prepareItemButton(*it);
@@ -237,7 +231,7 @@ LLSplitButton::LLSplitButton(const LLSplitButton::Params& p)
//processing hidden item buttons
S32 item_top = mItemsPanel->getRect().getHeight();
- for (++it; it != p.items().end(); ++it)
+ for (++it; it != p.items.end(); ++it)
{
LLButton* hidden_button = prepareItemButton(*it);
hidden_button->setRect(LLRect(btn_left, item_top, btn_right, item_top - rc.getHeight()));
diff --git a/indra/newview/llsplitbutton.h b/indra/newview/llsplitbutton.h
index 0fb5f6594e..4f20c8b379 100644
--- a/indra/newview/llsplitbutton.h
+++ b/indra/newview/llsplitbutton.h
@@ -2,31 +2,25 @@
* @file llsplitbutton.h
* @brief LLSplitButton base class
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llsprite.cpp b/indra/newview/llsprite.cpp
index dce4e9d144..a69592b61c 100644
--- a/indra/newview/llsprite.cpp
+++ b/indra/newview/llsprite.cpp
@@ -2,31 +2,25 @@
* @file llsprite.cpp
* @brief LLSprite class implementation
*
- * $LicenseInfo:firstyear=2000&license=viewergpl$
- *
- * Copyright (c) 2000-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2000&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llsprite.h b/indra/newview/llsprite.h
index eefe2a2386..d00b8ef695 100644
--- a/indra/newview/llsprite.h
+++ b/indra/newview/llsprite.h
@@ -2,31 +2,25 @@
* @file llsprite.h
* @brief LLSprite class definition
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llsrv.cpp b/indra/newview/llsrv.cpp
index e39ddc907e..567c2a0158 100644
--- a/indra/newview/llsrv.cpp
+++ b/indra/newview/llsrv.cpp
@@ -2,31 +2,25 @@
* @file llsrv.cpp
* @brief Wrapper for DNS SRV record lookups
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llsrv.h b/indra/newview/llsrv.h
index 7db1bb0a1b..db5543f772 100644
--- a/indra/newview/llsrv.h
+++ b/indra/newview/llsrv.h
@@ -2,31 +2,25 @@
* @file llsrv.h
* @brief Wrapper for DNS SRV record lookups
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llstartup.cpp b/indra/newview/llstartup.cpp
index 96088fed9c..c56cacd12b 100644
--- a/indra/newview/llstartup.cpp
+++ b/indra/newview/llstartup.cpp
@@ -2,31 +2,25 @@
* @file llstartup.cpp
* @brief startup routines.
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -118,7 +112,6 @@
#include "llinventorybridge.h"
#include "llinventorymodel.h"
#include "llinventorymodelbackgroundfetch.h"
-#include "llfriendcard.h"
#include "llkeyboard.h"
#include "llloginhandler.h" // gLoginHandler, SLURL support
#include "lllogininstance.h" // Host the login module.
@@ -128,7 +121,6 @@
#include "llfloaterevent.h"
#include "llpanelclassified.h"
#include "llpanelpick.h"
-#include "llpanelplace.h"
#include "llpanelgrouplandmoney.h"
#include "llpanelgroupnotices.h"
#include "llpreview.h"
@@ -802,10 +794,6 @@ bool idle_startup()
if (STATE_LOGIN_CLEANUP == LLStartUp::getStartupState())
{
- // Move the progress view in front of the UI immediately when login is performed
- // this allows not to see main menu after Alt+Tab was pressed while login. EXT-744.
- gViewerWindow->moveProgressViewToFront();
-
//reset the values that could have come in from a slurl
// DEV-42215: Make sure they're not empty -- gUserCredential
// might already have been set from gSavedSettings, and it's too bad
@@ -1259,9 +1247,6 @@ bool idle_startup()
if (!gNoRender)
{
- // Move the progress view in front of the UI
- gViewerWindow->moveProgressViewToFront();
-
// direct logging to the debug console's line buffer
LLError::logToFixedBuffer(gDebugView->mDebugConsolep);
@@ -1646,12 +1631,6 @@ bool idle_startup()
//all categories loaded. lets create "My Favorites" category
gInventory.findCategoryUUIDForType(LLFolderType::FT_FAVORITE,true);
- // Checks whether "Friends" and "Friends/All" folders exist in "Calling Cards" folder,
- // fetches their contents if needed and synchronizes it with buddies list.
- // If the folders are not found they are created.
- LLFriendCardsManager::instance().syncFriendCardsFolders();
-
-
// set up callbacks
llinfos << "Registering Callbacks" << llendl;
LLMessageSystem* msg = gMessageSystem;
@@ -2933,9 +2912,8 @@ bool process_login_success_response()
text = response["agent_region_access"].asString();
if (!text.empty())
{
- U32 preferredMaturity =
- llmin((U32)LLAgent::convertTextToMaturity(text[0]),
- gSavedSettings.getU32("PreferredMaturity"));
+ U32 preferredMaturity = (U32)LLAgent::convertTextToMaturity(text[0]);
+
gSavedSettings.setU32("PreferredMaturity", preferredMaturity);
}
// During the AO transition, this flag will be true. Then the flag will
@@ -3148,6 +3126,13 @@ bool process_login_success_response()
}
}
+ // Set the location of the snapshot sharing config endpoint
+ std::string snapshot_config_url = response["snapshot_config_url"];
+ if(!snapshot_config_url.empty())
+ {
+ gSavedSettings.setString("SnapshotConfigURL", snapshot_config_url);
+ }
+
// Start the process of fetching the OpenID session cookie for this user login
std::string openid_url = response["openid_url"];
if(!openid_url.empty())
diff --git a/indra/newview/llstartup.h b/indra/newview/llstartup.h
index cf3c030f08..e79aa0dbee 100644
--- a/indra/newview/llstartup.h
+++ b/indra/newview/llstartup.h
@@ -2,31 +2,25 @@
* @file llstartup.h
* @brief startup routines and logic declaration
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llstartuplistener.cpp b/indra/newview/llstartuplistener.cpp
index 5a76a297c7..d9a21f908e 100644
--- a/indra/newview/llstartuplistener.cpp
+++ b/indra/newview/llstartuplistener.cpp
@@ -4,8 +4,25 @@
* @date 2009-12-08
* @brief Implementation for llstartuplistener.
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- * Copyright (c) 2009, Linden Research, Inc.
+ * $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$
*/
diff --git a/indra/newview/llstartuplistener.h b/indra/newview/llstartuplistener.h
index a2a4d3a08e..a35e11f6eb 100644
--- a/indra/newview/llstartuplistener.h
+++ b/indra/newview/llstartuplistener.h
@@ -4,8 +4,25 @@
* @date 2009-12-07
* @brief Event API to provide access to LLStartUp
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- * Copyright (c) 2009, Linden Research, Inc.
+ * $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$
*/
diff --git a/indra/newview/llstatusbar.cpp b/indra/newview/llstatusbar.cpp
index 8c8fbdc88c..c3e4775fe1 100644
--- a/indra/newview/llstatusbar.cpp
+++ b/indra/newview/llstatusbar.cpp
@@ -2,31 +2,25 @@
* @file llstatusbar.cpp
* @brief LLStatusBar class implementation
*
-* $LicenseInfo:firstyear=2002&license=viewergpl$
-*
-* Copyright (c) 2002-2009, Linden Research, Inc.
-*
+* $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
-* The source code in this file ("Source Code") is provided by Linden Lab
-* to you under the terms of the GNU General Public License, version 2.0
-* ("GPL"), unless you have obtained a separate licensing agreement
-* ("Other License"), formally executed by you and Linden Lab. Terms of
-* the GPL can be found in doc/GPL-license.txt in this distribution, or
-* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+* 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.
*
-* There are special exceptions to the terms and conditions of the GPL as
-* it is applied to this Source Code. View the full text of the exception
-* in the file doc/FLOSS-exception.txt in this software distribution, or
-* online at
-* http://secondlifegrid.net/programs/open_source/licensing/flossexception
+* 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.
*
-* By copying, modifying or distributing this software, you acknowledge
-* that you have read and understood your obligations described above,
-* and agree to abide by those obligations.
+* 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
*
-* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
-* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
-* COMPLETENESS OR PERFORMANCE.
+* Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -39,6 +33,7 @@
#include "llagentcamera.h"
#include "llbutton.h"
#include "llcommandhandler.h"
+#include "llfirstuse.h"
#include "llviewercontrol.h"
#include "llfloaterbuycurrency.h"
#include "llbuycurrencyhtml.h"
@@ -47,6 +42,7 @@
#include "llpanelvolumepulldown.h"
#include "llfloaterregioninfo.h"
#include "llfloaterscriptdebug.h"
+#include "llhints.h"
#include "llhudicon.h"
#include "llnavigationbar.h"
#include "llkeyboard.h"
@@ -111,17 +107,10 @@ const F32 ICON_TIMER_EXPIRY = 3.f; // How long the balance and health icons sho
const F32 ICON_FLASH_FREQUENCY = 2.f;
const S32 TEXT_HEIGHT = 18;
-static void onClickHealth(void*);
-static void onClickScriptDebug(void*);
static void onClickVolume(void*);
-std::vector<std::string> LLStatusBar::sDays;
-std::vector<std::string> LLStatusBar::sMonths;
-const U32 LLStatusBar::MAX_DATE_STRING_LENGTH = 2000;
-
LLStatusBar::LLStatusBar(const LLRect& rect)
: LLPanel(),
- mTextHealth(NULL),
mTextTime(NULL),
mSGBandwidth(NULL),
mSGPacketLoss(NULL),
@@ -136,14 +125,10 @@ LLStatusBar::LLStatusBar(const LLRect& rect)
// status bar can possible overlay menus?
setMouseOpaque(FALSE);
- // size of day of the weeks and year
- sDays.reserve(7);
- sMonths.reserve(12);
-
mBalanceTimer = new LLFrameTimer();
mHealthTimer = new LLFrameTimer();
- LLUICtrlFactory::getInstance()->buildPanel(this,"panel_status_bar.xml");
+ buildFromFile("panel_status_bar.xml");
}
LLStatusBar::~LLStatusBar()
@@ -178,14 +163,8 @@ BOOL LLStatusBar::postBuild()
{
gMenuBarView->setRightMouseDownCallback(boost::bind(&show_navbar_context_menu, _1, _2, _3));
- // build date necessary data (must do after panel built)
- setupDate();
-
- mTextHealth = getChild<LLTextBox>("HealthText" );
mTextTime = getChild<LLTextBox>("TimeText" );
- getChild<LLUICtrl>("buycurrency")->setCommitCallback(
- boost::bind(&LLStatusBar::onClickBuyCurrency, this));
getChild<LLUICtrl>("buyL")->setCommitCallback(
boost::bind(&LLStatusBar::onClickBuyCurrency, this));
@@ -197,10 +176,9 @@ BOOL LLStatusBar::postBuild()
mMediaToggle->setClickedCallback( &LLStatusBar::onClickMediaToggle, this );
mMediaToggle->setMouseEnterCallback(boost::bind(&LLStatusBar::onMouseEnterNearbyMedia, this));
- gSavedSettings.getControl("MuteAudio")->getSignal()->connect(boost::bind(&LLStatusBar::onVolumeChanged, this, _2));
+ LLHints::registerHintTarget("linden_balance", getChild<LLView>("balance_bg")->getHandle());
- childSetAction("scriptout", onClickScriptDebug, this);
- childSetAction("health", onClickHealth, this);
+ gSavedSettings.getControl("MuteAudio")->getSignal()->connect(boost::bind(&LLStatusBar::onVolumeChanged, this, _2));
// Adding Net Stat Graph
S32 x = getRect().getWidth() - 2;
@@ -239,7 +217,7 @@ BOOL LLStatusBar::postBuild()
mSGPacketLoss->mPerSec = FALSE;
addChild(mSGPacketLoss);
- childSetActionTextbox("stat_btn", onClickStatGraph);
+ getChild<LLTextBox>("stat_btn")->setClickedCallback(onClickStatGraph);
mPanelVolumePulldown = new LLPanelVolumePulldown();
addChild(mPanelVolumePulldown);
@@ -251,14 +229,17 @@ BOOL LLStatusBar::postBuild()
mPanelNearByMedia->setFollows(FOLLOWS_TOP|FOLLOWS_RIGHT);
mPanelNearByMedia->setVisible(FALSE);
+ mScriptOut = getChildView("scriptout");
+
return TRUE;
}
// Per-frame updates of visibility
void LLStatusBar::refresh()
{
- bool net_stats_visible = gSavedSettings.getBOOL("ShowNetStats");
-
+ static LLCachedControl<bool> show_net_stats(gSavedSettings, "ShowNetStats", false);
+ bool net_stats_visible = show_net_stats;
+
if (net_stats_visible)
{
// Adding Net Stat Meter back in
@@ -270,26 +251,30 @@ void LLStatusBar::refresh()
mSGBandwidth->setThreshold(2, bwtotal);
}
- // Get current UTC time, adjusted for the user's clock
- // being off.
- time_t utc_time;
- utc_time = time_corrected();
-
- std::string timeStr = getString("time");
- LLSD substitution;
- substitution["datetime"] = (S32) utc_time;
- LLStringUtil::format (timeStr, substitution);
- mTextTime->setText(timeStr);
-
- // set the tooltip to have the date
- std::string dtStr = getString("timeTooltip");
- LLStringUtil::format (dtStr, substitution);
- mTextTime->setToolTip (dtStr);
+ // update clock every 10 seconds
+ if(mClockUpdateTimer.getElapsedTimeF32() > 10.f)
+ {
+ mClockUpdateTimer.reset();
+
+ // Get current UTC time, adjusted for the user's clock
+ // being off.
+ time_t utc_time;
+ utc_time = time_corrected();
+
+ std::string timeStr = getString("time");
+ LLSD substitution;
+ substitution["datetime"] = (S32) utc_time;
+ LLStringUtil::format (timeStr, substitution);
+ mTextTime->setText(timeStr);
+
+ // set the tooltip to have the date
+ std::string dtStr = getString("timeTooltip");
+ LLStringUtil::format (dtStr, substitution);
+ mTextTime->setToolTip (dtStr);
+ }
LLRect r;
const S32 MENU_RIGHT = gMenuBarView->getRightmostMenuEdge();
- S32 x = MENU_RIGHT + MENU_PARCEL_SPACING;
- S32 y = 0;
// reshape menu bar to its content's width
if (MENU_RIGHT != gMenuBarView->getRect().getWidth())
@@ -297,60 +282,9 @@ void LLStatusBar::refresh()
gMenuBarView->reshape(MENU_RIGHT, gMenuBarView->getRect().getHeight());
}
- LLViewerRegion *region = gAgent.getRegion();
- LLParcel *parcel = LLViewerParcelMgr::getInstance()->getAgentParcel();
-
- LLRect buttonRect;
-
- if (LLHUDIcon::iconsNearby())
- {
- childGetRect( "scriptout", buttonRect );
- r.setOriginAndSize( x, y, buttonRect.getWidth(), buttonRect.getHeight());
- childSetRect("scriptout",r);
- childSetVisible("scriptout", true);
- x += buttonRect.getWidth();
- }
- else
- {
- childSetVisible("scriptout", false);
- }
-
- if (gAgentCamera.getCameraMode() == CAMERA_MODE_MOUSELOOK &&
- ((region && region->getAllowDamage()) || (parcel && parcel->getAllowDamage())))
- {
- // set visibility based on flashing
- if( mHealthTimer->hasExpired() )
- {
- childSetVisible("health", true);
- }
- else
- {
- BOOL flash = S32(mHealthTimer->getElapsedSeconds() * ICON_FLASH_FREQUENCY) & 1;
- childSetVisible("health", flash);
- }
- mTextHealth->setVisible(TRUE);
-
- // Health
- childGetRect( "health", buttonRect );
- r.setOriginAndSize( x, y, buttonRect.getWidth(), buttonRect.getHeight());
- childSetRect("health", r);
- x += buttonRect.getWidth();
-
- const S32 health_width = S32( LLFontGL::getFontSansSerifSmall()->getWidth(std::string("100%")) );
- r.set(x, y+TEXT_HEIGHT - 2, x+health_width, y);
- mTextHealth->setRect(r);
- x += health_width;
- }
- else
- {
- // invisible if region doesn't allow damage
- childSetVisible("health", false);
- mTextHealth->setVisible(FALSE);
- }
-
mSGBandwidth->setVisible(net_stats_visible);
mSGPacketLoss->setVisible(net_stats_visible);
- childSetEnabled("stat_btn", net_stats_visible);
+ getChildView("stat_btn")->setEnabled(net_stats_visible);
// update the master volume button state
bool mute_audio = LLAppViewer::instance()->getMasterSystemAudioMute();
@@ -391,6 +325,11 @@ void LLStatusBar::creditBalance(S32 credit)
void LLStatusBar::setBalance(S32 balance)
{
+ if (balance > getBalance() && getBalance() != 0)
+ {
+ LLFirstUse::receiveLindens();
+ }
+
std::string money_str = LLResMgr::getInstance()->getMonetaryString( balance );
LLTextBox* balance_box = getChild<LLTextBox>("balance");
@@ -444,8 +383,6 @@ void LLStatusBar::sendMoneyBalanceRequest()
void LLStatusBar::setHealth(S32 health)
{
//llinfos << "Setting health to: " << buffer << llendl;
- mTextHealth->setText(llformat("%d%%", health));
-
if( mHealth > health )
{
if (mHealth > (health + gSavedSettings.getF32("UISndHealthReductionThreshold")))
@@ -515,16 +452,7 @@ void LLStatusBar::onClickBuyCurrency()
// open a currency floater - actual one open depends on
// value specified in settings.xml
LLBuyCurrencyHTML::openCurrencyFloater();
-}
-
-static void onClickHealth(void* )
-{
- LLNotificationsUtil::add("NotSafe");
-}
-
-static void onClickScriptDebug(void*)
-{
- LLFloaterScriptDebug::show(LLUUID::null);
+ LLFirstUse::receiveLindens(false);
}
void LLStatusBar::onMouseEnterVolume()
@@ -588,69 +516,6 @@ void LLStatusBar::onClickMediaToggle(void* data)
LLViewerMedia::setAllMediaEnabled(enable);
}
-// sets the static variables necessary for the date
-void LLStatusBar::setupDate()
-{
- // fill the day array with what's in the xui
- std::string day_list = getString("StatBarDaysOfWeek");
- size_t length = day_list.size();
-
- // quick input check
- if(length < MAX_DATE_STRING_LENGTH)
- {
- // tokenize it and put it in the array
- std::string cur_word;
- for(size_t i = 0; i < length; ++i)
- {
- if(day_list[i] == ':')
- {
- sDays.push_back(cur_word);
- cur_word.clear();
- }
- else
- {
- cur_word.append(1, day_list[i]);
- }
- }
- sDays.push_back(cur_word);
- }
-
- // fill the day array with what's in the xui
- std::string month_list = getString( "StatBarMonthsOfYear" );
- length = month_list.size();
-
- // quick input check
- if(length < MAX_DATE_STRING_LENGTH)
- {
- // tokenize it and put it in the array
- std::string cur_word;
- for(size_t i = 0; i < length; ++i)
- {
- if(month_list[i] == ':')
- {
- sMonths.push_back(cur_word);
- cur_word.clear();
- }
- else
- {
- cur_word.append(1, month_list[i]);
- }
- }
- sMonths.push_back(cur_word);
- }
-
- // make sure we have at least 7 days and 12 months
- if(sDays.size() < 7)
- {
- sDays.resize(7);
- }
-
- if(sMonths.size() < 12)
- {
- sMonths.resize(12);
- }
-}
-
// static
void LLStatusBar::onClickStatGraph(void* data)
{
diff --git a/indra/newview/llstatusbar.h b/indra/newview/llstatusbar.h
index e5240fcc3e..8840db2c4a 100644
--- a/indra/newview/llstatusbar.h
+++ b/indra/newview/llstatusbar.h
@@ -2,31 +2,25 @@
* @file llstatusbar.h
* @brief LLStatusBar class definition
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -91,9 +85,7 @@ public:
LLPanelNearByMedia* getNearbyMediaPanel() { return mPanelNearByMedia; }
private:
- // simple method to setup the part that holds the date
- void setupDate();
-
+
void onClickBuyCurrency();
void onVolumeChanged(const LLSD& newvalue);
@@ -105,7 +97,6 @@ private:
static void onClickMediaToggle(void* data);
private:
- LLTextBox *mTextHealth;
LLTextBox *mTextTime;
LLStatGraph *mSGBandwidth;
@@ -113,6 +104,8 @@ private:
LLButton *mBtnVolume;
LLButton *mMediaToggle;
+ LLView* mScriptOut;
+ LLFrameTimer mClockUpdateTimer;
S32 mBalance;
S32 mHealth;
@@ -122,9 +115,6 @@ private:
LLFrameTimer* mHealthTimer;
LLPanelVolumePulldown* mPanelVolumePulldown;
LLPanelNearByMedia* mPanelNearByMedia;
- static std::vector<std::string> sDays;
- static std::vector<std::string> sMonths;
- static const U32 MAX_DATE_STRING_LENGTH;
};
// *HACK: Status bar owns your cached money balance. JC
diff --git a/indra/newview/llstylemap.cpp b/indra/newview/llstylemap.cpp
index 8fab3bb361..43fe37ac77 100644
--- a/indra/newview/llstylemap.cpp
+++ b/indra/newview/llstylemap.cpp
@@ -2,31 +2,25 @@
* @file llstylemap.cpp
* @brief LLStyleMap class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -46,20 +40,12 @@ const LLStyle::Params &LLStyleMap::lookupAgent(const LLUUID &source)
if (mMap.find(source) == mMap.end())
{
LLStyle::Params style_params;
- if (source != LLUUID::null && source != gAgent.getID() )
+ if (source != LLUUID::null)
{
style_params.color.control = "HTMLLinkColor";
style_params.readonly_color.control = "HTMLLinkColor";
- style_params.link_href =
- LLSLURL("agent", source, "inspect").getSLURLString();
+ style_params.link_href = LLSLURL("agent", source, "inspect").getSLURLString();
}
- else
- {
- // Make the resident's own name white and don't make the name clickable.
- style_params.color = LLColor4::white;
- style_params.readonly_color = LLColor4::white;
- }
-
mMap[source] = style_params;
}
return mMap[source];
diff --git a/indra/newview/llstylemap.h b/indra/newview/llstylemap.h
index d29ff1ae28..8aa0af535c 100644
--- a/indra/newview/llstylemap.h
+++ b/indra/newview/llstylemap.h
@@ -2,31 +2,25 @@
* @file LLStyleMap.h
* @brief LLStyleMap class definition
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llsurface.cpp b/indra/newview/llsurface.cpp
index ddb5d08e07..af4d9fa7b9 100644
--- a/indra/newview/llsurface.cpp
+++ b/indra/newview/llsurface.cpp
@@ -2,31 +2,25 @@
* @file llsurface.cpp
* @brief Implementation of LLSurface class
*
- * $LicenseInfo:firstyear=2000&license=viewergpl$
- *
- * Copyright (c) 2000-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2000&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -158,6 +152,7 @@ void LLSurface::initClasses()
void LLSurface::setRegion(LLViewerRegion *regionp)
{
mRegionp = regionp;
+ mWaterObjp = NULL; // depends on regionp, needs recreating
}
// Assumes that arguments are powers of 2, and that
@@ -958,6 +953,7 @@ LLSurfacePatch *LLSurface::resolvePatchRegion(const LLVector3 &pos_region) const
LLSurfacePatch *LLSurface::resolvePatchGlobal(const LLVector3d &pos_global) const
{
+ llassert(mRegionp);
LLVector3 pos_region = mRegionp->getPosRegionFromGlobal(pos_global);
return resolvePatchRegion(pos_region);
}
diff --git a/indra/newview/llsurface.h b/indra/newview/llsurface.h
index 1f672d2250..673ee83fe3 100644
--- a/indra/newview/llsurface.h
+++ b/indra/newview/llsurface.h
@@ -2,31 +2,25 @@
* @file llsurface.h
* @brief Description of LLSurface class
*
- * $LicenseInfo:firstyear=2000&license=viewergpl$
- *
- * Copyright (c) 2000-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2000&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llsurfacepatch.cpp b/indra/newview/llsurfacepatch.cpp
index 48e4a6ccc7..1d57e27616 100644
--- a/indra/newview/llsurfacepatch.cpp
+++ b/indra/newview/llsurfacepatch.cpp
@@ -2,31 +2,25 @@
* @file llsurfacepatch.cpp
* @brief LLSurfacePatch class implementation
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llsurfacepatch.h b/indra/newview/llsurfacepatch.h
index ebfb64c1d8..8c8f501dce 100644
--- a/indra/newview/llsurfacepatch.h
+++ b/indra/newview/llsurfacepatch.h
@@ -2,31 +2,25 @@
* @file llsurfacepatch.h
* @brief LLSurfacePatch class definition
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llsyswellitem.cpp b/indra/newview/llsyswellitem.cpp
index 0cfcfdc634..057d80457c 100644
--- a/indra/newview/llsyswellitem.cpp
+++ b/indra/newview/llsyswellitem.cpp
@@ -2,31 +2,25 @@
* @file llsyswellitem.cpp
* @brief // TODO
*
- * $LicenseInfo:firstyear=2000&license=viewergpl$
- *
- * Copyright (c) 2000-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2000&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -42,14 +36,12 @@
//---------------------------------------------------------------------------------
LLSysWellItem::LLSysWellItem(const Params& p) : LLPanel(p),
mTitle(NULL),
- mCloseBtn(NULL),
- mIcon(NULL)
+ mCloseBtn(NULL)
{
- LLUICtrlFactory::getInstance()->buildPanel(this, "panel_sys_well_item.xml");
+ buildFromFile( "panel_sys_well_item.xml");
mTitle = getChild<LLTextBox>("title");
mCloseBtn = getChild<LLButton>("close_btn");
- mIcon = getChild<LLIconCtrl>("icon");
mTitle->setValue(p.title);
mCloseBtn->setClickedCallback(boost::bind(&LLSysWellItem::onClickCloseBtn,this));
diff --git a/indra/newview/llsyswellitem.h b/indra/newview/llsyswellitem.h
index b9b00e972a..d961708a01 100644
--- a/indra/newview/llsyswellitem.h
+++ b/indra/newview/llsyswellitem.h
@@ -2,31 +2,25 @@
* @file llsyswellitem.h
* @brief // TODO
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -79,7 +73,6 @@ private:
LLTextBox* mTitle;
LLButton* mCloseBtn;
- LLIconCtrl* mIcon;
LLUUID mID;
};
diff --git a/indra/newview/llsyswellwindow.cpp b/indra/newview/llsyswellwindow.cpp
index cb65756764..99342bb564 100644
--- a/indra/newview/llsyswellwindow.cpp
+++ b/indra/newview/llsyswellwindow.cpp
@@ -1,31 +1,25 @@
/**
* @file llsyswellwindow.cpp
* @brief // TODO
- * $LicenseInfo:firstyear=2000&license=viewergpl$
- *
- * Copyright (c) 2000-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2000&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -255,7 +249,7 @@ LLIMWellWindow::RowPanel::RowPanel(const LLSysWellWindow* parent, const LLUUID&
S32 chicletCounter, const std::string& name, const LLUUID& otherParticipantId) :
LLPanel(LLPanel::Params()), mChiclet(NULL), mParent(parent)
{
- LLUICtrlFactory::getInstance()->buildPanel(this, "panel_activeim_row.xml", NULL);
+ buildFromFile( "panel_activeim_row.xml", NULL);
// Choose which of the pre-created chiclets (IM/group) to use.
// The other one gets hidden.
@@ -352,7 +346,7 @@ LLIMWellWindow::ObjectRowPanel::ObjectRowPanel(const LLUUID& notification_id, bo
: LLPanel()
, mChiclet(NULL)
{
- LLUICtrlFactory::getInstance()->buildPanel(this, "panel_active_object_row.xml", NULL);
+ buildFromFile( "panel_active_object_row.xml", NULL);
initChiclet(notification_id);
@@ -371,7 +365,7 @@ LLIMWellWindow::ObjectRowPanel::~ObjectRowPanel()
//---------------------------------------------------------------------------------
void LLIMWellWindow::ObjectRowPanel::onClosePanel()
{
- LLScriptFloaterManager::getInstance()->onRemoveNotification(mChiclet->getSessionId());
+ LLScriptFloaterManager::getInstance()->removeNotification(mChiclet->getSessionId());
}
void LLIMWellWindow::ObjectRowPanel::initChiclet(const LLUUID& notification_id, bool new_message/* = false*/)
@@ -582,8 +576,6 @@ LLIMWellWindow::LLIMWellWindow(const LLSD& key)
: LLSysWellWindow(key)
{
LLIMMgr::getInstance()->addSessionObserver(this);
- LLIMChiclet::sFindChicletsSignal.connect(boost::bind(&LLIMWellWindow::findIMChiclet, this, _1));
- LLIMChiclet::sFindChicletsSignal.connect(boost::bind(&LLIMWellWindow::findObjectChiclet, this, _1));
}
LLIMWellWindow::~LLIMWellWindow()
@@ -601,6 +593,10 @@ BOOL LLIMWellWindow::postBuild()
{
BOOL rv = LLSysWellWindow::postBuild();
setTitle(getString("title_im_well_window"));
+
+ LLIMChiclet::sFindChicletsSignal.connect(boost::bind(&LLIMWellWindow::findIMChiclet, this, _1));
+ LLIMChiclet::sFindChicletsSignal.connect(boost::bind(&LLIMWellWindow::findObjectChiclet, this, _1));
+
return rv;
}
@@ -641,6 +637,8 @@ void LLIMWellWindow::sessionIDUpdated(const LLUUID& old_session_id, const LLUUID
LLChiclet* LLIMWellWindow::findObjectChiclet(const LLUUID& notification_id)
{
+ if (!mMessageList) return NULL;
+
LLChiclet* res = NULL;
ObjectRowPanel* panel = mMessageList->getTypedItemByValue<ObjectRowPanel>(notification_id);
if (panel != NULL)
@@ -655,6 +653,8 @@ LLChiclet* LLIMWellWindow::findObjectChiclet(const LLUUID& notification_id)
// PRIVATE METHODS
LLChiclet* LLIMWellWindow::findIMChiclet(const LLUUID& sessionId)
{
+ if (!mMessageList) return NULL;
+
LLChiclet* res = NULL;
RowPanel* panel = mMessageList->getTypedItemByValue<RowPanel>(sessionId);
if (panel != NULL)
@@ -826,7 +826,7 @@ void LLIMWellWindow::closeAllImpl()
ObjectRowPanel* obj_panel = dynamic_cast <ObjectRowPanel*> (panel);
if (obj_panel)
{
- LLScriptFloaterManager::instance().onRemoveNotification(*iter);
+ LLScriptFloaterManager::instance().removeNotification(*iter);
}
}
}
diff --git a/indra/newview/llsyswellwindow.h b/indra/newview/llsyswellwindow.h
index c8215c71ee..5854deb840 100644
--- a/indra/newview/llsyswellwindow.h
+++ b/indra/newview/llsyswellwindow.h
@@ -2,31 +2,25 @@
* @file llsyswellwindow.h
* @brief // TODO
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltable.h b/indra/newview/lltable.h
index 6070719ac1..d75ef84ae4 100644
--- a/indra/newview/lltable.h
+++ b/indra/newview/lltable.h
@@ -2,31 +2,25 @@
* @file lltable.h
* @brief Description of LLTable template class
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llteleporthistory.cpp b/indra/newview/llteleporthistory.cpp
index cac3b58464..0d8b45db1f 100644
--- a/indra/newview/llteleporthistory.cpp
+++ b/indra/newview/llteleporthistory.cpp
@@ -2,31 +2,25 @@
* @file llteleporthistory.cpp
* @brief Teleport history
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llteleporthistory.h b/indra/newview/llteleporthistory.h
index e035451e71..e45dc28f9b 100644
--- a/indra/newview/llteleporthistory.h
+++ b/indra/newview/llteleporthistory.h
@@ -2,31 +2,25 @@
* @file llteleporthistory.h
* @brief Teleport history
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llteleporthistorystorage.cpp b/indra/newview/llteleporthistorystorage.cpp
index 430d62e15e..0ba455e7d5 100644
--- a/indra/newview/llteleporthistorystorage.cpp
+++ b/indra/newview/llteleporthistorystorage.cpp
@@ -2,31 +2,25 @@
* @file llteleporthistorystorage.cpp
* @brief Teleport history
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
diff --git a/indra/newview/llteleporthistorystorage.h b/indra/newview/llteleporthistorystorage.h
index 2eaa94f2ed..6cae0a3454 100644
--- a/indra/newview/llteleporthistorystorage.h
+++ b/indra/newview/llteleporthistorystorage.h
@@ -2,31 +2,25 @@
* @file llteleporthistorystorage.h
* @brief Saving/restoring of teleport history.
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
diff --git a/indra/newview/lltexglobalcolor.cpp b/indra/newview/lltexglobalcolor.cpp
index 347f8bf627..ebe5ccd6c0 100644
--- a/indra/newview/lltexglobalcolor.cpp
+++ b/indra/newview/lltexglobalcolor.cpp
@@ -2,30 +2,25 @@
* @file lltexlayerglobalcolor.cpp
* @brief Color for texture layers.
*
- * $LicenseInfo:firstyear=2008&license=viewergpl$
- *
- * Copyright (c) 2008-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2008&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltexglobalcolor.h b/indra/newview/lltexglobalcolor.h
index 829a7d645b..ae04798445 100644
--- a/indra/newview/lltexglobalcolor.h
+++ b/indra/newview/lltexglobalcolor.h
@@ -2,30 +2,25 @@
* @file lltexglobalcolor.h
* @brief This is global texture color info used by llvoavatar.
*
- * $LicenseInfo:firstyear=2008&license=viewergpl$
- *
- * Copyright (c) 2008-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2008&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltexlayer.cpp b/indra/newview/lltexlayer.cpp
index 5d51e32515..500c2a7b86 100644
--- a/indra/newview/lltexlayer.cpp
+++ b/indra/newview/lltexlayer.cpp
@@ -2,31 +2,25 @@
* @file lltexlayer.cpp
* @brief A texture layer. Used for avatars.
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -119,14 +113,16 @@ 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 ),
- mNeedsUpdate(TRUE),
- mNeedsUpload(FALSE),
mUploadPending(FALSE), // Not used for any logic here, just to sync sending of updates
+ mNeedsUpload(FALSE),
mNumLowresUploads(0),
+ mNeedsUpdate(TRUE),
+ mNumLowresUpdates(0),
mTexLayerSet(owner)
{
LLTexLayerSetBuffer::sGLByteCount += getSize();
mNeedsUploadTimer.start();
+ mNeedsUpdateTimer.start();
}
LLTexLayerSetBuffer::~LLTexLayerSetBuffer()
@@ -165,8 +161,9 @@ void LLTexLayerSetBuffer::dumpTotalByteCount()
void LLTexLayerSetBuffer::requestUpdate()
{
- conditionalRestartUploadTimer();
+ 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();
@@ -196,6 +193,12 @@ void LLTexLayerSetBuffer::conditionalRestartUploadTimer()
}
}
+void LLTexLayerSetBuffer::restartUpdateTimer()
+{
+ mNeedsUpdateTimer.reset();
+ mNeedsUpdateTimer.start();
+}
+
void LLTexLayerSetBuffer::cancelUpload()
{
mNeedsUpload = FALSE;
@@ -229,25 +232,31 @@ BOOL LLTexLayerSetBuffer::needsRender()
llassert(mTexLayerSet->getAvatar() == gAgentAvatarp);
if (!isAgentAvatarValid()) return FALSE;
- const BOOL upload_now = isReadyToUpload();
- BOOL needs_update = (mNeedsUpdate || upload_now) && !gAgentAvatarp->mAppearanceAnimating;
- if (needs_update)
+ 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))
{
- BOOL invalid_skirt = gAgentAvatarp->getBakedTE(mTexLayerSet) == LLVOAvatarDefines::TEX_SKIRT_BAKED && !gAgentAvatarp->isWearingWearableType(LLWearableType::WT_SKIRT);
- if (invalid_skirt)
- {
- // we were trying to create a skirt texture
- // but we're no longer wearing a skirt...
- needs_update = FALSE;
- cancelUpload();
- }
- else
- {
- needs_update &= mTexLayerSet->isLocalTextureDataAvailable();
- }
+ return FALSE;
+ }
+
+ // Don't render if we're animating our appearance.
+ if (gAgentAvatarp->getIsAppearanceAnimating())
+ {
+ return FALSE;
}
- return needs_update;
+ // 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)
@@ -272,11 +281,12 @@ BOOL LLTexLayerSetBuffer::render()
gGL.setColorMask(true, true);
// do we need to upload, and do we have sufficient data to create an uploadable composite?
- // When do we upload the texture if gAgent.mNumPendingQueries is non-zero?
- const BOOL upload_now = isReadyToUpload();
+ // 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;
-
// Composite the color data
LLGLSUIDefault gls_ui;
success &= mTexLayerSet->render( mOrigin.mX, mOrigin.mY, mFullWidth, mFullHeight );
@@ -294,7 +304,7 @@ BOOL LLTexLayerSetBuffer::render()
if (mTexLayerSet->isVisible())
{
mTexLayerSet->getAvatar()->debugBakedTextureUpload(mTexLayerSet->getBakedTexIndex(), FALSE); // FALSE for start of upload, TRUE for finish.
- readBackAndUpload();
+ doUpload();
}
else
{
@@ -305,6 +315,11 @@ BOOL LLTexLayerSetBuffer::render()
}
}
}
+
+ if (update_now)
+ {
+ doUpdate();
+ }
// reset GL state
gGL.setColorMask(true, true);
@@ -312,7 +327,6 @@ BOOL LLTexLayerSetBuffer::render()
// we have valid texture data now
mGLTexturep->setGLTextureCreated(true);
- mNeedsUpdate = FALSE;
return success;
}
@@ -339,15 +353,16 @@ BOOL LLTexLayerSetBuffer::uploadInProgress() const
BOOL LLTexLayerSetBuffer::isReadyToUpload() const
{
- if (!mNeedsUpload) return FALSE; // Don't need to upload if we haven't requested one.
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.
+
// If we requested an upload and have the final LOD ready, then upload.
- const BOOL can_highest_lod = mTexLayerSet->isLocalTextureDataFinal();
- if (can_highest_lod) return TRUE;
+ if (mTexLayerSet->isLocalTextureDataFinal()) return TRUE;
- const U32 texture_timeout = gSavedSettings.getU32("AvatarBakedTextureTimeout");
- if (texture_timeout)
+ // 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.
@@ -358,10 +373,33 @@ BOOL LLTexLayerSetBuffer::isReadyToUpload() const
const BOOL has_lower_lod = mTexLayerSet->isLocalTextureDataAvailable();
if (has_lower_lod && is_upload_textures_timeout) return TRUE;
}
+
+ return FALSE;
+}
+
+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::updateImmediate()
+BOOL LLTexLayerSetBuffer::requestUpdateImmediate()
{
mNeedsUpdate = TRUE;
BOOL result = FALSE;
@@ -376,7 +414,9 @@ BOOL LLTexLayerSetBuffer::updateImmediate()
return result;
}
-void LLTexLayerSetBuffer::readBackAndUpload()
+// 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);
@@ -446,6 +486,7 @@ void LLTexLayerSetBuffer::readBackAndUpload()
LLBakedUploadData* baked_upload_data = new LLBakedUploadData(gAgentAvatarp,
this->mTexLayerSet,
asset_id);
+ // 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
@@ -489,13 +530,13 @@ void LLTexLayerSetBuffer::readBackAndUpload()
// Print out notification that we uploaded this texture.
if (gSavedSettings.getBOOL("DebugAvatarRezTime"))
{
- std::string lod_str = highest_lod ? "HighRes" : "LowRes";
+ 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("AvatarRezSelfBakeNotification",args);
+ LLNotificationsUtil::add("AvatarRezSelfBakedTextureUploadNotification",args);
llinfos << "Uploading [ name: " << mTexLayerSet->getBodyRegionName() << " res:" << lod_str << " time:" << (U32)mNeedsUploadTimer.getElapsedTimeF32() << " ]" << llendl;
}
}
@@ -519,6 +560,40 @@ void LLTexLayerSetBuffer::readBackAndUpload()
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);
+ llinfos << "Locally updating [ name: " << mTexLayerSet->getBodyRegionName() << " res:" << lod_str << " time:" << (U32)mNeedsUpdateTimer.getElapsedTimeF32() << " ]" << llendl;
+ }
+}
// static
void LLTexLayerSetBuffer::onTextureUploadComplete(const LLUUID& uuid,
@@ -930,7 +1005,7 @@ void LLTexLayerSet::setUpdatesEnabled( BOOL b )
void LLTexLayerSet::updateComposite()
{
createComposite();
- mComposite->updateImmediate();
+ mComposite->requestUpdateImmediate();
}
LLTexLayerSetBuffer* LLTexLayerSet::getComposite()
diff --git a/indra/newview/lltexlayer.h b/indra/newview/lltexlayer.h
index cb2e1faaa6..2d710d2dce 100644
--- a/indra/newview/lltexlayer.h
+++ b/indra/newview/lltexlayer.h
@@ -2,31 +2,25 @@
* @file lltexlayer.h
* @brief Texture layer classes. Used for avatars.
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -270,47 +264,69 @@ class LLTexLayerSetBuffer : public LLViewerDynamicTexture
public:
LLTexLayerSetBuffer(LLTexLayerSet* const owner, S32 width, S32 height);
virtual ~LLTexLayerSetBuffer();
- /*virtual*/ S8 getType() const;
- virtual void preRender(BOOL clear_depth);
- virtual void postRender(BOOL success);
- virtual BOOL render();
- BOOL updateImmediate();
+public:
+ /*virtual*/ S8 getType() const;
BOOL isInitialized(void) const;
- BOOL uploadPending() const; // We are expecting a new texture to be uploaded at some point
- 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
+ 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();
- void requestUpdate();
+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 render(S32 x, S32 y, S32 width, S32 height);
- void readBackAndUpload();
+ 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);
- static void dumpTotalByteCount();
- const std::string dumpTextureInfo() const;
- virtual void restoreGLTexture();
- virtual void destroyGLTexture();
-
-
protected:
- void pushProjection() const;
- void popProjection() const;
BOOL isReadyToUpload() const;
+ void doUpload(); // Does a read back and upload.
void conditionalRestartUploadTimer();
-
private:
- LLTexLayerSet* const mTexLayerSet;
- BOOL mNeedsUpdate; // whether we need to update our baked textures
- 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). Used to avoid overlaps, e.g. when the user rapidly makes two changes outside of Face Edit.
- static S32 sGLByteCount;
- LLFrameTimer mNeedsUploadTimer; // Tracks time since upload was requested
+ 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.
+
+ //--------------------------------------------------------------------
+ // 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.
};
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
diff --git a/indra/newview/lltexlayerparams.cpp b/indra/newview/lltexlayerparams.cpp
index f2d1b5d032..8972827eff 100644
--- a/indra/newview/lltexlayerparams.cpp
+++ b/indra/newview/lltexlayerparams.cpp
@@ -2,30 +2,25 @@
* @file lltexlayerparams.cpp
* @brief Texture layer parameters
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2007, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -180,7 +175,7 @@ void LLTexLayerParamAlpha::setWeight(F32 weight, BOOL upload_bake)
if ((mAvatar->getSex() & getSex()) && (mAvatar->isSelf() && !mIsDummy)) // only trigger a baked texture update if we're changing a wearable's visual param.
{
- if (gAgentCamera.cameraCustomizeAvatar())
+ if (isAgentAvatarValid() && !gAgentAvatarp->isUsingBakedTextures())
{
upload_bake = FALSE;
}
diff --git a/indra/newview/lltexlayerparams.h b/indra/newview/lltexlayerparams.h
index 7747ee1ebf..74c22b0cdf 100644
--- a/indra/newview/lltexlayerparams.h
+++ b/indra/newview/lltexlayerparams.h
@@ -2,30 +2,25 @@
* @file lltexlayerparams.h
* @brief Texture layer parameters, used by lltexlayer.
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2007, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltextureatlas.cpp b/indra/newview/lltextureatlas.cpp
index 79b3686386..d2e4b01732 100644
--- a/indra/newview/lltextureatlas.cpp
+++ b/indra/newview/lltextureatlas.cpp
@@ -2,30 +2,25 @@
* @file lltextureatlas.cpp
* @brief LLTextureAtlas class implementation.
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
#include "llviewerprecompiledheaders.h"
diff --git a/indra/newview/lltextureatlas.h b/indra/newview/lltextureatlas.h
index 1f756ccf1a..6b36eb7fe4 100644
--- a/indra/newview/lltextureatlas.h
+++ b/indra/newview/lltextureatlas.h
@@ -2,30 +2,25 @@
* @file lltextureatlas.h
* @brief LLTextureAtlas base class.
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltextureatlasmanager.cpp b/indra/newview/lltextureatlasmanager.cpp
index 8f026787ca..ca9d6da4db 100644
--- a/indra/newview/lltextureatlasmanager.cpp
+++ b/indra/newview/lltextureatlasmanager.cpp
@@ -2,30 +2,25 @@
* @file lltextureatlasmanager.cpp
* @brief LLTextureAtlasManager class implementation.
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
#include "llviewerprecompiledheaders.h"
diff --git a/indra/newview/lltextureatlasmanager.h b/indra/newview/lltextureatlasmanager.h
index 4dba0759f9..b643056198 100644
--- a/indra/newview/lltextureatlasmanager.h
+++ b/indra/newview/lltextureatlasmanager.h
@@ -2,30 +2,25 @@
* @file lltextureatlasmanager.h
* @brief LLTextureAtlasManager base class.
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltexturecache.cpp b/indra/newview/lltexturecache.cpp
index 9ad2322765..6a213309a0 100644
--- a/indra/newview/lltexturecache.cpp
+++ b/indra/newview/lltexturecache.cpp
@@ -2,31 +2,25 @@
* @file lltexturecache.cpp
* @brief Object which handles local texture caching
*
- * $LicenseInfo:firstyear=2000&license=viewergpl$
- *
- * Copyright (c) 2000-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2000&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -391,6 +385,7 @@ bool LLTextureCacheRemoteWorker::doRead()
}
else
{
+ //llinfos << "texture " << mID.asString() << " found in local_assets" << llendl;
mImageSize = local_size;
mImageLocal = TRUE;
}
@@ -932,7 +927,7 @@ void LLTextureCache::setReadOnly(BOOL read_only)
}
//called in the main thread.
-S64 LLTextureCache::initCache(ELLPath location, S64 max_size, BOOL disable_texture_cache)
+S64 LLTextureCache::initCache(ELLPath location, S64 max_size, BOOL texture_cache_mismatch)
{
llassert_always(getPending() == 0) ; //should not start accessing the texture cache before initialized.
@@ -947,20 +942,23 @@ S64 LLTextureCache::initCache(ELLPath location, S64 max_size, BOOL disable_textu
sCacheMaxTexturesSize = max_size;
max_size -= sCacheMaxTexturesSize;
- if(disable_texture_cache) //the texture cache is disabled
- {
- llinfos << "The texture cache is disabled!" << llendl ;
- setReadOnly(TRUE) ;
- purgeAllTextures(true);
-
- return max_size ;
- }
-
LL_INFOS("TextureCache") << "Headers: " << sCacheMaxEntries
<< " Textures size: " << sCacheMaxTexturesSize/(1024*1024) << " MB" << LL_ENDL;
setDirNames(location);
+ if(texture_cache_mismatch)
+ {
+ //if readonly, disable the texture cache,
+ //otherwise wipe out the texture cache.
+ purgeAllTextures(true);
+
+ if(mReadOnly)
+ {
+ return max_size ;
+ }
+ }
+
if (!mReadOnly)
{
LLFile::mkdir(mTexturesDirName);
@@ -997,7 +995,11 @@ LLAPRFile* LLTextureCache::openHeaderEntriesFile(bool readonly, S32 offset)
void LLTextureCache::closeHeaderEntriesFile()
{
- llassert_always(mHeaderAPRFile != NULL);
+ if(!mHeaderAPRFile)
+ {
+ return ;
+ }
+
delete mHeaderAPRFile;
mHeaderAPRFile = NULL;
}
@@ -1114,7 +1116,7 @@ S32 LLTextureCache::openAndReadEntry(const LLUUID& id, Entry& entry, bool create
}
//mHeaderMutex is locked before calling this.
-void LLTextureCache::writeEntryToHeaderImmediately(S32 idx, Entry& entry, bool write_header)
+void LLTextureCache::writeEntryToHeaderImmediately(S32& idx, Entry& entry, bool write_header)
{
LLAPRFile* aprfile ;
S32 bytes_written ;
@@ -1123,7 +1125,13 @@ void LLTextureCache::writeEntryToHeaderImmediately(S32 idx, Entry& entry, bool w
{
aprfile = openHeaderEntriesFile(false, 0);
bytes_written = aprfile->write((U8*)&mHeaderEntriesInfo, sizeof(EntriesInfo)) ;
- llassert_always(bytes_written == sizeof(EntriesInfo));
+ if(bytes_written != sizeof(EntriesInfo))
+ {
+ clearCorruptedCache() ; //clear the cache.
+ idx = -1 ;//mark the idx invalid.
+ return ;
+ }
+
mHeaderAPRFile->seek(APR_SET, offset);
}
else
@@ -1131,19 +1139,31 @@ void LLTextureCache::writeEntryToHeaderImmediately(S32 idx, Entry& entry, bool w
aprfile = openHeaderEntriesFile(false, offset);
}
bytes_written = aprfile->write((void*)&entry, (S32)sizeof(Entry));
- llassert_always(bytes_written == sizeof(Entry));
+ if(bytes_written != sizeof(Entry))
+ {
+ clearCorruptedCache() ; //clear the cache.
+ idx = -1 ;//mark the idx invalid.
+
+ return ;
+ }
+
closeHeaderEntriesFile();
mUpdatedEntryMap.erase(idx) ;
}
//mHeaderMutex is locked before calling this.
-void LLTextureCache::readEntryFromHeaderImmediately(S32 idx, Entry& entry)
+void LLTextureCache::readEntryFromHeaderImmediately(S32& idx, Entry& entry)
{
S32 offset = sizeof(EntriesInfo) + idx * sizeof(Entry);
LLAPRFile* aprfile = openHeaderEntriesFile(true, offset);
S32 bytes_read = aprfile->read((void*)&entry, (S32)sizeof(Entry));
- llassert_always(bytes_read == sizeof(Entry));
closeHeaderEntriesFile();
+
+ if(bytes_read != sizeof(Entry))
+ {
+ clearCorruptedCache() ; //clear the cache.
+ idx = -1 ;//mark the idx invalid.
+ }
}
//mHeaderMutex is locked before calling this.
@@ -1168,7 +1188,7 @@ void LLTextureCache::updateEntryTimeStamp(S32 idx, Entry& entry)
}
//update an existing entry, write to header file immediately.
-bool LLTextureCache::updateEntry(S32 idx, Entry& entry, S32 new_image_size, S32 new_data_size)
+bool LLTextureCache::updateEntry(S32& idx, Entry& entry, S32 new_image_size, S32 new_data_size)
{
S32 new_body_size = llmax(0, new_data_size - TEXTURE_CACHE_ENTRY_SIZE) ;
@@ -1239,6 +1259,10 @@ U32 LLTextureCache::openAndReadEntries(std::vector<Entry>& entries)
{
aprfile = openHeaderEntriesFile(false, 0);
updatedHeaderEntriesFile() ;
+ if(!aprfile)
+ {
+ return 0;
+ }
aprfile->seek(APR_SET, (S32)sizeof(EntriesInfo));
}
for (U32 idx=0; idx<num_entries; idx++)
@@ -1280,7 +1304,11 @@ void LLTextureCache::writeEntriesAndClose(const std::vector<Entry>& entries)
for (S32 idx=0; idx<num_entries; idx++)
{
S32 bytes_written = aprfile->write((void*)(&entries[idx]), (S32)sizeof(Entry));
- llassert_always(bytes_written == sizeof(Entry));
+ if(bytes_written != sizeof(Entry))
+ {
+ clearCorruptedCache() ; //clear the cache.
+ return ;
+ }
}
closeHeaderEntriesFile();
}
@@ -1306,7 +1334,11 @@ void LLTextureCache::updatedHeaderEntriesFile()
//entriesInfo
mHeaderAPRFile->seek(APR_SET, 0);
S32 bytes_written = mHeaderAPRFile->write((U8*)&mHeaderEntriesInfo, sizeof(EntriesInfo)) ;
- llassert_always(bytes_written == sizeof(EntriesInfo));
+ if(bytes_written != sizeof(EntriesInfo))
+ {
+ clearCorruptedCache() ; //clear the cache.
+ return ;
+ }
//write each updated entry
S32 entry_size = (S32)sizeof(Entry) ;
@@ -1322,7 +1354,11 @@ void LLTextureCache::updatedHeaderEntriesFile()
}
bytes_written = mHeaderAPRFile->write((void*)(&iter->second), entry_size);
- llassert_always(bytes_written == entry_size);
+ if(bytes_written != entry_size)
+ {
+ clearCorruptedCache() ; //clear the cache.
+ return ;
+ }
}
mUpdatedEntryMap.clear() ;
}
@@ -1443,6 +1479,29 @@ void LLTextureCache::readHeaderCache()
//////////////////////////////////////////////////////////////////////////////
+//the header mutex is locked before calling this.
+void LLTextureCache::clearCorruptedCache()
+{
+ llwarns << "the texture cache is corrupted, need to be cleared." << llendl ;
+
+ closeHeaderEntriesFile();//close possible file handler
+ purgeAllTextures(false) ; //clear the cache.
+
+ if (!mReadOnly) //regenerate the directory tree if not exists.
+ {
+ LLFile::mkdir(mTexturesDirName);
+
+ const char* subdirs = "0123456789abcdef";
+ for (S32 i=0; i<16; i++)
+ {
+ std::string dirname = mTexturesDirName + gDirUtilp->getDirDelimiter() + subdirs[i];
+ LLFile::mkdir(dirname);
+ }
+ }
+
+ return ;
+}
+
void LLTextureCache::purgeAllTextures(bool purge_directories)
{
if (!mReadOnly)
@@ -1471,11 +1530,14 @@ void LLTextureCache::purgeAllTextures(bool purge_directories)
mTexturesSizeTotal = 0;
mFreeList.clear();
mTexturesSizeTotal = 0;
+ mUpdatedEntryMap.clear();
// Info with 0 entries
mHeaderEntriesInfo.mVersion = sHeaderCacheVersion;
mHeaderEntriesInfo.mEntries = 0;
writeEntriesHeader();
+
+ llinfos << "The entire texture cache is cleared." << llendl ;
}
void LLTextureCache::purgeTextures(bool validate)
@@ -1643,7 +1705,8 @@ S32 LLTextureCache::setHeaderCacheEntry(const LLUUID& id, Entry& entry, S32 imag
{
updateEntry(idx, entry, imagesize, datasize);
}
- else // retry
+
+ if(idx < 0) // retry
{
readHeaderCache(); // We couldn't write an entry, so refresh the LRU
diff --git a/indra/newview/lltexturecache.h b/indra/newview/lltexturecache.h
index 0fceee3011..64e3a2658c 100644
--- a/indra/newview/lltexturecache.h
+++ b/indra/newview/lltexturecache.h
@@ -2,31 +2,25 @@
* @file lltexturecache.h
* @brief Object for managing texture cachees.
*
- * $LicenseInfo:firstyear=2000&license=viewergpl$
- *
- * Copyright (c) 2000-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2000&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -111,7 +105,7 @@ public:
void purgeCache(ELLPath location);
void setReadOnly(BOOL read_only) ;
- S64 initCache(ELLPath location, S64 maxsize, BOOL disable_texture_cache);
+ S64 initCache(ELLPath location, S64 maxsize, BOOL texture_cache_mismatch);
handle_t readFromCache(const std::string& local_filename, const LLUUID& id, U32 priority, S32 offset, S32 size,
ReadResponder* responder);
@@ -154,6 +148,7 @@ protected:
private:
void setDirNames(ELLPath location);
void readHeaderCache();
+ void clearCorruptedCache();
void purgeAllTextures(bool purge_directories);
void purgeTextures(bool validate);
LLAPRFile* openHeaderEntriesFile(bool readonly, S32 offset);
@@ -161,12 +156,12 @@ private:
void readEntriesHeader();
void writeEntriesHeader();
S32 openAndReadEntry(const LLUUID& id, Entry& entry, bool create);
- bool updateEntry(S32 idx, Entry& entry, S32 new_image_size, S32 new_body_size);
+ bool updateEntry(S32& idx, Entry& entry, S32 new_image_size, S32 new_body_size);
void updateEntryTimeStamp(S32 idx, Entry& entry) ;
U32 openAndReadEntries(std::vector<Entry>& entries);
void writeEntriesAndClose(const std::vector<Entry>& entries);
- void readEntryFromHeaderImmediately(S32 idx, Entry& entry) ;
- void writeEntryToHeaderImmediately(S32 idx, Entry& entry, bool write_header = false) ;
+ void readEntryFromHeaderImmediately(S32& idx, Entry& entry) ;
+ void writeEntryToHeaderImmediately(S32& idx, Entry& entry, bool write_header = false) ;
void removeEntry(S32 idx, Entry& entry, std::string& filename);
void removeCachedTexture(const LLUUID& id) ;
S32 getHeaderCacheEntry(const LLUUID& id, Entry& entry);
diff --git a/indra/newview/lltexturectrl.cpp b/indra/newview/lltexturectrl.cpp
index a1ab051021..328298bda4 100644
--- a/indra/newview/lltexturectrl.cpp
+++ b/indra/newview/lltexturectrl.cpp
@@ -3,31 +3,25 @@
* @author Richard Nelson, James Cook
* @brief LLTextureCtrl class implementation including related functions
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -100,7 +94,7 @@ public:
PermissionMask immediate_filter_perm_mask,
PermissionMask non_immediate_filter_perm_mask,
BOOL can_apply_immediately,
- const std::string& fallback_image_name);
+ LLUIImagePtr fallback_image_name);
virtual ~LLFloaterTexturePicker();
@@ -153,7 +147,7 @@ protected:
LLTextureCtrl* mOwner;
LLUUID mImageAssetID; // Currently selected texture
- std::string mFallbackImageName; // What to show if currently selected texture is null.
+ LLUIImagePtr mFallbackImage; // What to show if currently selected texture is null.
LLUUID mWhiteImageAssetID;
LLUUID mSpecialCurrentImageAssetID; // Used when the asset id has no corresponding texture in the user's inventory.
@@ -175,6 +169,8 @@ protected:
BOOL mNoCopyTextureSelected;
F32 mContextConeOpacity;
LLSaveFolderState mSavedFolderState;
+
+ BOOL mSelectedItemPinned;
};
LLFloaterTexturePicker::LLFloaterTexturePicker(
@@ -183,11 +179,11 @@ LLFloaterTexturePicker::LLFloaterTexturePicker(
PermissionMask immediate_filter_perm_mask,
PermissionMask non_immediate_filter_perm_mask,
BOOL can_apply_immediately,
- const std::string& fallback_image_name)
+ LLUIImagePtr fallback_image)
: LLFloater(LLSD()),
mOwner( owner ),
mImageAssetID( owner->getImageAssetID() ),
- mFallbackImageName( fallback_image_name ),
+ mFallbackImage( fallback_image ),
mWhiteImageAssetID( gSavedSettings.getString( "UIImgWhiteUUID" ) ),
mOriginalImageAssetID(owner->getImageAssetID()),
mLabel(label),
@@ -197,10 +193,11 @@ LLFloaterTexturePicker::LLFloaterTexturePicker(
mFilterEdit(NULL),
mImmediateFilterPermMask(immediate_filter_perm_mask),
mNonImmediateFilterPermMask(non_immediate_filter_perm_mask),
- mContextConeOpacity(0.f)
+ mContextConeOpacity(0.f),
+ mSelectedItemPinned( FALSE )
{
+ buildFromFile("floater_texture_ctrl.xml");
mCanApplyImmediately = can_apply_immediately;
- LLUICtrlFactory::getInstance()->buildFloater(this,"floater_texture_ctrl.xml",NULL);
setCanMinimize(FALSE);
}
@@ -226,7 +223,7 @@ void LLFloaterTexturePicker::setImageID(const LLUUID& image_id)
if (itemp && !itemp->getPermissions().allowCopyBy(gAgent.getID()))
{
// no copy texture
- childSetValue("apply_immediate_check", FALSE);
+ getChild<LLUICtrl>("apply_immediate_check")->setValue(FALSE);
mNoCopyTextureSelected = TRUE;
}
mInventoryPanel->setSelection(item_id, TAKE_FOCUS_NO);
@@ -236,7 +233,7 @@ void LLFloaterTexturePicker::setImageID(const LLUUID& image_id)
void LLFloaterTexturePicker::setActive( BOOL active )
{
- if (!active && childGetValue("Pipette").asBoolean())
+ if (!active && getChild<LLUICtrl>("Pipette")->getValue().asBoolean())
{
stopUsingPipette();
}
@@ -248,7 +245,7 @@ void LLFloaterTexturePicker::setCanApplyImmediately(BOOL b)
mCanApplyImmediately = b;
if (!mCanApplyImmediately)
{
- childSetValue("apply_immediate_check", FALSE);
+ getChild<LLUICtrl>("apply_immediate_check")->setValue(FALSE);
}
updateFilterPermMask();
}
@@ -403,7 +400,7 @@ BOOL LLFloaterTexturePicker::postBuild()
childSetCommitCallback("show_folders_check", onShowFolders, this);
- childSetVisible("show_folders_check", FALSE);
+ getChildView("show_folders_check")->setVisible( FALSE);
mFilterEdit = getChild<LLFilterEditor>("inventory search editor");
mFilterEdit->setCommitCallback(boost::bind(&LLFloaterTexturePicker::onFilterEdit, this, _2));
@@ -423,8 +420,13 @@ BOOL LLFloaterTexturePicker::postBuild()
mInventoryPanel->setShowFolderState(LLInventoryFilter::SHOW_NON_EMPTY_FOLDERS);
mInventoryPanel->setAllowMultiSelect(FALSE);
- // store this filter as the default one
- mInventoryPanel->getRootFolder()->getFilter()->markDefault();
+ // Disable auto selecting first filtered item because it takes away
+ // selection from the item set by LLTextureCtrl owning this floater.
+ mInventoryPanel->getRootFolder()->setAutoSelectOverride(TRUE);
+
+ // Commented out to scroll to currently selected texture. See EXT-5403.
+ // // store this filter as the default one
+ // mInventoryPanel->getRootFolder()->getFilter()->markDefault();
// Commented out to stop opening all folders with textures
// mInventoryPanel->openDefaultFolderForType(LLFolderType::FT_TEXTURE);
@@ -437,12 +439,12 @@ BOOL LLFloaterTexturePicker::postBuild()
mNoCopyTextureSelected = FALSE;
- childSetValue("apply_immediate_check", gSavedSettings.getBOOL("ApplyTextureImmediately"));
+ getChild<LLUICtrl>("apply_immediate_check")->setValue(gSavedSettings.getBOOL("ApplyTextureImmediately"));
childSetCommitCallback("apply_immediate_check", onApplyImmediateCheck, this);
if (!mCanApplyImmediately)
{
- childSetEnabled("show_folders_check", FALSE);
+ getChildView("show_folders_check")->setEnabled(FALSE);
}
getChild<LLUICtrl>("Pipette")->setCommitCallback( boost::bind(&LLFloaterTexturePicker::onBtnPipette, this));
@@ -519,10 +521,10 @@ void LLFloaterTexturePicker::draw()
updateImageStats();
// if we're inactive, gray out "apply immediate" checkbox
- childSetEnabled("show_folders_check", mActive && mCanApplyImmediately && !mNoCopyTextureSelected);
- childSetEnabled("Select", mActive);
- childSetEnabled("Pipette", mActive);
- childSetValue("Pipette", LLToolMgr::getInstance()->getCurrentTool() == LLToolPipette::getInstance());
+ getChildView("show_folders_check")->setEnabled(mActive && mCanApplyImmediately && !mNoCopyTextureSelected);
+ getChildView("Select")->setEnabled(mActive);
+ getChildView("Pipette")->setEnabled(mActive);
+ getChild<LLUICtrl>("Pipette")->setValue(LLToolMgr::getInstance()->getCurrentTool() == LLToolPipette::getInstance());
//BOOL allow_copy = FALSE;
if( mOwner )
@@ -533,20 +535,15 @@ void LLFloaterTexturePicker::draw()
mTexturep = LLViewerTextureManager::getFetchedTexture(mImageAssetID, MIPMAP_YES);
mTexturep->setBoostLevel(LLViewerTexture::BOOST_PREVIEW);
}
- else if (!mFallbackImageName.empty())
- {
- mTexturep = LLViewerTextureManager::getFetchedTextureFromFile(mFallbackImageName);
- mTexturep->setBoostLevel(LLViewerTexture::BOOST_PREVIEW);
- }
if (mTentativeLabel)
{
mTentativeLabel->setVisible( FALSE );
}
- childSetEnabled("Default", mImageAssetID != mOwner->getDefaultImageAssetID());
- childSetEnabled("Blank", mImageAssetID != mWhiteImageAssetID );
- childSetEnabled("None", mOwner->getAllowNoTexture() && !mImageAssetID.isNull() );
+ getChildView("Default")->setEnabled(mImageAssetID != mOwner->getDefaultImageAssetID());
+ getChildView("Blank")->setEnabled(mImageAssetID != mWhiteImageAssetID );
+ getChildView("None")->setEnabled(mOwner->getAllowNoTexture() && !mImageAssetID.isNull() );
LLFloater::draw();
@@ -578,13 +575,10 @@ void LLFloaterTexturePicker::draw()
// Pump the priority
mTexturep->addTextureStats( (F32)(interior.getWidth() * interior.getHeight()) );
-
- // Draw Tentative Label over the image
- if( mOwner->getTentative() && !mViewModel->isDirty() )
- {
- mTentativeLabel->setVisible( TRUE );
- drawChild(mTentativeLabel);
- }
+ }
+ else if (!mFallbackImage.isNull())
+ {
+ mFallbackImage->draw(interior);
}
else
{
@@ -593,6 +587,38 @@ void LLFloaterTexturePicker::draw()
// Draw X
gl_draw_x(interior, LLColor4::black );
}
+
+ // Draw Tentative Label over the image
+ if( mOwner->getTentative() && !mViewModel->isDirty() )
+ {
+ mTentativeLabel->setVisible( TRUE );
+ drawChild(mTentativeLabel);
+ }
+
+ if (mSelectedItemPinned) return;
+
+ LLFolderView* folder_view = mInventoryPanel->getRootFolder();
+ if (!folder_view) return;
+
+ LLInventoryFilter* filter = folder_view->getFilter();
+ if (!filter) return;
+
+ bool is_filter_active = folder_view->getCompletedFilterGeneration() < filter->getCurrentGeneration() &&
+ filter->isNotDefault();
+
+ // After inventory panel filter is applied we have to update
+ // constraint rect for the selected item because of folder view
+ // AutoSelectOverride set to TRUE. We force PinningSelectedItem
+ // flag to FALSE state and setting filter "dirty" to update
+ // scroll container to show selected item (see LLFolderView::doIdle()).
+ if (!is_filter_active && !mSelectedItemPinned)
+ {
+ folder_view->setPinningSelectedItem(mSelectedItemPinned);
+ folder_view->dirtyFilter();
+ folder_view->arrangeFromRoot();
+
+ mSelectedItemPinned = TRUE;
+ }
}
}
@@ -647,13 +673,13 @@ const LLUUID& LLFloaterTexturePicker::findItemID(const LLUUID& asset_id, BOOL co
PermissionMask LLFloaterTexturePicker::getFilterPermMask()
{
- bool apply_immediate = childGetValue("apply_immediate_check").asBoolean();
+ bool apply_immediate = getChild<LLUICtrl>("apply_immediate_check")->getValue().asBoolean();
return apply_immediate ? mImmediateFilterPermMask : mNonImmediateFilterPermMask;
}
void LLFloaterTexturePicker::commitIfImmediateSet()
{
- bool apply_immediate = childGetValue("apply_immediate_check").asBoolean();
+ bool apply_immediate = getChild<LLUICtrl>("apply_immediate_check")->getValue().asBoolean();
if (!mNoCopyTextureSelected && apply_immediate && mOwner)
{
mOwner->onFloaterCommit(LLTextureCtrl::TEXTURE_CHANGE);
@@ -726,7 +752,7 @@ void LLFloaterTexturePicker::onBtnSelect(void* userdata)
void LLFloaterTexturePicker::onBtnPipette()
{
- BOOL pipette_active = childGetValue("Pipette").asBoolean();
+ BOOL pipette_active = getChild<LLUICtrl>("Pipette")->getValue().asBoolean();
pipette_active = !pipette_active;
if (pipette_active)
{
@@ -826,7 +852,7 @@ void LLFloaterTexturePicker::onFilterEdit(const std::string& search_string )
}
}
- mInventoryPanel->setFilterSubString(upper_case_search_string);
+ mInventoryPanel->setFilterSubString(search_string);
}
void LLFloaterTexturePicker::onTextureSelect( const LLTextureEntry& te )
@@ -875,7 +901,8 @@ LLTextureCtrl::LLTextureCtrl(const LLTextureCtrl::Params& p)
mShowLoadingPlaceholder( TRUE ),
mImageAssetID(p.image_id),
mDefaultImageAssetID(p.default_image_id),
- mDefaultImageName(p.default_image_name)
+ mDefaultImageName(p.default_image_name),
+ mFallbackImage(p.fallback_image)
{
setAllowNoTexture(p.allow_no_texture);
setCanApplyImmediately(p.can_apply_immediately);
@@ -1019,7 +1046,7 @@ void LLTextureCtrl::showPicker(BOOL take_focus)
mImmediateFilterPermMask,
mNonImmediateFilterPermMask,
mCanApplyImmediately,
- mFallbackImageName);
+ mFallbackImage);
mFloaterHandle = floaterp->getHandle();
@@ -1223,12 +1250,6 @@ void LLTextureCtrl::draw()
mTexturep = texture;
}
- else if (!mFallbackImageName.empty())
- {
- // Show fallback image.
- mTexturep = LLViewerTextureManager::getFetchedTextureFromFile(mFallbackImageName);
- mTexturep->setBoostLevel(LLViewerTexture::BOOST_PREVIEW);
- }
else//mImageAssetID == LLUUID::null
{
mTexturep = NULL;
@@ -1252,6 +1273,10 @@ void LLTextureCtrl::draw()
gl_draw_scaled_image( interior.mLeft, interior.mBottom, interior.getWidth(), interior.getHeight(), mTexturep);
mTexturep->addTextureStats( (F32)(interior.getWidth() * interior.getHeight()) );
}
+ else if (!mFallbackImage.isNull())
+ {
+ mFallbackImage->draw(interior);
+ }
else
{
gl_rect_2d( interior, LLColor4::grey, TRUE );
diff --git a/indra/newview/lltexturectrl.h b/indra/newview/lltexturectrl.h
index bcd0a083f2..fdfbee400e 100644
--- a/indra/newview/lltexturectrl.h
+++ b/indra/newview/lltexturectrl.h
@@ -3,31 +3,25 @@
* @author Richard Nelson, James Cook
* @brief LLTextureCtrl class header file including related functions
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -78,6 +72,7 @@ public:
// only on DnD or when OK is pressed in the picker
Optional<S32> label_width;
Optional<LLUIColor> border_color;
+ Optional<LLUIImage*> fallback_image;
Optional<LLTextBox::Params> multiselect_text,
caption_text;
@@ -93,6 +88,7 @@ public:
no_commit_on_selection("no_commit_on_selection", false),
label_width("label_width", -1),
border_color("border_color"),
+ fallback_image("fallback_image"),
multiselect_text("multiselect_text"),
caption_text("caption_text"),
border("border")
@@ -152,9 +148,6 @@ public:
const std::string& getDefaultImageName() const { return mDefaultImageName; }
- void setFallbackImageName( const std::string& name ) { mFallbackImageName = name; }
- const std::string& getFallbackImageName() const { return mFallbackImageName; }
-
void setCaption(const std::string& caption);
void setCanApplyImmediately(BOOL b);
@@ -192,32 +185,32 @@ private:
BOOL doDrop(LLInventoryItem* item);
private:
- drag_n_drop_callback mDragCallback;
- drag_n_drop_callback mDropCallback;
- commit_callback_t mOnCancelCallback;
- commit_callback_t mOnSelectCallback;
+ drag_n_drop_callback mDragCallback;
+ drag_n_drop_callback mDropCallback;
+ commit_callback_t mOnCancelCallback;
+ commit_callback_t mOnSelectCallback;
LLPointer<LLViewerFetchedTexture> mTexturep;
- LLUIColor mBorderColor;
- LLUUID mImageItemID;
- LLUUID mImageAssetID;
- LLUUID mDefaultImageAssetID;
- std::string mFallbackImageName;
- std::string mDefaultImageName;
- LLHandle<LLFloater> mFloaterHandle;
- LLTextBox* mTentativeLabel;
- LLTextBox* mCaption;
- std::string mLabel;
- BOOL mAllowNoTexture; // If true, the user can select "none" as an option
- PermissionMask mImmediateFilterPermMask;
- PermissionMask mNonImmediateFilterPermMask;
- BOOL mCanApplyImmediately;
- BOOL mCommitOnSelection;
- BOOL mNeedsRawImageData;
- LLViewBorder* mBorder;
- BOOL mValid;
- BOOL mShowLoadingPlaceholder;
- std::string mLoadingPlaceholderString;
- S32 mLabelWidth;
+ LLUIColor mBorderColor;
+ LLUUID mImageItemID;
+ LLUUID mImageAssetID;
+ LLUUID mDefaultImageAssetID;
+ LLUIImagePtr mFallbackImage;
+ std::string mDefaultImageName;
+ LLHandle<LLFloater> mFloaterHandle;
+ LLTextBox* mTentativeLabel;
+ LLTextBox* mCaption;
+ std::string mLabel;
+ BOOL mAllowNoTexture; // If true, the user can select "none" as an option
+ PermissionMask mImmediateFilterPermMask;
+ PermissionMask mNonImmediateFilterPermMask;
+ BOOL mCanApplyImmediately;
+ BOOL mCommitOnSelection;
+ BOOL mNeedsRawImageData;
+ LLViewBorder* mBorder;
+ BOOL mValid;
+ BOOL mShowLoadingPlaceholder;
+ std::string mLoadingPlaceholderString;
+ S32 mLabelWidth;
};
// XUI HACK: When floaters converted, switch this file to lltexturepicker.h/cpp
diff --git a/indra/newview/lltexturefetch.cpp b/indra/newview/lltexturefetch.cpp
index ceed90e210..fafef84aa2 100644
--- a/indra/newview/lltexturefetch.cpp
+++ b/indra/newview/lltexturefetch.cpp
@@ -2,31 +2,25 @@
* @file lltexturefetch.cpp
* @brief Object which fetches textures from the cache and/or network
*
- * $LicenseInfo:firstyear=2000&license=viewergpl$
- *
- * Copyright (c) 2000-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2000&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -54,6 +48,7 @@
#include "llviewertexturelist.h"
#include "llviewertexture.h"
#include "llviewerregion.h"
+#include "llviewerstats.h"
#include "llworld.h"
//////////////////////////////////////////////////////////////////////////////
@@ -150,7 +145,7 @@ public:
~LLTextureFetchWorker();
void relese() { --mActiveCount; }
- void callbackHttpGet(const LLChannelDescriptors& channels,
+ S32 callbackHttpGet(const LLChannelDescriptors& channels,
const LLIOPipe::buffer_ptr_t& buffer,
bool partial, bool success);
void callbackCacheRead(bool success, LLImageFormatted* image,
@@ -290,8 +285,8 @@ class HTTPGetResponder : public LLCurl::Responder
{
LOG_CLASS(HTTPGetResponder);
public:
- HTTPGetResponder(LLTextureFetch* fetcher, const LLUUID& id, U64 startTime, S32 requestedSize, U32 offset)
- : mFetcher(fetcher), mID(id), mStartTime(startTime), mRequestedSize(requestedSize), mOffset(offset)
+ HTTPGetResponder(LLTextureFetch* fetcher, const LLUUID& id, U64 startTime, S32 requestedSize, U32 offset, bool redir)
+ : mFetcher(fetcher), mID(id), mStartTime(startTime), mRequestedSize(requestedSize), mOffset(offset), mFollowRedir(redir)
{
}
~HTTPGetResponder()
@@ -335,8 +330,9 @@ public:
worker->setGetStatus(status, reason);
// llwarns << "CURL GET FAILED, status:" << status << " reason:" << reason << llendl;
}
- mFetcher->removeFromHTTPQueue(mID);
- worker->callbackHttpGet(channels, buffer, partial, success);
+
+ S32 data_size = worker->callbackHttpGet(channels, buffer, partial, success);
+ mFetcher->removeFromHTTPQueue(mID, data_size);
}
else
{
@@ -344,6 +340,11 @@ public:
llwarns << "Worker not found: " << mID << llendl;
}
}
+
+ virtual bool followRedir()
+ {
+ return mFollowRedir;
+ }
private:
LLTextureFetch* mFetcher;
@@ -351,6 +352,7 @@ private:
U64 mStartTime;
S32 mRequestedSize;
U32 mOffset;
+ bool mFollowRedir;
};
//////////////////////////////////////////////////////////////////////////////
@@ -589,7 +591,7 @@ bool LLTextureFetchWorker::doWork(S32 param)
return true; // abort
}
}
- if(mImagePriority < 1.0f)
+ if(mImagePriority < F_ALMOST_ZERO)
{
if (mState == INIT || mState == LOAD_FROM_NETWORK || mState == LOAD_FROM_SIMULATOR)
{
@@ -844,21 +846,17 @@ bool LLTextureFetchWorker::doWork(S32 param)
{
if(mCanUseHTTP)
{
- const S32 HTTP_QUEUE_MAX_SIZE = 8;
- // *TODO: Integrate this with llviewerthrottle
- // Note: LLViewerThrottle uses dynamic throttling which makes sense for UDP,
- // but probably not for Textures.
- // Set the throttle to the entire bandwidth, assuming UDP packets will get priority
- // when they are needed
- F32 max_bandwidth = mFetcher->mMaxBandwidth;
- if ((mFetcher->getHTTPQueueSize() >= HTTP_QUEUE_MAX_SIZE) ||
- (mFetcher->getTextureBandwidth() > max_bandwidth))
+ //NOTE:
+ //control the number of the http requests issued for:
+ //1, not openning too many file descriptors at the same time;
+ //2, control the traffic of http so udp gets bandwidth.
+ //
+ static const S32 MAX_NUM_OF_HTTP_REQUESTS_IN_QUEUE = 32 ;
+ if(mFetcher->getNumHTTPRequests() > MAX_NUM_OF_HTTP_REQUESTS_IN_QUEUE)
{
- // Make normal priority and return (i.e. wait until there is room in the queue)
- setPriority(LLWorkerThread::PRIORITY_NORMAL | mWorkPriority);
- return false;
+ return false ; //wait.
}
-
+
mFetcher->removeFromNetworkQueue(this, false);
S32 cur_size = 0;
@@ -867,10 +865,17 @@ bool LLTextureFetchWorker::doWork(S32 param)
cur_size = mFormattedImage->getDataSize(); // amount of data we already have
if (mFormattedImage->getDiscardLevel() == 0)
{
- // We already have all the data, just decode it
- mLoadedDiscard = mFormattedImage->getDiscardLevel();
- mState = DECODE_IMAGE;
- return false;
+ if(cur_size > 0)
+ {
+ // We already have all the data, just decode it
+ mLoadedDiscard = mFormattedImage->getDiscardLevel();
+ mState = DECODE_IMAGE;
+ return false;
+ }
+ else
+ {
+ return true ; //abort.
+ }
}
}
mRequestedSize = mDesiredSize;
@@ -887,7 +892,7 @@ bool LLTextureFetchWorker::doWork(S32 param)
mGetReason.clear();
LL_DEBUGS("Texture") << "HTTP GET: " << mID << " Offset: " << offset
<< " Bytes: " << mRequestedSize
- << " Bandwidth(kbps): " << mFetcher->getTextureBandwidth() << "/" << max_bandwidth
+ << " Bandwidth(kbps): " << mFetcher->getTextureBandwidth() << "/" << mFetcher->mMaxBandwidth
<< LL_ENDL;
setPriority(LLWorkerThread::PRIORITY_LOW | mWorkPriority);
mState = WAIT_HTTP_REQ;
@@ -897,7 +902,7 @@ bool LLTextureFetchWorker::doWork(S32 param)
std::vector<std::string> headers;
headers.push_back("Accept: image/x-j2c");
res = mFetcher->mCurlGetRequest->getByteRange(mUrl, headers, offset, mRequestedSize,
- new HTTPGetResponder(mFetcher, mID, LLTimer::getTotalTime(), mRequestedSize, offset));
+ new HTTPGetResponder(mFetcher, mID, LLTimer::getTotalTime(), mRequestedSize, offset, true));
}
if (!res)
{
@@ -945,17 +950,6 @@ bool LLTextureFetchWorker::doWork(S32 param)
max_attempts = mHTTPFailCount+1; // Keep retrying
LL_INFOS_ONCE("Texture") << "Texture server busy (503): " << mUrl << LL_ENDL;
}
- else if(mGetStatus >= HTTP_MULTIPLE_CHOICES && mGetStatus < HTTP_BAD_REQUEST) //http re-direct
- {
- ++mHTTPFailCount;
- max_attempts = 5 ; //try at most 5 times to avoid infinite redirection loop.
-
- llwarns << "HTTP GET failed because of redirection: " << mUrl
- << " Status: " << mGetStatus << " Reason: '" << mGetReason << llendl ;
-
- //assign to the new url
- mUrl = mGetReason ;
- }
else
{
const S32 HTTP_MAX_RETRY_COUNT = 3;
@@ -978,6 +972,7 @@ bool LLTextureFetchWorker::doWork(S32 param)
else
{
resetFormattedData();
+ mState = DONE;
return true; // failed
}
}
@@ -988,6 +983,17 @@ bool LLTextureFetchWorker::doWork(S32 param)
}
}
+ llassert_always(mBufferSize == cur_size + mRequestedSize);
+ if(!mBufferSize)//no data received.
+ {
+ delete[] mBuffer;
+ mBuffer = NULL;
+
+ //abort.
+ mState = DONE;
+ return true;
+ }
+
if (mFormattedImage.isNull())
{
// For now, create formatted image based on extension
@@ -998,8 +1004,7 @@ bool LLTextureFetchWorker::doWork(S32 param)
mFormattedImage = new LLImageJ2C; // default
}
}
-
- llassert_always(mBufferSize == cur_size + mRequestedSize);
+
if (mHaveAllData && mRequestedDiscard == 0) //the image file is fully loaded.
{
mFileSize = mBufferSize;
@@ -1058,7 +1063,12 @@ bool LLTextureFetchWorker::doWork(S32 param)
if (mFormattedImage->getDataSize() <= 0)
{
- llerrs << "Decode entered with invalid mFormattedImage. ID = " << mID << llendl;
+ //llerrs << "Decode entered with invalid mFormattedImage. ID = " << mID << llendl;
+
+ //abort, don't decode
+ mState = DONE;
+ setPriority(LLWorkerThread::PRIORITY_LOW | mWorkPriority);
+ return true;
}
if (mLoadedDiscard < 0)
{
@@ -1255,8 +1265,7 @@ bool LLTextureFetchWorker::deleteOK()
if ((haveWork() &&
// not ok to delete from these states
- ((mState >= SEND_HTTP_REQ && mState <= WAIT_HTTP_REQ) ||
- (mState >= WRITE_TO_CACHE && mState <= WAIT_ON_WRITE))))
+ ((mState >= WRITE_TO_CACHE && mState <= WAIT_ON_WRITE))))
{
delete_ok = false;
}
@@ -1335,29 +1344,29 @@ bool LLTextureFetchWorker::processSimulatorPackets()
//////////////////////////////////////////////////////////////////////////////
-void LLTextureFetchWorker::callbackHttpGet(const LLChannelDescriptors& channels,
+S32 LLTextureFetchWorker::callbackHttpGet(const LLChannelDescriptors& channels,
const LLIOPipe::buffer_ptr_t& buffer,
bool partial, bool success)
{
+ S32 data_size = 0 ;
+
LLMutexLock lock(&mWorkMutex);
if (mState != WAIT_HTTP_REQ)
{
llwarns << "callbackHttpGet for unrequested fetch worker: " << mID
<< " req=" << mSentRequest << " state= " << mState << llendl;
- return;
+ return data_size;
}
if (mLoaded)
{
llwarns << "Duplicate callback for " << mID.asString() << llendl;
- return; // ignore duplicate callback
+ return data_size ; // ignore duplicate callback
}
if (success)
{
// get length of stream:
- S32 data_size = buffer->countAfter(channels.in(), NULL);
-
- gTextureList.sTextureBits += data_size * 8; // Approximate - does not include header bits
+ data_size = buffer->countAfter(channels.in(), NULL);
LL_DEBUGS("Texture") << "HTTP RECEIVED: " << mID.asString() << " Bytes: " << data_size << LL_ENDL;
if (data_size > 0)
@@ -1394,6 +1403,8 @@ void LLTextureFetchWorker::callbackHttpGet(const LLChannelDescriptors& channels,
}
mLoaded = TRUE;
setPriority(LLWorkerThread::PRIORITY_HIGH | mWorkPriority);
+
+ return data_size ;
}
//////////////////////////////////////////////////////////////////////////////
@@ -1512,6 +1523,7 @@ LLTextureFetch::LLTextureFetch(LLTextureCache* cache, LLImageDecodeThread* image
mTextureCache(cache),
mImageDecodeThread(imagedecodethread),
mTextureBandwidth(0),
+ mHTTPTextureBits(0),
mCurlGetRequest(NULL)
{
mMaxBandwidth = gSavedSettings.getF32("ThrottleBandwidthKBPS");
@@ -1657,10 +1669,11 @@ void LLTextureFetch::addToHTTPQueue(const LLUUID& id)
mHTTPTextureQueue.insert(id);
}
-void LLTextureFetch::removeFromHTTPQueue(const LLUUID& id)
+void LLTextureFetch::removeFromHTTPQueue(const LLUUID& id, S32 received_size)
{
LLMutexLock lock(&mNetworkQueueMutex);
mHTTPTextureQueue.erase(id);
+ mHTTPTextureBits += received_size * 8; // Approximate - does not include header bits
}
void LLTextureFetch::deleteRequest(const LLUUID& id, bool cancel)
@@ -1808,12 +1821,19 @@ bool LLTextureFetch::updateRequestPriority(const LLUUID& id, F32 priority)
//virtual
S32 LLTextureFetch::update(U32 max_time_ms)
{
- S32 res;
-
static LLCachedControl<F32> band_width(gSavedSettings,"ThrottleBandwidthKBPS");
- mMaxBandwidth = band_width ;
-
- res = LLWorkerThread::update(max_time_ms);
+
+ {
+ mNetworkQueueMutex.lock() ;
+ mMaxBandwidth = band_width ;
+
+ gTextureList.sTextureBits += mHTTPTextureBits ;
+ mHTTPTextureBits = 0 ;
+
+ mNetworkQueueMutex.unlock() ;
+ }
+
+ S32 res = LLWorkerThread::update(max_time_ms);
if (!mDebugPause)
{
@@ -1829,7 +1849,7 @@ S32 LLTextureFetch::update(U32 max_time_ms)
lldebugs << "processed: " << processed << " messages." << llendl;
}
}
-
+
return res;
}
diff --git a/indra/newview/lltexturefetch.h b/indra/newview/lltexturefetch.h
index 634e590fe0..796109df06 100644
--- a/indra/newview/lltexturefetch.h
+++ b/indra/newview/lltexturefetch.h
@@ -2,31 +2,25 @@
* @file lltexturefetch.h
* @brief Object for managing texture fetches.
*
- * $LicenseInfo:firstyear=2000&license=viewergpl$
- *
- * Copyright (c) 2000-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2000&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -94,8 +88,7 @@ protected:
void addToNetworkQueue(LLTextureFetchWorker* worker);
void removeFromNetworkQueue(LLTextureFetchWorker* worker, bool cancel);
void addToHTTPQueue(const LLUUID& id);
- void removeFromHTTPQueue(const LLUUID& id);
- S32 getHTTPQueueSize() { return getNumHTTPRequests(); }
+ void removeFromHTTPQueue(const LLUUID& id, S32 received_size = 0);
void removeRequest(LLTextureFetchWorker* worker, bool cancel);
// Called from worker thread (during doWork)
void processCurlRequests();
@@ -134,6 +127,8 @@ private:
F32 mTextureBandwidth;
F32 mMaxBandwidth;
LLTextureInfo mTextureInfo;
+
+ U32 mHTTPTextureBits;
};
#endif // LL_LLTEXTUREFETCH_H
diff --git a/indra/newview/lltextureinfo.cpp b/indra/newview/lltextureinfo.cpp
index 672a36a8bd..adfdbc997e 100644
--- a/indra/newview/lltextureinfo.cpp
+++ b/indra/newview/lltextureinfo.cpp
@@ -2,31 +2,25 @@
* @file lltextureinfo.cpp
* @brief Object which handles local texture info
*
- * $LicenseInfo:firstyear=2000&license=viewergpl$
- *
- * Copyright (c) 2000-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2000&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltextureinfo.h b/indra/newview/lltextureinfo.h
index 71b0ea431f..2ccbcc5fd2 100644
--- a/indra/newview/lltextureinfo.h
+++ b/indra/newview/lltextureinfo.h
@@ -2,31 +2,25 @@
* @file lltextureinfo.h
* @brief Object for managing texture information.
*
- * $LicenseInfo:firstyear=2000&license=viewergpl$
- *
- * Copyright (c) 2000-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2000&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltextureinfodetails.cpp b/indra/newview/lltextureinfodetails.cpp
index f6ef47a2ee..0d750db3bf 100644
--- a/indra/newview/lltextureinfodetails.cpp
+++ b/indra/newview/lltextureinfodetails.cpp
@@ -2,31 +2,25 @@
* @file lltextureinfodetails.cpp
* @brief Object which handles details of any individual texture
*
- * $LicenseInfo:firstyear=2000&license=viewergpl$
- *
- * Copyright (c) 2000-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2000&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltextureinfodetails.h b/indra/newview/lltextureinfodetails.h
index 091fa01a3d..4a3cd29084 100644
--- a/indra/newview/lltextureinfodetails.h
+++ b/indra/newview/lltextureinfodetails.h
@@ -2,31 +2,25 @@
* @file lltextureinfo.h
* @brief Object for managing texture information.
*
- * $LicenseInfo:firstyear=2000&license=viewergpl$
- *
- * Copyright (c) 2000-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2000&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltexturestats.cpp b/indra/newview/lltexturestats.cpp
index c91bfd4df2..dd35d5cf83 100644
--- a/indra/newview/lltexturestats.cpp
+++ b/indra/newview/lltexturestats.cpp
@@ -2,31 +2,25 @@
* @file lltexturerstats.cpp
* @brief texture stats helper methods
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltexturestats.h b/indra/newview/lltexturestats.h
index 2deb377dfd..09bab41fc3 100644
--- a/indra/newview/lltexturestats.h
+++ b/indra/newview/lltexturestats.h
@@ -2,31 +2,25 @@
* @file lltexturestats.h
* @brief texture stats utilities
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltexturestatsuploader.cpp b/indra/newview/lltexturestatsuploader.cpp
index 1df73db9b0..23ba09cb91 100644
--- a/indra/newview/lltexturestatsuploader.cpp
+++ b/indra/newview/lltexturestatsuploader.cpp
@@ -2,31 +2,25 @@
* @file lltexturerstats.cpp
* @brief texture stats upload class
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltexturestatsuploader.h b/indra/newview/lltexturestatsuploader.h
index f6cc8be8fe..6b02aeb845 100644
--- a/indra/newview/lltexturestatsuploader.h
+++ b/indra/newview/lltexturestatsuploader.h
@@ -2,31 +2,25 @@
* @file lltexturestatsuploader.h
* @brief Class to send the texture stats to the simulatore
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltextureview.cpp b/indra/newview/lltextureview.cpp
index 8ea4dbeb04..c87aff022f 100644
--- a/indra/newview/lltextureview.cpp
+++ b/indra/newview/lltextureview.cpp
@@ -2,31 +2,25 @@
* @file lltextureview.cpp
* @brief LLTextureView class implementation
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -54,6 +48,7 @@
#include "llviewertexture.h"
#include "llviewertexturelist.h"
#include "llvovolume.h"
+#include "llviewerstats.h"
// For avatar texture view
#include "llvoavatarself.h"
@@ -450,14 +445,14 @@ void LLAvatarTexBar::draw()
text_color, LLFontGL::LEFT, LLFontGL::TOP); //, LLFontGL::BOLD, LLFontGL::DROP_SHADOW_SOFT);
line_num++;
}
- const U32 texture_timeout = gSavedSettings.getU32("AvatarBakedTextureTimeout");
+ const U32 texture_timeout = gSavedSettings.getU32("AvatarBakedTextureUploadTimeout");
const U32 override_tex_discard_level = gSavedSettings.getU32("TextureDiscardLevel");
LLColor4 header_color(1.f, 1.f, 1.f, 0.9f);
const std::string texture_timeout_str = texture_timeout ? llformat("%d",texture_timeout) : "Disabled";
const std::string override_tex_discard_level_str = override_tex_discard_level ? llformat("%d",override_tex_discard_level) : "Disabled";
- std::string header_text = llformat("[ Timeout('AvatarBakedTextureTimeout'):%s ] [ LOD_Override('TextureDiscardLevel'):%s ]", texture_timeout_str.c_str(), override_tex_discard_level_str.c_str());
+ std::string header_text = llformat("[ Timeout('AvatarBakedTextureUploadTimeout'):%s ] [ LOD_Override('TextureDiscardLevel'):%s ]", texture_timeout_str.c_str(), override_tex_discard_level_str.c_str());
LLFontGL::getFontMonospace()->renderUTF8(header_text, 0, l_offset, v_offset + line_height*line_num,
header_color, LLFontGL::LEFT, LLFontGL::TOP); //, LLFontGL::BOLD, LLFontGL::DROP_SHADOW_SOFT);
line_num++;
@@ -519,6 +514,7 @@ void LLGLTexMemBar::draw()
F32 cache_max_usage = (F32)BYTES_TO_MEGA_BYTES(LLAppViewer::getTextureCache()->getMaxUsage()) ;
S32 line_height = (S32)(LLFontGL::getFontMonospace()->getLineHeight() + .5f);
S32 v_offset = (S32)((texture_bar_height + 2.2f) * mTextureView->mNumTextureBars + 2.0f);
+ S32 total_downloaded = BYTES_TO_MEGA_BYTES(gTotalTextureBytes);
//----------------------------------------------------------------------------
LLGLSUIDefault gls_ui;
LLColor4 text_color(1.f, 1.f, 1.f, 0.75f);
@@ -529,13 +525,13 @@ void LLGLTexMemBar::draw()
LLFontGL::getFontMonospace()->renderUTF8(text, 0, 0, v_offset + line_height*6,
text_color, LLFontGL::LEFT, LLFontGL::TOP);
- text = llformat("GL Tot: %d/%d MB Bound: %d/%d MB Raw Tot: %d MB Bias: %.2f Cache: %.1f/%.1f MB",
+ text = llformat("GL Tot: %d/%d MB Bound: %d/%d MB Raw Tot: %d MB Bias: %.2f Cache: %.1f/%.1f MB Net Tot: %d MB",
total_mem,
max_total_mem,
bound_mem,
max_bound_mem,
- LLImageRaw::sGlobalRawMemory >> 20, discard_bias,
- cache_usage, cache_max_usage);
+ LLImageRaw::sGlobalRawMemory >> 20, discard_bias,
+ cache_usage, cache_max_usage, total_downloaded);
//, cache_entries, cache_max_entries
LLFontGL::getFontMonospace()->renderUTF8(text, 0, 0, v_offset + line_height*3,
diff --git a/indra/newview/lltextureview.h b/indra/newview/lltextureview.h
index dfd9c42c2c..3723eb737b 100644
--- a/indra/newview/lltextureview.h
+++ b/indra/newview/lltextureview.h
@@ -2,31 +2,25 @@
* @file lltextureview.h
* @brief LLTextureView class header file
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltoast.cpp b/indra/newview/lltoast.cpp
index 9abfab300c..a9ab98da5f 100644
--- a/indra/newview/lltoast.cpp
+++ b/indra/newview/lltoast.cpp
@@ -2,31 +2,25 @@
* @file lltoast.cpp
* @brief This class implements a placeholder for any notification panel.
*
- * $LicenseInfo:firstyear=2000&license=viewergpl$
- *
- * Copyright (c) 2000-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2000&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -83,7 +77,7 @@ LLToast::LLToast(const LLToast::Params& p)
{
mTimer.reset(new LLToastLifeTimer(this, p.lifetime_secs));
- LLUICtrlFactory::getInstance()->buildFloater(this, "panel_toast.xml", NULL);
+ buildFromFile("panel_toast.xml", NULL);
setCanDrag(FALSE);
@@ -112,6 +106,14 @@ LLToast::LLToast(const LLToast::Params& p)
mOnMouseEnterSignal.connect(p.on_mouse_enter());
}
+void LLToast::reshape(S32 width, S32 height, BOOL called_from_parent)
+{
+ // We shouldn't use reshape from LLModalDialog since it changes toasts position.
+ // Toasts position should be controlled only by toast screen channel, see LLScreenChannelBase.
+ // see EXT-8044
+ LLFloater::reshape(width, height, called_from_parent);
+}
+
//--------------------------------------------------------------------------
BOOL LLToast::postBuild()
{
diff --git a/indra/newview/lltoast.h b/indra/newview/lltoast.h
index 4211f21ef1..0a96c092a0 100644
--- a/indra/newview/lltoast.h
+++ b/indra/newview/lltoast.h
@@ -2,31 +2,25 @@
* @file lltoast.h
* @brief This class implements a placeholder for any notification panel.
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -106,6 +100,8 @@ public:
virtual ~LLToast();
BOOL postBuild();
+ /*virtual*/ void reshape(S32 width, S32 height, BOOL called_from_parent = TRUE);
+
// Toast handlers
virtual BOOL handleMouseDown(S32 x, S32 y, MASK mask);
@@ -192,6 +188,8 @@ public:
virtual S32 notifyParent(const LLSD& info);
+ LLHandle<LLToast> getHandle() { mHandle.bind(this); return mHandle; }
+
private:
void onToastMouseEnter();
@@ -204,6 +202,8 @@ private:
LLUUID mSessionID;
LLNotificationPtr mNotification;
+ LLRootHandle<LLToast> mHandle;
+
LLPanel* mWrapperPanel;
// timer counts a lifetime of a toast
diff --git a/indra/newview/lltoastalertpanel.cpp b/indra/newview/lltoastalertpanel.cpp
index 7ba256c870..2d0c360905 100644
--- a/indra/newview/lltoastalertpanel.cpp
+++ b/indra/newview/lltoastalertpanel.cpp
@@ -2,31 +2,25 @@
* @file lltoastalertpanel.cpp
* @brief Panel for alert toasts.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
diff --git a/indra/newview/lltoastalertpanel.h b/indra/newview/lltoastalertpanel.h
index 43e105a4f1..7b157f19bb 100644
--- a/indra/newview/lltoastalertpanel.h
+++ b/indra/newview/lltoastalertpanel.h
@@ -2,31 +2,25 @@
* @file lltoastalertpanel.h
* @brief Panel for alert toasts.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
diff --git a/indra/newview/lltoastgroupnotifypanel.cpp b/indra/newview/lltoastgroupnotifypanel.cpp
index 7eac3867d5..78cc96b353 100644
--- a/indra/newview/lltoastgroupnotifypanel.cpp
+++ b/indra/newview/lltoastgroupnotifypanel.cpp
@@ -2,31 +2,25 @@
* @file lltoastgroupnotifypanel.cpp
* @brief Panel for group notify toasts.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -60,7 +54,7 @@ LLToastGroupNotifyPanel::LLToastGroupNotifyPanel(LLNotificationPtr& notification
: LLToastPanel(notification),
mInventoryOffer(NULL)
{
- LLUICtrlFactory::getInstance()->buildPanel(this, "panel_group_notify.xml");
+ buildFromFile( "panel_group_notify.xml");
const LLSD& payload = notification->getPayload();
LLGroupData groupData;
if (!gAgent.getGroupData(payload["group_id"].asUUID(),groupData))
@@ -130,7 +124,7 @@ LLToastGroupNotifyPanel::LLToastGroupNotifyPanel(LLNotificationPtr& notification
pAttachLink->setValue(payload["inventory_name"]);
mInventoryOffer = new LLOfferInfo(payload["inventory_offer"]);
- childSetActionTextbox("attachment", boost::bind(
+ getChild<LLTextBox>("attachment")->setClickedCallback(boost::bind(
&LLToastGroupNotifyPanel::onClickAttachment, this));
LLUIImagePtr attachIconImg = LLInventoryIcon::getIcon(mInventoryOffer->mType,
diff --git a/indra/newview/lltoastgroupnotifypanel.h b/indra/newview/lltoastgroupnotifypanel.h
index 4879000e8c..7794ec9f63 100644
--- a/indra/newview/lltoastgroupnotifypanel.h
+++ b/indra/newview/lltoastgroupnotifypanel.h
@@ -2,31 +2,25 @@
* @file lltoastgroupnotifypanel.h
* @brief Panel for group notify toasts.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
diff --git a/indra/newview/lltoastimpanel.cpp b/indra/newview/lltoastimpanel.cpp
index 26d3bd5192..1d8b82ec1b 100644
--- a/indra/newview/lltoastimpanel.cpp
+++ b/indra/newview/lltoastimpanel.cpp
@@ -2,31 +2,25 @@
* @file lltoastimpanel.cpp
* @brief Panel for IM toasts.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -51,7 +45,7 @@ LLToastIMPanel::LLToastIMPanel(LLToastIMPanel::Params &p) : LLToastPanel(p.notif
mAvatarIcon(NULL), mAvatarName(NULL),
mTime(NULL), mMessage(NULL), mGroupIcon(NULL)
{
- LLUICtrlFactory::getInstance()->buildPanel(this, "panel_instant_message.xml");
+ buildFromFile( "panel_instant_message.xml");
mGroupIcon = getChild<LLGroupIconCtrl>("group_icon");
mAvatarIcon = getChild<LLAvatarIconCtrl>("avatar_icon");
diff --git a/indra/newview/lltoastimpanel.h b/indra/newview/lltoastimpanel.h
index cf4ad80637..a803387576 100644
--- a/indra/newview/lltoastimpanel.h
+++ b/indra/newview/lltoastimpanel.h
@@ -2,31 +2,25 @@
* @file lltoastimpanel.h
* @brief Panel for IM toasts.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltoastnotifypanel.cpp b/indra/newview/lltoastnotifypanel.cpp
index 38f67720b7..9017f5ec55 100644
--- a/indra/newview/lltoastnotifypanel.cpp
+++ b/indra/newview/lltoastnotifypanel.cpp
@@ -2,31 +2,25 @@
* @file lltoastnotifypanel.cpp
* @brief Panel for notify toasts.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -57,7 +51,7 @@ const LLFontGL* LLToastNotifyPanel::sFontSmall = NULL;
LLToastNotifyPanel::button_click_signal_t LLToastNotifyPanel::sButtonClickSignal;
-LLToastNotifyPanel::LLToastNotifyPanel(LLNotificationPtr& notification, const LLRect& rect) :
+LLToastNotifyPanel::LLToastNotifyPanel(LLNotificationPtr& notification, const LLRect& rect, bool show_images) :
LLToastPanel(notification),
mTextBox(NULL),
mInfoPanel(NULL),
@@ -67,7 +61,7 @@ mNumButtons(0),
mAddedDefaultBtn(false),
mCloseNotificationOnDestroy(true)
{
- LLUICtrlFactory::getInstance()->buildPanel(this, "panel_notification.xml");
+ buildFromFile( "panel_notification.xml");
if(rect != LLRect::null)
{
this->setShape(rect);
@@ -126,6 +120,7 @@ mCloseNotificationOnDestroy(true)
mTextBox->setMaxTextLength(MAX_LENGTH);
mTextBox->setVisible(TRUE);
+ mTextBox->setPlainText(!show_images);
mTextBox->setValue(notification->getMessage());
// add buttons for a script notification
@@ -529,8 +524,9 @@ void LLToastNotifyPanel::disableRespondedOptions(LLNotificationPtr& notification
//////////////////////////////////////////////////////////////////////////
-LLIMToastNotifyPanel::LLIMToastNotifyPanel(LLNotificationPtr& pNotification, const LLUUID& session_id, const LLRect& rect /* = LLRect::null */)
- : mSessionID(session_id), LLToastNotifyPanel(pNotification, rect)
+LLIMToastNotifyPanel::LLIMToastNotifyPanel(LLNotificationPtr& pNotification, const LLUUID& session_id, const LLRect& rect /* = LLRect::null */,
+ bool show_images /* = true */)
+ : mSessionID(session_id), LLToastNotifyPanel(pNotification, rect, show_images)
{
mTextBox->setFollowsAll();
}
diff --git a/indra/newview/lltoastnotifypanel.h b/indra/newview/lltoastnotifypanel.h
index a6644c0a7a..57711b3d80 100644
--- a/indra/newview/lltoastnotifypanel.h
+++ b/indra/newview/lltoastnotifypanel.h
@@ -2,31 +2,25 @@
* @file lltoastnotifypanel.h
* @brief Panel for notify toasts.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -66,7 +60,7 @@ public:
* @deprecated if you intend to instantiate LLToastNotifyPanel - it's point to
* implement right class for desired toast panel. @see LLGenericTipPanel as example.
*/
- LLToastNotifyPanel(LLNotificationPtr& pNotification, const LLRect& rect = LLRect::null);
+ LLToastNotifyPanel(LLNotificationPtr& pNotification, const LLRect& rect = LLRect::null, bool show_images = true);
virtual ~LLToastNotifyPanel();
LLPanel * getControlPanel() { return mControlPanel; }
@@ -143,7 +137,7 @@ class LLIMToastNotifyPanel : public LLToastNotifyPanel
{
public:
- LLIMToastNotifyPanel(LLNotificationPtr& pNotification, const LLUUID& session_id, const LLRect& rect = LLRect::null);
+ LLIMToastNotifyPanel(LLNotificationPtr& pNotification, const LLUUID& session_id, const LLRect& rect = LLRect::null, bool show_images = true);
~LLIMToastNotifyPanel();
diff --git a/indra/newview/lltoastpanel.cpp b/indra/newview/lltoastpanel.cpp
index 71598b3169..fc69157a40 100644
--- a/indra/newview/lltoastpanel.cpp
+++ b/indra/newview/lltoastpanel.cpp
@@ -2,31 +2,25 @@
* @file lltoastpanel.cpp
* @brief Creates a panel of a specific kind for a toast
*
- * $LicenseInfo:firstyear=2000&license=viewergpl$
- *
- * Copyright (c) 2000-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2000&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltoastpanel.h b/indra/newview/lltoastpanel.h
index 54243e52fa..346e014d73 100644
--- a/indra/newview/lltoastpanel.h
+++ b/indra/newview/lltoastpanel.h
@@ -2,31 +2,25 @@
* @file lltoastpanel.h
* @brief Creates a panel of a specific kind for a toast.
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltool.cpp b/indra/newview/lltool.cpp
index 669a62a238..282d4e19c6 100644
--- a/indra/newview/lltool.cpp
+++ b/indra/newview/lltool.cpp
@@ -2,31 +2,25 @@
* @file lltool.cpp
* @brief LLTool class implementation
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltool.h b/indra/newview/lltool.h
index c3573cd38c..d3edabb486 100644
--- a/indra/newview/lltool.h
+++ b/indra/newview/lltool.h
@@ -2,31 +2,25 @@
* @file lltool.h
* @brief LLTool class header file
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltoolbar.cpp b/indra/newview/lltoolbar.cpp
index d45915499a..c4f599561d 100644
--- a/indra/newview/lltoolbar.cpp
+++ b/indra/newview/lltoolbar.cpp
@@ -3,31 +3,25 @@
* @author James Cook, Richard Nelson
* @brief Large friendly buttons at bottom of screen.
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltoolbar.h b/indra/newview/lltoolbar.h
index 954c6270a6..217b3c0ac8 100644
--- a/indra/newview/lltoolbar.h
+++ b/indra/newview/lltoolbar.h
@@ -2,31 +2,25 @@
* @file lltoolbar.h
* @brief Large friendly buttons at bottom of screen.
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltoolbrush.cpp b/indra/newview/lltoolbrush.cpp
index 3593064bef..9782b90cf1 100644
--- a/indra/newview/lltoolbrush.cpp
+++ b/indra/newview/lltoolbrush.cpp
@@ -2,31 +2,25 @@
* @file lltoolbrush.cpp
* @brief Implementation of the toolbrushes
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltoolbrush.h b/indra/newview/lltoolbrush.h
index fca275aa4d..1c7f198900 100644
--- a/indra/newview/lltoolbrush.h
+++ b/indra/newview/lltoolbrush.h
@@ -2,31 +2,25 @@
* @file lltoolbrush.h
* @brief toolbrush class header file
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltoolcomp.cpp b/indra/newview/lltoolcomp.cpp
index d05bfc53e5..923fbecb1a 100644
--- a/indra/newview/lltoolcomp.cpp
+++ b/indra/newview/lltoolcomp.cpp
@@ -2,31 +2,25 @@
* @file lltoolcomp.cpp
* @brief Composite tools
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltoolcomp.h b/indra/newview/lltoolcomp.h
index 81ed0ba8e4..bbb5ed5797 100644
--- a/indra/newview/lltoolcomp.h
+++ b/indra/newview/lltoolcomp.h
@@ -2,31 +2,25 @@
* @file lltoolcomp.h
* @brief Composite tools
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltooldraganddrop.cpp b/indra/newview/lltooldraganddrop.cpp
index c862c02b82..6bb95168e2 100644
--- a/indra/newview/lltooldraganddrop.cpp
+++ b/indra/newview/lltooldraganddrop.cpp
@@ -2,31 +2,25 @@
* @file lltooldraganddrop.cpp
* @brief LLToolDragAndDrop class implementation
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -1451,6 +1445,43 @@ static void give_inventory_cb(const LLSD& notification, const LLSD& response)
}
}
+static void show_item_sharing_confirmation(const std::string name,
+ LLViewerInventoryItem* inv_item,
+ const LLSD& dest,
+ const LLUUID& dest_agent,
+ const LLUUID& session_id = LLUUID::null)
+{
+ if (!inv_item)
+ {
+ llassert(NULL != inv_item);
+ return;
+ }
+
+ LLSD substitutions;
+ substitutions["RESIDENTS"] = name;
+ substitutions["ITEMS"] = inv_item->getName();
+ LLSD payload;
+ payload["agent_id"] = dest_agent;
+ payload["item_id"] = inv_item->getUUID();
+ payload["session_id"] = session_id;
+ payload["d&d_dest"] = dest.asString();
+ LLNotificationsUtil::add("ShareItemsConfirmation", substitutions, payload, &give_inventory_cb);
+}
+
+static void get_name_cb(const LLUUID& id,
+ const std::string& first_name,
+ const std::string& last_name,
+ LLViewerInventoryItem* inv_item,
+ const LLSD& dest,
+ const LLUUID& dest_agent)
+{
+ show_item_sharing_confirmation(first_name + " " + last_name,
+ inv_item,
+ dest,
+ id,
+ LLUUID::null);
+}
+
// function used as drag-and-drop handler for simple agent give inventory requests
//static
bool LLToolDragAndDrop::handleGiveDragAndDrop(LLUUID dest_agent, LLUUID session_id, BOOL drop,
@@ -1483,20 +1514,28 @@ bool LLToolDragAndDrop::handleGiveDragAndDrop(LLUUID dest_agent, LLUUID session_
if (drop)
{
LLIMModel::LLIMSession * session = LLIMModel::instance().findIMSession(session_id);
+
+ // If no IM session found get the destination agent's name by id.
if (NULL == session)
{
- llassert(NULL != session);
- return false;
+ std::string fullname;
+
+ // If destination agent's name is found in cash proceed to showing the confirmation dialog.
+ // Otherwise set up a callback to show the dialog when the name arrives.
+ if (gCacheName->getFullName(dest_agent, fullname))
+ {
+ show_item_sharing_confirmation(fullname, inv_item, dest, dest_agent, LLUUID::null);
+ }
+ else
+ {
+ gCacheName->get(dest_agent, FALSE, boost::bind(&get_name_cb, _1, _2, _3, inv_item, dest, dest_agent));
+ }
+
+ return true;
}
- LLSD substitutions;
- substitutions["RESIDENTS"] = session->mName;
- substitutions["ITEMS"] = inv_item->getName();
- LLSD payload;
- payload["agent_id"] = dest_agent;
- payload["item_id"] = inv_item->getUUID();
- payload["session_id"] = session_id;
- payload["d&d_dest"] = dest.asString();
- LLNotificationsUtil::add("ShareItemsConfirmation", substitutions, payload, &give_inventory_cb);
+
+ // If an IM session with destination agent is found item offer will be logged in this session.
+ show_item_sharing_confirmation(session->mName, inv_item, dest, dest_agent, session_id);
}
}
else
@@ -1871,13 +1910,8 @@ EAcceptance LLToolDragAndDrop::dad3dWearItem(
if (drop)
{
- // Don't wear anything until initial wearables are loaded, can
- // destroy clothing items.
- if (!gAgentWearables.areWearablesLoaded())
- {
- LLNotificationsUtil::add("CanNotChangeAppearanceUntilLoaded");
- return ACCEPT_NO;
- }
+ // TODO: investigate wearables may not be loaded at this point EXT-8231
+
LLAppearanceMgr::instance().wearItemOnAvatar(item->getUUID(),true, !(mask & MASK_CONTROL));
}
return ACCEPT_YES_MULTI;
@@ -1949,13 +1983,7 @@ EAcceptance LLToolDragAndDrop::dad3dWearCategory(
if (drop)
{
- // Don't wear anything until initial wearables are loaded, can
- // destroy clothing items.
- if (!gAgentWearables.areWearablesLoaded())
- {
- LLNotificationsUtil::add("CanNotChangeAppearanceUntilLoaded");
- return ACCEPT_NO;
- }
+ // TODO: investigate wearables may not be loaded at this point EXT-8231
}
if (mSource == SOURCE_AGENT)
diff --git a/indra/newview/lltooldraganddrop.h b/indra/newview/lltooldraganddrop.h
index 36e69c1db3..a13b775699 100644
--- a/indra/newview/lltooldraganddrop.h
+++ b/indra/newview/lltooldraganddrop.h
@@ -2,31 +2,25 @@
* @file lltooldraganddrop.h
* @brief LLToolDragAndDrop class header file
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltoolface.cpp b/indra/newview/lltoolface.cpp
index 1d78dc5019..a00ac10698 100644
--- a/indra/newview/lltoolface.cpp
+++ b/indra/newview/lltoolface.cpp
@@ -2,31 +2,25 @@
* @file lltoolface.cpp
* @brief A tool to manipulate faces
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltoolface.h b/indra/newview/lltoolface.h
index f2b7d23273..7eb13b0fbc 100644
--- a/indra/newview/lltoolface.h
+++ b/indra/newview/lltoolface.h
@@ -2,31 +2,25 @@
* @file lltoolface.h
* @brief A tool to select object faces
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltoolfocus.cpp b/indra/newview/lltoolfocus.cpp
index 032714cabf..a754d8ee7e 100644
--- a/indra/newview/lltoolfocus.cpp
+++ b/indra/newview/lltoolfocus.cpp
@@ -2,31 +2,25 @@
* @file lltoolfocus.cpp
* @brief A tool to set the build focus point.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -236,7 +230,6 @@ void LLToolCamera::pickCallback(const LLPickInfo& pick_info)
gAgentCamera.setFocusOnAvatar(FALSE, FALSE);
LLVector3d cam_pos = gAgentCamera.getCameraPositionGlobal();
- cam_pos -= LLVector3d(LLViewerCamera::getInstance()->getLeftAxis() * gAgentCamera.calcCustomizeAvatarUIOffset( cam_pos ));
gAgentCamera.setCameraPosAndFocusGlobal( cam_pos, pick_info.mPosGlobal, pick_info.mObjectID);
}
diff --git a/indra/newview/lltoolfocus.h b/indra/newview/lltoolfocus.h
index 023cc26389..b1ac42e33f 100644
--- a/indra/newview/lltoolfocus.h
+++ b/indra/newview/lltoolfocus.h
@@ -2,31 +2,25 @@
* @file lltoolfocus.h
* @brief A tool to set the build focus point.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltoolgrab.cpp b/indra/newview/lltoolgrab.cpp
index 9bd08287f3..b6c0f662e5 100644
--- a/indra/newview/lltoolgrab.cpp
+++ b/indra/newview/lltoolgrab.cpp
@@ -2,31 +2,25 @@
* @file lltoolgrab.cpp
* @brief LLToolGrab class implementation
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltoolgrab.h b/indra/newview/lltoolgrab.h
index 16ccb3f24f..61e3fcb8b2 100644
--- a/indra/newview/lltoolgrab.h
+++ b/indra/newview/lltoolgrab.h
@@ -2,31 +2,25 @@
* @file lltoolgrab.h
* @brief LLToolGrab class header file
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltoolgun.cpp b/indra/newview/lltoolgun.cpp
index c815f1e96a..68af3d73d2 100644
--- a/indra/newview/lltoolgun.cpp
+++ b/indra/newview/lltoolgun.cpp
@@ -2,31 +2,25 @@
* @file lltoolgun.cpp
* @brief LLToolGun class implementation
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltoolgun.h b/indra/newview/lltoolgun.h
index 4644e686b7..8ae926b741 100644
--- a/indra/newview/lltoolgun.h
+++ b/indra/newview/lltoolgun.h
@@ -2,31 +2,25 @@
* @file lltoolgun.h
* @brief LLToolGun class header file
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltoolindividual.cpp b/indra/newview/lltoolindividual.cpp
index 163c7cbd9b..885c1442a0 100644
--- a/indra/newview/lltoolindividual.cpp
+++ b/indra/newview/lltoolindividual.cpp
@@ -2,31 +2,25 @@
* @file lltoolindividual.cpp
* @brief LLToolIndividual class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltoolindividual.h b/indra/newview/lltoolindividual.h
index 4a81dce0e2..961a6a4d93 100644
--- a/indra/newview/lltoolindividual.h
+++ b/indra/newview/lltoolindividual.h
@@ -2,31 +2,25 @@
* @file lltoolindividual.h
* @brief LLToolIndividual class header file
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltoolmgr.cpp b/indra/newview/lltoolmgr.cpp
index a8696c22ef..51c0e2eeed 100644
--- a/indra/newview/lltoolmgr.cpp
+++ b/indra/newview/lltoolmgr.cpp
@@ -2,31 +2,25 @@
* @file lltoolmgr.cpp
* @brief LLToolMgr class implementation
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltoolmgr.h b/indra/newview/lltoolmgr.h
index 22aec97864..d489c4c829 100644
--- a/indra/newview/lltoolmgr.h
+++ b/indra/newview/lltoolmgr.h
@@ -2,31 +2,25 @@
* @file lltoolmgr.h
* @brief LLToolMgr class header file
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltoolmorph.cpp b/indra/newview/lltoolmorph.cpp
index fa21b1a866..ca80a1db79 100644
--- a/indra/newview/lltoolmorph.cpp
+++ b/indra/newview/lltoolmorph.cpp
@@ -2,31 +2,25 @@
* @file lltoolmorph.cpp
* @brief A tool to manipulate faces..
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -147,7 +141,7 @@ void LLVisualParamHint::requestHintUpdates( LLVisualParamHint* exception1, LLVis
BOOL LLVisualParamHint::needsRender()
{
- return mNeedsUpdate && mDelayFrames-- <= 0 && !gAgentAvatarp->mAppearanceAnimating && mAllowsUpdates;
+ return mNeedsUpdate && mDelayFrames-- <= 0 && !gAgentAvatarp->getIsAppearanceAnimating() && mAllowsUpdates;
}
void LLVisualParamHint::preRender(BOOL clear_depth)
diff --git a/indra/newview/lltoolmorph.h b/indra/newview/lltoolmorph.h
index cbab5e765f..59201233ae 100644
--- a/indra/newview/lltoolmorph.h
+++ b/indra/newview/lltoolmorph.h
@@ -2,31 +2,25 @@
* @file lltoolmorph.h
* @brief A tool to select object faces.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltoolobjpicker.cpp b/indra/newview/lltoolobjpicker.cpp
index b2088a8232..b65c4c1ec8 100644
--- a/indra/newview/lltoolobjpicker.cpp
+++ b/indra/newview/lltoolobjpicker.cpp
@@ -2,31 +2,25 @@
* @file lltoolobjpicker.cpp
* @brief LLToolObjPicker class implementation
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltoolobjpicker.h b/indra/newview/lltoolobjpicker.h
index ca0812f49d..0c37be1f92 100644
--- a/indra/newview/lltoolobjpicker.h
+++ b/indra/newview/lltoolobjpicker.h
@@ -2,31 +2,25 @@
* @file lltoolobjpicker.h
* @brief LLToolObjPicker class header file
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltoolpie.cpp b/indra/newview/lltoolpie.cpp
index ae244cd8a1..864de018e0 100644
--- a/indra/newview/lltoolpie.cpp
+++ b/indra/newview/lltoolpie.cpp
@@ -2,31 +2,25 @@
* @file lltoolpie.cpp
* @brief LLToolPie class implementation
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -53,6 +47,7 @@
#include "llmediaentry.h"
#include "llmenugl.h"
#include "llmutelist.h"
+#include "llresmgr.h" // getMonetaryString
#include "llselectmgr.h"
#include "lltoolfocus.h"
#include "lltoolgrab.h"
@@ -624,6 +619,25 @@ BOOL LLToolPie::handleDoubleClick(S32 x, S32 y, MASK mask)
return TRUE;
}
}
+ else if (gSavedSettings.getBOOL("DoubleClickTeleport"))
+ {
+ LLViewerObject* objp = mPick.getObject();
+ LLViewerObject* parentp = objp ? objp->getRootEdit() : NULL;
+
+ bool is_in_world = mPick.mObjectID.notNull() && objp && !objp->isHUDAttachment();
+ bool is_land = mPick.mPickType == LLPickInfo::PICK_LAND;
+ bool pos_non_zero = !mPick.mPosGlobal.isExactlyZero();
+ bool has_touch_handler = (objp && objp->flagHandleTouch()) || (parentp && parentp->flagHandleTouch());
+ bool has_click_action = final_click_action(objp);
+
+ if (pos_non_zero && (is_land || (is_in_world && !has_touch_handler && !has_click_action)))
+ {
+ LLVector3d pos = mPick.mPosGlobal;
+ pos.mdV[VZ] += gAgentAvatarp->getPelvisToFoot();
+ gAgent.teleportViaLocationLookAt(pos);
+ return TRUE;
+ }
+ }
return FALSE;
}
@@ -808,7 +822,8 @@ BOOL LLToolPie::handleTooltipLand(std::string line, std::string tooltip_msg)
if (hover_parcel && hover_parcel->getParcelFlag(PF_FOR_SALE))
{
LLStringUtil::format_map_t args;
- args["[AMOUNT]"] = llformat("%d", hover_parcel->getSalePrice());
+ S32 price = hover_parcel->getSalePrice();
+ args["[AMOUNT]"] = LLResMgr::getInstance()->getMonetaryString(price);
line = LLTrans::getString("TooltipForSaleL$", args);
tooltip_msg.append(line);
tooltip_msg.push_back('\n');
@@ -906,13 +921,14 @@ BOOL LLToolPie::handleTooltipObject( LLViewerObject* hover_object, std::string l
|| !existing_inspector->getVisible()
|| existing_inspector->getKey()["object_id"].asUUID() != hover_object->getID()))
{
-
+
// Add price to tooltip for items on sale
bool for_sale = for_sale_selection(nodep);
if(for_sale)
{
LLStringUtil::format_map_t args;
- args["[PRICE]"] = llformat ("%d", nodep->mSaleInfo.getSalePrice());
+ S32 price = nodep->mSaleInfo.getSalePrice();
+ args["[AMOUNT]"] = LLResMgr::getInstance()->getMonetaryString(price);
tooltip_msg.append(LLTrans::getString("TooltipPrice", args) );
}
@@ -1267,7 +1283,6 @@ bool LLToolPie::handleMediaClick(const LLPickInfo& pick)
if (!parcel ||
objectp.isNull() ||
- objectp->isHUDAttachment() ||
pick.mObjectFace < 0 ||
pick.mObjectFace >= objectp->getNumTEs())
{
@@ -1558,7 +1573,7 @@ BOOL LLToolPie::pickRightMouseDownCallback()
mute_msg = LLTrans::getString("MuteObject2");
}
- gMenuHolder->childSetText("Object Mute", mute_msg);
+ gMenuHolder->getChild<LLUICtrl>("Object Mute")->setValue(mute_msg);
gMenuObject->show(x, y);
showVisualContextMenuEffect();
diff --git a/indra/newview/lltoolpie.h b/indra/newview/lltoolpie.h
index 8a4c949aef..65cb3e36a7 100644
--- a/indra/newview/lltoolpie.h
+++ b/indra/newview/lltoolpie.h
@@ -2,31 +2,25 @@
* @file lltoolpie.h
* @brief LLToolPie class header file
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltoolpipette.cpp b/indra/newview/lltoolpipette.cpp
index beebb47537..ff3dad2675 100644
--- a/indra/newview/lltoolpipette.cpp
+++ b/indra/newview/lltoolpipette.cpp
@@ -2,31 +2,25 @@
* @file lltoolpipette.cpp
* @brief LLToolPipette class implementation
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltoolpipette.h b/indra/newview/lltoolpipette.h
index f86939cfeb..8a83bf31af 100644
--- a/indra/newview/lltoolpipette.h
+++ b/indra/newview/lltoolpipette.h
@@ -2,31 +2,25 @@
* @file lltoolpipette.h
* @brief LLToolPipette class header file
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltoolplacer.cpp b/indra/newview/lltoolplacer.cpp
index 91f01f0b36..93ba3b2558 100644
--- a/indra/newview/lltoolplacer.cpp
+++ b/indra/newview/lltoolplacer.cpp
@@ -2,31 +2,25 @@
* @file lltoolplacer.cpp
* @brief Tool for placing new objects into the world
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltoolplacer.h b/indra/newview/lltoolplacer.h
index df07f1854c..ad59cb0daa 100644
--- a/indra/newview/lltoolplacer.h
+++ b/indra/newview/lltoolplacer.h
@@ -2,31 +2,25 @@
* @file lltoolplacer.h
* @brief Tool for placing new objects into the world
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltoolselect.cpp b/indra/newview/lltoolselect.cpp
index 2065ba1791..7c604a04bf 100644
--- a/indra/newview/lltoolselect.cpp
+++ b/indra/newview/lltoolselect.cpp
@@ -2,31 +2,25 @@
* @file lltoolselect.cpp
* @brief LLToolSelect class implementation
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltoolselect.h b/indra/newview/lltoolselect.h
index 37f28ccc7f..baa27f6071 100644
--- a/indra/newview/lltoolselect.h
+++ b/indra/newview/lltoolselect.h
@@ -2,31 +2,25 @@
* @file lltoolselect.h
* @brief LLToolSelect class header file
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltoolselectland.cpp b/indra/newview/lltoolselectland.cpp
index 5c8b08db3b..a48388c591 100644
--- a/indra/newview/lltoolselectland.cpp
+++ b/indra/newview/lltoolselectland.cpp
@@ -2,31 +2,25 @@
* @file lltoolselectland.cpp
* @brief LLToolSelectLand class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltoolselectland.h b/indra/newview/lltoolselectland.h
index 0ba69a591e..b368a4b153 100644
--- a/indra/newview/lltoolselectland.h
+++ b/indra/newview/lltoolselectland.h
@@ -2,31 +2,25 @@
* @file lltoolselectland.h
* @brief LLToolSelectLand class header file
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltoolselectrect.cpp b/indra/newview/lltoolselectrect.cpp
index f87d1480d7..a3f4e5a18c 100644
--- a/indra/newview/lltoolselectrect.cpp
+++ b/indra/newview/lltoolselectrect.cpp
@@ -2,31 +2,25 @@
* @file lltoolselectrect.cpp
* @brief A tool to select multiple objects with a screen-space rectangle.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltoolselectrect.h b/indra/newview/lltoolselectrect.h
index e794897958..5fdf622b49 100644
--- a/indra/newview/lltoolselectrect.h
+++ b/indra/newview/lltoolselectrect.h
@@ -2,31 +2,25 @@
* @file lltoolselectrect.h
* @brief A tool to select multiple objects with a screen-space rectangle.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltoolview.cpp b/indra/newview/lltoolview.cpp
index f8393ebc47..8c40ff3cb3 100644
--- a/indra/newview/lltoolview.cpp
+++ b/indra/newview/lltoolview.cpp
@@ -2,31 +2,25 @@
* @file lltoolview.cpp
* @brief A UI contains for tool palette tools
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltoolview.h b/indra/newview/lltoolview.h
index 976c8d01ec..3b5fb55cce 100644
--- a/indra/newview/lltoolview.h
+++ b/indra/newview/lltoolview.h
@@ -2,31 +2,25 @@
* @file lltoolview.h
* @brief UI container for tools.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltracker.cpp b/indra/newview/lltracker.cpp
index cc074287c4..8391c0f832 100644
--- a/indra/newview/lltracker.cpp
+++ b/indra/newview/lltracker.cpp
@@ -2,31 +2,25 @@
* @file lltracker.cpp
* @brief Container for objects user is tracking.
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltracker.h b/indra/newview/lltracker.h
index bfe9d6c6b5..c0c154abe8 100644
--- a/indra/newview/lltracker.h
+++ b/indra/newview/lltracker.h
@@ -2,31 +2,25 @@
* @file lltracker.h
* @brief Container for objects user is tracking.
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltransientdockablefloater.cpp b/indra/newview/lltransientdockablefloater.cpp
index 9d39aa5182..c108f1dfdc 100644
--- a/indra/newview/lltransientdockablefloater.cpp
+++ b/indra/newview/lltransientdockablefloater.cpp
@@ -2,31 +2,25 @@
* @file lltransientdockablefloater.cpp
* @brief Creates a panel of a specific kind for a toast
*
- * $LicenseInfo:firstyear=2000&license=viewergpl$
- *
- * Copyright (c) 2000-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2000&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltransientdockablefloater.h b/indra/newview/lltransientdockablefloater.h
index e0541d6597..5fb79597f4 100644
--- a/indra/newview/lltransientdockablefloater.h
+++ b/indra/newview/lltransientdockablefloater.h
@@ -2,31 +2,25 @@
* @file lltransientdockablefloater.h
* @brief Creates a panel of a specific kind for a toast.
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltransientfloatermgr.cpp b/indra/newview/lltransientfloatermgr.cpp
index d82403070b..78dd602f39 100644
--- a/indra/newview/lltransientfloatermgr.cpp
+++ b/indra/newview/lltransientfloatermgr.cpp
@@ -2,31 +2,25 @@
* @file lltransientfloatermgr.cpp
* @brief LLFocusMgr base class
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltransientfloatermgr.h b/indra/newview/lltransientfloatermgr.h
index 9c5ae295f2..2919244121 100644
--- a/indra/newview/lltransientfloatermgr.h
+++ b/indra/newview/lltransientfloatermgr.h
@@ -2,31 +2,25 @@
* @file lltransientfloatermgr.h
* @brief LLFocusMgr base class
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lltranslate.cpp b/indra/newview/lltranslate.cpp
new file mode 100644
index 0000000000..050e34ade9
--- /dev/null
+++ b/indra/newview/lltranslate.cpp
@@ -0,0 +1,123 @@
+/**
+* @file lltranslate.cpp
+* @brief Functions for translating text via Google Translate.
+*
+* $LicenseInfo:firstyear=2009&license=viewergpl$
+*
+* Copyright (c) 2009-2010, Linden Research, Inc.
+*
+* Second Life Viewer Source Code
+* The source code in this file ("Source Code") is provided by Linden Lab
+* to you under the terms of the GNU General Public License, version 2.0
+* ("GPL"), unless you have obtained a separate licensing agreement
+* ("Other License"), formally executed by you and Linden Lab. Terms of
+* the GPL can be found in doc/GPL-license.txt in this distribution, or
+* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+*
+* There are special exceptions to the terms and conditions of the GPL as
+* it is applied to this Source Code. View the full text of the exception
+* in the file doc/FLOSS-exception.txt in this software distribution, or
+* online at
+* http://secondlifegrid.net/programs/open_source/licensing/flossexception
+*
+* By copying, modifying or distributing this software, you acknowledge
+* that you have read and understood your obligations described above,
+* and agree to abide by those obligations.
+*
+* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+* COMPLETENESS OR PERFORMANCE.
+* $/LicenseInfo$
+*/
+
+#include "llviewerprecompiledheaders.h"
+
+#include "lltranslate.h"
+
+#include "llbufferstream.h"
+#include "llui.h"
+#include "llversionviewer.h"
+#include "llviewercontrol.h"
+
+#include "jsoncpp/reader.h"
+
+// These two are concatenated with the language specifiers to form a complete Google Translate URL
+const char* LLTranslate::m_GoogleURL = "http://ajax.googleapis.com/ajax/services/language/translate?v=1.0&q=";
+const char* LLTranslate::m_GoogleLangSpec = "&langpair=";
+float LLTranslate::m_GoogleTimeout = 5;
+
+LLSD LLTranslate::m_Header;
+// These constants are for the GET header.
+const char* LLTranslate::m_AcceptHeader = "Accept";
+const char* LLTranslate::m_AcceptType = "text/plain";
+const char* LLTranslate::m_AgentHeader = "User-Agent";
+
+// These constants are in the JSON returned from Google
+const char* LLTranslate::m_GoogleData = "responseData";
+const char* LLTranslate::m_GoogleTranslation = "translatedText";
+const char* LLTranslate::m_GoogleLanguage = "detectedSourceLanguage";
+
+//static
+void LLTranslate::translateMessage(LLHTTPClient::ResponderPtr &result, const std::string &from_lang, const std::string &to_lang, const std::string &mesg)
+{
+ std::string url;
+ getTranslateUrl(url, from_lang, to_lang, mesg);
+
+ std::string user_agent = llformat("%s %d.%d.%d (%d)",
+ LL_CHANNEL,
+ LL_VERSION_MAJOR,
+ LL_VERSION_MINOR,
+ LL_VERSION_PATCH,
+ LL_VERSION_BUILD );
+
+ if (!m_Header.size())
+ {
+ m_Header.insert(m_AcceptHeader, LLSD(m_AcceptType));
+ m_Header.insert(m_AgentHeader, LLSD(user_agent));
+ }
+
+ LLHTTPClient::get(url, result, m_Header, m_GoogleTimeout);
+}
+
+//static
+void LLTranslate::getTranslateUrl(std::string &translate_url, const std::string &from_lang, const std::string &to_lang, const std::string &mesg)
+{
+ std::string escaped_mesg = curl_escape(mesg.c_str(), mesg.size());
+
+ translate_url = m_GoogleURL
+ + escaped_mesg + m_GoogleLangSpec
+ + from_lang // 'from' language; empty string for auto
+ + "%7C" // |
+ + to_lang; // 'to' language
+}
+
+//static
+bool LLTranslate::parseGoogleTranslate(const std::string& body, std::string &translation, std::string &detected_language)
+{
+ Json::Value root;
+ Json::Reader reader;
+
+ bool success = reader.parse(body, root);
+ if (!success)
+ {
+ LL_WARNS("Translate") << "Non valid response from Google Translate API: '" << reader.getFormatedErrorMessages() << "'" << LL_ENDL;
+ return false;
+ }
+
+ translation = root[m_GoogleData].get(m_GoogleTranslation, "").asString();
+ detected_language = root[m_GoogleData].get(m_GoogleLanguage, "").asString();
+ return true;
+}
+
+//static
+std::string LLTranslate::getTranslateLanguage()
+{
+ std::string language = gSavedSettings.getString("TranslateLanguage");
+ if (language.empty() || language == "default")
+ {
+ language = LLUI::getLanguage();
+ }
+ language = language.substr(0,2);
+ return language;
+}
+
diff --git a/indra/newview/lltranslate.h b/indra/newview/lltranslate.h
new file mode 100644
index 0000000000..0786dc0ca3
--- /dev/null
+++ b/indra/newview/lltranslate.h
@@ -0,0 +1,124 @@
+/**
+* @file lltranslate.h
+* @brief Human language translation class and JSON response receiver.
+*
+* $LicenseInfo:firstyear=2009&license=viewergpl$
+*
+* Copyright (c) 2009-2010, Linden Research, Inc.
+*
+* Second Life Viewer Source Code
+* The source code in this file ("Source Code") is provided by Linden Lab
+* to you under the terms of the GNU General Public License, version 2.0
+* ("GPL"), unless you have obtained a separate licensing agreement
+* ("Other License"), formally executed by you and Linden Lab. Terms of
+* the GPL can be found in doc/GPL-license.txt in this distribution, or
+* online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+*
+* There are special exceptions to the terms and conditions of the GPL as
+* it is applied to this Source Code. View the full text of the exception
+* in the file doc/FLOSS-exception.txt in this software distribution, or
+* online at
+* http://secondlifegrid.net/programs/open_source/licensing/flossexception
+*
+* By copying, modifying or distributing this software, you acknowledge
+* that you have read and understood your obligations described above,
+* and agree to abide by those obligations.
+*
+* ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
+* WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
+* COMPLETENESS OR PERFORMANCE.
+* $/LicenseInfo$
+*/
+
+#ifndef LL_LLTRANSLATE_H
+#define LL_LLTRANSLATE_H
+
+#include "llhttpclient.h"
+#include "llbufferstream.h"
+
+class LLTranslate
+{
+ LOG_CLASS(LLTranslate);
+public :
+ class TranslationReceiver: public LLHTTPClient::Responder
+ {
+ protected:
+ TranslationReceiver(const std::string &from_lang, const std::string &to_lang)
+ : m_fromLang(from_lang),
+ m_toLang(to_lang)
+ {
+ }
+
+ virtual void handleResponse(const std::string &translation, const std::string &recognized_lang) {};
+ virtual void handleFailure() {};
+
+ public:
+ ~TranslationReceiver()
+ {
+ }
+
+ virtual void completedRaw( U32 status,
+ const std::string& reason,
+ const LLChannelDescriptors& channels,
+ const LLIOPipe::buffer_ptr_t& buffer)
+ {
+ if (200 <= status && status < 300)
+ {
+ LLBufferStream istr(channels, buffer.get());
+ std::stringstream strstrm;
+ strstrm << istr.rdbuf();
+
+ const std::string result = strstrm.str();
+ std::string translation;
+ std::string detected_language;
+
+ if (!parseGoogleTranslate(result, translation, detected_language))
+ {
+ handleFailure();
+ return;
+ }
+
+ // Fix up the response
+ LLStringUtil::replaceString(translation, "&lt;", "<");
+ LLStringUtil::replaceString(translation, "&gt;",">");
+ LLStringUtil::replaceString(translation, "&quot;","\"");
+ LLStringUtil::replaceString(translation, "&#39;","'");
+ LLStringUtil::replaceString(translation, "&amp;","&");
+ LLStringUtil::replaceString(translation, "&apos;","'");
+
+ handleResponse(translation, detected_language);
+ }
+ else
+ {
+ LL_WARNS("Translate") << "HTTP request for Google Translate failed with status " << status << ", reason: " << reason << LL_ENDL;
+ handleFailure();
+ }
+ }
+
+ protected:
+ const std::string m_toLang;
+ const std::string m_fromLang;
+ };
+
+ static void translateMessage(LLHTTPClient::ResponderPtr &result, const std::string &from_lang, const std::string &to_lang, const std::string &mesg);
+ static float m_GoogleTimeout;
+ static std::string getTranslateLanguage();
+
+private:
+ static void getTranslateUrl(std::string &translate_url, const std::string &from_lang, const std::string &to_lang, const std::string &text);
+ static bool parseGoogleTranslate(const std::string& body, std::string &translation, std::string &detected_language);
+
+ static LLSD m_Header;
+ static const char* m_GoogleURL;
+ static const char* m_GoogleLangSpec;
+ static const char* m_AcceptHeader;
+ static const char* m_AcceptType;
+ static const char* m_AgentHeader;
+ static const char* m_UserAgent;
+
+ static const char* m_GoogleData;
+ static const char* m_GoogleTranslation;
+ static const char* m_GoogleLanguage;
+};
+
+#endif
diff --git a/indra/newview/lluiconstants.h b/indra/newview/lluiconstants.h
index f04062a0ed..1479e58c43 100644
--- a/indra/newview/lluiconstants.h
+++ b/indra/newview/lluiconstants.h
@@ -2,31 +2,25 @@
* @file lluiconstants.h
* @brief Compile-time configuration for UI
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lluilistener.cpp b/indra/newview/lluilistener.cpp
index 3ad9887bec..4d6eac4958 100644
--- a/indra/newview/lluilistener.cpp
+++ b/indra/newview/lluilistener.cpp
@@ -4,8 +4,25 @@
* @date 2009-08-18
* @brief Implementation for lluilistener.
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- * Copyright (c) 2009, Linden Research, Inc.
+ * $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$
*/
diff --git a/indra/newview/lluilistener.h b/indra/newview/lluilistener.h
index 8605d60bd3..e7847f01e8 100644
--- a/indra/newview/lluilistener.h
+++ b/indra/newview/lluilistener.h
@@ -4,8 +4,25 @@
* @date 2009-08-18
* @brief Engage named functions as specified by XUI
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- * Copyright (c) 2009, Linden Research, Inc.
+ * $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$
*/
diff --git a/indra/newview/lluploaddialog.cpp b/indra/newview/lluploaddialog.cpp
index 22c7d670f8..df7c5be0d6 100644
--- a/indra/newview/lluploaddialog.cpp
+++ b/indra/newview/lluploaddialog.cpp
@@ -2,31 +2,25 @@
* @file lluploaddialog.cpp
* @brief LLUploadDialog class implementation
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/lluploaddialog.h b/indra/newview/lluploaddialog.h
index 2864780316..3aa9583315 100644
--- a/indra/newview/lluploaddialog.h
+++ b/indra/newview/lluploaddialog.h
@@ -2,31 +2,25 @@
* @file lluploaddialog.h
* @brief LLUploadDialog class header file
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llurl.cpp b/indra/newview/llurl.cpp
index 83a5839a93..aa90d16c67 100644
--- a/indra/newview/llurl.cpp
+++ b/indra/newview/llurl.cpp
@@ -2,31 +2,25 @@
* @file llurl.cpp
* @brief Text url class
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llurl.h b/indra/newview/llurl.h
index e41b83d29f..01ab3bdfc2 100644
--- a/indra/newview/llurl.h
+++ b/indra/newview/llurl.h
@@ -2,31 +2,25 @@
* @file llurl.h
* @brief Text url class
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llurldispatcher.cpp b/indra/newview/llurldispatcher.cpp
index cbaa7248a2..bd4d3c2b78 100644
--- a/indra/newview/llurldispatcher.cpp
+++ b/indra/newview/llurldispatcher.cpp
@@ -2,30 +2,25 @@
* @file llurldispatcher.cpp
* @brief Central registry for all URL handlers
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2010, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
#include "llviewerprecompiledheaders.h"
@@ -37,7 +32,6 @@
#include "llcommandhandler.h"
#include "llfloaterhelpbrowser.h"
#include "llfloaterreg.h"
-#include "llfloaterurldisplay.h"
#include "llfloaterworldmap.h"
#include "llpanellogin.h"
#include "llregionhandle.h"
@@ -182,10 +176,6 @@ bool LLURLDispatcherImpl::dispatchRegion(const LLSLURL& slurl, bool right_mouse)
return true;
}
- // LLFloaterURLDisplay functionality moved to LLPanelPlaces in Side Tray.
- //LLFloaterURLDisplay* slurl_displayp = LLFloaterReg::getTypedInstance<LLFloaterURLDisplay>("preview_url",LLSD());
- //if(slurl_displayp) slurl_displayp->setName(region_name);
-
// Request a region handle by name
LLWorldMapMessage::getInstance()->sendNamedRegionRequest(slurl.getRegion(),
LLURLDispatcherImpl::regionNameCallback,
@@ -251,21 +241,6 @@ void LLURLDispatcherImpl::regionHandleCallback(U64 region_handle, const LLSLURL&
key["z"] = global_pos.mdV[VZ];
LLSideTray::getInstance()->showPanel("panel_places", key);
-
- // LLFloaterURLDisplay functionality moved to LLPanelPlaces in Side Tray.
-
-// // display informational floater, allow user to click teleport btn
-// LLFloaterURLDisplay* slurl_displayp = LLFloaterReg::getTypedInstance<LLFloaterURLDisplay>("preview_url",LLSD());
-// if(slurl_displayp)
-// {
-// url_displayp->displayParcelInfo(region_handle, local_pos);
-// if(snapshot_id.notNull())
-// {
-// url_displayp->setSnapshotDisplay(snapshot_id);
-// }
-// std::string locationString = llformat("%s %d, %d, %d", region_name.c_str(), x, y, z);
-// url_displayp->setLocationString(locationString);
-// }
}
}
diff --git a/indra/newview/llurldispatcher.h b/indra/newview/llurldispatcher.h
index 407e417e58..b07db4da3f 100644
--- a/indra/newview/llurldispatcher.h
+++ b/indra/newview/llurldispatcher.h
@@ -2,30 +2,25 @@
* @file llurldispatcher.h
* @brief Central registry for all SL URL handlers
*
- * $LicenseInfo:firstyear=2010&license=viewergpl$
- *
- * Copyright (c) 2007-2010, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2010&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
#ifndef LLURLDISPATCHER_H
diff --git a/indra/newview/llurldispatcherlistener.cpp b/indra/newview/llurldispatcherlistener.cpp
index fea6a769c5..d0441d7bfa 100644
--- a/indra/newview/llurldispatcherlistener.cpp
+++ b/indra/newview/llurldispatcherlistener.cpp
@@ -4,8 +4,25 @@
* @date 2009-12-10
* @brief Implementation for llurldispatcherlistener.
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- * Copyright (c) 2009, Linden Research, Inc.
+ * $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$
*/
diff --git a/indra/newview/llurldispatcherlistener.h b/indra/newview/llurldispatcherlistener.h
index 894afcbb51..b09594bb39 100644
--- a/indra/newview/llurldispatcherlistener.h
+++ b/indra/newview/llurldispatcherlistener.h
@@ -4,8 +4,25 @@
* @date 2009-12-10
* @brief LLEventAPI for LLURLDispatcher
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- * Copyright (c) 2009, Linden Research, Inc.
+ * $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$
*/
diff --git a/indra/newview/llurlhistory.cpp b/indra/newview/llurlhistory.cpp
index 08dd82ab86..edec30f8c4 100644
--- a/indra/newview/llurlhistory.cpp
+++ b/indra/newview/llurlhistory.cpp
@@ -2,31 +2,25 @@
* @file llurlhistory.cpp
* @brief Manages a list of recent URLs
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llurlhistory.h b/indra/newview/llurlhistory.h
index 2b9d414296..3cce4cbe1d 100644
--- a/indra/newview/llurlhistory.h
+++ b/indra/newview/llurlhistory.h
@@ -2,31 +2,25 @@
* @file llurlhistory.h
* @brief Manages a list of recent URLs
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llurllineeditorctrl.cpp b/indra/newview/llurllineeditorctrl.cpp
index 8488527185..56b5bbf942 100644
--- a/indra/newview/llurllineeditorctrl.cpp
+++ b/indra/newview/llurllineeditorctrl.cpp
@@ -2,31 +2,25 @@
* @file llurllineeditorctrl.cpp
* @brief LLURLLineEditor base class
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -89,9 +83,10 @@ void LLURLLineEditor::copyEscapedURLToClipboard()
const std::string unescaped_text = wstring_to_utf8str(mText.getWString().substr(left_pos, length));
LLWString text_to_copy;
- if (LLSLURL(unescaped_text).isValid())
+ // *HACK: Because LLSLURL is currently broken we cannot use it to check if unescaped_text is a valid SLURL (see EXT-8335).
+ if (LLStringUtil::startsWith(unescaped_text, "http://")) // SLURL
text_to_copy = utf8str_to_wstring(LLWeb::escapeURL(unescaped_text));
- else
+ else // human-readable location
text_to_copy = utf8str_to_wstring(unescaped_text);
gClipboard.copyFromString( text_to_copy );
diff --git a/indra/newview/llurllineeditorctrl.h b/indra/newview/llurllineeditorctrl.h
index ebe417e855..b9540dd571 100644
--- a/indra/newview/llurllineeditorctrl.h
+++ b/indra/newview/llurllineeditorctrl.h
@@ -2,31 +2,25 @@
* @file llurllineeditorctrl.h
* @brief Combobox-like location input control
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llurlwhitelist.cpp b/indra/newview/llurlwhitelist.cpp
index 46bc9276c1..72029203d9 100644
--- a/indra/newview/llurlwhitelist.cpp
+++ b/indra/newview/llurlwhitelist.cpp
@@ -3,31 +3,25 @@
* @author Callum Prentice
* @brief maintains a "white list" of acceptable URLS that are stored on disk
*
- * $LicenseInfo:firstyear=2005&license=viewergpl$
- *
- * Copyright (c) 2005-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llurlwhitelist.h b/indra/newview/llurlwhitelist.h
index 7b7240f8bc..b0969051a7 100644
--- a/indra/newview/llurlwhitelist.h
+++ b/indra/newview/llurlwhitelist.h
@@ -3,31 +3,25 @@
* @author Callum Prentice
* @brief maintains a "white list" of acceptable URLS that are stored on disk
*
- * $LicenseInfo:firstyear=2005&license=viewergpl$
- *
- * Copyright (c) 2005-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llvectorperfoptions.cpp b/indra/newview/llvectorperfoptions.cpp
index a517078719..b80058d98c 100644
--- a/indra/newview/llvectorperfoptions.cpp
+++ b/indra/newview/llvectorperfoptions.cpp
@@ -2,31 +2,25 @@
* @file llvectorperfoptions.h
* @brief SSE/SSE2 vector math performance options.
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llvectorperfoptions.h b/indra/newview/llvectorperfoptions.h
index 3369368f40..e7a5748256 100644
--- a/indra/newview/llvectorperfoptions.h
+++ b/indra/newview/llvectorperfoptions.h
@@ -2,31 +2,25 @@
* @file llvectorperfoptions.h
* @brief SSE/SSE2 vector math performance options.
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llversioninfo.cpp b/indra/newview/llversioninfo.cpp
index 148931d3ad..733d05834a 100644
--- a/indra/newview/llversioninfo.cpp
+++ b/indra/newview/llversioninfo.cpp
@@ -3,31 +3,25 @@
* @brief Routines to access the viewer version and build information
* @author Martin Reddy
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llversioninfo.h b/indra/newview/llversioninfo.h
index b05109e478..e468b6ae4e 100644
--- a/indra/newview/llversioninfo.h
+++ b/indra/newview/llversioninfo.h
@@ -3,31 +3,25 @@
* @brief Routines to access the viewer version and build information
* @author Martin Reddy
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewchildren.cpp b/indra/newview/llviewchildren.cpp
index 41eafa871d..5c5bbdc8f5 100644
--- a/indra/newview/llviewchildren.cpp
+++ b/indra/newview/llviewchildren.cpp
@@ -2,31 +2,25 @@
* @file llviewchildren.cpp
* @brief LLViewChildren class implementation
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -55,12 +49,12 @@ LLViewChildren::LLViewChildren(LLPanel& parent)
void LLViewChildren::show(const std::string& id, bool visible)
{
- mParent.childSetVisible(id, visible);
+ mParent.getChildView(id)->setVisible(visible);
}
void LLViewChildren::enable(const std::string& id, bool enabled)
{
- mParent.childSetEnabled(id, enabled);
+ mParent.getChildView(id)->setEnabled(enabled);
}
void LLViewChildren::setText(
diff --git a/indra/newview/llviewchildren.h b/indra/newview/llviewchildren.h
index 6cfa535a94..4cd8209259 100644
--- a/indra/newview/llviewchildren.h
+++ b/indra/newview/llviewchildren.h
@@ -2,31 +2,25 @@
* @file llviewchildren.h
* @brief LLViewChildren class header file
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewerassetstorage.cpp b/indra/newview/llviewerassetstorage.cpp
index c3a6b7111b..2e7ef0fec3 100644
--- a/indra/newview/llviewerassetstorage.cpp
+++ b/indra/newview/llviewerassetstorage.cpp
@@ -2,31 +2,25 @@
* @file llviewerassetstorage.cpp
* @brief Subclass capable of loading asset data to/from an external source.
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewerassetstorage.h b/indra/newview/llviewerassetstorage.h
index 8e7ea3471d..6346b79f03 100644
--- a/indra/newview/llviewerassetstorage.h
+++ b/indra/newview/llviewerassetstorage.h
@@ -2,31 +2,25 @@
* @file llviewerassetstorage.h
* @brief Class for loading asset data to/from an external source.
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewerassettype.cpp b/indra/newview/llviewerassettype.cpp
index b382ff6306..9a52422641 100644
--- a/indra/newview/llviewerassettype.cpp
+++ b/indra/newview/llviewerassettype.cpp
@@ -2,31 +2,25 @@
* @file llassettype.cpp
* @brief Implementatino of LLViewerAssetType functionality.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewerassettype.h b/indra/newview/llviewerassettype.h
index 01158885ce..ec8b822917 100644
--- a/indra/newview/llviewerassettype.h
+++ b/indra/newview/llviewerassettype.h
@@ -2,31 +2,25 @@
* @file llviewerassettype.h
* @brief Declaration of LLViewerViewerAssetType.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewerattachmenu.cpp b/indra/newview/llviewerattachmenu.cpp
index f7f5ec72fd..db7dc3fea6 100644
--- a/indra/newview/llviewerattachmenu.cpp
+++ b/indra/newview/llviewerattachmenu.cpp
@@ -2,31 +2,25 @@
* @file llviewerattachmenu.cpp
* @brief "Attach to" / "Attach to HUD" submenus.
*
- * $LicenseInfo:firstyear=2010&license=viewergpl$
- *
- * Copyright (c) 2010, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2010&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -84,7 +78,7 @@ void LLViewerAttachMenu::populateMenus(const std::string& attach_to_menu_name, c
LLSD cbparams;
cbparams["index"] = curiter->first;
- cbparams["label"] = attachment->getName();
+ cbparams["label"] = p.name;
p.on_click.function_name = "Object.Attach";
p.on_click.parameter = LLSD(attachment->getName());
p.on_enable.function_name = "Attachment.Label";
@@ -122,7 +116,7 @@ void LLViewerAttachMenu::attachObjects(const uuid_vec_t& items, const std::strin
LLViewerInventoryItem* item = (LLViewerInventoryItem*)gInventory.getLinkedItem(id);
if(item && gInventory.isObjectDescendentOf(id, gInventory.getRootFolderID()))
{
- rez_attachment(item, attachmentp);
+ rez_attachment(item, attachmentp); // don't replace if called from an "Attach To..." menu
}
else if(item && item->isFinished())
{
diff --git a/indra/newview/llviewerattachmenu.h b/indra/newview/llviewerattachmenu.h
index d1db9914f3..064c69ef4d 100644
--- a/indra/newview/llviewerattachmenu.h
+++ b/indra/newview/llviewerattachmenu.h
@@ -2,31 +2,25 @@
* @file llviewerattachmenu.h
* @brief "Attach to" / "Attach to HUD" submenus.
*
- * $LicenseInfo:firstyear=2010&license=viewergpl$
- *
- * Copyright (c) 2010, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2010&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llvieweraudio.cpp b/indra/newview/llvieweraudio.cpp
index 1094f030bf..b19c738ed2 100644
--- a/indra/newview/llvieweraudio.cpp
+++ b/indra/newview/llvieweraudio.cpp
@@ -2,31 +2,25 @@
* @file llvieweraudio.cpp
* @brief Audio functions that used to be in viewer.cpp
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -120,10 +114,6 @@ void audio_update_volume(bool force_update)
gAudiop->setDopplerFactor(gSavedSettings.getF32("AudioLevelDoppler"));
gAudiop->setRolloffFactor(gSavedSettings.getF32("AudioLevelRolloff"));
-#ifdef kAUDIO_ENABLE_WIND
- gAudiop->enableWind(!mute_audio);
-#endif
-
gAudiop->setMuted(mute_audio);
if (force_update)
diff --git a/indra/newview/llvieweraudio.h b/indra/newview/llvieweraudio.h
index a80f030479..e5916285fb 100644
--- a/indra/newview/llvieweraudio.h
+++ b/indra/newview/llvieweraudio.h
@@ -2,31 +2,25 @@
* @file llvieweraudio.h
* @brief Audio functions that used to be in viewer.cpp
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewercamera.cpp b/indra/newview/llviewercamera.cpp
index aa82c216d9..cbb1d25f78 100644
--- a/indra/newview/llviewercamera.cpp
+++ b/indra/newview/llviewercamera.cpp
@@ -2,31 +2,25 @@
* @file llviewercamera.cpp
* @brief LLViewerCamera class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewercamera.h b/indra/newview/llviewercamera.h
index cd67af5fef..cc3395115b 100644
--- a/indra/newview/llviewercamera.h
+++ b/indra/newview/llviewercamera.h
@@ -2,31 +2,25 @@
* @file llviewercamera.h
* @brief LLViewerCamera class header file
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewerchat.cpp b/indra/newview/llviewerchat.cpp
index 320456e1e2..0af850a46b 100644
--- a/indra/newview/llviewerchat.cpp
+++ b/indra/newview/llviewerchat.cpp
@@ -2,31 +2,25 @@
* @file llviewerchat.cpp
* @brief Builds menus out of items.
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewerchat.h b/indra/newview/llviewerchat.h
index 502d6ea7e5..a9f9a98960 100644
--- a/indra/newview/llviewerchat.h
+++ b/indra/newview/llviewerchat.h
@@ -2,31 +2,25 @@
* @file llviewerchat.h
* @brief wrapper of LLChat in viewer
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewercontrol.cpp b/indra/newview/llviewercontrol.cpp
index f2c9fbf78d..522b5a7dfa 100644
--- a/indra/newview/llviewercontrol.cpp
+++ b/indra/newview/llviewercontrol.cpp
@@ -3,31 +3,25 @@
* @brief Viewer configuration
* @author Richard Nelson
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -43,6 +37,7 @@
#include "llagent.h"
#include "llagentcamera.h"
#include "llconsole.h"
+#include "lldrawpoolbump.h"
#include "lldrawpoolterrain.h"
#include "llflexibleobject.h"
#include "llfeaturemanager.h"
@@ -118,6 +113,10 @@ static bool handleTerrainDetailChanged(const LLSD& newvalue)
static bool handleSetShaderChanged(const LLSD& newvalue)
{
+ // changing shader level may invalidate existing cached bump maps, as the shader type determines the format of the bump map it expects - clear and repopulate the bump cache
+ gBumpImageList.destroyGL();
+ gBumpImageList.restoreGL();
+
LLViewerShaderMgr::instance()->setShaders();
return true;
}
@@ -299,15 +298,6 @@ static bool handleWLSkyDetailChanged(const LLSD&)
return true;
}
-static bool handleRenderLightingDetailChanged(const LLSD& newvalue)
-{
- if (gPipeline.isInit())
- {
- gPipeline.setLightingDetail(newvalue.asInteger());
- }
- return true;
-}
-
static bool handleResetVertexBuffersChanged(const LLSD&)
{
if (gPipeline.isInit())
@@ -504,6 +494,10 @@ void settings_setup_listeners()
gSavedSettings.getControl("RenderAvatarVP")->getSignal()->connect(boost::bind(&handleSetShaderChanged, _2));
gSavedSettings.getControl("VertexShaderEnable")->getSignal()->connect(boost::bind(&handleSetShaderChanged, _2));
gSavedSettings.getControl("RenderUIBuffer")->getSignal()->connect(boost::bind(&handleReleaseGLBufferChanged, _2));
+ gSavedSettings.getControl("RenderSpecularResX")->getSignal()->connect(boost::bind(&handleReleaseGLBufferChanged, _2));
+ gSavedSettings.getControl("RenderSpecularResY")->getSignal()->connect(boost::bind(&handleReleaseGLBufferChanged, _2));
+ gSavedSettings.getControl("RenderSpecularExponent")->getSignal()->connect(boost::bind(&handleReleaseGLBufferChanged, _2));
+ gSavedSettings.getControl("RenderFSAASamples")->getSignal()->connect(boost::bind(&handleReleaseGLBufferChanged, _2));
gSavedSettings.getControl("RenderShadowResolutionScale")->getSignal()->connect(boost::bind(&handleReleaseGLBufferChanged, _2));
gSavedSettings.getControl("RenderGlow")->getSignal()->connect(boost::bind(&handleReleaseGLBufferChanged, _2));
gSavedSettings.getControl("RenderGlow")->getSignal()->connect(boost::bind(&handleSetShaderChanged, _2));
@@ -524,7 +518,8 @@ void settings_setup_listeners()
gSavedSettings.getControl("RenderMaxPartCount")->getSignal()->connect(boost::bind(&handleMaxPartCountChanged, _2));
gSavedSettings.getControl("RenderDynamicLOD")->getSignal()->connect(boost::bind(&handleRenderDynamicLODChanged, _2));
gSavedSettings.getControl("RenderDebugTextureBind")->getSignal()->connect(boost::bind(&handleResetVertexBuffersChanged, _2));
- gSavedSettings.getControl("RenderFastAlpha")->getSignal()->connect(boost::bind(&handleResetVertexBuffersChanged, _2));
+ gSavedSettings.getControl("RenderAutoMaskAlphaDeferred")->getSignal()->connect(boost::bind(&handleResetVertexBuffersChanged, _2));
+ gSavedSettings.getControl("RenderAutoMaskAlphaNonDeferred")->getSignal()->connect(boost::bind(&handleResetVertexBuffersChanged, _2));
gSavedSettings.getControl("RenderObjectBump")->getSignal()->connect(boost::bind(&handleResetVertexBuffersChanged, _2));
gSavedSettings.getControl("RenderMaxVBOSize")->getSignal()->connect(boost::bind(&handleResetVertexBuffersChanged, _2));
gSavedSettings.getControl("RenderUseFBO")->getSignal()->connect(boost::bind(&handleRenderUseFBOChanged, _2));
@@ -534,7 +529,8 @@ void settings_setup_listeners()
gSavedSettings.getControl("RenderDebugPipeline")->getSignal()->connect(boost::bind(&handleRenderDebugPipelineChanged, _2));
gSavedSettings.getControl("RenderResolutionDivisor")->getSignal()->connect(boost::bind(&handleRenderResolutionDivisorChanged, _2));
gSavedSettings.getControl("RenderDeferred")->getSignal()->connect(boost::bind(&handleSetShaderChanged, _2));
- gSavedSettings.getControl("RenderDeferredShadow")->getSignal()->connect(boost::bind(&handleSetShaderChanged, _2));
+ gSavedSettings.getControl("RenderShadowDetail")->getSignal()->connect(boost::bind(&handleSetShaderChanged, _2));
+ gSavedSettings.getControl("RenderDeferredSSAO")->getSignal()->connect(boost::bind(&handleSetShaderChanged, _2));
gSavedSettings.getControl("RenderDeferredGI")->getSignal()->connect(boost::bind(&handleSetShaderChanged, _2));
gSavedSettings.getControl("TextureMemory")->getSignal()->connect(boost::bind(&handleVideoMemoryChanged, _2));
gSavedSettings.getControl("AuditTexture")->getSignal()->connect(boost::bind(&handleAuditTextureChanged, _2));
@@ -559,8 +555,8 @@ void settings_setup_listeners()
gSavedSettings.getControl("MuteAmbient")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _2));
gSavedSettings.getControl("MuteUI")->getSignal()->connect(boost::bind(&handleAudioVolumeChanged, _2));
gSavedSettings.getControl("RenderVBOEnable")->getSignal()->connect(boost::bind(&handleRenderUseVBOChanged, _2));
+ gSavedSettings.getControl("RenderUseStreamVBO")->getSignal()->connect(boost::bind(&handleResetVertexBuffersChanged, _2));
gSavedSettings.getControl("WLSkyDetail")->getSignal()->connect(boost::bind(&handleWLSkyDetailChanged, _2));
- gSavedSettings.getControl("RenderLightingDetail")->getSignal()->connect(boost::bind(&handleRenderLightingDetailChanged, _2));
gSavedSettings.getControl("NumpadControl")->getSignal()->connect(boost::bind(&handleNumpadControlChanged, _2));
gSavedSettings.getControl("JoystickAxis0")->getSignal()->connect(boost::bind(&handleJoystickChanged, _2));
gSavedSettings.getControl("JoystickAxis1")->getSignal()->connect(boost::bind(&handleJoystickChanged, _2));
diff --git a/indra/newview/llviewercontrol.h b/indra/newview/llviewercontrol.h
index 9b4e80cae0..22b48f8906 100644
--- a/indra/newview/llviewercontrol.h
+++ b/indra/newview/llviewercontrol.h
@@ -2,31 +2,25 @@
* @file llviewercontrol.h
* @brief references to viewer-specific control files
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewercontrollistener.cpp b/indra/newview/llviewercontrollistener.cpp
index 0b9db1b906..8bc25fa281 100644
--- a/indra/newview/llviewercontrollistener.cpp
+++ b/indra/newview/llviewercontrollistener.cpp
@@ -4,8 +4,25 @@
* @date 2009-07-09
* @brief Implementation for llviewercontrollistener.
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- * Copyright (c) 2009, Linden Research, Inc.
+ * $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$
*/
diff --git a/indra/newview/llviewercontrollistener.h b/indra/newview/llviewercontrollistener.h
index 88afbb871d..fd211b97af 100644
--- a/indra/newview/llviewercontrollistener.h
+++ b/indra/newview/llviewercontrollistener.h
@@ -4,8 +4,25 @@
* @date 2009-07-09
* @brief Event API for subset of LLViewerControl methods
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- * Copyright (c) 2009, Linden Research, Inc.
+ * $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$
*/
diff --git a/indra/newview/llviewerdisplay.cpp b/indra/newview/llviewerdisplay.cpp
index ab6ff88073..916cbe2267 100644
--- a/indra/newview/llviewerdisplay.cpp
+++ b/indra/newview/llviewerdisplay.cpp
@@ -2,31 +2,25 @@
* @file llviewerdisplay.cpp
* @brief LLViewerDisplay class implementation
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -91,6 +85,7 @@ LLPointer<LLViewerTexture> gDisconnectedImagep = NULL;
// used to toggle renderer back on after teleport
const F32 TELEPORT_RENDER_DELAY = 20.f; // Max time a teleport is allowed to take before we raise the curtain
const F32 TELEPORT_ARRIVAL_DELAY = 2.f; // Time to preload the world before raising the curtain after we've actually already arrived.
+const F32 TELEPORT_LOCAL_DELAY = 1.0f; // Delay to prevent teleports after starting an in-sim teleport.
BOOL gTeleportDisplay = FALSE;
LLFrameTimer gTeleportDisplayTimer;
LLFrameTimer gTeleportArrivalTimer;
@@ -412,6 +407,18 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
}
break;
+ case LLAgent::TELEPORT_LOCAL:
+ // Short delay when teleporting in the same sim (progress screen active but not shown - did not
+ // fall-through from TELEPORT_START)
+ {
+ if( gTeleportDisplayTimer.getElapsedTimeF32() > TELEPORT_LOCAL_DELAY )
+ {
+ //LLFirstUse::useTeleport();
+ gAgent.setTeleportState( LLAgent::TELEPORT_NONE );
+ }
+ }
+ break;
+
case LLAgent::TELEPORT_NONE:
// No teleport in progress
gViewerWindow->setShowProgress(FALSE);
@@ -595,7 +602,8 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
LLPipeline::sUseOcclusion = 3;
}
- LLPipeline::sFastAlpha = gSavedSettings.getBOOL("RenderFastAlpha");
+ LLPipeline::sAutoMaskAlphaDeferred = gSavedSettings.getBOOL("RenderAutoMaskAlphaDeferred");
+ LLPipeline::sAutoMaskAlphaNonDeferred = gSavedSettings.getBOOL("RenderAutoMaskAlphaNonDeferred");
LLPipeline::sUseFarClip = gSavedSettings.getBOOL("RenderUseFarClip");
LLVOAvatar::sMaxVisible = (U32)gSavedSettings.getS32("RenderAvatarMaxVisible");
LLPipeline::sDelayVBUpdate = gSavedSettings.getBOOL("RenderDelayVBUpdate");
@@ -867,12 +875,6 @@ void display(BOOL rebuild, F32 zoom_factor, int subfield, BOOL for_snapshot)
}
}
- /// We copy the frame buffer straight into a texture here,
- /// and then display it again with compositor effects.
- /// Using render to texture would be faster/better, but I don't have a
- /// grasp of their full display stack just yet.
- // gPostProcess->apply(gViewerWindow->getWindowWidthRaw(), gViewerWindow->getWindowHeightRaw());
-
if (LLPipeline::sRenderDeferred && !LLPipeline::sUnderWaterRender)
{
gPipeline.renderDeferredLighting();
@@ -934,9 +936,10 @@ void render_hud_attachments()
bool render_particles = gPipeline.hasRenderType(LLPipeline::RENDER_TYPE_PARTICLES) && gSavedSettings.getBOOL("RenderHUDParticles");
//only render hud objects
- U32 mask = gPipeline.getRenderTypeMask();
+ gPipeline.pushRenderTypeMask();
+
// turn off everything
- gPipeline.setRenderTypeMask(0);
+ gPipeline.andRenderTypeMask(LLPipeline::END_RENDER_TYPES);
// turn on HUD
gPipeline.toggleRenderType(LLPipeline::RENDER_TYPE_HUD);
// turn on HUD particles
@@ -990,7 +993,8 @@ void render_hud_attachments()
render_hud_elements();
//restore type mask
- gPipeline.setRenderTypeMask(mask);
+ gPipeline.popRenderTypeMask();
+
if (has_ui)
{
gPipeline.toggleRenderDebugFeature((void*) LLPipeline::RENDER_DEBUG_FEATURE_UI);
@@ -1115,7 +1119,7 @@ void render_ui(F32 zoom_factor, int subfield)
{
gPipeline.renderBloom(gSnapshot, zoom_factor, subfield);
}
-
+
render_hud_elements();
render_hud_attachments();
}
diff --git a/indra/newview/llviewerdisplay.h b/indra/newview/llviewerdisplay.h
index 0d604032c9..c6e86751e8 100644
--- a/indra/newview/llviewerdisplay.h
+++ b/indra/newview/llviewerdisplay.h
@@ -2,31 +2,25 @@
* @file llviewerdisplay.h
* @brief LLViewerDisplay class header file
*
- * $LicenseInfo:firstyear=2004&license=viewergpl$
- *
- * Copyright (c) 2004-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2004&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewerfloaterreg.cpp b/indra/newview/llviewerfloaterreg.cpp
index efe59744bc..7490ccf77a 100644
--- a/indra/newview/llviewerfloaterreg.cpp
+++ b/indra/newview/llviewerfloaterreg.cpp
@@ -2,31 +2,25 @@
* @file llviewerfloaterreg.cpp
* @brief LLViewerFloaterReg class registers floaters used in the viewer
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -81,7 +75,6 @@
#include "llfloaternotificationsconsole.h"
#include "llfloateropenobject.h"
#include "llfloaterpay.h"
-#include "llfloaterparcel.h"
#include "llfloaterperms.h"
#include "llfloaterpostcard.h"
#include "llfloaterpostprocess.h"
@@ -93,6 +86,7 @@
#include "llfloaterscriptlimits.h"
#include "llfloatersellland.h"
#include "llfloatersettingsdebug.h"
+#include "llfloatersidetraytab.h"
#include "llfloatersnapshot.h"
#include "llfloatertelehub.h"
#include "llfloatertestinspectors.h"
@@ -101,8 +95,6 @@
#include "llfloatertos.h"
#include "llfloatertopobjects.h"
#include "llfloateruipreview.h"
-#include "llfloaterurldisplay.h"
-#include "llfloatervoicedevicesettings.h"
#include "llfloatervoiceeffect.h"
#include "llfloaterwater.h"
#include "llfloaterwhitelistentry.h"
@@ -202,16 +194,13 @@ void LLViewerFloaterReg::registerFloaters()
LLFloaterReg::add("openobject", "floater_openobject.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterOpenObject>);
LLFloaterReg::add("outgoing_call", "floater_outgoing_call.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLOutgoingCallDialog>);
- LLFloaterReg::add("parcel_info", "floater_preview_url.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterParcelInfo>);
LLFloaterPayUtil::registerFloater();
LLFloaterReg::add("postcard", "floater_postcard.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterPostcard>);
LLFloaterReg::add("preferences", "floater_preferences.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterPreference>);
LLFloaterReg::add("prefs_hardware_settings", "floater_hardware_settings.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterHardwareSettings>);
LLFloaterReg::add("perm_prefs", "floater_perm_prefs.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterPerms>);
- LLFloaterReg::add("preview_url", "floater_preview_url.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterURLDisplay>);
LLFloaterReg::add("pref_joystick", "floater_joystick.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterJoystick>);
- LLFloaterReg::add("pref_voicedevicesettings", "floater_device_settings.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterVoiceDeviceSettings>);
LLFloaterReg::add("preview_anim", "floater_preview_animation.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLPreviewAnim>, "preview");
LLFloaterReg::add("preview_gesture", "floater_preview_gesture.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLPreviewGesture>, "preview");
LLFloaterReg::add("preview_notecard", "floater_preview_notecard.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLPreviewNotecard>, "preview");
@@ -244,6 +233,7 @@ void LLViewerFloaterReg::registerFloaters()
LLFloaterReg::add("script_limits", "floater_script_limits.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterScriptLimits>);
LLFloaterReg::add("sell_land", "floater_sell_land.xml", &LLFloaterSellLand::buildFloater);
LLFloaterReg::add("settings_debug", "floater_settings_debug.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterSettingsDebug>);
+ LLFloaterReg::add("side_bar_tab", "floater_side_bar_tab.xml", &LLFloaterReg::build<LLFloaterSideTrayTab>);
LLFloaterReg::add("stats", "floater_stats.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloater>);
LLFloaterReg::add("start_queue", "floater_script_queue.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterRunQueue>);
LLFloaterReg::add("stop_queue", "floater_script_queue.xml", (LLFloaterBuildFunc)&LLFloaterReg::build<LLFloaterNotRunQueue>);
diff --git a/indra/newview/llviewerfloaterreg.h b/indra/newview/llviewerfloaterreg.h
index 08c9589ebb..8a827a003e 100644
--- a/indra/newview/llviewerfloaterreg.h
+++ b/indra/newview/llviewerfloaterreg.h
@@ -2,31 +2,25 @@
* @file llviewerfloaterreg.h
* @brief The LLViewerFloaterReg class declaration
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewerfoldertype.cpp b/indra/newview/llviewerfoldertype.cpp
index 3105a6ec43..de1c8d14a8 100644
--- a/indra/newview/llviewerfoldertype.cpp
+++ b/indra/newview/llviewerfoldertype.cpp
@@ -2,31 +2,25 @@
* @file llfoldertype.cpp
* @brief Implementation of LLViewerFolderType functionality.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewerfoldertype.h b/indra/newview/llviewerfoldertype.h
index 3744ac20f8..f5938de619 100644
--- a/indra/newview/llviewerfoldertype.h
+++ b/indra/newview/llviewerfoldertype.h
@@ -2,31 +2,25 @@
* @file llviewerfoldertype.h
* @brief Declaration of LLAssetType.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewergenericmessage.cpp b/indra/newview/llviewergenericmessage.cpp
index e06766bbb8..f8a2be14d4 100644
--- a/indra/newview/llviewergenericmessage.cpp
+++ b/indra/newview/llviewergenericmessage.cpp
@@ -3,31 +3,25 @@
* @brief Handle processing of "generic messages" which contain short lists of strings.
* @author James Cook
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewergenericmessage.h b/indra/newview/llviewergenericmessage.h
index 6b0a2e5d81..9d451ec0bc 100644
--- a/indra/newview/llviewergenericmessage.h
+++ b/indra/newview/llviewergenericmessage.h
@@ -3,31 +3,25 @@
* @brief Handle processing of "generic messages" which contain short lists of strings.
* @author James Cook
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewergesture.cpp b/indra/newview/llviewergesture.cpp
index 93b126b67d..a32a78cbf9 100644
--- a/indra/newview/llviewergesture.cpp
+++ b/indra/newview/llviewergesture.cpp
@@ -2,31 +2,25 @@
* @file llviewergesture.cpp
* @brief LLViewerGesture class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewergesture.h b/indra/newview/llviewergesture.h
index f5c4e578d2..8dba10226b 100644
--- a/indra/newview/llviewergesture.h
+++ b/indra/newview/llviewergesture.h
@@ -2,31 +2,25 @@
* @file llviewergesture.h
* @brief LLViewerGesture class header file
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewerhelp.cpp b/indra/newview/llviewerhelp.cpp
index b82538dacb..9fe8c142b9 100644
--- a/indra/newview/llviewerhelp.cpp
+++ b/indra/newview/llviewerhelp.cpp
@@ -3,31 +3,25 @@
* @brief Utility functions for the Help system
* @author Tofu Linden
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewerhelp.h b/indra/newview/llviewerhelp.h
index 07971a593e..7612986227 100644
--- a/indra/newview/llviewerhelp.h
+++ b/indra/newview/llviewerhelp.h
@@ -3,31 +3,25 @@
* @brief Utility functions for the Help system
* @author Tofu Linden
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewerhelputil.cpp b/indra/newview/llviewerhelputil.cpp
index 967a2925e3..ef4b955a5e 100644
--- a/indra/newview/llviewerhelputil.cpp
+++ b/indra/newview/llviewerhelputil.cpp
@@ -3,31 +3,25 @@
* @brief Utility functions for the Help system
* @author Soft Linden
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewerhelputil.h b/indra/newview/llviewerhelputil.h
index 95e6744842..d8f08f3f04 100644
--- a/indra/newview/llviewerhelputil.h
+++ b/indra/newview/llviewerhelputil.h
@@ -3,31 +3,25 @@
* @brief Utility functions for the Help system
* @author Soft Linden
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewerhome.cpp b/indra/newview/llviewerhome.cpp
index 8fdbe0a4ae..e4e60b981c 100644
--- a/indra/newview/llviewerhome.cpp
+++ b/indra/newview/llviewerhome.cpp
@@ -3,31 +3,25 @@
* @brief Model (non-View) component for the web-based Home side panel
* @author Martin Reddy
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewerhome.h b/indra/newview/llviewerhome.h
index 50454a71b7..8e0cdc85ec 100644
--- a/indra/newview/llviewerhome.h
+++ b/indra/newview/llviewerhome.h
@@ -3,31 +3,25 @@
* @brief Model (non-View) component for the web-based Home side panel
* @author Martin Reddy
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewerinventory.cpp b/indra/newview/llviewerinventory.cpp
index 3430f265ae..75a5b14154 100644
--- a/indra/newview/llviewerinventory.cpp
+++ b/indra/newview/llviewerinventory.cpp
@@ -2,31 +2,25 @@
* @file llviewerinventory.cpp
* @brief Implementation of the viewer side inventory objects.
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -67,7 +61,7 @@
#include "llsidepanelappearance.h"
///----------------------------------------------------------------------------
-/// Helper class to store special inventory item names
+/// Helper class to store special inventory item names and their localized values.
///----------------------------------------------------------------------------
class LLLocalizedInventoryItemsDictionary : public LLSingleton<LLLocalizedInventoryItemsDictionary>
{
@@ -93,8 +87,10 @@ public:
mInventoryItemsDict["New Tattoo"] = LLTrans::getString("New Tattoo");
mInventoryItemsDict["Invalid Wearable"] = LLTrans::getString("Invalid Wearable");
+ mInventoryItemsDict["New Gesture"] = LLTrans::getString("New Gesture");
mInventoryItemsDict["New Script"] = LLTrans::getString("New Script");
mInventoryItemsDict["New Folder"] = LLTrans::getString("New Folder");
+ mInventoryItemsDict["New Note"] = LLTrans::getString("New Note");
mInventoryItemsDict["Contents"] = LLTrans::getString("Contents");
mInventoryItemsDict["Gesture"] = LLTrans::getString("Gesture");
@@ -108,7 +104,7 @@ public:
//male
mInventoryItemsDict["Male - Excuse me"] = LLTrans::getString("Male - Excuse me");
- mInventoryItemsDict["Male - Get lost"] = LLTrans::getString("Male - Get lost");
+ mInventoryItemsDict["Male - Get lost"] = LLTrans::getString("Male - Get lost"); // double space after Male. EXT-8319
mInventoryItemsDict["Male - Blow kiss"] = LLTrans::getString("Male - Blow kiss");
mInventoryItemsDict["Male - Boo"] = LLTrans::getString("Male - Boo");
mInventoryItemsDict["Male - Bored"] = LLTrans::getString("Male - Bored");
@@ -120,19 +116,47 @@ public:
mInventoryItemsDict["Male - Wow"] = LLTrans::getString("Male - Wow");
//female
+ mInventoryItemsDict["Female - Chuckle"] = LLTrans::getString("Female - Chuckle");
+ mInventoryItemsDict["Female - Cry"] = LLTrans::getString("Female - Cry");
+ mInventoryItemsDict["Female - Embarrassed"] = LLTrans::getString("Female - Embarrassed");
mInventoryItemsDict["Female - Excuse me"] = LLTrans::getString("Female - Excuse me");
- mInventoryItemsDict["Female - Get lost"] = LLTrans::getString("Female - Get lost");
+ mInventoryItemsDict["Female - Get lost"] = LLTrans::getString("Female - Get lost"); // double space after Female. EXT-8319
mInventoryItemsDict["Female - Blow kiss"] = LLTrans::getString("Female - Blow kiss");
mInventoryItemsDict["Female - Boo"] = LLTrans::getString("Female - Boo");
mInventoryItemsDict["Female - Bored"] = LLTrans::getString("Female - Bored");
mInventoryItemsDict["Female - Hey"] = LLTrans::getString("Female - Hey");
+ mInventoryItemsDict["Female - Hey baby"] = LLTrans::getString("Female - Hey baby");
mInventoryItemsDict["Female - Laugh"] = LLTrans::getString("Female - Laugh");
+ mInventoryItemsDict["Female - Looking good"] = LLTrans::getString("Female - Looking good");
+ mInventoryItemsDict["Female - Over here"] = LLTrans::getString("Female - Over here");
+ mInventoryItemsDict["Female - Please"] = LLTrans::getString("Female - Please");
mInventoryItemsDict["Female - Repulsed"] = LLTrans::getString("Female - Repulsed");
mInventoryItemsDict["Female - Shrug"] = LLTrans::getString("Female - Shrug");
mInventoryItemsDict["Female - Stick tougue out"]= LLTrans::getString("Female - Stick tougue out");
mInventoryItemsDict["Female - Wow"] = LLTrans::getString("Female - Wow");
}
+
+ /**
+ * Finds passed name in dictionary and replaces it with found localized value.
+ *
+ * @param object_name - string to be localized.
+ * @return true if passed name was found and localized, false otherwise.
+ */
+ bool localizeInventoryObjectName(std::string& object_name)
+ {
+ LL_DEBUGS("InventoryLocalize") << "Searching for localization: " << object_name << LL_ENDL;
+
+ std::map<std::string, std::string>::const_iterator dictionary_iter = mInventoryItemsDict.find(object_name);
+
+ bool found = dictionary_iter != mInventoryItemsDict.end();
+ if(found)
+ {
+ object_name = dictionary_iter->second;
+ LL_DEBUGS("InventoryLocalize") << "Found, new name is: " << object_name << LL_ENDL;
+ }
+ return found;
+ }
};
@@ -391,16 +415,7 @@ BOOL LLViewerInventoryItem::unpackMessage(LLMessageSystem* msg, const char* bloc
{
BOOL rv = LLInventoryItem::unpackMessage(msg, block, block_num);
- std::string localized_str;
-
- std::map<std::string, std::string>::const_iterator dictionary_iter;
-
- dictionary_iter = LLLocalizedInventoryItemsDictionary::getInstance()->mInventoryItemsDict.find(mName);
-
- if(dictionary_iter != LLLocalizedInventoryItemsDictionary::getInstance()->mInventoryItemsDict.end())
- {
- mName = dictionary_iter->second;
- }
+ LLLocalizedInventoryItemsDictionary::getInstance()->localizeInventoryObjectName(mName);
mIsComplete = TRUE;
return rv;
@@ -625,7 +640,15 @@ bool LLViewerInventoryCategory::fetch()
// AIS folks are aware of the issue and have a fix in process.
// see ticket for details.
- std::string url = gAgent.getRegion()->getCapability("WebFetchInventoryDescendents");
+ std::string url;
+ if (gAgent.getRegion())
+ {
+ url = gAgent.getRegion()->getCapability("WebFetchInventoryDescendents");
+ }
+ else
+ {
+ llwarns << "agent region is null" << llendl;
+ }
if (!url.empty()) //Capability found. Build up LLSD and use it.
{
LLInventoryModelBackgroundFetch::instance().start(mUUID, false);
@@ -812,6 +835,11 @@ void LLViewerInventoryCategory::changeType(LLFolderType::EType new_folder_type)
gInventory.addChangedMask(LLInventoryObserver::LABEL, folder_id);
}
+void LLViewerInventoryCategory::localizeName()
+{
+ LLLocalizedInventoryItemsDictionary::getInstance()->localizeInventoryObjectName(mName);
+}
+
///----------------------------------------------------------------------------
/// Local function definitions
///----------------------------------------------------------------------------
@@ -839,6 +867,21 @@ LLInventoryCallbackManager::~LLInventoryCallbackManager()
sInstance = NULL;
}
+//static
+void LLInventoryCallbackManager::destroyClass()
+{
+ if (sInstance)
+ {
+ for (callback_map_t::iterator it = sInstance->mMap.begin(), end_it = sInstance->mMap.end(); it != end_it; ++it)
+ {
+ // drop LLPointer reference to callback
+ it->second = NULL;
+ }
+ sInstance->mMap.clear();
+ }
+}
+
+
U32 LLInventoryCallbackManager::registerCB(LLPointer<LLInventoryCallback> cb)
{
if (cb.isNull())
@@ -1124,6 +1167,14 @@ void move_inventory_item(
void copy_inventory_from_notecard(const LLUUID& object_id, const LLUUID& notecard_inv_id, const LLInventoryItem *src, U32 callback_id)
{
+ if (NULL == src)
+ {
+ LL_WARNS("copy_inventory_from_notecard") << "Null pointer to item was passed for object_id "
+ << object_id << " and notecard_inv_id "
+ << notecard_inv_id << LL_ENDL;
+ return;
+ }
+
LLViewerRegion* viewer_region = NULL;
LLViewerObject* vo = NULL;
if (object_id.notNull() && (vo = gObjectList.findObject(object_id)) != NULL)
@@ -1146,6 +1197,16 @@ void copy_inventory_from_notecard(const LLUUID& object_id, const LLUUID& notecar
return;
}
+ // check capability to prevent a crash while LL_ERRS in LLCapabilityListener::capListener. See EXT-8459.
+ std::string url = viewer_region->getCapability("CopyInventoryFromNotecard");
+ if (url.empty())
+ {
+ LL_WARNS("copy_inventory_from_notecard") << "There is no 'CopyInventoryFromNotecard' capability"
+ << " for region: " << viewer_region->getName()
+ << LL_ENDL;
+ return;
+ }
+
LLSD request, body;
body["notecard-id"] = notecard_inv_id;
body["object-id"] = object_id;
diff --git a/indra/newview/llviewerinventory.h b/indra/newview/llviewerinventory.h
index d0d3ad693e..7f5a92eeab 100644
--- a/indra/newview/llviewerinventory.h
+++ b/indra/newview/llviewerinventory.h
@@ -2,31 +2,25 @@
* @file llviewerinventory.h
* @brief Declaration of the inventory bits that only used on the viewer.
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -36,6 +30,7 @@
#include "llinventory.h"
#include "llframetimer.h"
#include "llwearable.h"
+#include "llui.h" //for LLDestroyClass
#include <boost/signals2.hpp> // boost::signals2::trackable
@@ -228,6 +223,11 @@ public:
bool importFileLocal(LLFILE* fp);
void determineFolderType();
void changeType(LLFolderType::EType new_folder_type);
+
+private:
+ friend class LLInventoryModel;
+ void localizeName(); // intended to be called from the LLInventoryModel
+
protected:
LLUUID mOwnerID;
S32 mVersion;
@@ -299,8 +299,9 @@ private:
// misc functions
//void inventory_reliable_callback(void**, S32 status);
-class LLInventoryCallbackManager
+class LLInventoryCallbackManager : public LLDestroyClass<LLInventoryCallbackManager>
{
+ friend class LLDestroyClass<LLInventoryCallbackManager>;
public:
LLInventoryCallbackManager();
~LLInventoryCallbackManager();
@@ -308,9 +309,12 @@ public:
void fire(U32 callback_id, const LLUUID& item_id);
U32 registerCB(LLPointer<LLInventoryCallback> cb);
private:
- std::map<U32, LLPointer<LLInventoryCallback> > mMap;
+ typedef std::map<U32, LLPointer<LLInventoryCallback> > callback_map_t;
+ callback_map_t mMap;
U32 mLastCallback;
static LLInventoryCallbackManager *sInstance;
+ static void destroyClass();
+
public:
static bool is_instantiated() { return sInstance != NULL; }
};
diff --git a/indra/newview/llviewerjoint.cpp b/indra/newview/llviewerjoint.cpp
index 95f05b5f5f..0cf5fe0ada 100644
--- a/indra/newview/llviewerjoint.cpp
+++ b/indra/newview/llviewerjoint.cpp
@@ -2,31 +2,25 @@
* @file llviewerjoint.cpp
* @brief Implementation of LLViewerJoint class
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -440,13 +434,13 @@ void LLViewerJoint::updateFaceSizes(U32 &num_vertices, U32& num_indices, F32 pix
}
}
-void LLViewerJoint::updateFaceData(LLFace *face, F32 pixel_area, BOOL damp_wind)
+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);
+ joint->updateFaceData(face, pixel_area, damp_wind, terse_update);
}
}
diff --git a/indra/newview/llviewerjoint.h b/indra/newview/llviewerjoint.h
index 0d3092a044..76e3833acb 100644
--- a/indra/newview/llviewerjoint.h
+++ b/indra/newview/llviewerjoint.h
@@ -2,31 +2,25 @@
* @file llviewerjoint.h
* @brief Implementation of LLViewerJoint class
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -126,7 +120,7 @@ public:
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);
+ 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();
diff --git a/indra/newview/llviewerjointattachment.cpp b/indra/newview/llviewerjointattachment.cpp
index 2b4b78d82d..ecb7e2064d 100644
--- a/indra/newview/llviewerjointattachment.cpp
+++ b/indra/newview/llviewerjointattachment.cpp
@@ -2,31 +2,25 @@
* @file llviewerjointattachment.cpp
* @brief Implementation of LLViewerJointAttachment class
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -35,12 +29,11 @@
#include "llviewerjointattachment.h"
#include "llagentconstants.h"
-
#include "llviewercontrol.h"
#include "lldrawable.h"
#include "llgl.h"
#include "llrender.h"
-#include "llvoavatar.h"
+#include "llvoavatarself.h"
#include "llvolume.h"
#include "pipeline.h"
#include "llspatialpartition.h"
@@ -164,6 +157,9 @@ void LLViewerJointAttachment::setupDrawable(LLViewerObject *object)
//-----------------------------------------------------------------------------
BOOL LLViewerJointAttachment::addObject(LLViewerObject* object)
{
+ object->extractAttachmentItemID();
+
+ // Same object reattached
if (isObjectAttached(object))
{
llinfos << "(same object re-attached)" << llendl;
@@ -171,20 +167,19 @@ BOOL LLViewerJointAttachment::addObject(LLViewerObject* object)
// Pass through anyway to let setupDrawable()
// re-connect object to the joint correctly
}
-
- // Find the inventory item ID of the attached object
- LLNameValue* item_id_nv = object->getNVPair("AttachItemID");
- if( item_id_nv )
+
+ // Two instances of the same inventory item attached --
+ // Request detach, and kill the object in the meantime.
+ if (getAttachedObject(object->getAttachmentItemID()))
{
- const char* s = item_id_nv->getString();
- if( s )
- {
- LLUUID item_id;
- item_id.set(s);
- object->setItemID(item_id);
- lldebugs << "getNVPair( AttachItemID ) = " << item_id << llendl;
- }
+ llinfos << "(same object re-attached)" << llendl;
+ object->markDead();
+
+ // If this happens to be attached to self, then detach.
+ LLVOAvatarSelf::detachAttachmentIntoInventory(object->getAttachmentItemID());
+ return FALSE;
}
+
mAttachedObjects.push_back(object);
setupDrawable(object);
@@ -207,7 +202,7 @@ BOOL LLViewerJointAttachment::addObject(LLViewerObject* object)
}
calcLOD();
mUpdateXform = TRUE;
-
+
return TRUE;
}
@@ -303,7 +298,7 @@ void LLViewerJointAttachment::removeObject(LLViewerObject *object)
{
mUpdateXform = FALSE;
}
- object->setItemID(LLUUID::null);
+ object->setAttachmentItemID(LLUUID::null);
}
//-----------------------------------------------------------------------------
@@ -429,7 +424,7 @@ const LLViewerObject *LLViewerJointAttachment::getAttachedObject(const LLUUID &o
++iter)
{
const LLViewerObject* attached_object = (*iter);
- if (attached_object->getItemID() == object_id)
+ if (attached_object->getAttachmentItemID() == object_id)
{
return attached_object;
}
@@ -444,7 +439,7 @@ LLViewerObject *LLViewerJointAttachment::getAttachedObject(const LLUUID &object_
++iter)
{
LLViewerObject* attached_object = (*iter);
- if (attached_object->getItemID() == object_id)
+ if (attached_object->getAttachmentItemID() == object_id)
{
return attached_object;
}
diff --git a/indra/newview/llviewerjointattachment.h b/indra/newview/llviewerjointattachment.h
index 221b5460f1..9addafaee1 100644
--- a/indra/newview/llviewerjointattachment.h
+++ b/indra/newview/llviewerjointattachment.h
@@ -2,31 +2,25 @@
* @file llviewerjointattachment.h
* @brief Implementation of LLViewerJointAttachment class
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewerjointmesh.cpp b/indra/newview/llviewerjointmesh.cpp
index 7225aa1523..ae2aa41b3a 100644
--- a/indra/newview/llviewerjointmesh.cpp
+++ b/indra/newview/llviewerjointmesh.cpp
@@ -2,31 +2,25 @@
* @file llviewerjointmesh.cpp
* @brief Implementation of LLViewerJointMesh class
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -667,7 +661,9 @@ void LLViewerJointMesh::updateFaceSizes(U32 &num_vertices, U32& num_indices, F32
//-----------------------------------------------------------------------------
// updateFaceData()
//-----------------------------------------------------------------------------
-void LLViewerJointMesh::updateFaceData(LLFace *face, F32 pixel_area, BOOL damp_wind)
+static LLFastTimer::DeclareTimer FTM_AVATAR_FACE("Avatar Face");
+
+void LLViewerJointMesh::updateFaceData(LLFace *face, F32 pixel_area, BOOL damp_wind, bool terse_update)
{
mFace = face;
@@ -676,6 +672,8 @@ void LLViewerJointMesh::updateFaceData(LLFace *face, F32 pixel_area, BOOL damp_w
return;
}
+ LLFastTimer t(FTM_AVATAR_FACE);
+
LLStrider<LLVector3> verticesp;
LLStrider<LLVector3> normalsp;
LLStrider<LLVector2> tex_coordsp;
@@ -694,29 +692,98 @@ void LLViewerJointMesh::updateFaceData(LLFace *face, F32 pixel_area, BOOL damp_w
face->mVertexBuffer->getIndexStrider(indicesp);
stop_glerror();
- for (U16 i = 0; i < mMesh->getNumVertices(); i++)
+ verticesp += mMesh->mFaceVertexOffset;
+ tex_coordsp += mMesh->mFaceVertexOffset;
+ normalsp += mMesh->mFaceVertexOffset;
+ vertex_weightsp += mMesh->mFaceVertexOffset;
+ clothing_weightsp += mMesh->mFaceVertexOffset;
+
+ const U32* __restrict coords = (U32*) mMesh->getCoords();
+ const U32* __restrict tex_coords = (U32*) mMesh->getTexCoords();
+ const U32* __restrict normals = (U32*) mMesh->getNormals();
+ const U32* __restrict weights = (U32*) mMesh->getWeights();
+ const U32* __restrict cloth_weights = (U32*) mMesh->getClothingWeights();
+
+ const U32 num_verts = mMesh->getNumVertices();
+
+ U32 i = 0;
+
+ const U32 skip = verticesp.getSkip()/sizeof(U32);
+
+ U32* __restrict v = (U32*) verticesp.get();
+ U32* __restrict n = (U32*) normalsp.get();
+
+ if (terse_update)
{
- verticesp[mMesh->mFaceVertexOffset + i] = *(mMesh->getCoords() + i);
- tex_coordsp[mMesh->mFaceVertexOffset + i] = *(mMesh->getTexCoords() + i);
- normalsp[mMesh->mFaceVertexOffset + i] = *(mMesh->getNormals() + i);
- vertex_weightsp[mMesh->mFaceVertexOffset + i] = *(mMesh->getWeights() + i);
- if (damp_wind)
+ for (S32 i = num_verts; i > 0; --i)
{
- clothing_weightsp[mMesh->mFaceVertexOffset + i] = LLVector4(0,0,0,0);
+ //morph target application only, only update positions and normals
+ v[0] = coords[0];
+ v[1] = coords[1];
+ v[2] = coords[2];
+ coords += 3;
+ v += skip;
}
- else
+
+ for (S32 i = num_verts; i > 0; --i)
{
- clothing_weightsp[mMesh->mFaceVertexOffset + i] = (*(mMesh->getClothingWeights() + i));
+ n[0] = normals[0];
+ n[1] = normals[1];
+ n[2] = normals[2];
+ normals += 3;
+ n += skip;
}
}
+ else
+ {
- for (S32 i = 0; i < mMesh->getNumFaces(); i++)
- {
- for (U32 j = 0; j < 3; j++)
+ U32* __restrict tc = (U32*) tex_coordsp.get();
+ U32* __restrict vw = (U32*) vertex_weightsp.get();
+ U32* __restrict cw = (U32*) clothing_weightsp.get();
+
+ do
+ {
+ v[0] = *(coords++);
+ v[1] = *(coords++);
+ v[2] = *(coords++);
+ v += skip;
+
+ tc[0] = *(tex_coords++);
+ tc[1] = *(tex_coords++);
+ tc += skip;
+
+ n[0] = *(normals++);
+ n[1] = *(normals++);
+ n[2] = *(normals++);
+ n += skip;
+
+ vw[0] = *(weights++);
+ vw += skip;
+
+ cw[0] = *(cloth_weights++);
+ cw[1] = *(cloth_weights++);
+ cw[2] = *(cloth_weights++);
+ cw[3] = *(cloth_weights++);
+ cw += skip;
+ }
+ while (++i < num_verts);
+
+ const U32 idx_count = mMesh->getNumFaces()*3;
+
+ indicesp += mMesh->mFaceIndexOffset;
+
+ U16* __restrict idx = indicesp.get();
+ S32* __restrict src_idx = (S32*) mMesh->getFaces();
+
+ i = 0;
+
+ const S32 offset = (S32) mMesh->mFaceVertexOffset;
+
+ do
{
- U32 k = i*3+j+mMesh->mFaceIndexOffset;
- indicesp[k] = mMesh->getFaces()[i][j] + mMesh->mFaceVertexOffset;
+ *(idx++) = *(src_idx++)+offset;
}
+ while (++i < idx_count);
}
}
}
diff --git a/indra/newview/llviewerjointmesh.h b/indra/newview/llviewerjointmesh.h
index d62b0ada85..cab1205d61 100644
--- a/indra/newview/llviewerjointmesh.h
+++ b/indra/newview/llviewerjointmesh.h
@@ -2,31 +2,25 @@
* @file llviewerjointmesh.h
* @brief Implementation of LLViewerJointMesh class
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -140,7 +134,7 @@ public:
/*virtual*/ U32 drawShape( F32 pixelArea, BOOL first_pass, BOOL 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);
+ /*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();
diff --git a/indra/newview/llviewerjointmesh_sse.cpp b/indra/newview/llviewerjointmesh_sse.cpp
index e586b910cd..174b6eae29 100644
--- a/indra/newview/llviewerjointmesh_sse.cpp
+++ b/indra/newview/llviewerjointmesh_sse.cpp
@@ -5,31 +5,25 @@
*
* *NOTE: Disabled on Windows builds. See llv4math.h for details.
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewerjointmesh_sse2.cpp b/indra/newview/llviewerjointmesh_sse2.cpp
index 550044c321..a374ba2471 100644
--- a/indra/newview/llviewerjointmesh_sse2.cpp
+++ b/indra/newview/llviewerjointmesh_sse2.cpp
@@ -5,31 +5,25 @@
*
* *NOTE: Disabled on Windows builds. See llv4math.h for details.
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewerjointmesh_vec.cpp b/indra/newview/llviewerjointmesh_vec.cpp
index 8fb9d1cf68..c9371030ad 100644
--- a/indra/newview/llviewerjointmesh_vec.cpp
+++ b/indra/newview/llviewerjointmesh_vec.cpp
@@ -5,31 +5,25 @@
*
* *NOTE: See llv4math.h for notes on SSE/Altivec vector code.
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewerjoystick.cpp b/indra/newview/llviewerjoystick.cpp
index 240a539f2e..e1dd72dddc 100644
--- a/indra/newview/llviewerjoystick.cpp
+++ b/indra/newview/llviewerjoystick.cpp
@@ -2,31 +2,25 @@
* @file llviewerjoystick.cpp
* @brief Joystick / NDOF device functionality.
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -57,9 +51,6 @@
#define RY_I 5
#define RZ_I 3
-// flycam translations in build mode should be reduced
-const F32 BUILDMODE_FLYCAM_T_SCALE = 3.f;
-
// minimum time after setting away state before coming back
const F32 MIN_AFK_TIME = 2.f;
@@ -924,14 +915,15 @@ void LLViewerJoystick::moveFlycam(bool reset)
cur_delta[i] = llmin(cur_delta[i]+dead_zone[i], 0.f);
}
- // we need smaller camera movements in build mode
+ // We may want to scale camera movements up or down in build mode.
// NOTE: this needs to remain after the deadzone calculation, otherwise
// we have issues with flycam "jumping" when the build dialog is opened/closed -Nyx
if (in_build_mode)
{
if (i == X_I || i == Y_I || i == Z_I)
{
- cur_delta[i] /= BUILDMODE_FLYCAM_T_SCALE;
+ static LLCachedControl<F32> build_mode_scale(gSavedSettings,"FlycamBuildModeScale");
+ cur_delta[i] *= build_mode_scale;
}
}
diff --git a/indra/newview/llviewerjoystick.h b/indra/newview/llviewerjoystick.h
index a3904bd2c3..80c758a5af 100644
--- a/indra/newview/llviewerjoystick.h
+++ b/indra/newview/llviewerjoystick.h
@@ -2,31 +2,25 @@
* @file llviewerjoystick.h
* @brief Viewer joystick / NDOF device functionality.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewerkeyboard.cpp b/indra/newview/llviewerkeyboard.cpp
index dd7390a907..d7e15e7d6c 100644
--- a/indra/newview/llviewerkeyboard.cpp
+++ b/indra/newview/llviewerkeyboard.cpp
@@ -2,31 +2,25 @@
* @file llviewerkeyboard.cpp
* @brief LLViewerKeyboard class implementation
*
- * $LicenseInfo:firstyear=2005&license=viewergpl$
- *
- * Copyright (c) 2005-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewerkeyboard.h b/indra/newview/llviewerkeyboard.h
index e5d8345976..2fa5d5dfa6 100644
--- a/indra/newview/llviewerkeyboard.h
+++ b/indra/newview/llviewerkeyboard.h
@@ -2,31 +2,25 @@
* @file llviewerkeyboard.h
* @brief LLViewerKeyboard class header file
*
- * $LicenseInfo:firstyear=2005&license=viewergpl$
- *
- * Copyright (c) 2005-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewerlayer.cpp b/indra/newview/llviewerlayer.cpp
index 42fd86df95..1a07251e92 100644
--- a/indra/newview/llviewerlayer.cpp
+++ b/indra/newview/llviewerlayer.cpp
@@ -2,31 +2,25 @@
* @file llviewerlayer.cpp
* @brief LLViewerLayer class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewerlayer.h b/indra/newview/llviewerlayer.h
index dc6fb0ca69..f9ec9c0c83 100644
--- a/indra/newview/llviewerlayer.h
+++ b/indra/newview/llviewerlayer.h
@@ -2,31 +2,25 @@
* @file llviewerlayer.h
* @brief LLViewerLayer class header file
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewermedia.cpp b/indra/newview/llviewermedia.cpp
index d7190f26a3..48ab122edf 100644
--- a/indra/newview/llviewermedia.cpp
+++ b/indra/newview/llviewermedia.cpp
@@ -2,31 +2,25 @@
* @file llviewermedia.cpp
* @brief Client interface to the media engine
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -56,6 +50,8 @@
#include "llvoavatar.h"
#include "llvoavatarself.h"
#include "llviewerregion.h"
+#include "llwebsharing.h" // For LLWebSharing::setOpenIDCookie(), *TODO: find a better way to do this!
+#include "llfilepicker.h"
#include "llevent.h" // LLSimpleListener
#include "llnotificationsutil.h"
@@ -65,6 +61,8 @@
//#include "llfirstuse.h"
#include "llwindow.h"
+#include "llfloatermediabrowser.h" // for handling window close requests and geometry change requests in media browser windows.
+
#include <boost/bind.hpp> // for SkinFolder listener
#include <boost/signals2.hpp>
@@ -763,7 +761,7 @@ void LLViewerMedia::updateMedia(void *dummy_arg)
}
// Sort the static instance list using our interest criteria
- std::stable_sort(sViewerMediaImplList.begin(), sViewerMediaImplList.end(), priorityComparitor);
+ sViewerMediaImplList.sort(priorityComparitor);
// Go through the list again and adjust according to priority.
iter = sViewerMediaImplList.begin();
@@ -1318,6 +1316,9 @@ void LLViewerMedia::setOpenIDCookie()
}
getCookieStore()->setCookiesFromHost(sOpenIDCookie, authority.substr(host_start, host_end - host_start));
+
+ // *HACK: Doing this here is nasty, find a better way.
+ LLWebSharing::instance().setOpenIDCookie(sOpenIDCookie);
}
}
@@ -1367,6 +1368,38 @@ void LLViewerMedia::openIDCookieResponse(const std::string &cookie)
setOpenIDCookie();
}
+/////////////////////////////////////////////////////////////////////////////////////////
+// static
+void LLViewerMedia::proxyWindowOpened(const std::string &target, const std::string &uuid)
+{
+ if(uuid.empty())
+ return;
+
+ for (impl_list::iterator iter = sViewerMediaImplList.begin(); iter != sViewerMediaImplList.end(); iter++)
+ {
+ if((*iter)->mMediaSource && (*iter)->mMediaSource->pluginSupportsMediaBrowser())
+ {
+ (*iter)->mMediaSource->proxyWindowOpened(target, uuid);
+ }
+ }
+}
+
+/////////////////////////////////////////////////////////////////////////////////////////
+// static
+void LLViewerMedia::proxyWindowClosed(const std::string &uuid)
+{
+ if(uuid.empty())
+ return;
+
+ for (impl_list::iterator iter = sViewerMediaImplList.begin(); iter != sViewerMediaImplList.end(); iter++)
+ {
+ if((*iter)->mMediaSource && (*iter)->mMediaSource->pluginSupportsMediaBrowser())
+ {
+ (*iter)->mMediaSource->proxyWindowClosed(uuid);
+ }
+ }
+}
+
bool LLViewerMedia::hasInWorldMedia()
{
if (sInWorldMediaDisabled) return false;
@@ -1600,7 +1633,7 @@ void LLViewerMediaImpl::setMediaType(const std::string& media_type)
//////////////////////////////////////////////////////////////////////////////////////////
/*static*/
-LLPluginClassMedia* LLViewerMediaImpl::newSourceFromMediaType(std::string media_type, LLPluginClassMediaOwner *owner /* may be NULL */, S32 default_width, S32 default_height)
+LLPluginClassMedia* LLViewerMediaImpl::newSourceFromMediaType(std::string media_type, LLPluginClassMediaOwner *owner /* may be NULL */, S32 default_width, S32 default_height, const std::string target)
{
std::string plugin_basename = LLMIMETypes::implType(media_type);
@@ -1656,7 +1689,9 @@ LLPluginClassMedia* LLViewerMediaImpl::newSourceFromMediaType(std::string media_
// collect 'javascript enabled' setting from prefs and send to embedded browser
bool javascript_enabled = gSavedSettings.getBOOL( "BrowserJavascriptEnabled" );
media_source->setJavascriptEnabled( javascript_enabled );
-
+
+ media_source->setTarget(target);
+
if (media_source->init(launcher_name, plugin_name, gSavedSettings.getBOOL("PluginAttachDebuggerToPlugins")))
{
return media_source;
@@ -1707,7 +1742,7 @@ bool LLViewerMediaImpl::initializePlugin(const std::string& media_type)
// Save the MIME type that really caused the plugin to load
mCurrentMimeType = mMimeType;
- LLPluginClassMedia* media_source = newSourceFromMediaType(mMimeType, this, mMediaWidth, mMediaHeight);
+ LLPluginClassMedia* media_source = newSourceFromMediaType(mMimeType, this, mMediaWidth, mMediaHeight, mTarget);
if (media_source)
{
@@ -2192,7 +2227,8 @@ void LLViewerMediaImpl::navigateReload()
//////////////////////////////////////////////////////////////////////////////////////////
void LLViewerMediaImpl::navigateHome()
{
- navigateTo(mHomeURL, "", true, false);
+ bool rediscover_mimetype = mHomeMimeType.empty();
+ navigateTo(mHomeURL, mHomeMimeType, rediscover_mimetype, false);
}
//////////////////////////////////////////////////////////////////////////////////////////
@@ -2304,6 +2340,8 @@ void LLViewerMediaImpl::navigateInternal()
// which is really not what we want.
LLSD headers = LLSD::emptyMap();
headers["Accept"] = "*/*";
+ // Allow cookies in the response, to prevent a redirect loop when accessing join.secondlife.com
+ headers["Cookie"] = "";
LLHTTPClient::getHeaderOnly( mMediaURL, new LLMimeDiscoveryResponder(this), headers, 10.0f);
}
else if("data" == scheme || "file" == scheme || "about" == scheme)
@@ -2804,6 +2842,7 @@ bool LLViewerMediaImpl::isPlayable() const
//////////////////////////////////////////////////////////////////////////////////////////
void LLViewerMediaImpl::handleMediaEvent(LLPluginClassMedia* plugin, LLPluginClassMediaOwner::EMediaEvent event)
{
+ bool pass_through = true;
switch(event)
{
case MEDIA_EVENT_CLICK_LINK_NOFOLLOW:
@@ -2817,28 +2856,6 @@ void LLViewerMediaImpl::handleMediaEvent(LLPluginClassMedia* plugin, LLPluginCla
case MEDIA_EVENT_CLICK_LINK_HREF:
{
LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_CLICK_LINK_HREF, target is \"" << plugin->getClickTarget() << "\", uri is " << plugin->getClickURL() << LL_ENDL;
- // retrieve the event parameters
- std::string url = plugin->getClickURL();
- U32 target_type = plugin->getClickTargetType();
-
- switch (target_type)
- {
- case LLPluginClassMedia::TARGET_EXTERNAL:
- // force url to external browser
- LLWeb::loadURLExternal(url);
- break;
- case LLPluginClassMedia::TARGET_BLANK:
- // open in SL media browser or external browser based on user pref
- LLWeb::loadURL(url);
- break;
- case LLPluginClassMedia::TARGET_NONE:
- // ignore this click and let media plugin handle it
- break;
- case LLPluginClassMedia::TARGET_OTHER:
- LL_WARNS("LinkTarget") << "Unsupported link target type" << LL_ENDL;
- break;
- default: break;
- }
};
break;
case MEDIA_EVENT_PLUGIN_FAILED_LAUNCH:
@@ -2912,14 +2929,23 @@ void LLViewerMediaImpl::handleMediaEvent(LLPluginClassMedia* plugin, LLPluginCla
{
LL_DEBUGS("Media") << "MEDIA_EVENT_NAVIGATE_COMPLETE, uri is: " << plugin->getNavigateURI() << LL_ENDL;
+ std::string url = plugin->getNavigateURI();
if(getNavState() == MEDIANAVSTATE_BEGUN)
{
- mCurrentMediaURL = plugin->getNavigateURI();
- setNavState(MEDIANAVSTATE_COMPLETE_BEFORE_LOCATION_CHANGED);
+ if(mCurrentMediaURL == url)
+ {
+ // This is a navigate that takes us to the same url as the previous navigate.
+ setNavState(MEDIANAVSTATE_COMPLETE_BEFORE_LOCATION_CHANGED_SPURIOUS);
+ }
+ else
+ {
+ mCurrentMediaURL = url;
+ setNavState(MEDIANAVSTATE_COMPLETE_BEFORE_LOCATION_CHANGED);
+ }
}
else if(getNavState() == MEDIANAVSTATE_SERVER_BEGUN)
{
- mCurrentMediaURL = plugin->getNavigateURI();
+ mCurrentMediaURL = url;
setNavState(MEDIANAVSTATE_SERVER_COMPLETE_BEFORE_LOCATION_CHANGED);
}
else
@@ -2933,14 +2959,24 @@ void LLViewerMediaImpl::handleMediaEvent(LLPluginClassMedia* plugin, LLPluginCla
{
LL_DEBUGS("Media") << "MEDIA_EVENT_LOCATION_CHANGED, uri is: " << plugin->getLocation() << LL_ENDL;
+ std::string url = plugin->getLocation();
+
if(getNavState() == MEDIANAVSTATE_BEGUN)
{
- mCurrentMediaURL = plugin->getLocation();
- setNavState(MEDIANAVSTATE_FIRST_LOCATION_CHANGED);
+ if(mCurrentMediaURL == url)
+ {
+ // This is a navigate that takes us to the same url as the previous navigate.
+ setNavState(MEDIANAVSTATE_FIRST_LOCATION_CHANGED_SPURIOUS);
+ }
+ else
+ {
+ mCurrentMediaURL = url;
+ setNavState(MEDIANAVSTATE_FIRST_LOCATION_CHANGED);
+ }
}
else if(getNavState() == MEDIANAVSTATE_SERVER_BEGUN)
{
- mCurrentMediaURL = plugin->getLocation();
+ mCurrentMediaURL = url;
setNavState(MEDIANAVSTATE_SERVER_FIRST_LOCATION_CHANGED);
}
else
@@ -2951,13 +2987,70 @@ void LLViewerMediaImpl::handleMediaEvent(LLPluginClassMedia* plugin, LLPluginCla
}
break;
+ case LLViewerMediaObserver::MEDIA_EVENT_PICK_FILE_REQUEST:
+ {
+ // Display a file picker
+ std::string response;
+
+ LLFilePicker& picker = LLFilePicker::instance();
+ if (!picker.getOpenFile(LLFilePicker::FFLOAD_ALL))
+ {
+ // The user didn't pick a file -- the empty response string will indicate this.
+ }
+
+ response = picker.getFirstFile();
+
+ plugin->sendPickFileResponse(response);
+ }
+ break;
+ case LLViewerMediaObserver::MEDIA_EVENT_CLOSE_REQUEST:
+ {
+ std::string uuid = plugin->getClickUUID();
+
+ llinfos << "MEDIA_EVENT_CLOSE_REQUEST for uuid " << uuid << llendl;
+
+ if(uuid.empty())
+ {
+ // This close request is directed at this instance, let it fall through.
+ }
+ else
+ {
+ // This close request is directed at another instance
+ pass_through = false;
+ LLFloaterMediaBrowser::closeRequest(uuid);
+ }
+ }
+ break;
+
+ case LLViewerMediaObserver::MEDIA_EVENT_GEOMETRY_CHANGE:
+ {
+ std::string uuid = plugin->getClickUUID();
+
+ llinfos << "MEDIA_EVENT_GEOMETRY_CHANGE for uuid " << uuid << llendl;
+
+ if(uuid.empty())
+ {
+ // This geometry change request is directed at this instance, let it fall through.
+ }
+ else
+ {
+ // This request is directed at another instance
+ pass_through = false;
+ LLFloaterMediaBrowser::geometryChanged(uuid, plugin->getGeometryX(), plugin->getGeometryY(), plugin->getGeometryWidth(), plugin->getGeometryHeight());
+ }
+ }
+ break;
+
default:
break;
}
- // Just chain the event to observers.
- emitEvent(plugin, event);
+ if(pass_through)
+ {
+ // Just chain the event to observers.
+ emitEvent(plugin, event);
+ }
}
////////////////////////////////////////////////////////////////////////////////
@@ -3053,20 +3146,25 @@ void LLViewerMediaImpl::calculateInterest()
// Calculate distance from the avatar, for use in the proximity calculation.
mProximityDistance = 0.0f;
+ mProximityCamera = 0.0f;
if(!mObjectList.empty())
{
// Just use the first object in the list. We could go through the list and find the closest object, but this should work well enough.
std::list< LLVOVolume* >::iterator iter = mObjectList.begin() ;
LLVOVolume* objp = *iter ;
llassert_always(objp != NULL) ;
+
+ // The distance calculation is invalid for HUD attachments -- leave both mProximityDistance and mProximityCamera at 0 for them.
+ if(!objp->isHUDAttachment())
+ {
+ LLVector3d obj_global = objp->getPositionGlobal() ;
+ LLVector3d agent_global = gAgent.getPositionGlobal() ;
+ LLVector3d global_delta = agent_global - obj_global ;
+ mProximityDistance = global_delta.magVecSquared(); // use distance-squared because it's cheaper and sorts the same.
- LLVector3d obj_global = objp->getPositionGlobal() ;
- LLVector3d agent_global = gAgent.getPositionGlobal() ;
- LLVector3d global_delta = agent_global - obj_global ;
- mProximityDistance = global_delta.magVecSquared(); // use distance-squared because it's cheaper and sorts the same.
-
- LLVector3d camera_delta = gAgentCamera.getCameraPositionGlobal() - obj_global;
- mProximityCamera = camera_delta.magVec();
+ LLVector3d camera_delta = gAgentCamera.getCameraPositionGlobal() - obj_global;
+ mProximityCamera = camera_delta.magVec();
+ }
}
if(mNeedsMuteCheck)
@@ -3219,7 +3317,9 @@ void LLViewerMediaImpl::setNavState(EMediaNavState state)
case MEDIANAVSTATE_NONE: LL_DEBUGS("Media") << "Setting nav state to MEDIANAVSTATE_NONE" << llendl; break;
case MEDIANAVSTATE_BEGUN: LL_DEBUGS("Media") << "Setting nav state to MEDIANAVSTATE_BEGUN" << llendl; break;
case MEDIANAVSTATE_FIRST_LOCATION_CHANGED: LL_DEBUGS("Media") << "Setting nav state to MEDIANAVSTATE_FIRST_LOCATION_CHANGED" << llendl; break;
+ case MEDIANAVSTATE_FIRST_LOCATION_CHANGED_SPURIOUS: LL_DEBUGS("Media") << "Setting nav state to MEDIANAVSTATE_FIRST_LOCATION_CHANGED_SPURIOUS" << llendl; break;
case MEDIANAVSTATE_COMPLETE_BEFORE_LOCATION_CHANGED: LL_DEBUGS("Media") << "Setting nav state to MEDIANAVSTATE_COMPLETE_BEFORE_LOCATION_CHANGED" << llendl; break;
+ case MEDIANAVSTATE_COMPLETE_BEFORE_LOCATION_CHANGED_SPURIOUS: LL_DEBUGS("Media") << "Setting nav state to MEDIANAVSTATE_COMPLETE_BEFORE_LOCATION_CHANGED_SPURIOUS" << llendl; break;
case MEDIANAVSTATE_SERVER_SENT: LL_DEBUGS("Media") << "Setting nav state to MEDIANAVSTATE_SERVER_SENT" << llendl; break;
case MEDIANAVSTATE_SERVER_BEGUN: LL_DEBUGS("Media") << "Setting nav state to MEDIANAVSTATE_SERVER_BEGUN" << llendl; break;
case MEDIANAVSTATE_SERVER_FIRST_LOCATION_CHANGED: LL_DEBUGS("Media") << "Setting nav state to MEDIANAVSTATE_SERVER_FIRST_LOCATION_CHANGED" << llendl; break;
diff --git a/indra/newview/llviewermedia.h b/indra/newview/llviewermedia.h
index 8626f4469e..4025a4484f 100644
--- a/indra/newview/llviewermedia.h
+++ b/indra/newview/llviewermedia.h
@@ -2,31 +2,25 @@
* @file llviewermedia.h
* @brief Client interface to the media engine
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -84,7 +78,7 @@ public:
static const char* SHOW_MEDIA_WITHIN_PARCEL_SETTING;
static const char* SHOW_MEDIA_OUTSIDE_PARCEL_SETTING;
- typedef std::vector<LLViewerMediaImpl*> impl_list;
+ typedef std::list<LLViewerMediaImpl*> impl_list;
typedef std::map<LLUUID, LLViewerMediaImpl*> impl_id_map;
@@ -158,6 +152,9 @@ public:
static void openIDSetup(const std::string &openid_url, const std::string &openid_token);
static void openIDCookieResponse(const std::string &cookie);
+ static void proxyWindowOpened(const std::string &target, const std::string &uuid);
+ static void proxyWindowClosed(const std::string &uuid);
+
private:
static void setOpenIDCookie();
static void onTeleportFinished();
@@ -237,7 +234,7 @@ public:
std::string getCurrentMediaURL();
std::string getHomeURL() { return mHomeURL; }
std::string getMediaEntryURL() { return mMediaEntryURL; }
- void setHomeURL(const std::string& home_url) { mHomeURL = home_url; };
+ void setHomeURL(const std::string& home_url, const std::string& mime_type = LLStringUtil::null) { mHomeURL = home_url; mHomeMimeType = mime_type;};
void clearCache();
std::string getMimeType() { return mMimeType; }
void scaleMouse(S32 *mouse_x, S32 *mouse_y);
@@ -277,8 +274,10 @@ public:
ECursorType getLastSetCursor() { return mLastSetCursor; }
+ void setTarget(const std::string& target) { mTarget = target; }
+
// utility function to create a ready-to-use media instance from a desired media type.
- static LLPluginClassMedia* newSourceFromMediaType(std::string media_type, LLPluginClassMediaOwner *owner /* may be NULL */, S32 default_width, S32 default_height);
+ static LLPluginClassMedia* newSourceFromMediaType(std::string media_type, LLPluginClassMediaOwner *owner /* may be NULL */, S32 default_width, S32 default_height, const std::string target = LLStringUtil::null);
// Internally set our desired browser user agent string, including
// the Second Life version and skin name. Used because we can
@@ -362,7 +361,9 @@ public:
MEDIANAVSTATE_NONE, // State is outside what we need to track for navigation.
MEDIANAVSTATE_BEGUN, // a MEDIA_EVENT_NAVIGATE_BEGIN has been received which was not server-directed
MEDIANAVSTATE_FIRST_LOCATION_CHANGED, // first LOCATION_CHANGED event after a non-server-directed BEGIN
+ MEDIANAVSTATE_FIRST_LOCATION_CHANGED_SPURIOUS, // Same as above, but the new URL is identical to the previously navigated URL.
MEDIANAVSTATE_COMPLETE_BEFORE_LOCATION_CHANGED, // we received a NAVIGATE_COMPLETE event before the first LOCATION_CHANGED
+ MEDIANAVSTATE_COMPLETE_BEFORE_LOCATION_CHANGED_SPURIOUS,// Same as above, but the new URL is identical to the previously navigated URL.
MEDIANAVSTATE_SERVER_SENT, // server-directed nav has been requested, but MEDIA_EVENT_NAVIGATE_BEGIN hasn't been received yet
MEDIANAVSTATE_SERVER_BEGUN, // MEDIA_EVENT_NAVIGATE_BEGIN has been received which was server-directed
MEDIANAVSTATE_SERVER_FIRST_LOCATION_CHANGED, // first LOCATION_CHANGED event after a server-directed BEGIN
@@ -399,6 +400,7 @@ private:
bool mMovieImageHasMips;
std::string mMediaURL; // The last media url set with NavigateTo
std::string mHomeURL;
+ std::string mHomeMimeType; // forced mime type for home url
std::string mMimeType;
std::string mCurrentMediaURL; // The most current media url from the plugin (via the "location changed" or "navigate complete" events).
std::string mCurrentMimeType; // The MIME type that caused the currently loaded plugin to be loaded.
@@ -441,6 +443,7 @@ private:
bool mNavigateSuspended;
bool mNavigateSuspendedDeferred;
bool mTrustedBrowser;
+ std::string mTarget;
private:
BOOL mIsUpdated ;
diff --git a/indra/newview/llviewermedia_streamingaudio.cpp b/indra/newview/llviewermedia_streamingaudio.cpp
index 67b051e536..e2a74e8e3c 100644
--- a/indra/newview/llviewermedia_streamingaudio.cpp
+++ b/indra/newview/llviewermedia_streamingaudio.cpp
@@ -3,31 +3,25 @@
* @author Tofu Linden, Sam Kolb
* @brief LLStreamingAudio_MediaPlugins implementation - an implementation of the streaming audio interface which is implemented as a client of the media plugin API.
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
#include "llviewerprecompiledheaders.h"
diff --git a/indra/newview/llviewermedia_streamingaudio.h b/indra/newview/llviewermedia_streamingaudio.h
index 270bab7625..1e7f771e17 100644
--- a/indra/newview/llviewermedia_streamingaudio.h
+++ b/indra/newview/llviewermedia_streamingaudio.h
@@ -3,31 +3,25 @@
* @author Tofu Linden
* @brief Definition of LLStreamingAudio_MediaPlugins implementation - an implementation of the streaming audio interface which is implemented as a client of the media plugins API.
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewermediafocus.cpp b/indra/newview/llviewermediafocus.cpp
index 02e450b223..de52aa17d1 100644
--- a/indra/newview/llviewermediafocus.cpp
+++ b/indra/newview/llviewermediafocus.cpp
@@ -2,30 +2,25 @@
* @file llviewermediafocus.cpp
* @brief Governs focus on Media prims
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2007, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewermediafocus.h b/indra/newview/llviewermediafocus.h
index d9ddc7432b..f03dd8751e 100644
--- a/indra/newview/llviewermediafocus.h
+++ b/indra/newview/llviewermediafocus.h
@@ -2,30 +2,25 @@
* @file llpanelmsgs.h
* @brief Message popup preferences panel
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2007, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewermediaobserver.h b/indra/newview/llviewermediaobserver.h
index 6667f982b6..5dab7e399e 100644
--- a/indra/newview/llviewermediaobserver.h
+++ b/indra/newview/llviewermediaobserver.h
@@ -2,31 +2,25 @@
* @file llviewermediaobserver.h
* @brief Methods to override to catch events from LLViewerMedia class
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index 635cc361f3..d4af5048c3 100644
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -2,31 +2,25 @@
* @file llviewermenu.cpp
* @brief Builds menus out of items.
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -68,6 +62,7 @@
#include "lllandmarkactions.h"
#include "llgroupmgr.h"
#include "lltooltip.h"
+#include "llhints.h"
#include "llhudeffecttrail.h"
#include "llhudmanager.h"
#include "llimview.h"
@@ -108,9 +103,12 @@
#include "llappearancemgr.h"
#include "lltrans.h"
#include "lleconomy.h"
+#include "boost/unordered_map.hpp"
using namespace LLVOAvatarDefines;
+static boost::unordered_map<std::string, LLStringExplicit> sDefaultItemLabels;
+
BOOL enable_land_build(void*);
BOOL enable_object_build(void*);
@@ -1080,6 +1078,8 @@ class LLAdvancedToggleWireframe : public view_listener_t
bool handleEvent(const LLSD& userdata)
{
gUseWireframe = !(gUseWireframe);
+ LLPipeline::updateRenderDeferred();
+ gPipeline.resetVertexBuffers();
return true;
}
};
@@ -2051,9 +2051,9 @@ class LLAdvancedEnableRenderDeferred: public view_listener_t
};
/////////////////////////////////////
-// Enable Global Illumination ///
+// Enable Deferred Rendering sub-options
/////////////////////////////////////
-class LLAdvancedEnableRenderDeferredGI: public view_listener_t
+class LLAdvancedEnableRenderDeferredOptions: public view_listener_t
{
bool handleEvent(const LLSD& userdata)
{
@@ -2403,31 +2403,55 @@ void handle_object_touch()
msg->sendMessage(object->getRegion()->getHost());
}
-// One object must have touch sensor
-class LLObjectEnableTouch : public view_listener_t
+static void init_default_item_label(const std::string& item_name)
{
- bool handleEvent(const LLSD& userdata)
+ boost::unordered_map<std::string, LLStringExplicit>::iterator it = sDefaultItemLabels.find(item_name);
+ if (it == sDefaultItemLabels.end())
{
- LLViewerObject* obj = LLSelectMgr::getInstance()->getSelection()->getPrimaryObject();
-
- bool new_value = obj && obj->flagHandleTouch();
-
- // Update label based on the node touch name if available.
- std::string touch_text;
- LLSelectNode* node = LLSelectMgr::getInstance()->getSelection()->getFirstRootNode();
- if (node && node->mValid && !node->mTouchName.empty())
- {
- touch_text = node->mTouchName;
- }
- else
+ // *NOTE: This will not work for items of type LLMenuItemCheckGL because they return boolean value
+ // (doesn't seem to matter much ATM).
+ LLStringExplicit default_label = gMenuHolder->childGetValue(item_name).asString();
+ if (!default_label.empty())
{
- touch_text = userdata.asString();
+ sDefaultItemLabels.insert(std::pair<std::string, LLStringExplicit>(item_name, default_label));
}
- gMenuHolder->childSetText("Object Touch", touch_text);
- gMenuHolder->childSetText("Attachment Object Touch", touch_text);
+ }
+}
- return new_value;
+static LLStringExplicit get_default_item_label(const std::string& item_name)
+{
+ LLStringExplicit res("");
+ boost::unordered_map<std::string, LLStringExplicit>::iterator it = sDefaultItemLabels.find(item_name);
+ if (it != sDefaultItemLabels.end())
+ {
+ res = it->second;
}
+
+ return res;
+}
+
+
+bool enable_object_touch(LLUICtrl* ctrl)
+{
+ LLViewerObject* obj = LLSelectMgr::getInstance()->getSelection()->getPrimaryObject();
+
+ bool new_value = obj && obj->flagHandleTouch();
+
+ std::string item_name = ctrl->getName();
+ init_default_item_label(item_name);
+
+ // Update label based on the node touch name if available.
+ LLSelectNode* node = LLSelectMgr::getInstance()->getSelection()->getFirstRootNode();
+ if (node && node->mValid && !node->mTouchName.empty())
+ {
+ gMenuHolder->childSetText(item_name, node->mTouchName);
+ }
+ else
+ {
+ gMenuHolder->childSetText(item_name, get_default_item_label(item_name));
+ }
+
+ return new_value;
};
//void label_touch(std::string& label, void*)
@@ -3360,8 +3384,21 @@ class LLSelfStandUp : public view_listener_t
bool enable_standup_self()
{
- bool new_value = isAgentAvatarValid() && gAgentAvatarp->isSitting();
- return new_value;
+ return isAgentAvatarValid() && gAgentAvatarp->isSitting();
+}
+
+class LLSelfSitDown : public view_listener_t
+ {
+ bool handleEvent(const LLSD& userdata)
+ {
+ gAgent.sitDown();
+ return true;
+ }
+ };
+
+bool enable_sitdown_self()
+{
+ return isAgentAvatarValid() && !gAgentAvatarp->isSitting() && !gAgent.getFlying();
}
// Used from the login screen to aid in UI work on side tray
@@ -3627,7 +3664,7 @@ class LLEnableEditShape : public view_listener_t
}
};
-bool enable_sit_object()
+bool is_object_sittable()
{
LLViewerObject* object = LLSelectMgr::getInstance()->getSelection()->getPrimaryObject();
@@ -5513,56 +5550,37 @@ bool enable_pay_object()
return false;
}
-bool visible_object_stand_up()
+bool enable_object_stand_up()
{
- // 'Object Stand Up' menu item is visible when agent is sitting on selection
+ // 'Object Stand Up' menu item is enabled when agent is sitting on selection
return sitting_on_selection();
}
-bool visible_object_sit()
+bool enable_object_sit(LLUICtrl* ctrl)
{
- // 'Object Sit' menu item is visible when agent is not sitting on selection
- bool is_sit_visible = !sitting_on_selection();
- if (is_sit_visible)
+ // 'Object Sit' menu item is enabled when agent is not sitting on selection
+ bool sitting_on_sel = sitting_on_selection();
+ if (!sitting_on_sel)
{
- LLMenuItemGL* sit_menu_item = gMenuHolder->getChild<LLMenuItemGL>("Object Sit");
- // Init default 'Object Sit' menu item label
- static const LLStringExplicit sit_text(sit_menu_item->getLabel());
+ std::string item_name = ctrl->getName();
+
+ // init default labels
+ init_default_item_label(item_name);
+
// Update label
- std::string label;
LLSelectNode* node = LLSelectMgr::getInstance()->getSelection()->getFirstRootNode();
if (node && node->mValid && !node->mSitName.empty())
{
- label.assign(node->mSitName);
+ gMenuHolder->childSetText(item_name, node->mSitName);
}
else
{
- label = sit_text;
+ gMenuHolder->childSetText(item_name, get_default_item_label(item_name));
}
- sit_menu_item->setLabel(label);
}
- return is_sit_visible;
+ return !sitting_on_sel && is_object_sittable();
}
-class LLObjectEnableSitOrStand : public view_listener_t
-{
- bool handleEvent(const LLSD& userdata)
- {
- bool new_value = false;
- LLViewerObject* dest_object = LLSelectMgr::getInstance()->getSelection()->getPrimaryObject();
-
- if(dest_object)
- {
- if(dest_object->getPCode() == LL_PCODE_VOLUME)
- {
- new_value = true;
- }
- }
-
- return new_value;
- }
-};
-
void dump_select_mgr(void*)
{
LLSelectMgr::getInstance()->dump();
@@ -5844,6 +5862,7 @@ void handle_buy_land()
class LLObjectAttachToAvatar : public view_listener_t
{
public:
+ LLObjectAttachToAvatar(bool replace) : mReplace(replace) {}
static void setObjectSelection(LLObjectSelectionHandle selection) { sObjectSelection = selection; }
private:
@@ -5857,22 +5876,38 @@ private:
LLViewerJointAttachment* attachment_point = NULL;
if (index > 0)
attachment_point = get_if_there(gAgentAvatarp->mAttachmentPoints, index, (LLViewerJointAttachment*)NULL);
- confirm_replace_attachment(0, attachment_point);
+ confirmReplaceAttachment(0, attachment_point);
}
return true;
}
+ static void onNearAttachObject(BOOL success, void *user_data);
+ void confirmReplaceAttachment(S32 option, LLViewerJointAttachment* attachment_point);
+
+ struct CallbackData
+ {
+ CallbackData(LLViewerJointAttachment* point, bool replace) : mAttachmentPoint(point), mReplace(replace) {}
+
+ LLViewerJointAttachment* mAttachmentPoint;
+ bool mReplace;
+ };
+
protected:
static LLObjectSelectionHandle sObjectSelection;
+ bool mReplace;
};
LLObjectSelectionHandle LLObjectAttachToAvatar::sObjectSelection;
-void near_attach_object(BOOL success, void *user_data)
+// static
+void LLObjectAttachToAvatar::onNearAttachObject(BOOL success, void *user_data)
{
+ if (!user_data) return;
+ CallbackData* cb_data = static_cast<CallbackData*>(user_data);
+
if (success)
{
- const LLViewerJointAttachment *attachment = (LLViewerJointAttachment *)user_data;
+ const LLViewerJointAttachment *attachment = cb_data->mAttachmentPoint;
U8 attachment_id = 0;
if (attachment)
@@ -5892,12 +5927,15 @@ void near_attach_object(BOOL success, void *user_data)
// interpret 0 as "default location"
attachment_id = 0;
}
- LLSelectMgr::getInstance()->sendAttach(attachment_id);
+ LLSelectMgr::getInstance()->sendAttach(attachment_id, cb_data->mReplace);
}
LLObjectAttachToAvatar::setObjectSelection(NULL);
+
+ delete cb_data;
}
-void confirm_replace_attachment(S32 option, void* user_data)
+// static
+void LLObjectAttachToAvatar::confirmReplaceAttachment(S32 option, LLViewerJointAttachment* attachment_point)
{
if (option == 0/*YES*/)
{
@@ -5922,7 +5960,9 @@ void confirm_replace_attachment(S32 option, void* user_data)
delta = delta * 0.5f;
walkToSpot -= delta;
- gAgent.startAutoPilotGlobal(gAgent.getPosGlobalFromAgent(walkToSpot), "Attach", NULL, near_attach_object, user_data, stop_distance);
+ // The callback will be called even if avatar fails to get close enough to the object, so we won't get a memory leak.
+ CallbackData* user_data = new CallbackData(attachment_point, mReplace);
+ gAgent.startAutoPilotGlobal(gAgent.getPosGlobalFromAgent(walkToSpot), "Attach", NULL, onNearAttachObject, user_data, stop_distance);
gAgentCamera.clearFocusObject();
}
}
@@ -6042,7 +6082,7 @@ static bool onEnableAttachmentLabel(LLUICtrl* ctrl, const LLSD& data)
const LLViewerObject* attached_object = (*attachment_iter);
if (attached_object)
{
- LLViewerInventoryItem* itemp = gInventory.getItem(attached_object->getItemID());
+ LLViewerInventoryItem* itemp = gInventory.getItem(attached_object->getAttachmentItemID());
if (itemp)
{
label += std::string(" (") + itemp->getName() + std::string(")");
@@ -6161,14 +6201,14 @@ class LLAttachmentEnableDrop : public view_listener_t
{
// make sure item is in your inventory (it could be a delayed attach message being sent from the sim)
// so check to see if the item is in the inventory already
- item = gInventory.getItem((*attachment_iter)->getItemID());
+ item = gInventory.getItem((*attachment_iter)->getAttachmentItemID());
if (!item)
{
// Item does not exist, make an observer to enable the pie menu
// when the item finishes fetching worst case scenario
// if a fetch is already out there (being sent from a slow sim)
// we refetch and there are 2 fetches
- LLWornItemFetchedObserver* worn_item_fetched = new LLWornItemFetchedObserver((*attachment_iter)->getItemID());
+ LLWornItemFetchedObserver* worn_item_fetched = new LLWornItemFetchedObserver((*attachment_iter)->getAttachmentItemID());
worn_item_fetched->startFetch();
gInventory.addObserver(worn_item_fetched);
}
@@ -6515,7 +6555,7 @@ void handle_dump_attachments(void*)
!attached_object->mDrawable->isRenderType(0));
LLVector3 pos;
if (visible) pos = attached_object->mDrawable->getPosition();
- llinfos << "ATTACHMENT " << key << ": item_id=" << attached_object->getItemID()
+ llinfos << "ATTACHMENT " << key << ": item_id=" << attached_object->getAttachmentItemID()
<< (attached_object ? " present " : " absent ")
<< (visible ? "visible " : "invisible ")
<< " at " << pos
@@ -6526,7 +6566,7 @@ void handle_dump_attachments(void*)
}
-// these are used in the gl menus to set control values.
+// these are used in the gl menus to set control values, generically.
class LLToggleControl : public view_listener_t
{
bool handleEvent(const LLSD& userdata)
@@ -6534,6 +6574,16 @@ class LLToggleControl : public view_listener_t
std::string control_name = userdata.asString();
BOOL checked = gSavedSettings.getBOOL( control_name );
gSavedSettings.setBOOL( control_name, !checked );
+
+ // Doubleclick actions - there can be only one
+ if ((control_name == "DoubleClickAutoPilot") && !checked)
+ {
+ gSavedSettings.setBOOL( "DoubleClickTeleport", FALSE );
+ }
+ else if ((control_name == "DoubleClickTeleport") && !checked)
+ {
+ gSavedSettings.setBOOL( "DoubleClickAutoPilot", FALSE );
+ }
return true;
}
};
@@ -6545,8 +6595,44 @@ class LLCheckControl : public view_listener_t
std::string callback_data = userdata.asString();
bool new_value = gSavedSettings.getBOOL(callback_data);
return new_value;
-}
+ }
+};
+
+// not so generic
+
+class LLAdvancedCheckRenderShadowOption: public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ std::string control_name = userdata.asString();
+ S32 current_shadow_level = gSavedSettings.getS32(control_name);
+ if (current_shadow_level == 0) // is off
+ {
+ return false;
+ }
+ else // is on
+ {
+ return true;
+ }
+ }
+};
+class LLAdvancedClickRenderShadowOption: public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ std::string control_name = userdata.asString();
+ S32 current_shadow_level = gSavedSettings.getS32(control_name);
+ if (current_shadow_level == 0) // upgrade to level 2
+ {
+ gSavedSettings.setS32(control_name, 2);
+ }
+ else // downgrade to level 0
+ {
+ gSavedSettings.setS32(control_name, 0);
+ }
+ return true;
+ }
};
void menu_toggle_attached_lights(void* user_data)
@@ -7187,7 +7273,7 @@ void handle_load_from_xml(void*)
{
std::string filename = picker.getFirstFile();
LLFloater* floater = new LLFloater(LLSD());
- LLUICtrlFactory::getInstance()->buildFloater(floater, filename, NULL);
+ floater->buildFromFile(filename);
}
}
@@ -7665,6 +7751,18 @@ public:
}
};
+class LLToggleUIHints : public view_listener_t
+{
+ bool handleEvent(const LLSD& userdata)
+ {
+ bool ui_hints_enabled = gSavedSettings.getBOOL("EnableUIHints");
+ // toggle
+ ui_hints_enabled = !ui_hints_enabled;
+ gSavedSettings.setBOOL("EnableUIHints", ui_hints_enabled);
+ return true;
+ }
+};
+
void LLUploadCostCalculator::calculateCost()
{
S32 upload_cost = LLGlobalEconomy::Singleton::getInstance()->getPriceUpload();
@@ -7871,7 +7969,7 @@ void initialize_menus()
// Help menu
// most items use the ShowFloater method
- // Advance menu
+ // Advanced menu
view_listener_t::addMenu(new LLAdvancedToggleConsole(), "Advanced.ToggleConsole");
view_listener_t::addMenu(new LLAdvancedCheckConsole(), "Advanced.CheckConsole");
view_listener_t::addMenu(new LLAdvancedDumpInfoToConsole(), "Advanced.DumpInfoToConsole");
@@ -7898,12 +7996,13 @@ void initialize_menus()
view_listener_t::addMenu(new LLAdvancedSelectedTextureInfo(), "Advanced.SelectedTextureInfo");
view_listener_t::addMenu(new LLAdvancedToggleWireframe(), "Advanced.ToggleWireframe");
view_listener_t::addMenu(new LLAdvancedCheckWireframe(), "Advanced.CheckWireframe");
+ // Develop > Render
view_listener_t::addMenu(new LLAdvancedToggleTextureAtlas(), "Advanced.ToggleTextureAtlas");
view_listener_t::addMenu(new LLAdvancedCheckTextureAtlas(), "Advanced.CheckTextureAtlas");
view_listener_t::addMenu(new LLAdvancedEnableObjectObjectOcclusion(), "Advanced.EnableObjectObjectOcclusion");
view_listener_t::addMenu(new LLAdvancedEnableRenderFBO(), "Advanced.EnableRenderFBO");
view_listener_t::addMenu(new LLAdvancedEnableRenderDeferred(), "Advanced.EnableRenderDeferred");
- view_listener_t::addMenu(new LLAdvancedEnableRenderDeferredGI(), "Advanced.EnableRenderDeferredGI");
+ view_listener_t::addMenu(new LLAdvancedEnableRenderDeferredOptions(), "Advanced.EnableRenderDeferredOptions");
view_listener_t::addMenu(new LLAdvancedToggleRandomizeFramerate(), "Advanced.ToggleRandomizeFramerate");
view_listener_t::addMenu(new LLAdvancedCheckRandomizeFramerate(), "Advanced.CheckRandomizeFramerate");
view_listener_t::addMenu(new LLAdvancedTogglePeriodicSlowFrame(), "Advanced.TogglePeriodicSlowFrame");
@@ -7912,6 +8011,8 @@ void initialize_menus()
view_listener_t::addMenu(new LLAdvancedToggleFrameTest(), "Advanced.ToggleFrameTest");
view_listener_t::addMenu(new LLAdvancedCheckFrameTest(), "Advanced.CheckFrameTest");
view_listener_t::addMenu(new LLAdvancedHandleAttachedLightParticles(), "Advanced.HandleAttachedLightParticles");
+ view_listener_t::addMenu(new LLAdvancedCheckRenderShadowOption(), "Advanced.CheckRenderShadowOption");
+ view_listener_t::addMenu(new LLAdvancedClickRenderShadowOption(), "Advanced.ClickRenderShadowOption");
#ifdef TOGGLE_HACKED_GODLIKE_VIEWER
@@ -8035,11 +8136,13 @@ void initialize_menus()
// Admin top level
view_listener_t::addMenu(new LLAdminOnSaveState(), "Admin.OnSaveState");
- // Self pie menu
+ // Self context menu
view_listener_t::addMenu(new LLSelfStandUp(), "Self.StandUp");
+ enable.add("Self.EnableStandUp", boost::bind(&enable_standup_self));
+ view_listener_t::addMenu(new LLSelfSitDown(), "Self.SitDown");
+ enable.add("Self.EnableSitDown", boost::bind(&enable_sitdown_self));
view_listener_t::addMenu(new LLSelfRemoveAllAttachments(), "Self.RemoveAllAttachments");
- enable.add("Self.EnableStandUp", boost::bind(&enable_standup_self));
view_listener_t::addMenu(new LLSelfEnableRemoveAllAttachments(), "Self.EnableRemoveAllAttachments");
// we don't use boost::bind directly to delay side tray construction
@@ -8067,9 +8170,9 @@ void initialize_menus()
view_listener_t::addMenu(new LLObjectBuild(), "Object.Build");
commit.add("Object.Touch", boost::bind(&handle_object_touch));
commit.add("Object.SitOrStand", boost::bind(&handle_object_sit_or_stand));
- enable.add("Object.EnableSit", boost::bind(&enable_sit_object));
commit.add("Object.Delete", boost::bind(&handle_object_delete));
- view_listener_t::addMenu(new LLObjectAttachToAvatar(), "Object.AttachToAvatar");
+ view_listener_t::addMenu(new LLObjectAttachToAvatar(true), "Object.AttachToAvatar");
+ view_listener_t::addMenu(new LLObjectAttachToAvatar(false), "Object.AttachAddToAvatar");
view_listener_t::addMenu(new LLObjectReturn(), "Object.Return");
view_listener_t::addMenu(new LLObjectReportAbuse(), "Object.ReportAbuse");
view_listener_t::addMenu(new LLObjectMute(), "Object.Mute");
@@ -8083,13 +8186,12 @@ void initialize_menus()
commit.add("Object.Open", boost::bind(&handle_object_open));
commit.add("Object.Take", boost::bind(&handle_take));
enable.add("Object.EnableOpen", boost::bind(&enable_object_open));
- view_listener_t::addMenu(new LLObjectEnableTouch(), "Object.EnableTouch");
- view_listener_t::addMenu(new LLObjectEnableSitOrStand(), "Object.EnableSitOrStand");
+ enable.add("Object.EnableTouch", boost::bind(&enable_object_touch, _1));
enable.add("Object.EnableDelete", boost::bind(&enable_object_delete));
enable.add("Object.EnableWear", boost::bind(&object_selected_and_point_valid));
- enable.add("Object.StandUpVisible", boost::bind(&visible_object_stand_up));
- enable.add("Object.SitVisible", boost::bind(&visible_object_sit));
+ enable.add("Object.EnableStandUp", boost::bind(&enable_object_stand_up));
+ enable.add("Object.EnableSit", boost::bind(&enable_object_sit, _1));
view_listener_t::addMenu(new LLObjectEnableReturn(), "Object.EnableReturn");
view_listener_t::addMenu(new LLObjectEnableReportAbuse(), "Object.EnableReportAbuse");
@@ -8141,4 +8243,5 @@ void initialize_menus()
view_listener_t::addMenu(new LLEditableSelected(), "EditableSelected");
view_listener_t::addMenu(new LLEditableSelectedMono(), "EditableSelectedMono");
+ view_listener_t::addMenu(new LLToggleUIHints(), "ToggleUIHints");
}
diff --git a/indra/newview/llviewermenu.h b/indra/newview/llviewermenu.h
index e0497139a5..87cb4efbc4 100644
--- a/indra/newview/llviewermenu.h
+++ b/indra/newview/llviewermenu.h
@@ -2,31 +2,25 @@
* @file llviewermenu.h
* @brief Builds menus out of objects
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewermenufile.cpp b/indra/newview/llviewermenufile.cpp
index f741e1bc10..237aa39e6e 100644
--- a/indra/newview/llviewermenufile.cpp
+++ b/indra/newview/llviewermenufile.cpp
@@ -2,31 +2,25 @@
* @file llviewermenufile.cpp
* @brief "File" menu in the main menu bar.
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewermenufile.h b/indra/newview/llviewermenufile.h
index 1e6d13f1c6..56b9e19049 100644
--- a/indra/newview/llviewermenufile.h
+++ b/indra/newview/llviewermenufile.h
@@ -2,31 +2,25 @@
* @file llviewermenufile.h
* @brief "File" menu in the main menu bar.
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewermessage.cpp b/indra/newview/llviewermessage.cpp
index bf4eb6ec33..33c74e7465 100644
--- a/indra/newview/llviewermessage.cpp
+++ b/indra/newview/llviewermessage.cpp
@@ -2,31 +2,25 @@
* @file llviewermessage.cpp
* @brief Dumping ground for viewer-side message system callbacks.
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -56,6 +50,7 @@
#include "llagentcamera.h"
#include "llcallingcard.h"
#include "llbuycurrencyhtml.h"
+#include "llfirstuse.h"
#include "llfloaterbuyland.h"
#include "llfloaterland.h"
#include "llfloaterregioninfo.h"
@@ -83,10 +78,12 @@
#include "llimview.h"
#include "llspeakers.h"
#include "lltrans.h"
+#include "lltranslate.h"
#include "llviewerfoldertype.h"
#include "lluri.h"
#include "llviewergenericmessage.h"
#include "llviewermenu.h"
+#include "llviewerjoystick.h"
#include "llviewerobjectlist.h"
#include "llviewerparcelmgr.h"
#include "llviewerstats.h"
@@ -936,6 +933,15 @@ protected:
//one global instance to bind them
LLOpenTaskOffer* gNewInventoryObserver=NULL;
+class LLNewInventoryHintObserver : public LLInventoryAddedObserver
+{
+protected:
+ /*virtual*/ void done()
+ {
+ LLFirstUse::newInventory();
+ }
+};
+
void start_new_inventory_observer()
{
if (!gNewInventoryObserver) //task offer observer
@@ -951,6 +957,8 @@ void start_new_inventory_observer()
gInventoryMoveObserver = new LLViewerInventoryMoveFromWorldObserver;
gInventory.addObserver(gInventoryMoveObserver);
}
+
+ gInventory.addObserver(new LLNewInventoryHintObserver());
}
class LLDiscardAgentOffer : public LLInventoryFetchItemsObserver
@@ -1138,10 +1146,26 @@ void open_inventory_offer(const uuid_vec_t& objects, const std::string& from_nam
}
else if(from_name.empty())
{
+ std::string folder_name;
+ if (parent_folder)
+ {
+ // Localize folder name.
+ // *TODO: share this code?
+ folder_name = parent_folder->getName();
+ if (LLFolderType::lookupIsProtectedType(parent_folder->getPreferredType()))
+ {
+ LLTrans::findString(folder_name, "InvFolder " + folder_name);
+ }
+ }
+ else
+ {
+ folder_name = LLTrans::getString("Unknown");
+ }
+
// we receive a message from LLOpenTaskOffer, it mean that new landmark has been added.
LLSD args;
args["LANDMARK_NAME"] = item->getName();
- args["FOLDER_NAME"] = std::string(parent_folder ? parent_folder->getName() : "unknown");
+ args["FOLDER_NAME"] = folder_name;
LLNotificationsUtil::add("LandmarkCreated", args);
}
}
@@ -1167,12 +1191,12 @@ void open_inventory_offer(const uuid_vec_t& objects, const std::string& from_nam
}
////////////////////////////////////////////////////////////////////////////////
- // Highlight item if it's not in the trash, lost+found, or COF
+ // Highlight item
const BOOL auto_open =
- gSavedSettings.getBOOL("ShowInInventory") &&
- (asset_type != LLAssetType::AT_CALLINGCARD) &&
- !(item && item->getInventoryType() != LLInventoryType::IT_ATTACHMENT) &&
- !from_name.empty();
+ gSavedSettings.getBOOL("ShowInInventory") && // don't open if showininventory is false
+ !(asset_type == LLAssetType::AT_CALLINGCARD) && // don't open if it's a calling card
+ !(item && (item->getInventoryType() == LLInventoryType::IT_ATTACHMENT)) && // don't open if it's an item that's an attachment
+ !from_name.empty(); // don't open if it's not from anyone.
LLInventoryPanel *active_panel = LLInventoryPanel::getActiveInventoryPanel(auto_open);
if(active_panel)
{
@@ -1215,8 +1239,9 @@ bool highlight_offered_object(const LLUUID& obj_id)
void inventory_offer_mute_callback(const LLUUID& blocked_id,
const std::string& first_name,
const std::string& last_name,
- BOOL is_group, LLOfferInfo* offer = NULL)
+ BOOL is_group, boost::shared_ptr<LLNotificationResponderInterface> offer_ptr)
{
+ LLOfferInfo* offer = dynamic_cast<LLOfferInfo*>(offer_ptr.get());
std::string from_name;
LLMute::EType type;
if (is_group)
@@ -1406,7 +1431,13 @@ bool LLOfferInfo::inventory_offer_callback(const LLSD& notification, const LLSD&
// * we can't build two messages at once.
if (2 == button) // Block
{
- gCacheName->get(mFromID, mFromGroup, boost::bind(&inventory_offer_mute_callback,_1,_2,_3,_4,this));
+ LLNotificationPtr notification_ptr = LLNotifications::instance().find(notification["id"].asUUID());
+
+ llassert(notification_ptr != NULL);
+ if (notification_ptr != NULL)
+ {
+ gCacheName->get(mFromID, mFromGroup, boost::bind(&inventory_offer_mute_callback,_1,_2,_3,_4, notification_ptr->getResponderPtr()));
+ }
}
std::string from_string; // Used in the pop-up.
@@ -1540,7 +1571,13 @@ bool LLOfferInfo::inventory_task_offer_callback(const LLSD& notification, const
// * we can't build two messages at once.
if (2 == button)
{
- gCacheName->get(mFromID, mFromGroup, boost::bind(&inventory_offer_mute_callback,_1,_2,_3,_4,this));
+ LLNotificationPtr notification_ptr = LLNotifications::instance().find(notification["id"].asUUID());
+
+ llassert(notification_ptr != NULL);
+ if (notification_ptr != NULL)
+ {
+ gCacheName->get(mFromID, mFromGroup, boost::bind(&inventory_offer_mute_callback,_1,_2,_3,_4, notification_ptr->getResponderPtr()));
+ }
}
LLMessageSystem* msg = gMessageSystem;
@@ -1848,6 +1885,8 @@ void inventory_offer_handler(LLOfferInfo* info)
LLPostponedNotification::add<LLPostponedOfferNotification>(p, info->mFromID, false);
}
}
+
+ LLFirstUse::newInventory();
}
bool lure_callback(const LLSD& notification, const LLSD& response)
@@ -2160,7 +2199,9 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
std::string saved;
if(offline == IM_OFFLINE)
{
- saved = llformat("(Saved %s) ", formatted_time(timestamp).c_str());
+ LLStringUtil::format_map_t args;
+ args["[LONG_TIMESTAMP]"] = formatted_time(timestamp);
+ saved = LLTrans::getString("Saved_message", args);
}
buffer = saved + message;
@@ -2585,7 +2626,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
params.substitutions = substitutions;
params.payload = payload;
- LLPostponedNotification::add<LLPostponedServerObjectNotification>(params, from_id, false);
+ LLPostponedNotification::add<LLPostponedServerObjectNotification>(params, from_id, from_group);
}
break;
case IM_FROM_TASK_AS_ALERT:
@@ -2628,7 +2669,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
{
LLVector3 pos, look_at;
U64 region_handle;
- U8 region_access;
+ U8 region_access = SIM_ACCESS_MIN;
std::string region_info = ll_safe_string((char*)binary_bucket, binary_bucket_size);
std::string region_access_str = LLStringUtil::null;
std::string region_access_icn = LLStringUtil::null;
@@ -2884,6 +2925,50 @@ void process_decline_callingcard(LLMessageSystem* msg, void**)
LLNotificationsUtil::add("CallingCardDeclined");
}
+class ChatTranslationReceiver : public LLTranslate::TranslationReceiver
+{
+public :
+ ChatTranslationReceiver(const std::string &from_lang, const std::string &to_lang, const std::string &mesg,
+ const LLChat &chat, const LLSD &toast_args)
+ : LLTranslate::TranslationReceiver(from_lang, to_lang),
+ m_chat(chat),
+ m_toastArgs(toast_args),
+ m_origMesg(mesg)
+ {
+ }
+
+ static boost::intrusive_ptr<ChatTranslationReceiver> build(const std::string &from_lang, const std::string &to_lang, const std::string &mesg, const LLChat &chat, const LLSD &toast_args)
+ {
+ return boost::intrusive_ptr<ChatTranslationReceiver>(new ChatTranslationReceiver(from_lang, to_lang, mesg, chat, toast_args));
+ }
+
+protected:
+ void handleResponse(const std::string &translation, const std::string &detected_language)
+ {
+ // filter out non-interesting responeses
+ if ( !translation.empty()
+ && (m_toLang != detected_language)
+ && (LLStringUtil::compareInsensitive(translation, m_origMesg) != 0) )
+ {
+ m_chat.mText += " (" + translation + ")";
+ }
+
+ LLNotificationsUI::LLNotificationManager::instance().onChat(m_chat, m_toastArgs);
+ }
+
+ void handleFailure()
+ {
+ LLTranslate::TranslationReceiver::handleFailure();
+ m_chat.mText += " (?)";
+
+ LLNotificationsUI::LLNotificationManager::instance().onChat(m_chat, m_toastArgs);
+ }
+
+private:
+ LLChat m_chat;
+ std::string m_origMesg;
+ LLSD m_toastArgs;
+};
void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
{
@@ -2939,7 +3024,8 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
// Make swirly things only for talking objects. (not script debug messages, though)
if (chat.mSourceType == CHAT_SOURCE_OBJECT
- && chat.mChatType != CHAT_TYPE_DEBUG_MSG)
+ && chat.mChatType != CHAT_TYPE_DEBUG_MSG
+ && gSavedSettings.getBOOL("EffectScriptChatParticles") )
{
LLPointer<LLViewerPartSourceChat> psc = new LLViewerPartSourceChat(chatter->getPositionAgent());
psc->setSourceObject(chatter);
@@ -3087,7 +3173,22 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
args["type"] = LLNotificationsUI::NT_NEARBYCHAT;
chat.mOwnerID = owner_id;
- LLNotificationsUI::LLNotificationManager::instance().onChat(chat, args);
+ if (gSavedSettings.getBOOL("TranslateChat") && chat.mSourceType != CHAT_SOURCE_SYSTEM)
+ {
+ if (chat.mChatStyle == CHAT_STYLE_IRC)
+ {
+ mesg = mesg.substr(4, std::string::npos);
+ }
+ const std::string from_lang = ""; // leave empty to trigger autodetect
+ const std::string to_lang = LLTranslate::getTranslateLanguage();
+
+ LLHTTPClient::ResponderPtr result = ChatTranslationReceiver::build(from_lang, to_lang, mesg, chat, args);
+ LLTranslate::translateMessage(result, from_lang, to_lang, mesg);
+ }
+ else
+ {
+ LLNotificationsUI::LLNotificationManager::instance().onChat(chat, args);
+ }
}
}
@@ -3103,6 +3204,8 @@ void process_teleport_start(LLMessageSystem *msg, void**)
U32 teleport_flags = 0x0;
msg->getU32("Info", "TeleportFlags", teleport_flags);
+ LL_DEBUGS("Messaging") << "Got TeleportStart with TeleportFlags=" << teleport_flags << ". gTeleportDisplay: " << gTeleportDisplay << ", gAgent.mTeleportState: " << gAgent.getTeleportState() << LL_ENDL;
+
if (teleport_flags & TELEPORT_FLAGS_DISABLE_CANCEL)
{
gViewerWindow->setProgressCancelButtonVisible(FALSE);
@@ -3121,6 +3224,7 @@ void process_teleport_start(LLMessageSystem *msg, void**)
gAgent.setTeleportState( LLAgent::TELEPORT_START );
make_ui_sound("UISndTeleportOut");
+ LL_INFOS("Messaging") << "Teleport initiated by remote TeleportStart message with TeleportFlags: " << teleport_flags << LL_ENDL;
// Don't call LLFirstUse::useTeleport here because this could be
// due to being killed, which would send you home, not to a Telehub
}
@@ -3462,6 +3566,12 @@ void process_agent_movement_complete(LLMessageSystem* msg, void**)
if( is_teleport )
{
+ if (gAgent.getTeleportKeepsLookAt())
+ {
+ // *NOTE: the LookAt data we get from the sim here doesn't
+ // seem to be useful, so get it from the camera instead
+ look_at = LLViewerCamera::getInstance()->getAtAxis();
+ }
// Force the camera back onto the agent, don't animate.
gAgentCamera.setFocusOnAvatar(TRUE, FALSE);
gAgentCamera.slamLookAt(look_at);
@@ -3508,7 +3618,7 @@ void process_agent_movement_complete(LLMessageSystem* msg, void**)
{
LLTracker::stopTracking(NULL);
}
- else if ( is_teleport )
+ else if ( is_teleport && !gAgent.getTeleportKeepsLookAt() )
{
//look at the beacon
LLVector3 global_agent_pos = agent_pos;
@@ -3639,6 +3749,7 @@ const F32 THRESHOLD_HEAD_ROT_QDOT = 0.9997f; // ~= 2.5 degrees -- if its less th
const F32 MAX_HEAD_ROT_QDOT = 0.99999f; // ~= 0.5 degrees -- if its greater than this then no need to update head_rot
// between these values we delay the updates (but no more than one second)
+static LLFastTimer::DeclareTimer FTM_AGENT_UPDATE_SEND("Send Message");
void send_agent_update(BOOL force_send, BOOL send_reliable)
{
@@ -3797,6 +3908,7 @@ void send_agent_update(BOOL force_send, BOOL send_reliable)
if (duplicate_count < DUP_MSGS && !gDisconnected)
{
+ LLFastTimer t(FTM_AGENT_UPDATE_SEND);
// Build the message
msg->newMessageFast(_PREHASH_AgentUpdate);
msg->nextBlockFast(_PREHASH_AgentData);
@@ -4115,14 +4227,12 @@ void process_preload_sound(LLMessageSystem *msg, void **user_data)
// Don't play sounds from a region with maturity above current agent maturity
LLVector3d pos_global = objectp->getPositionGlobal();
- if( !gAgent.canAccessMaturityAtGlobal( pos_global ) )
+ if (gAgent.canAccessMaturityAtGlobal(pos_global))
{
- return;
- }
-
// Add audioData starts a transfer internally.
sourcep->addAudioData(datap, FALSE);
}
+}
void process_attached_sound(LLMessageSystem *msg, void **user_data)
{
@@ -5093,7 +5203,7 @@ void process_alert_message(LLMessageSystem *msgsystem, void **user_data)
void process_alert_core(const std::string& message, BOOL modal)
{
- // HACK -- handle callbacks for specific alerts
+ // HACK -- handle callbacks for specific alerts. It also is localized in notifications.xml
if ( message == "You died and have been teleported to your home location")
{
LLViewerStats::getInstance()->incStat(LLViewerStats::ST_KILLED_COUNT);
@@ -5288,10 +5398,10 @@ void process_economy_data(LLMessageSystem *msg, void** /*user_data*/)
LL_INFOS_ONCE("Messaging") << "EconomyData message arrived; upload cost is L$" << upload_cost << LL_ENDL;
- gMenuHolder->childSetLabelArg("Upload Image", "[COST]", llformat("%d", upload_cost));
- gMenuHolder->childSetLabelArg("Upload Sound", "[COST]", llformat("%d", upload_cost));
- gMenuHolder->childSetLabelArg("Upload Animation", "[COST]", llformat("%d", upload_cost));
- gMenuHolder->childSetLabelArg("Bulk Upload", "[COST]", llformat("%d", upload_cost));
+ gMenuHolder->getChild<LLUICtrl>("Upload Image")->setLabelArg("[COST]", llformat("%d", upload_cost));
+ gMenuHolder->getChild<LLUICtrl>("Upload Sound")->setLabelArg("[COST]", llformat("%d", upload_cost));
+ gMenuHolder->getChild<LLUICtrl>("Upload Animation")->setLabelArg("[COST]", llformat("%d", upload_cost));
+ gMenuHolder->getChild<LLUICtrl>("Bulk Upload")->setLabelArg("[COST]", llformat("%d", upload_cost));
}
void notify_cautioned_script_question(const LLSD& notification, const LLSD& response, S32 orig_questions, BOOL granted)
@@ -5778,7 +5888,18 @@ void process_teleport_local(LLMessageSystem *msg,void**)
if( gAgent.getTeleportState() != LLAgent::TELEPORT_NONE )
{
- gAgent.setTeleportState( LLAgent::TELEPORT_NONE );
+ if( gAgent.getTeleportState() == LLAgent::TELEPORT_LOCAL )
+ {
+ // To prevent TeleportStart messages re-activating the progress screen right
+ // after tp, keep the teleport state and let progress screen clear it after a short delay
+ // (progress screen is active but not visible) *TODO: remove when SVC-5290 is fixed
+ gTeleportDisplayTimer.reset();
+ gTeleportDisplay = TRUE;
+ }
+ else
+ {
+ gAgent.setTeleportState( LLAgent::TELEPORT_NONE );
+ }
}
// Sim tells us whether the new position is off the ground
@@ -5794,8 +5915,10 @@ void process_teleport_local(LLMessageSystem *msg,void**)
gAgent.setPositionAgent(pos);
gAgentCamera.slamLookAt(look_at);
- // likewise make sure the camera is behind the avatar
- gAgentCamera.resetView(TRUE, TRUE);
+ if ( !(gAgent.getTeleportKeepsLookAt() && LLViewerJoystick::getInstance()->getOverrideCamera()) )
+ {
+ gAgentCamera.resetView(TRUE, TRUE);
+ }
// send camera update to new region
gAgentCamera.updateCamera();
diff --git a/indra/newview/llviewermessage.h b/indra/newview/llviewermessage.h
index eca253ee03..6ff893f543 100644
--- a/indra/newview/llviewermessage.h
+++ b/indra/newview/llviewermessage.h
@@ -2,31 +2,25 @@
* @file llviewermessage.h
* @brief Message system callbacks for viewer.
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewernetwork.cpp b/indra/newview/llviewernetwork.cpp
index fec112b9e7..b91e407c6d 100644
--- a/indra/newview/llviewernetwork.cpp
+++ b/indra/newview/llviewernetwork.cpp
@@ -3,30 +3,25 @@
* @author James Cook, Richard Nelson
* @brief Networking constants and globals for viewer.
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2010, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -49,6 +44,7 @@ const char* DEFAULT_SLURL_BASE = "https://%s/region/";
const char* DEFAULT_APP_SLURL_BASE = "x-grid-location-info://%s/app";
LLGridManager::LLGridManager()
+: mIsInProductionGrid(false)
{
// by default, we use the 'grids.xml' file in the user settings directory
// this file is an LLSD file containing multiple grid definitions.
@@ -308,6 +304,15 @@ void LLGridManager::initialize(const std::string& grid_file)
addGrid(grid);
}
+ LLControlVariablePtr grid_control = gSavedSettings.getControl("CurrentGrid");
+ if (grid_control.notNull())
+ {
+ grid_control->getSignal()->connect(boost::bind(&LLGridManager::updateIsInProductionGrid, this));
+ }
+
+ // since above only triggers on changes, trigger the callback manually to initialize state
+ updateIsInProductionGrid();
+
LL_DEBUGS("GridManager") << "Selected grid is " << mGrid << LL_ENDL;
setGridChoice(mGrid);
if(mGridList[mGrid][GRID_LOGIN_URI_VALUE].isArray())
@@ -499,7 +504,8 @@ void LLGridManager::setGridChoice(const std::string& grid)
addGrid(grid_data);
}
mGrid = grid;
- gSavedSettings.setString("CurrentGrid", grid);
+ gSavedSettings.setString("CurrentGrid", grid);
+ updateIsInProductionGrid();
}
std::string LLGridManager::getGridByLabel( const std::string &grid_label, bool case_sensitive)
@@ -559,23 +565,30 @@ std::string LLGridManager::getLoginPage()
return mGridList[mGrid][GRID_LOGIN_PAGE_VALUE];
}
-bool LLGridManager::isInProductionGrid()
+void LLGridManager::updateIsInProductionGrid()
{
+ mIsInProductionGrid = false;
+
// *NOTE:Mani This used to compare GRID_INFO_AGNI to gGridChoice,
// but it seems that loginURI trumps that.
std::vector<std::string> uris;
getLoginURIs(uris);
- if (uris.size() < 1)
+ if (uris.empty())
{
- return 1;
+ mIsInProductionGrid = true;
+ return;
}
LLStringUtil::toLower(uris[0]);
if((uris[0].find("agni") != std::string::npos))
{
- return true;
+ mIsInProductionGrid = true;
+ return;
}
+}
- return false;
+bool LLGridManager::isInProductionGrid()
+{
+ return mIsInProductionGrid;
}
void LLGridManager::saveFavorites()
diff --git a/indra/newview/llviewernetwork.h b/indra/newview/llviewernetwork.h
index 8c3a15b7cf..15e25b4952 100644
--- a/indra/newview/llviewernetwork.h
+++ b/indra/newview/llviewernetwork.h
@@ -3,30 +3,25 @@
* @author James Cook
* @brief Networking constants and globals for viewer.
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2010, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlife.com/developers/opensource/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlife.com/developers/opensource/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -136,6 +131,8 @@ public:
protected:
+ void updateIsInProductionGrid();
+
// helper function for adding the predefined grids
void addSystemGrid(const std::string& label,
const std::string& name,
@@ -148,6 +145,7 @@ protected:
std::string mGrid;
std::string mGridFile;
LLSD mGridList;
+ bool mIsInProductionGrid;
};
const S32 MAC_ADDRESS_BYTES = 6;
diff --git a/indra/newview/llviewerobject.cpp b/indra/newview/llviewerobject.cpp
index ee89680fea..fd3e80d755 100644
--- a/indra/newview/llviewerobject.cpp
+++ b/indra/newview/llviewerobject.cpp
@@ -2,31 +2,25 @@
* @file llviewerobject.cpp
* @brief Base class for viewer objects
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -79,6 +73,7 @@
#include "llviewerparceloverlay.h"
#include "llviewerpartsource.h"
#include "llviewerregion.h"
+#include "llviewerstats.h"
#include "llviewertextureanim.h"
#include "llviewerwindow.h" // For getSpinAxis
#include "llvoavatar.h"
@@ -762,7 +757,24 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys,
// Coordinates of objects on simulators are region-local.
U64 region_handle;
mesgsys->getU64Fast(_PREHASH_RegionData, _PREHASH_RegionHandle, region_handle);
- mRegionp = LLWorld::getInstance()->getRegionFromHandle(region_handle);
+
+ {
+ LLViewerRegion* regionp = LLWorld::getInstance()->getRegionFromHandle(region_handle);
+ if(regionp != mRegionp && regionp && mRegionp)//region cross
+ {
+ //this is the redundant position and region update, but it is necessary in case the viewer misses the following
+ //position and region update messages from sim.
+ //this redundant update should not cause any problems.
+ LLVector3 delta_pos = mRegionp->getOriginAgent() - regionp->getOriginAgent();
+ setPositionParent(getPosition() + delta_pos); //update to the new region position immediately.
+ setRegion(regionp) ; //change the region.
+ }
+ else
+ {
+ mRegionp = regionp ;
+ }
+ }
+
if (!mRegionp)
{
U32 x, y;
@@ -1832,7 +1844,7 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys,
if (cdp)
{
F32 ping_delay = 0.5f * mTimeDilation * ( ((F32)cdp->getPingDelay()) * 0.001f + gFrameDTClamped);
- LLVector3 diff = getVelocity() * (0.5f*mTimeDilation*(gFrameDTClamped + ((F32)ping_delay)*0.001f));
+ LLVector3 diff = getVelocity() * ping_delay;
new_pos_parent += diff;
}
else
@@ -1899,6 +1911,12 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys,
avatar->clampAttachmentPositions();
}
+
+ // If we're snapping the position by more than 0.5m, update LLViewerStats::mAgentPositionSnaps
+ if ( asAvatar() && asAvatar()->isSelf() && (mag_sqr > 0.25f) )
+ {
+ LLViewerStats::getInstance()->mAgentPositionSnaps.push( diff.length() );
+ }
}
if (new_rot != mLastRot
@@ -4427,6 +4445,13 @@ void LLViewerObject::setAttachedSound(const LLUUID &audio_uuid, const LLUUID& ow
mAudioSourcep = NULL;
}
+ if (mAudioSourcep && mAudioSourcep->isMuted() &&
+ mAudioSourcep->getCurrentData() && mAudioSourcep->getCurrentData()->getID() == audio_uuid)
+ {
+ //llinfos << "Already having this sound as muted sound, ignoring" << llendl;
+ return;
+ }
+
getAudioSource(owner_id);
if (mAudioSourcep)
@@ -4928,6 +4953,11 @@ void LLViewerObject::setIncludeInSearch(bool include_in_search)
void LLViewerObject::setRegion(LLViewerRegion *regionp)
{
+ if (!regionp)
+ {
+ llwarns << "viewer object set region to NULL" << llendl;
+ }
+
mLatestRecvPacketID = 0;
mRegionp = regionp;
@@ -5204,3 +5234,28 @@ void LLViewerObject::resetChildrenPosition(const LLVector3& offset, BOOL simplif
return ;
}
+const LLUUID &LLViewerObject::getAttachmentItemID() const
+{
+ return mAttachmentItemID;
+}
+
+void LLViewerObject::setAttachmentItemID(const LLUUID &id)
+{
+ mAttachmentItemID = id;
+}
+
+const LLUUID &LLViewerObject::extractAttachmentItemID()
+{
+ LLUUID item_id = LLUUID::null;
+ LLNameValue* item_id_nv = getNVPair("AttachItemID");
+ if( item_id_nv )
+ {
+ const char* s = item_id_nv->getString();
+ if( s )
+ {
+ item_id.set(s);
+ }
+ }
+ setAttachmentItemID(item_id);
+ return getAttachmentItemID();
+}
diff --git a/indra/newview/llviewerobject.h b/indra/newview/llviewerobject.h
index be83fb7ef8..bcc2cb164f 100644
--- a/indra/newview/llviewerobject.h
+++ b/indra/newview/llviewerobject.h
@@ -2,31 +2,25 @@
* @file llviewerobject.h
* @brief Description of LLViewerObject class, which is the base class for most objects in the viewer.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -678,11 +672,15 @@ protected:
private:
static S32 sNumObjects;
+ //--------------------------------------------------------------------
+ // For objects that are attachments
+ //--------------------------------------------------------------------
public:
- const LLUUID &getItemID() const { return mAttachmentItemID; }
- void setItemID(const LLUUID &id) { mAttachmentItemID = id; }
+ const LLUUID &getAttachmentItemID() const;
+ void setAttachmentItemID(const LLUUID &id);
+ const LLUUID &extractAttachmentItemID(); // find&set the inventory item ID of the attached object
private:
- LLUUID mAttachmentItemID; // ItemID when item is in user inventory.
+ LLUUID mAttachmentItemID; // ItemID of the associated object is in user inventory.
};
///////////////////
diff --git a/indra/newview/llviewerobjectlist.cpp b/indra/newview/llviewerobjectlist.cpp
index 752aeaaab0..05695193a5 100644
--- a/indra/newview/llviewerobjectlist.cpp
+++ b/indra/newview/llviewerobjectlist.cpp
@@ -2,31 +2,25 @@
* @file llviewerobjectlist.cpp
* @brief Implementation of LLViewerObjectList class.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -894,10 +888,10 @@ void LLViewerObjectList::removeDrawable(LLDrawable* drawablep)
BOOL LLViewerObjectList::killObject(LLViewerObject *objectp)
{
- // Don't ever kill gAgentAvatarp, just mark it as null region instead.
+ // Don't ever kill gAgentAvatarp, just force it to the agent's region
if (objectp == gAgentAvatarp)
{
- objectp->setRegion(NULL);
+ objectp->setRegion(gAgent.getRegion());
return FALSE;
}
diff --git a/indra/newview/llviewerobjectlist.h b/indra/newview/llviewerobjectlist.h
index 706966deae..eba5584b57 100644
--- a/indra/newview/llviewerobjectlist.h
+++ b/indra/newview/llviewerobjectlist.h
@@ -2,31 +2,25 @@
* @file llviewerobjectlist.h
* @brief Description of LLViewerObjectList class.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewerparcelmedia.cpp b/indra/newview/llviewerparcelmedia.cpp
index 202f8822e3..99e869dafc 100644
--- a/indra/newview/llviewerparcelmedia.cpp
+++ b/indra/newview/llviewerparcelmedia.cpp
@@ -2,31 +2,25 @@
* @file llviewerparcelmedia.cpp
* @brief Handlers for multimedia on a per-parcel basis
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -574,6 +568,24 @@ void LLViewerParcelMedia::handleMediaEvent(LLPluginClassMedia* self, EMediaEvent
LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_NAME_CHANGED" << LL_ENDL;
};
break;
+
+ case MEDIA_EVENT_CLOSE_REQUEST:
+ {
+ LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_CLOSE_REQUEST" << LL_ENDL;
+ }
+ break;
+
+ case MEDIA_EVENT_PICK_FILE_REQUEST:
+ {
+ LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_PICK_FILE_REQUEST" << LL_ENDL;
+ }
+ break;
+
+ case MEDIA_EVENT_GEOMETRY_CHANGE:
+ {
+ LL_DEBUGS("Media") << "Media event: MEDIA_EVENT_GEOMETRY_CHANGE, uuid is " << self->getClickUUID() << LL_ENDL;
+ }
+ break;
};
}
diff --git a/indra/newview/llviewerparcelmedia.h b/indra/newview/llviewerparcelmedia.h
index 19e1ef78d4..534f65b419 100644
--- a/indra/newview/llviewerparcelmedia.h
+++ b/indra/newview/llviewerparcelmedia.h
@@ -2,31 +2,25 @@
* @file llviewerparcelmedia.h
* @brief Handlers for multimedia on a per-parcel basis
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewerparcelmediaautoplay.cpp b/indra/newview/llviewerparcelmediaautoplay.cpp
index 032ad6635a..57ee583eae 100644
--- a/indra/newview/llviewerparcelmediaautoplay.cpp
+++ b/indra/newview/llviewerparcelmediaautoplay.cpp
@@ -2,31 +2,25 @@
* @file llviewerparcelmediaautoplay.cpp
* @brief timer to automatically play media in a parcel
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewerparcelmediaautoplay.h b/indra/newview/llviewerparcelmediaautoplay.h
index 40142c1dd1..a052362829 100644
--- a/indra/newview/llviewerparcelmediaautoplay.h
+++ b/indra/newview/llviewerparcelmediaautoplay.h
@@ -2,31 +2,25 @@
* @file llviewerparcelmediaautoplay.h
* @brief timer to automatically play media in a parcel
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewerparcelmgr.cpp b/indra/newview/llviewerparcelmgr.cpp
index a591cc1e14..660bb93562 100644
--- a/indra/newview/llviewerparcelmgr.cpp
+++ b/indra/newview/llviewerparcelmgr.cpp
@@ -2,31 +2,25 @@
* @file llviewerparcelmgr.cpp
* @brief Viewer-side representation of owned land
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewerparcelmgr.h b/indra/newview/llviewerparcelmgr.h
index 98be8e2c7b..68d8978ea8 100644
--- a/indra/newview/llviewerparcelmgr.h
+++ b/indra/newview/llviewerparcelmgr.h
@@ -2,31 +2,25 @@
* @file llviewerparcelmgr.h
* @brief Viewer-side representation of owned land
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewerparceloverlay.cpp b/indra/newview/llviewerparceloverlay.cpp
index 2d17ea7bcd..eee653b0c1 100644
--- a/indra/newview/llviewerparceloverlay.cpp
+++ b/indra/newview/llviewerparceloverlay.cpp
@@ -2,31 +2,25 @@
* @file llviewerparceloverlay.cpp
* @brief LLViewerParcelOverlay class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewerparceloverlay.h b/indra/newview/llviewerparceloverlay.h
index 161b7a386b..61be220312 100644
--- a/indra/newview/llviewerparceloverlay.h
+++ b/indra/newview/llviewerparceloverlay.h
@@ -2,31 +2,25 @@
* @file llviewerparceloverlay.h
* @brief LLViewerParcelOverlay class header file
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewerpartsim.cpp b/indra/newview/llviewerpartsim.cpp
index 6b480ccf8e..4fee85e45c 100644
--- a/indra/newview/llviewerpartsim.cpp
+++ b/indra/newview/llviewerpartsim.cpp
@@ -2,31 +2,25 @@
* @file llviewerpartsim.cpp
* @brief LLViewerPart class implementation
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewerpartsim.h b/indra/newview/llviewerpartsim.h
index 8f1f72518a..3e20f999c0 100644
--- a/indra/newview/llviewerpartsim.h
+++ b/indra/newview/llviewerpartsim.h
@@ -2,31 +2,25 @@
* @file llviewerpartsim.h
* @brief LLViewerPart class header file
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewerpartsource.cpp b/indra/newview/llviewerpartsource.cpp
index 4752bf1a85..4af92e79ff 100644
--- a/indra/newview/llviewerpartsource.cpp
+++ b/indra/newview/llviewerpartsource.cpp
@@ -2,31 +2,25 @@
* @file llviewerpartsource.cpp
* @brief LLViewerPartSource class implementation
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewerpartsource.h b/indra/newview/llviewerpartsource.h
index 540e30eb19..28702d36a2 100644
--- a/indra/newview/llviewerpartsource.h
+++ b/indra/newview/llviewerpartsource.h
@@ -2,31 +2,25 @@
* @file llviewerpartsource.h
* @brief LLViewerPartSource class header file
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewerprecompiledheaders.cpp b/indra/newview/llviewerprecompiledheaders.cpp
index 4f59b9cba3..307e903726 100644
--- a/indra/newview/llviewerprecompiledheaders.cpp
+++ b/indra/newview/llviewerprecompiledheaders.cpp
@@ -2,31 +2,25 @@
* @file llviewerprecompiledheaders.cpp
* @brief precompiled headers for newview project
*
- * $LicenseInfo:firstyear=2005&license=viewergpl$
- *
- * Copyright (c) 2005-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewerprecompiledheaders.h b/indra/newview/llviewerprecompiledheaders.h
index 50f905416c..ab07adce5d 100644
--- a/indra/newview/llviewerprecompiledheaders.h
+++ b/indra/newview/llviewerprecompiledheaders.h
@@ -3,31 +3,25 @@
* @brief precompiled headers for newview project
* @author James Cook
*
- * $LicenseInfo:firstyear=2005&license=viewergpl$
- *
- * Copyright (c) 2005-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewerregion.cpp b/indra/newview/llviewerregion.cpp
index da240cedbb..98f16757b2 100644
--- a/indra/newview/llviewerregion.cpp
+++ b/indra/newview/llviewerregion.cpp
@@ -2,31 +2,25 @@
* @file llviewerregion.cpp
* @brief Implementation of the LLViewerRegion class.
*
- * $LicenseInfo:firstyear=2000&license=viewergpl$
- *
- * Copyright (c) 2000-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2000&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -75,11 +69,6 @@
#pragma warning(disable:4355)
#endif
-// Viewer object cache version, change if object update
-// format changes. JC
-const U32 INDRA_OBJECT_CACHE_VERSION = 14;
-
-
extern BOOL gNoRender;
const F32 WATER_TEXTURE_SCALE = 8.f; // Number of times to repeat the water texture across a region
@@ -218,7 +207,7 @@ LLViewerRegion::LLViewerRegion(const U64 &handle,
mProductName("unknown"),
mHttpUrl(""),
mCacheLoaded(FALSE),
- mCacheEntriesCount(0),
+ mCacheDirty(FALSE),
mCacheID(),
mEventPoll(NULL),
mReleaseNotesRequested(FALSE),
@@ -268,8 +257,6 @@ LLViewerRegion::LLViewerRegion(const U64 &handle,
// Create the object lists
initStats();
- mCacheStart.append(mCacheEnd);
-
//create object partitions
//MUST MATCH declaration of eObjectPartitions
mObjectPartition.push_back(new LLHUDPartition()); //PARTITION_HUD
@@ -323,13 +310,12 @@ LLViewerRegion::~LLViewerRegion()
delete mEventPoll;
LLHTTPSender::clearSender(mHost);
- saveCache();
+ saveObjectCache();
std::for_each(mObjectPartition.begin(), mObjectPartition.end(), DeletePointer());
}
-
-void LLViewerRegion::loadCache()
+void LLViewerRegion::loadObjectCache()
{
if (mCacheLoaded)
{
@@ -339,144 +325,36 @@ void LLViewerRegion::loadCache()
// Presume success. If it fails, we don't want to try again.
mCacheLoaded = TRUE;
- LLVOCacheEntry *entry;
-
- std::string filename;
- filename = gDirUtilp->getExpandedFilename(LL_PATH_CACHE,"") + gDirUtilp->getDirDelimiter() +
- llformat("objects_%d_%d.slc",U32(mHandle>>32)/REGION_WIDTH_UNITS, U32(mHandle)/REGION_WIDTH_UNITS );
-
- LLFILE* fp = LLFile::fopen(filename, "rb"); /* Flawfinder: ignore */
- if (!fp)
+ if(LLVOCache::hasInstance())
{
- // might not have a file, which is normal
- return;
- }
-
- U32 zero;
- size_t nread;
- nread = fread(&zero, sizeof(U32), 1, fp);
- if (nread != 1 || zero)
- {
- // a non-zero value here means bad things!
- // skip reading the cached values
- llinfos << "Cache file invalid" << llendl;
- fclose(fp);
- return;
+ LLVOCache::getInstance()->readFromCache(mHandle, mCacheID, mCacheMap) ;
}
-
- U32 version;
- nread = fread(&version, sizeof(U32), 1, fp);
- if (nread != 1 || version != INDRA_OBJECT_CACHE_VERSION)
- {
- // a version mismatch here means we've changed the binary format!
- // skip reading the cached values
- llinfos << "Cache version changed, discarding" << llendl;
- fclose(fp);
- return;
- }
-
- LLUUID cache_id;
- nread = fread(&cache_id.mData, 1, UUID_BYTES, fp);
- if (nread != (size_t)UUID_BYTES || mCacheID != cache_id)
- {
- llinfos << "Cache ID doesn't match for this region, discarding"
- << llendl;
- fclose(fp);
- return;
- }
-
- S32 num_entries;
- nread = fread(&num_entries, sizeof(S32), 1, fp);
- if (nread != 1)
- {
- llinfos << "Short read, discarding" << llendl;
- fclose(fp);
- return;
- }
-
- S32 i;
- for (i = 0; i < num_entries; i++)
- {
- entry = new LLVOCacheEntry(fp);
- if (!entry->getLocalID())
- {
- llwarns << "Aborting cache file load for " << filename << ", cache file corruption!" << llendl;
- delete entry;
- entry = NULL;
- break;
- }
- mCacheEnd.insert(*entry);
- mCacheMap[entry->getLocalID()] = entry;
- mCacheEntriesCount++;
- }
-
- fclose(fp);
}
-void LLViewerRegion::saveCache()
+void LLViewerRegion::saveObjectCache()
{
if (!mCacheLoaded)
{
return;
}
- S32 num_entries = mCacheEntriesCount;
- if (0 == num_entries)
+ if (mCacheMap.empty())
{
return;
}
- std::string filename;
- filename = gDirUtilp->getExpandedFilename(LL_PATH_CACHE,"") + gDirUtilp->getDirDelimiter() +
- llformat("sobjects_%d_%d.slc", U32(mHandle>>32)/REGION_WIDTH_UNITS, U32(mHandle)/REGION_WIDTH_UNITS );
-
- LLFILE* fp = LLFile::fopen(filename, "wb"); /* Flawfinder: ignore */
- if (!fp)
- {
- llwarns << "Unable to write cache file " << filename << llendl;
- return;
- }
-
- // write out zero to indicate a version cache file
- U32 zero = 0;
- if (fwrite(&zero, sizeof(U32), 1, fp) != 1)
- {
- llwarns << "Short write" << llendl;
- }
-
- // write out version number
- U32 version = INDRA_OBJECT_CACHE_VERSION;
- if (fwrite(&version, sizeof(U32), 1, fp) != 1)
- {
- llwarns << "Short write" << llendl;
- }
-
- // write the cache id for this sim
- if (fwrite(&mCacheID.mData, 1, UUID_BYTES, fp) != (size_t)UUID_BYTES)
- {
- llwarns << "Short write" << llendl;
- }
-
- if (fwrite(&num_entries, sizeof(S32), 1, fp) != 1)
+ if(LLVOCache::hasInstance())
{
- llwarns << "Short write" << llendl;
+ LLVOCache::getInstance()->writeToCache(mHandle, mCacheID, mCacheMap, mCacheDirty) ;
+ mCacheDirty = FALSE;
}
- LLVOCacheEntry *entry;
-
- for (entry = mCacheStart.getNext(); entry && (entry != &mCacheEnd); entry = entry->getNext())
+ for(LLVOCacheEntry::vocache_entry_map_t::iterator iter = mCacheMap.begin(); iter != mCacheMap.end(); ++iter)
{
- entry->writeToFile(fp);
+ delete iter->second;
}
-
mCacheMap.clear();
- mCacheEnd.unlink();
- mCacheEnd.init();
- mCacheStart.deleteAll();
- mCacheStart.init();
-
- fclose(fp);
}
void LLViewerRegion::sendMessage()
@@ -1169,7 +1047,6 @@ void LLViewerRegion::cacheFullUpdate(LLViewerObject* objectp, LLDataPackerBinary
mCacheMap.erase(local_id);
delete entry;
entry = new LLVOCacheEntry(local_id, crc, dp);
- mCacheEnd.insert(*entry);
mCacheMap[local_id] = entry;
}
}
@@ -1178,18 +1055,13 @@ void LLViewerRegion::cacheFullUpdate(LLViewerObject* objectp, LLDataPackerBinary
// we haven't seen this object before
// Create new entry and add to map
- if (mCacheEntriesCount > MAX_OBJECT_CACHE_ENTRIES)
+ if (mCacheMap.size() > MAX_OBJECT_CACHE_ENTRIES)
{
- entry = mCacheStart.getNext();
- mCacheMap.erase(entry->getLocalID());
- delete entry;
- mCacheEntriesCount--;
+ mCacheMap.erase(mCacheMap.begin());
}
entry = new LLVOCacheEntry(local_id, crc, dp);
- mCacheEnd.insert(*entry);
mCacheMap[local_id] = entry;
- mCacheEntriesCount++;
}
return ;
}
@@ -1304,6 +1176,7 @@ void LLViewerRegion::requestCacheMisses()
mCacheMissFull.reset();
mCacheMissCRC.reset();
+ mCacheDirty = TRUE ;
// llinfos << "KILLDEBUG Sent cache miss full " << full_count << " crc " << crc_count << llendl;
}
@@ -1321,9 +1194,10 @@ void LLViewerRegion::dumpCache()
}
LLVOCacheEntry *entry;
-
- for (entry = mCacheStart.getNext(); entry && (entry != &mCacheEnd); entry = entry->getNext())
+ for(LLVOCacheEntry::vocache_entry_map_t::iterator iter = mCacheMap.begin(); iter != mCacheMap.end(); ++iter)
{
+ entry = iter->second ;
+
S32 hits = entry->getHitCount();
S32 changes = entry->getCRCChangeCount();
@@ -1334,7 +1208,7 @@ void LLViewerRegion::dumpCache()
change_bin[changes]++;
}
- llinfos << "Count " << mCacheEntriesCount << llendl;
+ llinfos << "Count " << mCacheMap.size() << llendl;
for (i = 0; i < BINS; i++)
{
llinfos << "Hits " << i << " " << hit_bin[i] << llendl;
@@ -1454,7 +1328,7 @@ void LLViewerRegion::unpackRegionHandshake()
// Now that we have the name, we can load the cache file
// off disk.
- loadCache();
+ loadObjectCache();
// After loading cache, signal that simulator can start
// sending data.
diff --git a/indra/newview/llviewerregion.h b/indra/newview/llviewerregion.h
index a9e7ef771c..038c831e59 100644
--- a/indra/newview/llviewerregion.h
+++ b/indra/newview/llviewerregion.h
@@ -2,31 +2,25 @@
* @file llviewerregion.h
* @brief Description of the LLViewerRegion class.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -99,9 +93,8 @@ public:
~LLViewerRegion();
// Call this after you have the region name and handle.
- void loadCache();
-
- void saveCache();
+ void loadObjectCache();
+ void saveObjectCache();
void sendMessage(); // Send the current message to this region's simulator
void sendReliableMessage(); // Send the current message to this region's simulator
@@ -391,11 +384,8 @@ private:
// Regions can have order 10,000 objects, so assume
// a structure of size 2^14 = 16,000
BOOL mCacheLoaded;
- typedef std::map<U32, LLVOCacheEntry *> cache_map_t;
- cache_map_t mCacheMap;
- LLVOCacheEntry mCacheStart;
- LLVOCacheEntry mCacheEnd;
- U32 mCacheEntriesCount;
+ BOOL mCacheDirty;
+ LLVOCacheEntry::vocache_entry_map_t mCacheMap;
LLDynamicArray<U32> mCacheMissFull;
LLDynamicArray<U32> mCacheMissCRC;
// time?
@@ -404,7 +394,7 @@ private:
// Cache ID is unique per-region, across renames, moving locations,
// etc.
LLUUID mCacheID;
-
+
typedef std::map<std::string, std::string> CapabilityMap;
CapabilityMap mCapabilities;
diff --git a/indra/newview/llviewershadermgr.cpp b/indra/newview/llviewershadermgr.cpp
index 86b1a8c910..d078c15316 100644
--- a/indra/newview/llviewershadermgr.cpp
+++ b/indra/newview/llviewershadermgr.cpp
@@ -2,31 +2,25 @@
* @file llviewershadermgr.cpp
* @brief Viewer shader manager implementation.
*
- * $LicenseInfo:firstyear=2005&license=viewergpl$
- *
- * Copyright (c) 2005-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -317,10 +311,16 @@ S32 LLViewerShaderMgr::getVertexShaderLevel(S32 type)
void LLViewerShaderMgr::setShaders()
{
- if (!gPipeline.mInitialized || !sInitialized)
+ //setShaders might be called redundantly by gSavedSettings, so return on reentrance
+ static bool reentrance = false;
+
+ if (!gPipeline.mInitialized || !sInitialized || reentrance)
{
return;
}
+
+ reentrance = true;
+
// Make sure the compiled shader map is cleared before we recompile shaders.
mShaderObjects.clear();
@@ -368,17 +368,11 @@ void LLViewerShaderMgr::setShaders()
S32 wl_class = 2;
S32 water_class = 2;
S32 deferred_class = 0;
- if (!(LLFeatureManager::getInstance()->isFeatureAvailable("WindLightUseAtmosShaders")
- && gSavedSettings.getBOOL("WindLightUseAtmosShaders")))
- {
- // user has disabled WindLight in their settings, downgrade
- // windlight shaders to stub versions.
- wl_class = 1;
- }
-
- if (LLPipeline::sRenderDeferred)
+
+ if (LLFeatureManager::getInstance()->isFeatureAvailable("RenderDeferred") &&
+ gSavedSettings.getBOOL("RenderDeferred"))
{
- if (gSavedSettings.getBOOL("RenderDeferredShadow"))
+ if (gSavedSettings.getS32("RenderShadowDetail") > 0)
{
if (gSavedSettings.getBOOL("RenderDeferredGI"))
{ //shadows + gi
@@ -393,6 +387,24 @@ void LLViewerShaderMgr::setShaders()
{ //no shadows
deferred_class = 1;
}
+
+ //make sure framebuffer objects are enabled
+ gSavedSettings.setBOOL("RenderUseFBO", TRUE);
+
+ //make sure hardware skinning is enabled
+ gSavedSettings.setBOOL("RenderAvatarVP", TRUE);
+
+ //make sure atmospheric shaders are enabled
+ gSavedSettings.setBOOL("WindLightUseAtmosShaders", TRUE);
+ }
+
+
+ if (!(LLFeatureManager::getInstance()->isFeatureAvailable("WindLightUseAtmosShaders")
+ && gSavedSettings.getBOOL("WindLightUseAtmosShaders")))
+ {
+ // user has disabled WindLight in their settings, downgrade
+ // windlight shaders to stub versions.
+ wl_class = 1;
}
if(!gSavedSettings.getBOOL("EnableRippleWater"))
@@ -517,6 +529,8 @@ void LLViewerShaderMgr::setShaders()
gViewerWindow->setCursor(UI_CURSOR_ARROW);
}
gPipeline.createGLBuffers();
+
+ reentrance = false;
}
void LLViewerShaderMgr::unloadShaders()
@@ -973,10 +987,21 @@ BOOL LLViewerShaderMgr::loadShadersDeferred()
if (success)
{
+ std::string fragment;
+
+ if (gSavedSettings.getBOOL("RenderDeferredSSAO"))
+ {
+ fragment = "deferred/sunLightSSAOF.glsl";
+ }
+ else
+ {
+ fragment = "deferred/sunLightF.glsl";
+ }
+
gDeferredSunProgram.mName = "Deferred Sun Shader";
gDeferredSunProgram.mShaderFiles.clear();
gDeferredSunProgram.mShaderFiles.push_back(make_pair("deferred/sunLightV.glsl", GL_VERTEX_SHADER_ARB));
- gDeferredSunProgram.mShaderFiles.push_back(make_pair("deferred/sunLightF.glsl", GL_FRAGMENT_SHADER_ARB));
+ gDeferredSunProgram.mShaderFiles.push_back(make_pair(fragment, GL_FRAGMENT_SHADER_ARB));
gDeferredSunProgram.mShaderLevel = mVertexShaderLevel[SHADER_DEFERRED];
success = gDeferredSunProgram.createShader(NULL, NULL);
}
diff --git a/indra/newview/llviewershadermgr.h b/indra/newview/llviewershadermgr.h
index ac2b4624e0..db880fded6 100644
--- a/indra/newview/llviewershadermgr.h
+++ b/indra/newview/llviewershadermgr.h
@@ -2,31 +2,25 @@
* @file llviewershadermgr.h
* @brief Viewer Shader Manager
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewerstats.cpp b/indra/newview/llviewerstats.cpp
index bdc34d0f18..e55808597c 100644
--- a/indra/newview/llviewerstats.cpp
+++ b/indra/newview/llviewerstats.cpp
@@ -2,31 +2,25 @@
* @file llviewerstats.cpp
* @brief LLViewerStats class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -280,6 +274,8 @@ LLViewerStats::LLViewerStats() :
{
mStats[ST_HAS_BAD_TIMER] = 1.0;
}
+
+ mAgentPositionSnaps.reset();
}
LLViewerStats::~LLViewerStats()
@@ -299,6 +295,8 @@ void LLViewerStats::resetStats()
LLViewerStats::getInstance()->mPacketsOutStat.reset();
LLViewerStats::getInstance()->mFPSStat.reset();
LLViewerStats::getInstance()->mTexturePacketsStat.reset();
+
+ LLViewerStats::getInstance()->mAgentPositionSnaps.reset();
}
@@ -393,6 +391,10 @@ void LLViewerStats::addToMessage(LLSD &body) const
<< llendl;
}
}
+
+ body["AgentPositionSnaps"] = mAgentPositionSnaps.getData();
+ llinfos << "STAT: AgentPositionSnaps: Mean = " << mAgentPositionSnaps.getMean() << "; StdDev = " << mAgentPositionSnaps.getStdDev()
+ << "; Count = " << mAgentPositionSnaps.getCount() << llendl;
}
// static
@@ -592,7 +594,7 @@ void update_statistics(U32 frame_count)
}
}
LLViewerStats::getInstance()->setStat(LLViewerStats::ST_ENABLE_VBO, (F64)gSavedSettings.getBOOL("RenderVBOEnable"));
- LLViewerStats::getInstance()->setStat(LLViewerStats::ST_LIGHTING_DETAIL, (F64)gSavedSettings.getS32("RenderLightingDetail"));
+ LLViewerStats::getInstance()->setStat(LLViewerStats::ST_LIGHTING_DETAIL, (F64)gPipeline.getLightingDetail());
LLViewerStats::getInstance()->setStat(LLViewerStats::ST_DRAW_DIST, (F64)gSavedSettings.getF32("RenderFarClip"));
LLViewerStats::getInstance()->setStat(LLViewerStats::ST_CHAT_BUBBLES, (F64)gSavedSettings.getBOOL("UseChatBubbles"));
#if 0 // 1.9.2
diff --git a/indra/newview/llviewerstats.h b/indra/newview/llviewerstats.h
index 13d73000d2..ca977d4599 100644
--- a/indra/newview/llviewerstats.h
+++ b/indra/newview/llviewerstats.h
@@ -2,31 +2,25 @@
* @file llviewerstats.h
* @brief LLViewerStats class header file
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -197,6 +191,61 @@ public:
void addToMessage(LLSD &body) const;
+ struct StatsAccumulator
+ {
+ S32 mCount;
+ F32 mSum;
+ F32 mSumOfSquares;
+ U32 mCountOfNextUpdatesToIgnore;
+
+ inline void push( F32 val )
+ {
+ if ( mCountOfNextUpdatesToIgnore > 0 )
+ {
+ mCountOfNextUpdatesToIgnore--;
+ return;
+ }
+
+ mCount++;
+ mSum += val;
+ mSumOfSquares += val * val;
+ }
+
+ inline F32 getMean() const
+ {
+ return (mCount == 0) ? 0.f : ((F32)mSum)/mCount;
+ }
+
+ inline F32 getStdDev() const
+ {
+ const F32 mean = getMean();
+ return (mCount == 0) ? 0.f : sqrt( mSumOfSquares/mCount - (mean * mean) );
+ }
+
+ inline U32 getCount() const
+ {
+ return mCount;
+ }
+
+ inline void reset()
+ {
+ mCount = 0;
+ mSum = mSumOfSquares = 0.f;
+ mCountOfNextUpdatesToIgnore = 0;
+ }
+
+ inline LLSD getData() const
+ {
+ LLSD data;
+ data["mean"] = getMean();
+ data["std_dev"] = getStdDev();
+ data["count"] = (S32)mCount;
+ return data;
+ }
+ };
+
+ StatsAccumulator mAgentPositionSnaps;
+
private:
F64 mStats[ST_COUNT];
@@ -214,5 +263,5 @@ void send_stats();
extern std::map<S32,LLFrameTimer> gDebugTimers;
extern std::map<S32,std::string> gDebugTimerLabel;
-
+extern U32 gTotalTextureBytes;
#endif // LL_LLVIEWERSTATS_H
diff --git a/indra/newview/llviewertexteditor.cpp b/indra/newview/llviewertexteditor.cpp
index 59efae4cb2..0c36970878 100644
--- a/indra/newview/llviewertexteditor.cpp
+++ b/indra/newview/llviewertexteditor.cpp
@@ -2,31 +2,25 @@
* @file llviewertexteditor.cpp
* @brief Text editor widget to let users enter a multi-line document.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -90,7 +84,7 @@ public:
}
static void processForeignLandmark(LLLandmark* landmark,
const LLUUID& object_id, const LLUUID& notecard_inventory_id,
- LLInventoryItem* item)
+ LLPointer<LLInventoryItem> item_ptr)
{
LLVector3d global_pos;
landmark->getGlobalPos(global_pos);
@@ -103,8 +97,16 @@ public:
}
else
{
- LLPointer<LLEmbeddedLandmarkCopied> cb = new LLEmbeddedLandmarkCopied();
- copy_inventory_from_notecard(object_id, notecard_inventory_id, item, gInventoryCallbacks.registerCB(cb));
+ if (item_ptr.isNull())
+ {
+ // check to prevent a crash. See EXT-8459.
+ llwarns << "Passed handle contains a dead inventory item. Most likely notecard has been closed and embedded item was destroyed." << llendl;
+ }
+ else
+ {
+ LLPointer<LLEmbeddedLandmarkCopied> cb = new LLEmbeddedLandmarkCopied();
+ copy_inventory_from_notecard(object_id, notecard_inventory_id, item_ptr.get(), gInventoryCallbacks.registerCB(cb));
+ }
}
}
};
@@ -300,14 +302,14 @@ public:
void markSaved();
- static LLInventoryItem* getEmbeddedItem(llwchar ext_char); // returns item from static list
+ static LLPointer<LLInventoryItem> getEmbeddedItemPtr(llwchar ext_char); // returns pointer to item from static list
static BOOL getEmbeddedItemSaved(llwchar ext_char); // returns whether item from static list is saved
private:
struct embedded_info_t
{
- LLPointer<LLInventoryItem> mItem;
+ LLPointer<LLInventoryItem> mItemPtr;
BOOL mSaved;
};
typedef std::map<llwchar, embedded_info_t > item_map_t;
@@ -378,7 +380,7 @@ BOOL LLEmbeddedItems::insertEmbeddedItem( LLInventoryItem* item, llwchar* ext_ch
++wc_emb;
}
- sEntries[wc_emb].mItem = item;
+ sEntries[wc_emb].mItemPtr = item;
sEntries[wc_emb].mSaved = is_new ? FALSE : TRUE;
*ext_char = wc_emb;
mEmbeddedUsedChars.insert(wc_emb);
@@ -400,14 +402,14 @@ BOOL LLEmbeddedItems::removeEmbeddedItem( llwchar ext_char )
}
// static
-LLInventoryItem* LLEmbeddedItems::getEmbeddedItem(llwchar ext_char)
+LLPointer<LLInventoryItem> LLEmbeddedItems::getEmbeddedItemPtr(llwchar ext_char)
{
if( ext_char >= LLTextEditor::FIRST_EMBEDDED_CHAR && ext_char <= LLTextEditor::LAST_EMBEDDED_CHAR )
{
item_map_t::iterator iter = sEntries.find(ext_char);
if (iter != sEntries.end())
{
- return iter->second.mItem;
+ return iter->second.mItemPtr;
}
}
return NULL;
@@ -505,7 +507,7 @@ BOOL LLEmbeddedItems::hasEmbeddedItem(llwchar ext_char)
LLUIImagePtr LLEmbeddedItems::getItemImage(llwchar ext_char) const
{
- LLInventoryItem* item = getEmbeddedItem(ext_char);
+ LLInventoryItem* item = getEmbeddedItemPtr(ext_char);
if (item)
{
const char* img_name = "";
@@ -567,7 +569,7 @@ void LLEmbeddedItems::getEmbeddedItemList( std::vector<LLPointer<LLInventoryItem
for (std::set<llwchar>::iterator iter = mEmbeddedUsedChars.begin(); iter != mEmbeddedUsedChars.end(); ++iter)
{
llwchar wc = *iter;
- LLPointer<LLInventoryItem> item = getEmbeddedItem(wc);
+ LLPointer<LLInventoryItem> item = getEmbeddedItemPtr(wc);
if (item)
{
items.push_back(item);
@@ -698,7 +700,7 @@ BOOL LLViewerTextEditor::handleMouseDown(S32 x, S32 y, MASK mask)
{
wc = getWText()[mCursorPos];
}
- LLInventoryItem* item_at_pos = LLEmbeddedItems::getEmbeddedItem(wc);
+ LLPointer<LLInventoryItem> item_at_pos = LLEmbeddedItems::getEmbeddedItemPtr(wc);
if (item_at_pos)
{
mDragItem = item_at_pos;
@@ -1019,7 +1021,7 @@ llwchar LLViewerTextEditor::pasteEmbeddedItem(llwchar ext_char)
{
return ext_char; // already exists in my list
}
- LLInventoryItem* item = LLEmbeddedItems::getEmbeddedItem(ext_char);
+ LLInventoryItem* item = LLEmbeddedItems::getEmbeddedItemPtr(ext_char);
if (item)
{
// Add item to my list and return new llwchar associated with it
@@ -1053,7 +1055,7 @@ void LLViewerTextEditor::findEmbeddedItemSegments(S32 start, S32 end)
&& embedded_char <= LAST_EMBEDDED_CHAR
&& mEmbeddedItemList->hasEmbeddedItem(embedded_char) )
{
- LLInventoryItem* itemp = mEmbeddedItemList->getEmbeddedItem(embedded_char);
+ LLInventoryItem* itemp = mEmbeddedItemList->getEmbeddedItemPtr(embedded_char);
LLUIImagePtr image = mEmbeddedItemList->getItemImage(embedded_char);
insertSegment(new LLEmbeddedItemSegment(idx, image, itemp, *this));
}
@@ -1065,7 +1067,7 @@ BOOL LLViewerTextEditor::openEmbeddedItemAtPos(S32 pos)
if( pos < getLength())
{
llwchar wc = getWText()[pos];
- LLInventoryItem* item = LLEmbeddedItems::getEmbeddedItem( wc );
+ LLPointer<LLInventoryItem> item = LLEmbeddedItems::getEmbeddedItemPtr( wc );
if( item )
{
BOOL saved = LLEmbeddedItems::getEmbeddedItemSaved( wc );
@@ -1083,7 +1085,7 @@ BOOL LLViewerTextEditor::openEmbeddedItemAtPos(S32 pos)
}
-BOOL LLViewerTextEditor::openEmbeddedItem(LLInventoryItem* item, llwchar wc)
+BOOL LLViewerTextEditor::openEmbeddedItem(LLPointer<LLInventoryItem> item, llwchar wc)
{
switch( item->getType() )
@@ -1151,17 +1153,17 @@ void LLViewerTextEditor::openEmbeddedSound( LLInventoryItem* item, llwchar wc )
}
-void LLViewerTextEditor::openEmbeddedLandmark( LLInventoryItem* item, llwchar wc )
+void LLViewerTextEditor::openEmbeddedLandmark( LLPointer<LLInventoryItem> item_ptr, llwchar wc )
{
- if (!item)
+ if (item_ptr.isNull())
return;
- LLLandmark* landmark = gLandmarkList.getAsset(item->getAssetUUID(),
- boost::bind(&LLEmbeddedLandmarkCopied::processForeignLandmark, _1, mObjectID, mNotecardInventoryID, item));
+ LLLandmark* landmark = gLandmarkList.getAsset(item_ptr->getAssetUUID(),
+ boost::bind(&LLEmbeddedLandmarkCopied::processForeignLandmark, _1, mObjectID, mNotecardInventoryID, item_ptr));
if (landmark)
{
LLEmbeddedLandmarkCopied::processForeignLandmark(landmark, mObjectID,
- mNotecardInventoryID, item);
+ mNotecardInventoryID, item_ptr);
}
}
@@ -1220,7 +1222,7 @@ bool LLViewerTextEditor::onCopyToInvDialog(const LLSD& notification, const LLSD&
{
LLUUID item_id = notification["payload"]["item_id"].asUUID();
llwchar wc = llwchar(notification["payload"]["item_wc"].asInteger());
- LLInventoryItem* itemp = LLEmbeddedItems::getEmbeddedItem(wc);
+ LLInventoryItem* itemp = LLEmbeddedItems::getEmbeddedItemPtr(wc);
if (itemp)
copyInventory(itemp);
}
diff --git a/indra/newview/llviewertexteditor.h b/indra/newview/llviewertexteditor.h
index ba0c40cb2e..0861dfcb20 100644
--- a/indra/newview/llviewertexteditor.h
+++ b/indra/newview/llviewertexteditor.h
@@ -2,31 +2,25 @@
* @file llviewertexteditor.h
* @brief Text editor widget to let users enter a multi-line document//
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -104,13 +98,16 @@ private:
virtual llwchar pasteEmbeddedItem(llwchar ext_char);
BOOL openEmbeddedItemAtPos( S32 pos );
- BOOL openEmbeddedItem(LLInventoryItem* item, llwchar wc);
+ BOOL openEmbeddedItem(LLPointer<LLInventoryItem> item, llwchar wc);
S32 insertEmbeddedItem(S32 pos, LLInventoryItem* item);
+ // *NOTE: most of openEmbeddedXXX methods except openEmbeddedLandmark take pointer to LLInventoryItem.
+ // Be sure they don't bind it to callback function to avoid situation when it gets invalid when
+ // callback is trigged after text editor is closed. See EXT-8459.
void openEmbeddedTexture( LLInventoryItem* item, llwchar wc );
void openEmbeddedSound( LLInventoryItem* item, llwchar wc );
- void openEmbeddedLandmark( LLInventoryItem* item, llwchar wc );
+ void openEmbeddedLandmark( LLPointer<LLInventoryItem> item_ptr, llwchar wc );
void openEmbeddedNotecard( LLInventoryItem* item, llwchar wc);
void openEmbeddedCallingcard( LLInventoryItem* item, llwchar wc);
void showCopyToInvDialog( LLInventoryItem* item, llwchar wc );
diff --git a/indra/newview/llviewertexture.cpp b/indra/newview/llviewertexture.cpp
index 9b5b210bf7..5c262838ae 100644
--- a/indra/newview/llviewertexture.cpp
+++ b/indra/newview/llviewertexture.cpp
@@ -2,31 +2,25 @@
* @file llviewertexture.cpp
* @brief Object which handles a received image (and associated texture(s))
*
- * $LicenseInfo:firstyear=2000&license=viewergpl$
- *
- * Copyright (c) 2000-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2000&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -112,13 +106,53 @@ const F64 log_2 = log(2.0);
LLLoadedCallbackEntry::LLLoadedCallbackEntry(loaded_callback_func cb,
S32 discard_level,
BOOL need_imageraw, // Needs image raw for the callback
- void* userdata )
+ void* userdata,
+ LLLoadedCallbackEntry::source_callback_list_t* src_callback_list,
+ LLViewerFetchedTexture* target,
+ BOOL pause)
: mCallback(cb),
mLastUsedDiscard(MAX_DISCARD_LEVEL+1),
mDesiredDiscard(discard_level),
mNeedsImageRaw(need_imageraw),
- mUserData(userdata)
+ mUserData(userdata),
+ mSourceCallbackList(src_callback_list),
+ mPaused(pause)
+{
+ if(mSourceCallbackList)
+ {
+ mSourceCallbackList->insert(target->getID());
+ }
+}
+
+LLLoadedCallbackEntry::~LLLoadedCallbackEntry()
+{
+}
+
+void LLLoadedCallbackEntry::removeTexture(LLViewerFetchedTexture* tex)
+{
+ if(mSourceCallbackList)
+ {
+ mSourceCallbackList->erase(tex->getID()) ;
+ }
+}
+
+//static
+void LLLoadedCallbackEntry::cleanUpCallbackList(LLLoadedCallbackEntry::source_callback_list_t* callback_list)
{
+ //clear texture callbacks.
+ if(callback_list && !callback_list->empty())
+ {
+ for(LLLoadedCallbackEntry::source_callback_list_t::iterator iter = callback_list->begin();
+ iter != callback_list->end(); ++iter)
+ {
+ LLViewerFetchedTexture* tex = gTextureList.findImage(*iter) ;
+ if(tex)
+ {
+ tex->deleteCallbackEntry(callback_list) ;
+ }
+ }
+ callback_list->clear() ;
+ }
}
LLViewerMediaTexture* LLViewerTextureManager::createMediaTexture(const LLUUID &media_id, BOOL usemipmaps, LLImageGL* gl_image)
@@ -324,9 +358,7 @@ void LLViewerTextureManager::cleanup()
LLViewerFetchedTexture::sMissingAssetImagep = NULL;
LLViewerFetchedTexture::sWhiteImagep = NULL;
- LLViewerMediaTexture::cleanup() ;
-
- LLViewerTexture::cleanupClass() ;
+ LLViewerMediaTexture::cleanUpClass() ;
}
//----------------------------------------------------------------------------------------------
@@ -345,11 +377,6 @@ void LLViewerTexture::initClass()
}
// static
-void LLViewerTexture::cleanupClass()
-{
-}
-
-// static
S32 LLViewerTexture::getTotalNumOfCategories()
{
return MAX_GL_IMAGE_CATEGORY - (BOOST_HIGH - BOOST_SCULPTED) + 2 ;
@@ -460,6 +487,7 @@ LLViewerTexture::LLViewerTexture(const U32 width, const U32 height, const U8 com
mFullHeight = height ;
mUseMipMaps = usemipmaps ;
mComponents = components ;
+ setTexelsPerImage();
mID.generate();
sImageCount++;
@@ -478,6 +506,7 @@ LLViewerTexture::LLViewerTexture(const LLImageRaw* raw, BOOL usemipmaps)
LLViewerTexture::~LLViewerTexture()
{
+ cleanup();
sImageCount--;
}
@@ -487,15 +516,16 @@ void LLViewerTexture::init(bool firstinit)
mFullWidth = 0;
mFullHeight = 0;
+ mTexelsPerImage = 0 ;
mUseMipMaps = FALSE ;
mComponents = 0 ;
mTextureState = NO_DELETE ;
mDontDiscard = FALSE;
- mCanResetMaxVirtualSize = true ;
mMaxVirtualSize = 0.f;
mNeedsGLTexture = FALSE ;
- mNeedsResetMaxVirtualSize = FALSE ;
+ mMaxVirtualSizeResetInterval = 1;
+ mMaxVirtualSizeResetCounter = mMaxVirtualSizeResetInterval ;
mAdditionalDecodePriority = 0.f ;
mParcelMedia = NULL ;
mNumFaces = 0 ;
@@ -591,11 +621,6 @@ void LLViewerTexture::forceImmediateUpdate()
{
}
-void LLViewerTexture::setResetMaxVirtualSizeFlag(bool flag)
-{
- mCanResetMaxVirtualSize = flag ;
-}
-
void LLViewerTexture::addTextureStats(F32 virtual_size, BOOL needs_gltexture) const
{
if(needs_gltexture)
@@ -603,10 +628,10 @@ void LLViewerTexture::addTextureStats(F32 virtual_size, BOOL needs_gltexture) co
mNeedsGLTexture = TRUE ;
}
- if(mNeedsResetMaxVirtualSize)
+ if(!mMaxVirtualSizeResetCounter)
{
//flag to reset the values because the old values are used.
- mNeedsResetMaxVirtualSize = FALSE ;
+ resetMaxVirtualSizeResetCounter() ;
mMaxVirtualSize = virtual_size;
mAdditionalDecodePriority = 0.f ;
mNeedsGLTexture = needs_gltexture ;
@@ -621,7 +646,7 @@ void LLViewerTexture::resetTextureStats()
{
mMaxVirtualSize = 0.0f ;
mAdditionalDecodePriority = 0.f ;
- mNeedsResetMaxVirtualSize = FALSE ;
+ mMaxVirtualSizeResetCounter = 0 ;
}
//virtual
@@ -783,7 +808,7 @@ void LLViewerTexture::generateGLTexture()
LLImageGL* LLViewerTexture::getGLTexture() const
{
llassert(mGLTexturep.notNull()) ;
-
+
return mGLTexturep ;
}
@@ -807,7 +832,8 @@ BOOL LLViewerTexture::createGLTexture(S32 discard_level, const LLImageRaw* image
{
mFullWidth = mGLTexturep->getCurrentWidth() ;
mFullHeight = mGLTexturep->getCurrentHeight() ;
- mComponents = mGLTexturep->getComponents() ;
+ mComponents = mGLTexturep->getComponents() ;
+ setTexelsPerImage();
}
return ret ;
@@ -1025,9 +1051,16 @@ void LLViewerTexture::destroyGLTexture()
}
}
+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 mFullWidth * mFullHeight > LLViewerTexture::sMinLargeImageSize ;
+ return (S32)mTexelsPerImage > LLViewerTexture::sMinLargeImageSize ;
}
//virtual
@@ -1098,6 +1131,7 @@ void LLViewerFetchedTexture::init(bool firstinit)
mIsMissingAsset = FALSE;
mLoadedCallbackDesiredDiscardLevel = 0;
+ mPauseLoadedCallBacks = TRUE ;
mNeedsCreateTexture = FALSE;
@@ -1153,6 +1187,7 @@ void LLViewerFetchedTexture::cleanup()
// We never finished loading the image. Indicate failure.
// Note: this allows mLoadedCallbackUserData to be cleaned up.
entryp->mCallback( FALSE, this, NULL, NULL, 0, TRUE, entryp->mUserData );
+ entryp->removeTexture(this) ;
delete entryp;
}
mLoadedCallbackList.clear();
@@ -1379,6 +1414,7 @@ BOOL LLViewerFetchedTexture::createTexture(S32 usename/*= 0*/)
mFullWidth = mRawImage->getWidth();
mFullHeight = mRawImage->getHeight();
+ setTexelsPerImage();
}
else
{
@@ -1448,53 +1484,62 @@ void LLViewerFetchedTexture::setKnownDrawSize(S32 width, S32 height)
void LLViewerFetchedTexture::processTextureStats()
{
if(mFullyLoaded)
- {
- if(mDesiredDiscardLevel <= mMinDesiredDiscardLevel)//already loaded
+ {
+ if(mDesiredDiscardLevel > mMinDesiredDiscardLevel)//need to load more
{
- return ;
+ mDesiredDiscardLevel = llmin(mDesiredDiscardLevel, mMinDesiredDiscardLevel) ;
+ mFullyLoaded = FALSE ;
}
- mDesiredDiscardLevel = llmin(mDesiredDiscardLevel, mMinDesiredDiscardLevel) ;
- mFullyLoaded = FALSE ;
- return ;
- }
-
- updateVirtualSize() ;
-
- static LLCachedControl<bool> textures_fullres(gSavedSettings,"TextureLoadFullRes");
-
- if (textures_fullres)
- {
- mDesiredDiscardLevel = 0;
- }
- else if(!mFullWidth || !mFullHeight)
- {
- mDesiredDiscardLevel = getMaxDiscardLevel() ;
}
else
- {
- if(!mKnownDrawWidth || !mKnownDrawHeight || mFullWidth <= mKnownDrawWidth || mFullHeight <= mKnownDrawHeight)
+ {
+ updateVirtualSize() ;
+
+ static LLCachedControl<bool> textures_fullres(gSavedSettings,"TextureLoadFullRes");
+
+ if (textures_fullres)
+ {
+ mDesiredDiscardLevel = 0;
+ }
+ else if(!mFullWidth || !mFullHeight)
{
- if (mFullWidth > MAX_IMAGE_SIZE_DEFAULT || mFullHeight > MAX_IMAGE_SIZE_DEFAULT)
+ mDesiredDiscardLevel = getMaxDiscardLevel() ;
+ }
+ else
+ {
+ if(!mKnownDrawWidth || !mKnownDrawHeight || mFullWidth <= mKnownDrawWidth || mFullHeight <= mKnownDrawHeight)
{
- mDesiredDiscardLevel = 1; // MAX_IMAGE_SIZE_DEFAULT = 1024 and max size ever is 2048
+ 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
+ {
+ mDesiredDiscardLevel = 0;
+ }
}
- else
+ else if(mKnownDrawSizeChanged)//known draw size is set
+ {
+ mDesiredDiscardLevel = (S8)llmin(log((F32)mFullWidth / mKnownDrawWidth) / log_2,
+ log((F32)mFullHeight / mKnownDrawHeight) / log_2) ;
+ mDesiredDiscardLevel = llclamp(mDesiredDiscardLevel, (S8)0, (S8)getMaxDiscardLevel()) ;
+ mDesiredDiscardLevel = llmin(mDesiredDiscardLevel, mMinDesiredDiscardLevel) ;
+ }
+ mKnownDrawSizeChanged = FALSE ;
+
+ if(getDiscardLevel() >= 0 && (getDiscardLevel() <= mDesiredDiscardLevel))
{
- mDesiredDiscardLevel = 0;
+ mFullyLoaded = TRUE ;
}
}
- else if(mKnownDrawSizeChanged)//known draw size is set
- {
- mDesiredDiscardLevel = (S8)llmin(log((F32)mFullWidth / mKnownDrawWidth) / log_2,
- log((F32)mFullHeight / mKnownDrawHeight) / log_2) ;
- mDesiredDiscardLevel = llclamp(mDesiredDiscardLevel, (S8)0, (S8)getMaxDiscardLevel()) ;
- mDesiredDiscardLevel = llmin(mDesiredDiscardLevel, mMinDesiredDiscardLevel) ;
- }
- mKnownDrawSizeChanged = FALSE ;
-
- if(getDiscardLevel() >= 0 && (getDiscardLevel() <= mDesiredDiscardLevel))
+ }
+
+ if(mForceToSaveRawImage && mDesiredSavedRawDiscardLevel >= 0) //force to refetch the texture.
+ {
+ mDesiredDiscardLevel = llmin(mDesiredDiscardLevel, (S8)mDesiredSavedRawDiscardLevel) ;
+ if(getDiscardLevel() < 0 || getDiscardLevel() > mDesiredDiscardLevel)
{
- mFullyLoaded = TRUE ;
+ mFullyLoaded = FALSE ;
}
}
}
@@ -1529,6 +1574,7 @@ F32 LLViewerFetchedTexture::calcDecodePriority()
F32 pixel_priority = fsqrtf(mMaxVirtualSize);
F32 priority = 0.f;
+
if (mIsMissingAsset)
{
priority = 0.0f;
@@ -1550,7 +1596,7 @@ F32 LLViewerFetchedTexture::calcDecodePriority()
{
priority = 1.f;
}
- else if (pixel_priority <= 0.f && !have_all_data)
+ else if (pixel_priority < 0.001f && !have_all_data)
{
// Not on screen but we might want some data
if (mBoostLevel > BOOST_HIGH)
@@ -1558,11 +1604,6 @@ F32 LLViewerFetchedTexture::calcDecodePriority()
// Always want high boosted images
priority = 1.f;
}
- else if(mForceToSaveRawImage)
- {
- //force to fetch the raw image.
- priority = 1.f;
- }
else
{
priority = -5.f; //stop fetching
@@ -1577,6 +1618,7 @@ F32 LLViewerFetchedTexture::calcDecodePriority()
S32 ddiscard = MAX_DISCARD_LEVEL - (S32)desired;
ddiscard = llclamp(ddiscard, 0, MAX_DELTA_DISCARD_LEVEL_FOR_PRIORITY);
priority = (ddiscard + 1) * PRIORITY_DELTA_DISCARD_LEVEL_FACTOR;
+ setAdditionalDecodePriority(1.0f) ;//boost the textures without any data so far.
}
else if ((mMinDiscardLevel > 0) && (cur_discard <= mMinDiscardLevel))
{
@@ -1587,11 +1629,7 @@ F32 LLViewerFetchedTexture::calcDecodePriority()
{
// priority range = 100,000 - 500,000
S32 desired_discard = mDesiredDiscardLevel;
- if (getDontDiscard())
- {
- desired_discard -= 2;
- }
- else if (!isJustBound() && mCachedRawImageReady)
+ if (!isJustBound() && mCachedRawImageReady)
{
if(mBoostLevel < BOOST_HIGH)
{
@@ -1607,7 +1645,7 @@ F32 LLViewerFetchedTexture::calcDecodePriority()
S32 ddiscard = cur_discard - desired_discard;
ddiscard = llclamp(ddiscard, -1, MAX_DELTA_DISCARD_LEVEL_FOR_PRIORITY);
- priority = (ddiscard + 1) * PRIORITY_DELTA_DISCARD_LEVEL_FACTOR;
+ priority = (ddiscard + 1) * PRIORITY_DELTA_DISCARD_LEVEL_FACTOR;
}
// Priority Formula:
@@ -1615,19 +1653,51 @@ F32 LLViewerFetchedTexture::calcDecodePriority()
// [10,000,000] + [1,000,000-9,000,000] + [100,000-500,000] + [1-20,000] + [0-999]
if (priority > 0.0f)
{
+ bool large_enough = mCachedRawImageReady && ((S32)mTexelsPerImage > sMinLargeImageSize) ;
+ if(large_enough)
+ {
+ //Note:
+ //to give small, low-priority textures some chance to be fetched,
+ //cut the priority in half if the texture size is larger than 256 * 256 and has a 64*64 ready.
+ priority *= 0.5f ;
+ }
+
pixel_priority = llclamp(pixel_priority, 0.0f, MAX_PRIORITY_PIXEL);
priority += pixel_priority + PRIORITY_BOOST_LEVEL_FACTOR * mBoostLevel;
if ( mBoostLevel > BOOST_HIGH)
{
- priority += PRIORITY_BOOST_HIGH_FACTOR;
+ if(mBoostLevel > BOOST_SUPER_HIGH)
+ {
+ //for very important textures, always grant the highest priority.
+ priority += PRIORITY_BOOST_HIGH_FACTOR;
+ }
+ else if(mCachedRawImageReady)
+ {
+ //Note:
+ //to give small, low-priority textures some chance to be fetched,
+ //if high priority texture has a 64*64 ready, lower its fetching priority.
+ setAdditionalDecodePriority(0.5f) ;
+ }
+ else
+ {
+ priority += PRIORITY_BOOST_HIGH_FACTOR;
+ }
}
if(mAdditionalDecodePriority > 0.0f)
{
// priority range += 1,000,000.f-9,000,000.f
- priority += PRIORITY_ADDITIONAL_FACTOR * (1.0 + mAdditionalDecodePriority * MAX_ADDITIONAL_LEVEL_FOR_PRIORITY);
+ F32 additional = PRIORITY_ADDITIONAL_FACTOR * (1.0 + mAdditionalDecodePriority * MAX_ADDITIONAL_LEVEL_FOR_PRIORITY);
+ if(large_enough)
+ {
+ //Note:
+ //to give small, low-priority textures some chance to be fetched,
+ //cut the additional priority to a quarter if the texture size is larger than 256 * 256 and has a 64*64 ready.
+ additional *= 0.25f ;
+ }
+ priority += additional;
}
}
return priority;
@@ -1652,6 +1722,11 @@ void LLViewerFetchedTexture::setDecodePriority(F32 priority)
llassert(!mInImageList);
mDecodePriority = priority;
+
+ if(mDecodePriority < F_ALMOST_ZERO)
+ {
+ mStopFetchingTimer.reset() ;
+ }
}
void LLViewerFetchedTexture::setAdditionalDecodePriority(F32 priority)
@@ -1665,16 +1740,11 @@ void LLViewerFetchedTexture::setAdditionalDecodePriority(F32 priority)
void LLViewerFetchedTexture::updateVirtualSize()
{
- if(mNeedsResetMaxVirtualSize)
+ if(!mMaxVirtualSizeResetCounter)
{
addTextureStats(0.f, FALSE) ;//reset
}
- if(mForceToSaveRawImage)
- {
- setAdditionalDecodePriority(0.75f) ; //boost the fetching priority
- }
-
for(U32 i = 0 ; i < mNumFaces ; i++)
{
LLFace* facep = mFaceList[i] ;
@@ -1685,9 +1755,9 @@ void LLViewerFetchedTexture::updateVirtualSize()
}
}
- if(mCanResetMaxVirtualSize)
+ if(mMaxVirtualSizeResetCounter > 0)
{
- mNeedsResetMaxVirtualSize = TRUE ;
+ mMaxVirtualSizeResetCounter--;
}
reorganizeFaceList() ;
reorganizeVolumeList();
@@ -1750,7 +1820,7 @@ bool LLViewerFetchedTexture::updateFetch()
S32 current_discard = getCurrentDiscardLevelForFetching() ;
S32 desired_discard = getDesiredDiscardLevel();
F32 decode_priority = getDecodePriority();
- decode_priority = llmax(decode_priority, 0.0f);
+ decode_priority = llclamp(decode_priority, 0.0f, maxDecodePriority());
if (mIsFetching)
{
@@ -1765,6 +1835,7 @@ bool LLViewerFetchedTexture::updateFetch()
if (finished)
{
mIsFetching = FALSE;
+ mLastPacketTimer.reset() ;
}
else
{
@@ -1786,6 +1857,7 @@ bool LLViewerFetchedTexture::updateFetch()
{
mFullWidth = mRawImage->getWidth() << mRawDiscardLevel;
mFullHeight = mRawImage->getHeight() << mRawDiscardLevel;
+ setTexelsPerImage();
if(mFullWidth > MAX_IMAGE_SIZE || mFullHeight > MAX_IMAGE_SIZE)
{
@@ -1794,6 +1866,7 @@ bool LLViewerFetchedTexture::updateFetch()
setIsMissingAsset();
mRawDiscardLevel = INVALID_DISCARD_LEVEL ;
mIsFetching = FALSE ;
+ mLastPacketTimer.reset();
}
else
{
@@ -1845,7 +1918,12 @@ bool LLViewerFetchedTexture::updateFetch()
// llinfos << "Calling updateRequestPriority() with decode_priority = 0.0f" << llendl;
// calcDecodePriority();
// }
- LLAppViewer::getTextureFetch()->updateRequestPriority(mID, decode_priority);
+ static const F32 MAX_HOLD_TIME = 5.0f ; //seconds to wait before canceling fecthing if decode_priority is 0.f.
+ if(decode_priority > 0.0f || mStopFetchingTimer.getElapsedTimeF32() > MAX_HOLD_TIME)
+ {
+ mStopFetchingTimer.reset() ;
+ LLAppViewer::getTextureFetch()->updateRequestPriority(mID, decode_priority);
+ }
}
}
@@ -1961,6 +2039,7 @@ void LLViewerFetchedTexture::setIsMissingAsset()
LLAppViewer::getTextureFetch()->deleteRequest(getID(), true);
mHasFetcher = FALSE;
mIsFetching = FALSE;
+ mLastPacketTimer.reset();
mFetchState = 0;
mFetchPriority = 0;
}
@@ -1968,7 +2047,8 @@ void LLViewerFetchedTexture::setIsMissingAsset()
}
void LLViewerFetchedTexture::setLoadedCallback( loaded_callback_func loaded_callback,
- S32 discard_level, BOOL keep_imageraw, BOOL needs_aux, void* userdata)
+ S32 discard_level, BOOL keep_imageraw, BOOL needs_aux, void* userdata,
+ LLLoadedCallbackEntry::source_callback_list_t* src_callback_list, BOOL pause)
{
//
// Don't do ANYTHING here, just add it to the global callback list
@@ -1984,12 +2064,17 @@ void LLViewerFetchedTexture::setLoadedCallback( loaded_callback_func loaded_call
mLoadedCallbackDesiredDiscardLevel = llmin(mLoadedCallbackDesiredDiscardLevel, (S8)discard_level) ;
}
- LLLoadedCallbackEntry* entryp = new LLLoadedCallbackEntry(loaded_callback, discard_level, keep_imageraw, userdata);
- mLoadedCallbackList.push_back(entryp);
+ if(mPauseLoadedCallBacks && !pause)
+ {
+ unpauseLoadedCallbacks(src_callback_list) ;
+ }
+ LLLoadedCallbackEntry* entryp = new LLLoadedCallbackEntry(loaded_callback, discard_level, keep_imageraw, userdata, src_callback_list, this, pause);
+ mLoadedCallbackList.push_back(entryp);
+
mNeedsAux |= needs_aux;
if(keep_imageraw)
{
- forceToSaveRawImage(discard_level) ;
+ forceToSaveRawImage(discard_level, true) ;
}
if (mNeedsAux && mAuxRawImage.isNull() && getDiscardLevel() >= 0)
{
@@ -1998,6 +2083,154 @@ void LLViewerFetchedTexture::setLoadedCallback( loaded_callback_func loaded_call
}
}
+void LLViewerFetchedTexture::clearCallbackEntryList()
+{
+ if(mLoadedCallbackList.empty())
+ {
+ return ;
+ }
+
+ for(callback_list_t::iterator iter = mLoadedCallbackList.begin();
+ iter != mLoadedCallbackList.end(); )
+ {
+ LLLoadedCallbackEntry *entryp = *iter;
+
+ // We never finished loading the image. Indicate failure.
+ // Note: this allows mLoadedCallbackUserData to be cleaned up.
+ entryp->mCallback(FALSE, this, NULL, NULL, 0, TRUE, entryp->mUserData);
+ iter = mLoadedCallbackList.erase(iter) ;
+ delete entryp;
+ }
+ gTextureList.mCallbackList.erase(this);
+
+ mMinDesiredDiscardLevel = MAX_DISCARD_LEVEL + 1;
+ mLoadedCallbackDesiredDiscardLevel = S8_MAX ;
+ if(mForceToSaveRawImage)
+ {
+ destroySavedRawImage() ;
+ }
+
+ return ;
+}
+
+void LLViewerFetchedTexture::deleteCallbackEntry(const LLLoadedCallbackEntry::source_callback_list_t* callback_list)
+{
+ if(mLoadedCallbackList.empty() || !callback_list)
+ {
+ return ;
+ }
+
+ S32 desired_discard = S8_MAX ;
+ S32 desired_raw_discard = INVALID_DISCARD_LEVEL ;
+ for(callback_list_t::iterator iter = mLoadedCallbackList.begin();
+ iter != mLoadedCallbackList.end(); )
+ {
+ LLLoadedCallbackEntry *entryp = *iter;
+ if(entryp->mSourceCallbackList == callback_list)
+ {
+ // We never finished loading the image. Indicate failure.
+ // Note: this allows mLoadedCallbackUserData to be cleaned up.
+ entryp->mCallback(FALSE, this, NULL, NULL, 0, TRUE, entryp->mUserData);
+ iter = mLoadedCallbackList.erase(iter) ;
+ delete entryp;
+ }
+ else
+ {
+ ++iter;
+
+ desired_discard = llmin(desired_discard, entryp->mDesiredDiscard) ;
+ if(entryp->mNeedsImageRaw)
+ {
+ desired_raw_discard = llmin(desired_raw_discard, entryp->mDesiredDiscard) ;
+ }
+ }
+ }
+
+ mLoadedCallbackDesiredDiscardLevel = desired_discard;
+ if (mLoadedCallbackList.empty())
+ {
+ // If we have no callbacks, take us off of the image callback list.
+ gTextureList.mCallbackList.erase(this);
+ mMinDesiredDiscardLevel = MAX_DISCARD_LEVEL + 1;
+
+ if(mForceToSaveRawImage)
+ {
+ destroySavedRawImage() ;
+ }
+ }
+ else if(mForceToSaveRawImage && mBoostLevel != LLViewerTexture::BOOST_PREVIEW)
+ {
+ if(desired_raw_discard != INVALID_DISCARD_LEVEL)
+ {
+ mDesiredSavedRawDiscardLevel = desired_raw_discard ;
+ }
+ else
+ {
+ destroySavedRawImage() ;
+ }
+ }
+}
+
+void LLViewerFetchedTexture::unpauseLoadedCallbacks(const LLLoadedCallbackEntry::source_callback_list_t* callback_list)
+{
+ if(!callback_list)
+{
+ mPauseLoadedCallBacks = FALSE ;
+ return ;
+ }
+
+ BOOL need_raw = FALSE ;
+ for(callback_list_t::iterator iter = mLoadedCallbackList.begin();
+ iter != mLoadedCallbackList.end(); )
+ {
+ LLLoadedCallbackEntry *entryp = *iter++;
+ if(entryp->mSourceCallbackList == callback_list)
+ {
+ entryp->mPaused = FALSE ;
+ if(entryp->mNeedsImageRaw)
+ {
+ need_raw = TRUE ;
+ }
+ }
+ }
+ mPauseLoadedCallBacks = FALSE ;
+ if(need_raw)
+ {
+ mForceToSaveRawImage = TRUE ;
+ }
+}
+
+void LLViewerFetchedTexture::pauseLoadedCallbacks(const LLLoadedCallbackEntry::source_callback_list_t* callback_list)
+{
+ if(!callback_list)
+{
+ return ;
+ }
+
+ bool paused = true ;
+
+ for(callback_list_t::iterator iter = mLoadedCallbackList.begin();
+ iter != mLoadedCallbackList.end(); )
+ {
+ LLLoadedCallbackEntry *entryp = *iter++;
+ if(entryp->mSourceCallbackList == callback_list)
+ {
+ entryp->mPaused = TRUE ;
+ }
+ else if(!entryp->mPaused)
+ {
+ paused = false ;
+ }
+ }
+
+ if(paused)
+ {
+ mPauseLoadedCallBacks = TRUE ;//when set, loaded callback is paused.
+ resetTextureStats();
+ mForceToSaveRawImage = FALSE ;
+ }
+}
+
bool LLViewerFetchedTexture::doLoadedCallbacks()
{
if (mNeedsCreateTexture)
@@ -2023,6 +2256,11 @@ bool LLViewerFetchedTexture::doLoadedCallbacks()
// Remove ourself from the global list of textures with callbacks
gTextureList.mCallbackList.erase(this);
}
+ if(mPauseLoadedCallBacks)
+ {
+ destroyRawImage();
+ return res; //paused
+ }
S32 gl_discard = getDiscardLevel();
@@ -2152,10 +2390,6 @@ bool LLViewerFetchedTexture::doLoadedCallbacks()
BOOL final = mRawDiscardLevel <= entryp->mDesiredDiscard ? TRUE : FALSE;
//llinfos << "Running callback for " << getID() << llendl;
//llinfos << mRawImage->getWidth() << "x" << mRawImage->getHeight() << llendl;
- if (final)
- {
- //llinfos << "Final!" << llendl;
- }
entryp->mLastUsedDiscard = mRawDiscardLevel;
entryp->mCallback(TRUE, this, mRawImage, mAuxRawImage, mRawDiscardLevel, final, entryp->mUserData);
if (final)
@@ -2432,10 +2666,12 @@ void LLViewerFetchedTexture::saveRawImage()
mLastReferencedSavedRawImageTime = sCurrentTime ;
}
-void LLViewerFetchedTexture::forceToSaveRawImage(S32 desired_discard)
+void LLViewerFetchedTexture::forceToSaveRawImage(S32 desired_discard, bool from_callback)
{
if(!mForceToSaveRawImage || mDesiredSavedRawDiscardLevel < 0 || mDesiredSavedRawDiscardLevel > desired_discard)
{
+ llassert_always(from_callback || mBoostLevel == LLViewerTexture::BOOST_PREVIEW) ;
+
mForceToSaveRawImage = TRUE ;
mDesiredSavedRawDiscardLevel = desired_discard ;
@@ -2454,6 +2690,12 @@ void LLViewerFetchedTexture::forceToSaveRawImage(S32 desired_discard)
}
void LLViewerFetchedTexture::destroySavedRawImage()
{
+ clearCallbackEntryList() ;
+ //if(mForceToSaveRawImage && mDesiredSavedRawDiscardLevel >= 0 && mDesiredSavedRawDiscardLevel < getDiscardLevel())
+ //{
+ // return ; //can not destroy the saved raw image before it is fully fetched, otherwise causing callbacks hanging there.
+ //}
+
mSavedRawImage = NULL ;
mForceToSaveRawImage = FALSE ;
mSavedRawDiscardLevel = -1 ;
@@ -2704,7 +2946,7 @@ BOOL LLViewerLODTexture::isUpdateFrozen()
void LLViewerLODTexture::processTextureStats()
{
updateVirtualSize() ;
-
+
static LLCachedControl<bool> textures_fullres(gSavedSettings,"TextureLoadFullRes");
if (textures_fullres)
@@ -2732,10 +2974,6 @@ void LLViewerLODTexture::processTextureStats()
//static const F64 log_2 = log(2.0);
static const F64 log_4 = log(4.0);
- S32 fullwidth = llmin(mFullWidth,(S32)MAX_IMAGE_SIZE_DEFAULT);
- S32 fullheight = llmin(mFullHeight,(S32)MAX_IMAGE_SIZE_DEFAULT);
- mTexelsPerImage = (F32)fullwidth * fullheight;
-
F32 discard_level = 0.f;
// If we know the output width and height, we can force the discard
@@ -2882,7 +3120,7 @@ void LLViewerMediaTexture::removeMediaImplFromTexture(const LLUUID& media_id)
}
//static
-void LLViewerMediaTexture::cleanup()
+void LLViewerMediaTexture::cleanUpClass()
{
sMediaMap.clear() ;
}
@@ -3291,7 +3529,7 @@ F32 LLViewerMediaTexture::getMaxVirtualSize()
}
mUpdateVirtualSizeTime = LLFrameTimer::getFrameCount() ;
- if(mNeedsResetMaxVirtualSize)
+ if(!mMaxVirtualSizeResetCounter)
{
addTextureStats(0.f, FALSE) ;//reset
}
@@ -3324,9 +3562,9 @@ F32 LLViewerMediaTexture::getMaxVirtualSize()
}
}
- if(mCanResetMaxVirtualSize)
+ if(mMaxVirtualSizeResetCounter > 0)
{
- mNeedsResetMaxVirtualSize = TRUE ;
+ mMaxVirtualSizeResetCounter--;
}
reorganizeFaceList() ;
reorganizeVolumeList();
@@ -3510,7 +3748,7 @@ void LLTexturePipelineTester::updateStablizingTime()
{
F32 t = mEndStablizingTime - mStartStablizingTime ;
- if(t > 0.0001f && (t - mTotalStablizingTime) < 0.0001f)
+ if(t > F_ALMOST_ZERO && (t - mTotalStablizingTime) < F_ALMOST_ZERO)
{
//already stablized
mTotalStablizingTime = LLImageGL::sLastFrameTime - mStartStablizingTime ;
@@ -3635,7 +3873,7 @@ LLMetricPerformanceTester::LLTestSession* LLTexturePipelineTester::loadTestSessi
//time
F32 start_time = (*log)[label]["StartFetchingTime"].asReal() ;
F32 cur_time = (*log)[label]["Time"].asReal() ;
- if(start_time - start_fetching_time > 0.0001f) //fetching has paused for a while
+ if(start_time - start_fetching_time > F_ALMOST_ZERO) //fetching has paused for a while
{
sessionp->mTotalFetchingTime += total_fetching_time ;
sessionp->mTotalGrayTime += total_gray_time ;
diff --git a/indra/newview/llviewertexture.h b/indra/newview/llviewertexture.h
index 361f56e02f..7cb8bea4c8 100644
--- a/indra/newview/llviewertexture.h
+++ b/indra/newview/llviewertexture.h
@@ -2,31 +2,25 @@
* @file llviewertexture.h
* @brief Object for managing images and their textures
*
- * $LicenseInfo:firstyear=2000&license=viewergpl$
- *
- * Copyright (c) 2000-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2000&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -67,16 +61,29 @@ class LLVOVolume ;
class LLLoadedCallbackEntry
{
public:
+ typedef std::set< LLUUID > source_callback_list_t;
+
+public:
LLLoadedCallbackEntry(loaded_callback_func cb,
S32 discard_level,
BOOL need_imageraw, // Needs image raw for the callback
- void* userdata );
+ void* userdata,
+ source_callback_list_t* src_callback_list,
+ LLViewerFetchedTexture* target,
+ BOOL pause);
+ ~LLLoadedCallbackEntry();
+ void removeTexture(LLViewerFetchedTexture* tex) ;
loaded_callback_func mCallback;
S32 mLastUsedDiscard;
S32 mDesiredDiscard;
BOOL mNeedsImageRaw;
+ BOOL mPaused;
void* mUserData;
+ source_callback_list_t* mSourceCallbackList;
+
+public:
+ static void cleanUpCallbackList(LLLoadedCallbackEntry::source_callback_list_t* callback_list) ;
};
class LLTextureBar;
@@ -103,22 +110,24 @@ public:
enum EBoostLevel
{
BOOST_NONE = 0,
- BOOST_AVATAR_BAKED = 1,
- BOOST_AVATAR = 2,
- BOOST_CLOUDS = 3,
- BOOST_SCULPTED = 4,
+ BOOST_AVATAR_BAKED ,
+ BOOST_AVATAR ,
+ BOOST_CLOUDS ,
+ BOOST_SCULPTED ,
BOOST_HIGH = 10,
- BOOST_TERRAIN = 11, // has to be high priority for minimap / low detail
- BOOST_SELECTED = 12,
- BOOST_HUD = 13,
- BOOST_AVATAR_BAKED_SELF = 14,
- BOOST_ICON = 15,
- BOOST_UI = 16,
- BOOST_PREVIEW = 17,
- BOOST_MAP = 18,
- BOOST_MAP_VISIBLE = 19,
- BOOST_AVATAR_SELF = 20, // needed for baking avatar
+ 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
@@ -144,7 +153,6 @@ protected:
public:
static void initClass();
- static void cleanupClass();
static void updateClass(const F32 velocity, const F32 angular_velocity) ;
LLViewerTexture(BOOL usemipmaps = TRUE);
@@ -166,7 +174,8 @@ public:
void addTextureStats(F32 virtual_size, BOOL needs_gltexture = TRUE) const;
void resetTextureStats();
- void setResetMaxVirtualSizeFlag(bool flag) ;
+ void setMaxVirtualSizeResetInterval(S32 interval)const {mMaxVirtualSizeResetInterval = interval;}
+ void resetMaxVirtualSizeResetCounter()const {mMaxVirtualSizeResetCounter = mMaxVirtualSizeResetInterval;}
virtual F32 getMaxVirtualSize() ;
@@ -252,6 +261,7 @@ protected:
void init(bool firstinit) ;
void reorganizeFaceList() ;
void reorganizeVolumeList() ;
+ void setTexelsPerImage();
private:
//note: do not make this function public.
/*virtual*/ LLImageGL* getGLTexture() const ;
@@ -264,10 +274,11 @@ protected:
S32 mFullHeight;
BOOL mUseMipMaps ;
S8 mComponents;
- bool mCanResetMaxVirtualSize;
- mutable F32 mMaxVirtualSize; // The largest virtual size of the image, in pixels - how much data to we need?
+ F32 mTexelsPerImage; // Texels per image.
mutable S8 mNeedsGLTexture;
- mutable BOOL mNeedsResetMaxVirtualSize ;
+ 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;
@@ -369,9 +380,13 @@ public:
// resolution versions.
void setLoadedCallback(loaded_callback_func cb,
S32 discard_level, BOOL keep_imageraw, BOOL needs_aux,
- void* userdata);
+ void* userdata, LLLoadedCallbackEntry::source_callback_list_t* src_callback_list, BOOL pause = FALSE);
bool hasCallbacks() { return mLoadedCallbackList.empty() ? false : true; }
+ void pauseLoadedCallbacks(const LLLoadedCallbackEntry::source_callback_list_t* callback_list);
+ void unpauseLoadedCallbacks(const LLLoadedCallbackEntry::source_callback_list_t* callback_list);
bool doLoadedCallbacks();
+ void deleteCallbackEntry(const LLLoadedCallbackEntry::source_callback_list_t* callback_list);
+ void clearCallbackEntryList() ;
void addToCreateTexture();
@@ -449,7 +464,7 @@ public:
S32 getCachedRawImageLevel() const {return mCachedRawDiscardLevel;}
BOOL isCachedRawImageReady() const {return mCachedRawImageReady ;}
BOOL isRawImageValid()const { return mIsRawImageValid ; }
- void forceToSaveRawImage(S32 desired_discard = 0) ;
+ void forceToSaveRawImage(S32 desired_discard = 0, bool from_callback = false) ;
/*virtual*/ void setCachedRawImage(S32 discard_level, LLImageRaw* imageraw) ;
void destroySavedRawImage() ;
LLImageRaw* getSavedRawImage() ;
@@ -515,6 +530,7 @@ protected:
typedef std::list<LLLoadedCallbackEntry*> callback_list_t;
S8 mLoadedCallbackDesiredDiscardLevel;
+ BOOL mPauseLoadedCallBacks;
callback_list_t mLoadedCallbackList;
LLPointer<LLImageRaw> mRawImage;
@@ -541,6 +557,7 @@ protected:
// Timers
LLFrameTimer mLastPacketTimer; // Time since last packet.
+ LLFrameTimer mStopFetchingTimer; // Time since mDecodePriority == 0.f.
BOOL mInImageList; // TRUE if image is in list (in which case don't reset priority!)
BOOL mNeedsCreateTexture;
@@ -578,8 +595,6 @@ private:
void scaleDown() ;
private:
-
- F32 mTexelsPerImage; // Texels per image.
F32 mDiscardVirtualSize; // Virtual size used to calculate desired discard
F32 mCalculatedDiscardLevel; // Last calculated discard level
};
@@ -638,7 +653,7 @@ private:
public:
static void updateClass() ;
- static void cleanup() ;
+ static void cleanUpClass() ;
static LLViewerMediaTexture* findMediaTexture(const LLUUID& media_id) ;
static void removeMediaImplFromTexture(const LLUUID& media_id) ;
diff --git a/indra/newview/llviewertextureanim.cpp b/indra/newview/llviewertextureanim.cpp
index 73b1660937..9f1ac7c49c 100644
--- a/indra/newview/llviewertextureanim.cpp
+++ b/indra/newview/llviewertextureanim.cpp
@@ -2,31 +2,25 @@
* @file llviewertextureanim.cpp
* @brief LLViewerTextureAnim class implementation
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewertextureanim.h b/indra/newview/llviewertextureanim.h
index d653e6bd37..dd7bd0cb90 100644
--- a/indra/newview/llviewertextureanim.h
+++ b/indra/newview/llviewertextureanim.h
@@ -2,31 +2,25 @@
* @file llviewertextureanim.h
* @brief LLViewerTextureAnim class header file
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewertexturelist.cpp b/indra/newview/llviewertexturelist.cpp
index 1e3311dafe..bbf7c8e60e 100644
--- a/indra/newview/llviewertexturelist.cpp
+++ b/indra/newview/llviewertexturelist.cpp
@@ -2,31 +2,25 @@
* @file llviewertexturelist.cpp
* @brief Object for managing the list of images within a region
*
- * $LicenseInfo:firstyear=2000&license=viewergpl$
- *
- * Copyright (c) 2000-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2000&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -853,14 +847,14 @@ F32 LLViewerTextureList::updateImagesFetchTextures(F32 max_time)
}
min_count--;
}
- if (fetch_count == 0)
- {
- gDebugTimers[0].pause();
- }
- else
- {
- gDebugTimers[0].unpause();
- }
+ //if (fetch_count == 0)
+ //{
+ // gDebugTimers[0].pause();
+ //}
+ //else
+ //{
+ // gDebugTimers[0].unpause();
+ //}
return image_op_timer.getElapsedTimeF32();
}
@@ -1219,7 +1213,7 @@ void LLViewerTextureList::receiveImageHeader(LLMessageSystem *msg, void **user_d
delete [] data;
return;
}
- image->getLastPacketTimer()->reset();
+ //image->getLastPacketTimer()->reset();
bool res = LLAppViewer::getTextureFetch()->receiveImageHeader(msg->getSender(), id, codec, packets, totalbytes, data_size, data);
if (!res)
{
@@ -1283,7 +1277,7 @@ void LLViewerTextureList::receiveImagePacket(LLMessageSystem *msg, void **user_d
delete [] data;
return;
}
- image->getLastPacketTimer()->reset();
+ //image->getLastPacketTimer()->reset();
bool res = LLAppViewer::getTextureFetch()->receiveImagePacket(msg->getSender(), id, packet_num, data_size, data);
if (!res)
{
@@ -1402,12 +1396,17 @@ LLUIImagePtr LLUIImageList::loadUIImage(LLViewerFetchedTexture* imagep, const st
mUIImages.insert(std::make_pair(name, new_imagep));
mUITextureList.push_back(imagep);
- LLUIImageLoadData* datap = new LLUIImageLoadData;
- datap->mImageName = name;
- datap->mImageScaleRegion = scale_rect;
-
- imagep->setLoadedCallback(onUIImageLoaded, 0, FALSE, FALSE, datap);
+ //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)
+ {
+ LLUIImageLoadData* datap = new LLUIImageLoadData;
+ datap->mImageName = name;
+ datap->mImageScaleRegion = scale_rect;
+ imagep->setLoadedCallback(onUIImageLoaded, 0, FALSE, FALSE, datap, NULL);
+ }
return new_imagep;
}
@@ -1545,7 +1544,8 @@ bool LLUIImageList::initFromFile()
}
UIImageDeclarations images;
- LLXUIParser::instance().readXUI(root, images, base_file_path);
+ LLXUIParser parser;
+ parser.readXUI(root, images, base_file_path);
if (!images.validateBlock()) return false;
@@ -1558,8 +1558,8 @@ bool LLUIImageList::initFromFile()
for (S32 cur_pass = PASS_DECODE_NOW; cur_pass < NUM_PASSES; cur_pass++)
{
- for (LLInitParam::ParamIterator<UIImageDeclaration>::const_iterator image_it = images.textures().begin();
- image_it != images.textures().end();
+ for (LLInitParam::ParamIterator<UIImageDeclaration>::const_iterator image_it = images.textures.begin();
+ image_it != images.textures.end();
++image_it)
{
std::string file_name = image_it->file_name.isProvided() ? image_it->file_name() : image_it->name();
diff --git a/indra/newview/llviewertexturelist.h b/indra/newview/llviewertexturelist.h
index ab55bfd04d..d508ce1ac6 100644
--- a/indra/newview/llviewertexturelist.h
+++ b/indra/newview/llviewertexturelist.h
@@ -2,31 +2,25 @@
* @file llviewertexturelist.h
* @brief Object for managing the list of images within a region
*
- * $LicenseInfo:firstyear=2000&license=viewergpl$
- *
- * Copyright (c) 2000-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2000&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewerthrottle.cpp b/indra/newview/llviewerthrottle.cpp
index 73065c5c00..b614ccdbc2 100644
--- a/indra/newview/llviewerthrottle.cpp
+++ b/indra/newview/llviewerthrottle.cpp
@@ -2,31 +2,25 @@
* @file llviewerthrottle.cpp
* @brief LLViewerThrottle class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewerthrottle.h b/indra/newview/llviewerthrottle.h
index e2318eef8f..fe54b06662 100644
--- a/indra/newview/llviewerthrottle.h
+++ b/indra/newview/llviewerthrottle.h
@@ -2,31 +2,25 @@
* @file llviewerthrottle.h
* @brief LLViewerThrottle class header file
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewervisualparam.cpp b/indra/newview/llviewervisualparam.cpp
index 1dc09a64ac..f0cf9b7692 100644
--- a/indra/newview/llviewervisualparam.cpp
+++ b/indra/newview/llviewervisualparam.cpp
@@ -2,31 +2,25 @@
* @file llviewervisualparam.cpp
* @brief Implementation of LLViewerVisualParam class
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewervisualparam.h b/indra/newview/llviewervisualparam.h
index f38c01fa6c..dd7751acd7 100644
--- a/indra/newview/llviewervisualparam.h
+++ b/indra/newview/llviewervisualparam.h
@@ -2,31 +2,25 @@
* @file llviewervisualparam.h
* @brief viewer side visual params (with data file parsing)
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llviewerwindow.cpp b/indra/newview/llviewerwindow.cpp
index c9c0b72528..983a2d25c8 100644
--- a/indra/newview/llviewerwindow.cpp
+++ b/indra/newview/llviewerwindow.cpp
@@ -2,31 +2,25 @@
* @file llviewerwindow.cpp
* @brief Implementation of the LLViewerWindow class.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -102,6 +96,7 @@
#include "llface.h"
#include "llfeaturemanager.h"
#include "llfilepicker.h"
+#include "llfirstuse.h"
#include "llfloater.h"
#include "llfloaterbuildoptions.h"
#include "llfloaterbuyland.h"
@@ -162,6 +157,7 @@
#include "lltrans.h"
#include "lluictrlfactory.h"
#include "llurldispatcher.h" // SLURL from other app instance
+#include "llversioninfo.h"
#include "llvieweraudio.h"
#include "llviewercamera.h"
#include "llviewergesture.h"
@@ -1348,7 +1344,7 @@ LLViewerWindow::LLViewerWindow(
gSavedSettings.getBOOL("DisableVerticalSync"),
!gNoRender,
ignore_pixel_depth,
- gSavedSettings.getU32("RenderFSAASamples"));
+ 0); //gSavedSettings.getU32("RenderFSAASamples"));
if (!LLAppViewer::instance()->restoreErrorTrap())
{
@@ -1520,7 +1516,7 @@ void LLViewerWindow::initBase()
// (But wait to add it as a child of the root view so that it will be in front of the
// other views.)
MainPanel* main_view = new MainPanel();
- LLUICtrlFactory::instance().buildPanel(main_view, "main_view.xml");
+ main_view->buildFromFile("main_view.xml");
main_view->setShape(full_window);
getRootView()->addChild(main_view);
@@ -1528,7 +1524,8 @@ void LLViewerWindow::initBase()
mWorldViewPlaceholder = main_view->getChildView("world_view_rect")->getHandle();
mNonSideTrayView = main_view->getChildView("non_side_tray_view")->getHandle();
mFloaterViewHolder = main_view->getChildView("floater_view_holder")->getHandle();
- mPopupView = main_view->getChild<LLPopupView>("popup_holder");
+ mPopupView = main_view->findChild<LLPopupView>("popup_holder");
+ mHintHolder = main_view->getChild<LLView>("hint_holder")->getHandle();
// Constrain floaters to inside the menu and status bar regions.
gFloaterView = main_view->getChild<LLFloaterView>("Floater View");
@@ -1566,7 +1563,7 @@ void LLViewerWindow::initBase()
LLAppViewer::instance()->setOnLoginCompletedCallback(boost::bind(&LLFloaterPreference::initBusyResponse));
// Add the progress bar view (startup view), which overrides everything
- mProgressView = getRootView()->getChild<LLProgressView>("progress_view");
+ mProgressView = getRootView()->findChild<LLProgressView>("progress_view");
setShowProgress(FALSE);
setProgressCancelButtonVisible(FALSE);
@@ -1938,6 +1935,11 @@ void LLViewerWindow::setMenuBackgroundColor(bool god_mode, bool dev_grid)
LLSD args;
LLColor4 new_bg_color;
+ // no l10n problem because channel is always an english string
+ std::string channel = LLVersionInfo::getChannel();
+ bool isProject = (channel.find("Project") != std::string::npos);
+
+ // god more important than project, proj more important than grid
if(god_mode && LLGridManager::getInstance()->isInProductionGrid())
{
new_bg_color = LLUIColorTable::instance().getColor( "MenuBarGodBgColor" );
@@ -1946,6 +1948,10 @@ void LLViewerWindow::setMenuBackgroundColor(bool god_mode, bool dev_grid)
{
new_bg_color = LLUIColorTable::instance().getColor( "MenuNonProductionGodBgColor" );
}
+ else if (!god_mode && isProject)
+ {
+ new_bg_color = LLUIColorTable::instance().getColor( "MenuBarProjectBgColor" );
+ }
else if(!god_mode && !LLGridManager::getInstance()->isInProductionGrid())
{
new_bg_color = LLUIColorTable::instance().getColor( "MenuNonProductionBgColor" );
@@ -2130,10 +2136,20 @@ BOOL LLViewerWindow::handleKey(KEY key, MASK mask)
return TRUE;
}
+ LLFocusableElement* keyboard_focus = gFocusMgr.getKeyboardFocus();
+
// give menus a chance to handle modified (Ctrl, Alt) shortcut keys before current focus
// as long as focus isn't locked
if (mask & (MASK_CONTROL | MASK_ALT) && !gFocusMgr.focusLocked())
{
+ // Check the current floater's menu first, if it has one.
+ if (gFocusMgr.keyboardFocusHasAccelerators()
+ && keyboard_focus
+ && keyboard_focus->handleKey(key,mask,FALSE))
+ {
+ return TRUE;
+ }
+
if ((gMenuBarView && gMenuBarView->handleAcceleratorKey(key, mask))
||(gLoginMenuBarView && gLoginMenuBarView->handleAcceleratorKey(key, mask)))
{
@@ -2169,7 +2185,6 @@ BOOL LLViewerWindow::handleKey(KEY key, MASK mask)
}
// Traverses up the hierarchy
- LLFocusableElement* keyboard_focus = gFocusMgr.getKeyboardFocus();
if( keyboard_focus )
{
LLLineEditor* chat_editor = LLBottomTray::instanceExists() ? LLBottomTray::getInstance()->getNearbyChatBar()->getChatBox() : NULL;
@@ -2329,7 +2344,9 @@ void LLViewerWindow::handleScrollWheel(S32 clicks)
// Zoom the camera in and out behavior
- if(top_ctrl == 0 && getWorldViewRectScaled().pointInRect(mCurrentMousePoint.mX, mCurrentMousePoint.mY) )
+ if(top_ctrl == 0
+ && getWorldViewRectScaled().pointInRect(mCurrentMousePoint.mX, mCurrentMousePoint.mY)
+ && gAgentCamera.isInitialized())
gAgentCamera.handleScrollWheel(clicks);
return;
@@ -2385,7 +2402,7 @@ void append_xui_tooltip(LLView* viewp, LLToolTip::Params& params)
{
if (viewp)
{
- if (!params.styled_message().empty())
+ if (!params.styled_message.empty())
{
params.styled_message.add().text("\n---------\n");
}
@@ -2420,6 +2437,18 @@ void LLViewerWindow::updateUI()
static std::string last_handle_msg;
+ if (gLoggedInTime.getStarted())
+ {
+ if (gLoggedInTime.getElapsedTimeF32() > gSavedSettings.getF32("DestinationGuideHintTimeout"))
+ {
+ LLFirstUse::notUsingDestinationGuide();
+ }
+ if (gLoggedInTime.getElapsedTimeF32() > gSavedSettings.getF32("SidePanelHintTimeout"))
+ {
+ LLFirstUse::notUsingSidePanel();
+ }
+ }
+
LLConsole::updateClass();
// animate layout stacks so we have up to date rect for world view
@@ -3816,140 +3845,6 @@ void LLViewerWindow::playSnapshotAnimAndSound()
BOOL LLViewerWindow::thumbnailSnapshot(LLImageRaw *raw, S32 preview_width, S32 preview_height, BOOL show_ui, BOOL do_rebuild, ESnapshotType type)
{
return rawSnapshot(raw, preview_width, preview_height, FALSE, FALSE, show_ui, do_rebuild, type);
-
- // *TODO below code was broken in deferred pipeline
- /*
- if ((!raw) || preview_width < 10 || preview_height < 10)
- {
- return FALSE;
- }
-
- if(gResizeScreenTexture) //the window is resizing
- {
- return FALSE ;
- }
-
- setCursor(UI_CURSOR_WAIT);
-
- // Hide all the UI widgets first and draw a frame
- BOOL prev_draw_ui = gPipeline.hasRenderDebugFeatureMask(LLPipeline::RENDER_DEBUG_FEATURE_UI);
-
- if ( prev_draw_ui != show_ui)
- {
- LLPipeline::toggleRenderDebugFeature((void*)LLPipeline::RENDER_DEBUG_FEATURE_UI);
- }
-
- BOOL hide_hud = !gSavedSettings.getBOOL("RenderHUDInSnapshot") && LLPipeline::sShowHUDAttachments;
- if (hide_hud)
- {
- LLPipeline::sShowHUDAttachments = FALSE;
- }
-
- S32 render_name = gSavedSettings.getS32("RenderName");
- gSavedSettings.setS32("RenderName", 0);
- LLVOAvatar::updateFreezeCounter(1) ; //pause avatar updating for one frame
-
- S32 w = preview_width ;
- S32 h = preview_height ;
- LLVector2 display_scale = mDisplayScale ;
- mDisplayScale.setVec((F32)w / mWindowRectRaw.getWidth(), (F32)h / mWindowRectRaw.getHeight()) ;
- LLRect window_rect = mWindowRectRaw;
- mWindowRectRaw.set(0, h, w, 0);
-
- gDisplaySwapBuffers = FALSE;
- gDepthDirty = TRUE;
- glClearColor(0.f, 0.f, 0.f, 0.f);
- glClear(GL_DEPTH_BUFFER_BIT | GL_COLOR_BUFFER_BIT | GL_STENCIL_BUFFER_BIT);
- setup3DRender();
-
- LLFontGL::setFontDisplay(FALSE) ;
- LLHUDText::setDisplayText(FALSE) ;
- if (type == SNAPSHOT_TYPE_OBJECT_ID)
- {
- gObjectList.renderPickList(gViewerWindow->getWindowRectScaled(), FALSE, FALSE);
- }
- else
- {
- display(do_rebuild, 1.0f, 0, TRUE);
- render_ui();
- }
-
- S32 glformat, gltype, glpixel_length ;
- if(SNAPSHOT_TYPE_DEPTH == type)
- {
- glpixel_length = 4 ;
- glformat = GL_DEPTH_COMPONENT ;
- gltype = GL_FLOAT ;
- }
- else
- {
- glpixel_length = 3 ;
- glformat = GL_RGB ;
- gltype = GL_UNSIGNED_BYTE ;
- }
-
- raw->resize(w, h, glpixel_length);
- glReadPixels(0, 0, w, h, glformat, gltype, raw->getData());
-
- if(SNAPSHOT_TYPE_DEPTH == type)
- {
- LLViewerCamera* camerap = LLViewerCamera::getInstance();
- F32 depth_conversion_factor_1 = (camerap->getFar() + camerap->getNear()) / (2.f * camerap->getFar() * camerap->getNear());
- F32 depth_conversion_factor_2 = (camerap->getFar() - camerap->getNear()) / (2.f * camerap->getFar() * camerap->getNear());
-
- //calculate the depth
- for (S32 y = 0 ; y < h ; y++)
- {
- for(S32 x = 0 ; x < w ; x++)
- {
- S32 i = (w * y + x) << 2 ;
-
- F32 depth_float_i = *(F32*)(raw->getData() + i);
-
- F32 linear_depth_float = 1.f / (depth_conversion_factor_1 - (depth_float_i * depth_conversion_factor_2));
- U8 depth_byte = F32_to_U8(linear_depth_float, camerap->getNear(), camerap->getFar());
- *(raw->getData() + i + 0) = depth_byte;
- *(raw->getData() + i + 1) = depth_byte;
- *(raw->getData() + i + 2) = depth_byte;
- *(raw->getData() + i + 3) = 255;
- }
- }
- }
-
- LLFontGL::setFontDisplay(TRUE) ;
- LLHUDText::setDisplayText(TRUE) ;
- mDisplayScale.setVec(display_scale) ;
- mWindowRectRaw = window_rect;
- setup3DRender();
- gDisplaySwapBuffers = FALSE;
- gDepthDirty = TRUE;
-
- // POST SNAPSHOT
- if (!gPipeline.hasRenderDebugFeatureMask(LLPipeline::RENDER_DEBUG_FEATURE_UI))
- {
- LLPipeline::toggleRenderDebugFeature((void*)LLPipeline::RENDER_DEBUG_FEATURE_UI);
- }
-
- if (hide_hud)
- {
- LLPipeline::sShowHUDAttachments = TRUE;
- }
-
- setCursor(UI_CURSOR_ARROW);
-
- if (do_rebuild)
- {
- // If we had to do a rebuild, that means that the lists of drawables to be rendered
- // was empty before we started.
- // Need to reset these, otherwise we call state sort on it again when render gets called the next time
- // and we stand a good chance of crashing on rebuild because the render drawable arrays have multiple copies of
- // objects on them.
- gPipeline.resetDrawOrders();
- }
-
- gSavedSettings.setS32("RenderName", render_name);
-
- return TRUE;*/
}
// Saves the image from the screen to the specified filename and path.
@@ -4050,7 +3945,14 @@ BOOL LLViewerWindow::rawSnapshot(LLImageRaw *raw, S32 image_width, S32 image_hei
image_buffer_x = llfloor(snapshot_width*scale_factor) ;
image_buffer_y = llfloor(snapshot_height *scale_factor) ;
}
+ if(image_buffer_x > 0 && image_buffer_y > 0)
+ {
raw->resize(image_buffer_x, image_buffer_y, 3);
+ }
+ else
+ {
+ return FALSE ;
+ }
if(raw->isBufferInvalid())
{
return FALSE ;
@@ -4379,14 +4281,6 @@ BOOL LLViewerWindow::getShowProgress() const
return (mProgressView && mProgressView->getVisible());
}
-void LLViewerWindow::moveProgressViewToFront()
-{
- if( mProgressView && mRootView )
- {
- mRootView->sendChildToFront(mProgressView);
- }
-}
-
void LLViewerWindow::setProgressString(const std::string& string)
{
if (mProgressView)
@@ -4522,7 +4416,7 @@ void LLViewerWindow::restoreGL(const std::string& progress_message)
gResizeScreenTexture = TRUE;
- if (gAgentCamera.cameraCustomizeAvatar())
+ if (isAgentAvatarValid() && !gAgentAvatarp->isUsingBakedTextures())
{
LLVisualParamHint::requestHintUpdates();
}
@@ -4594,23 +4488,26 @@ void LLViewerWindow::restartDisplay(BOOL show_progress_bar)
BOOL LLViewerWindow::changeDisplaySettings(LLCoordScreen size, BOOL disable_vsync, BOOL show_progress_bar)
{
- BOOL was_maximized = gSavedSettings.getBOOL("WindowMaximized");
+ //BOOL was_maximized = gSavedSettings.getBOOL("WindowMaximized");
//gResizeScreenTexture = TRUE;
- U32 fsaa = gSavedSettings.getU32("RenderFSAASamples");
- U32 old_fsaa = mWindow->getFSAASamples();
+ //U32 fsaa = gSavedSettings.getU32("RenderFSAASamples");
+ //U32 old_fsaa = mWindow->getFSAASamples();
+
// if not maximized, use the request size
if (!mWindow->getMaximized())
{
mWindow->setSize(size);
}
- if (fsaa == old_fsaa)
+ //if (fsaa == old_fsaa)
{
return TRUE;
}
+/*
+
// Close floaters that don't handle settings change
LLFloaterReg::hideInstance("snapshot");
@@ -4626,13 +4523,13 @@ BOOL LLViewerWindow::changeDisplaySettings(LLCoordScreen size, BOOL disable_vsyn
LLCoordScreen old_pos;
mWindow->getSize(&old_size);
- mWindow->setFSAASamples(fsaa);
+ //mWindow->setFSAASamples(fsaa);
result_first_try = mWindow->switchContext(false, size, disable_vsync);
if (!result_first_try)
{
// try to switch back
- mWindow->setFSAASamples(old_fsaa);
+ //mWindow->setFSAASamples(old_fsaa);
result_second_try = mWindow->switchContext(false, old_size, disable_vsync);
if (!result_second_try)
@@ -4686,6 +4583,8 @@ BOOL LLViewerWindow::changeDisplaySettings(LLCoordScreen size, BOOL disable_vsyn
gFocusMgr.setKeyboardFocus(keyboard_focus);
return success;
+
+ */
}
F32 LLViewerWindow::getWorldViewAspectRatio() const
diff --git a/indra/newview/llviewerwindow.h b/indra/newview/llviewerwindow.h
index 1e0200a075..633c3a41d2 100644
--- a/indra/newview/llviewerwindow.h
+++ b/indra/newview/llviewerwindow.h
@@ -2,31 +2,25 @@
* @file llviewerwindow.h
* @brief Description of the LLViewerWindow class.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -277,7 +271,6 @@ public:
void setShowProgress(const BOOL show);
BOOL getShowProgress() const;
- void moveProgressViewToFront();
void setProgressString(const std::string& string);
void setProgressPercent(const F32 percent);
void setProgressMessage(const std::string& msg);
@@ -294,6 +287,7 @@ public:
void updateWorldViewRect(bool use_full_window=false);
LLView* getNonSideTrayView() { return mNonSideTrayView.get(); }
LLView* getFloaterViewHolder() { return mFloaterViewHolder.get(); }
+ LLView* getHintHolder() { return mHintHolder.get(); }
BOOL handleKey(KEY key, MASK mask);
void handleScrollWheel (S32 clicks);
@@ -453,6 +447,7 @@ protected:
LLHandle<LLView> mWorldViewPlaceholder; // widget that spans the portion of screen dedicated to rendering the 3d world
LLHandle<LLView> mNonSideTrayView; // parent of world view + bottom bar, etc...everything but the side tray
LLHandle<LLView> mFloaterViewHolder; // container for floater_view
+ LLHandle<LLView> mHintHolder; // container for hints
LLPopupView* mPopupView; // container for transient popups
class LLDebugText* mDebugText; // Internal class for debug text
diff --git a/indra/newview/llviewerwindowlistener.cpp b/indra/newview/llviewerwindowlistener.cpp
index fae98cf49a..4473b5820d 100644
--- a/indra/newview/llviewerwindowlistener.cpp
+++ b/indra/newview/llviewerwindowlistener.cpp
@@ -4,8 +4,25 @@
* @date 2009-06-30
* @brief Implementation for llviewerwindowlistener.
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- * Copyright (c) 2009, Linden Research, Inc.
+ * $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$
*/
diff --git a/indra/newview/llviewerwindowlistener.h b/indra/newview/llviewerwindowlistener.h
index 699f7907af..d627aad266 100644
--- a/indra/newview/llviewerwindowlistener.h
+++ b/indra/newview/llviewerwindowlistener.h
@@ -4,8 +4,25 @@
* @date 2009-06-30
* @brief Event API for subset of LLViewerWindow methods
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- * Copyright (c) 2009, Linden Research, Inc.
+ * $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$
*/
diff --git a/indra/newview/llvlcomposition.cpp b/indra/newview/llvlcomposition.cpp
index 6340189c93..ec932501e5 100644
--- a/indra/newview/llvlcomposition.cpp
+++ b/indra/newview/llvlcomposition.cpp
@@ -2,31 +2,25 @@
* @file llvlcomposition.cpp
* @brief Viewer-side representation of a composition layer...
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llvlcomposition.h b/indra/newview/llvlcomposition.h
index d1b3dc4495..2dd04ac5a5 100644
--- a/indra/newview/llvlcomposition.h
+++ b/indra/newview/llvlcomposition.h
@@ -2,31 +2,25 @@
* @file llvlcomposition.h
* @brief Viewer-side representation of a composition layer...
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llvlmanager.cpp b/indra/newview/llvlmanager.cpp
index 07ef262668..25f2687fe2 100644
--- a/indra/newview/llvlmanager.cpp
+++ b/indra/newview/llvlmanager.cpp
@@ -2,31 +2,25 @@
* @file llvlmanager.cpp
* @brief LLVLManager class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llvlmanager.h b/indra/newview/llvlmanager.h
index 9d64d6f24b..74b4823a5c 100644
--- a/indra/newview/llvlmanager.h
+++ b/indra/newview/llvlmanager.h
@@ -2,31 +2,25 @@
* @file llvlmanager.h
* @brief LLVLManager class definition
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llvoavatar.cpp b/indra/newview/llvoavatar.cpp
index 4ef166fb71..46d8f65d23 100644
--- a/indra/newview/llvoavatar.cpp
+++ b/indra/newview/llvoavatar.cpp
@@ -2,31 +2,25 @@
* @File llvoavatar.cpp
* @brief Implementation of LLVOAvatar class which is a derivation of LLViewerObject
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -182,7 +176,7 @@ const F32 TIME_BEFORE_MESH_CLEANUP = 5.f; // seconds
const S32 AVATAR_RELEASE_THRESHOLD = 10; // number of avatar instances before releasing memory
const F32 FOOT_GROUND_COLLISION_TOLERANCE = 0.25f;
const F32 AVATAR_LOD_TWEAK_RANGE = 0.7f;
-const S32 MAX_BUBBLE_CHAT_LENGTH = 1023;
+const S32 MAX_BUBBLE_CHAT_LENGTH = DB_CHAT_MSG_STR_LEN;
const S32 MAX_BUBBLE_CHAT_UTTERANCES = 12;
const F32 CHAT_FADE_TIME = 8.0;
const F32 BUBBLE_CHAT_TIME = CHAT_FADE_TIME * 3.f;
@@ -677,7 +671,8 @@ LLVOAvatar::LLVOAvatar(const LLUUID& id,
mFullyLoaded(FALSE),
mPreviousFullyLoaded(FALSE),
mFullyLoadedInitialized(FALSE),
- mSupportsAlphaLayers(FALSE)
+ mSupportsAlphaLayers(FALSE),
+ mLoadedCallbacksPaused(FALSE)
{
LLMemType mt(LLMemType::MTYPE_AVATAR);
//VTResume(); // VTune
@@ -701,10 +696,8 @@ LLVOAvatar::LLVOAvatar(const LLUUID& id,
mBakedTextureDatas[i].mTextureIndex = LLVOAvatarDictionary::bakedToLocalTextureIndex((EBakedTextureIndex)i);
}
- mDirtyMesh = TRUE; // Dirty geometry, need to regenerate.
+ mDirtyMesh = 2; // Dirty geometry, need to regenerate.
mMeshTexturesDirty = FALSE;
- mShadow0Facep = NULL;
- mShadow1Facep = NULL;
mHeadp = NULL;
mIsBuilt = FALSE;
@@ -740,12 +733,6 @@ LLVOAvatar::LLVOAvatar(const LLUUID& id,
mRippleTimeLast = 0.f;
- mShadowImagep = LLViewerTextureManager::getFetchedTextureFromFile("foot_shadow.j2c");
-
- // GL NOT ACTIVE HERE
- //gGL.getTexUnit(0)->bind(mShadowImagep.get());
- //mShadowImagep->setAddressMode(LLTexUnit::TAM_CLAMP);
-
mInAir = FALSE;
mStepOnLand = TRUE;
@@ -834,6 +821,7 @@ LLVOAvatar::~LLVOAvatar()
mDead = TRUE;
mAnimationSources.clear();
+ LLLoadedCallbackEntry::cleanUpCallbackList(&mCallbackTextureList) ;
lldebugs << "LLVOAvatar Destructor end" << llendl;
}
@@ -847,6 +835,7 @@ void LLVOAvatar::markDead()
sNumVisibleChatBubbles--;
}
mVoiceVisualizer->markDead();
+ LLLoadedCallbackEntry::cleanUpCallbackList(&mCallbackTextureList) ;
LLViewerObject::markDead();
}
@@ -1972,7 +1961,7 @@ void LLVOAvatar::updateMeshData()
}
if(num_vertices < 1)//skip empty meshes
{
- break ;
+ continue ;
}
if(last_v_num > 0)//put the last inserted part into next vertex buffer.
{
@@ -1994,6 +1983,8 @@ void LLVOAvatar::updateMeshData()
// resize immediately
facep->setSize(num_vertices, num_indices);
+ bool terse_update = false;
+
if(facep->mVertexBuffer.isNull())
{
facep->mVertexBuffer = new LLVertexBufferAvatar();
@@ -2001,8 +1992,16 @@ void LLVOAvatar::updateMeshData()
}
else
{
+ if (facep->mVertexBuffer->getRequestedIndices() == num_indices &&
+ facep->mVertexBuffer->getRequestedVerts() == num_vertices)
+ {
+ terse_update = true;
+ }
+ else
+ {
facep->mVertexBuffer->resizeBuffer(num_vertices, num_indices) ;
}
+ }
facep->setGeomIndex(0);
facep->setIndicesIndex(0);
@@ -2016,7 +2015,7 @@ void LLVOAvatar::updateMeshData()
for(S32 k = j ; k < part_index ; k++)
{
- mMeshLOD[k]->updateFaceData(facep, mAdjustedPixelArea, k == MESH_ID_HAIR);
+ mMeshLOD[k]->updateFaceData(facep, mAdjustedPixelArea, k == MESH_ID_HAIR, terse_update);
}
stop_glerror();
@@ -2076,7 +2075,8 @@ void LLVOAvatar::computeBodySize()
ankle.mV[VZ] * knee_scale.mV[VZ] -
foot.mV[VZ] * ankle_scale.mV[VZ];
- mBodySize.mV[VZ] = mPelvisToFoot +
+ 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]) +
@@ -2086,8 +2086,19 @@ void LLVOAvatar::computeBodySize()
torso.mV[VZ] * pelvis_scale.mV[VZ];
// TODO -- measure the real depth and width
- mBodySize.mV[VX] = DEFAULT_AGENT_DEPTH;
- mBodySize.mV[VY] = DEFAULT_AGENT_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();
+ }
+ }
/* debug spam
std::cout << "skull = " << skull << std::endl; // adebug
@@ -2217,12 +2228,14 @@ BOOL LLVOAvatar::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time)
{
llinfos << "Warning! Idle on dead avatar" << llendl;
return TRUE;
- }
+ }
if (!(gPipeline.hasRenderType(LLPipeline::RENDER_TYPE_AVATAR)))
{
return TRUE;
}
+
+ checkTextureLoading() ;
// force immediate pixel area update on avatars using last frames data (before drawable or camera updates)
setPixelAreaAndAngle(gAgent);
@@ -2307,7 +2320,6 @@ BOOL LLVOAvatar::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time)
idleUpdateNameTag( root_pos_last );
idleUpdateRenderCost();
- idleUpdateTractorBeam();
return TRUE;
}
@@ -2412,12 +2424,6 @@ void LLVOAvatar::idleUpdateMisc(bool detailed_update)
LLJoint::sNumUpdates = 0;
LLJoint::sNumTouches = 0;
- // *NOTE: this is necessary for the floating name text above your head.
- if (mDrawable.notNull())
- {
- gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_SHADOW, TRUE);
- }
-
BOOL visible = isVisible() || mNeedsAnimUpdate;
// update attachments positions
@@ -2528,7 +2534,7 @@ void LLVOAvatar::idleUpdateAppearanceAnimation()
param;
param = getNextVisualParam())
{
- if (param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE)
+ if (param->isTweakable())
{
param->stopAnimating(FALSE);
}
@@ -2551,7 +2557,7 @@ void LLVOAvatar::idleUpdateAppearanceAnimation()
param;
param = getNextVisualParam())
{
- if (param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE)
+ if (param->isTweakable())
{
param->animate(morph_amt, FALSE);
}
@@ -2740,7 +2746,7 @@ void LLVOAvatar::idleUpdateNameTag(const LLVector3& root_pos_last)
{
// update chat bubble
//--------------------------------------------------------------------
- // draw text label over characters head
+ // draw text label over character's head
//--------------------------------------------------------------------
if (mChatTimer.getElapsedTimeF32() > BUBBLE_CHAT_TIME)
{
@@ -3068,14 +3074,6 @@ void LLVOAvatar::idleUpdateNameTag(const LLVector3& root_pos_last)
}
}
-//--------------------------------------------------------------------
-// draw tractor beam when editing objects
-//--------------------------------------------------------------------
-// virtual
-void LLVOAvatar::idleUpdateTractorBeam()
-{
-}
-
void LLVOAvatar::idleUpdateBelowWater()
{
F32 avatar_height = (F32)(getPositionGlobal().mdV[VZ]);
@@ -3120,14 +3118,16 @@ BOOL LLVOAvatar::updateCharacter(LLAgent &agent)
if (motionp->getName().empty())
{
output = llformat("%s - %d",
- motionp->getID().asString().c_str(),
- (U32)motionp->getPriority());
+ gAgent.isGodlikeWithoutAdminMenuFakery() ?
+ motionp->getID().asString().c_str() :
+ LLUUID::null.asString().c_str(),
+ (U32)motionp->getPriority());
}
else
{
output = llformat("%s - %d",
- motionp->getName().c_str(),
- (U32)motionp->getPriority());
+ motionp->getName().c_str(),
+ (U32)motionp->getPriority());
}
addDebugText(output);
}
@@ -3173,35 +3173,35 @@ BOOL LLVOAvatar::updateCharacter(LLAgent &agent)
{ // muted avatars update at 16 hz
mUpdatePeriod = 16;
}
- else if (visible && mVisibilityRank <= LLVOAvatar::sMaxVisible)
+ else if (mVisibilityRank <= LLVOAvatar::sMaxVisible)
{ //first 25% of max visible avatars are not impostored
mUpdatePeriod = 1;
}
- else if (visible && mVisibilityRank > LLVOAvatar::sMaxVisible * 4)
+ else if (mVisibilityRank > LLVOAvatar::sMaxVisible * 4)
{ //background avatars are REALLY slow updating impostors
mUpdatePeriod = 16;
}
- else if (visible && mVisibilityRank > LLVOAvatar::sMaxVisible * 3)
+ else if (mVisibilityRank > LLVOAvatar::sMaxVisible * 3)
{ //back 25% of max visible avatars are slow updating impostors
mUpdatePeriod = 8;
}
- else if (visible && mImpostorPixelArea <= impostor_area)
+ else if (mImpostorPixelArea <= impostor_area)
{ // stuff in between gets an update period based on pixel area
mUpdatePeriod = llclamp((S32) sqrtf(impostor_area*4.f/mImpostorPixelArea), 2, 8);
}
- else if (visible && mVisibilityRank > LLVOAvatar::sMaxVisible)
- { // force nearby impostors in ultra crowded areas
- mUpdatePeriod = 2;
- }
else
- { // not impostored
- mUpdatePeriod = 1;
+ {
+ //nearby avatars, update the impostors more frequently.
+ mUpdatePeriod = 4;
}
visible = (LLDrawable::getCurrentFrame()+mID.mData[0])%mUpdatePeriod == 0 ? TRUE : FALSE;
}
- if (!visible)
+ // don't early out for your own avatar, as we rely on your animations playing reliably
+ // for example, the "turn around" animation when entering customize avatar needs to trigger
+ // even when your avatar is offscreen
+ if (!visible && !isSelf())
{
updateMotions(LLCharacter::HIDDEN_UPDATE);
return FALSE;
@@ -3768,13 +3768,20 @@ U32 LLVOAvatar::renderSkinned(EAvatarRenderPass pass)
return num_indices;
}
- if (mDirtyMesh || mDrawable->isState(LLDrawable::REBUILD_GEOMETRY))
+ LLFace* face = mDrawable->getFace(0);
+
+ bool needs_rebuild = !face || face->mVertexBuffer.isNull() || mDrawable->isState(LLDrawable::REBUILD_GEOMETRY);
+
+ if (needs_rebuild || mDirtyMesh)
{ //LOD changed or new mesh created, allocate new vertex buffer if needed
+ if (needs_rebuild || mDirtyMesh >= 2 || mVisibilityRank <= 4)
+ {
updateMeshData();
- mDirtyMesh = FALSE;
+ mDirtyMesh = 0;
mNeedsSkin = TRUE;
mDrawable->clearState(LLDrawable::REBUILD_GEOMETRY);
}
+ }
if (LLViewerShaderMgr::instance()->getVertexShaderLevel(LLViewerShaderMgr::SHADER_AVATAR) <= 0)
{
@@ -4021,54 +4028,6 @@ U32 LLVOAvatar::renderRigid()
return num_indices;
}
-U32 LLVOAvatar::renderFootShadows()
-{
- U32 num_indices = 0;
-
- if (!mIsBuilt)
- {
- return 0;
- }
-
- if (isSelf() && (!gAgent.needsRenderAvatar() || !gAgent.needsRenderHead()))
- {
- return 0;
- }
-
- if (!mIsBuilt)
- {
- return 0;
- }
-
- // Don't render foot shadows if your lower body is completely invisible.
- // (non-humanoid avatars rule!)
- if (!isTextureVisible(TEX_LOWER_BAKED))
- {
- return 0;
- }
-
- // Update the shadow, tractor, and text label geometry.
- if (mDrawable->isState(LLDrawable::REBUILD_SHADOW) && !isImpostor())
- {
- updateShadowFaces();
- mDrawable->clearState(LLDrawable::REBUILD_SHADOW);
- }
-
- U32 foot_mask = LLVertexBuffer::MAP_VERTEX |
- LLVertexBuffer::MAP_TEXCOORD0;
-
- LLGLDepthTest test(GL_TRUE, GL_FALSE);
- //render foot shadows
- LLGLEnable blend(GL_BLEND);
- gGL.getTexUnit(0)->bind(mShadowImagep, TRUE);
- glColor4fv(mShadow0Facep->getRenderColor().mV);
- mShadow0Facep->renderIndexed(foot_mask);
- glColor4fv(mShadow1Facep->getRenderColor().mV);
- mShadow1Facep->renderIndexed(foot_mask);
-
- return num_indices;
-}
-
U32 LLVOAvatar::renderImpostor(LLColor4U color, S32 diffuse_channel)
{
if (!mImpostor.isComplete())
@@ -4123,7 +4082,12 @@ void LLVOAvatar::updateTextures()
}
else
{
- render_avatar = isVisible() && !mCulled;
+ if(!isVisible())
+ {
+ return ;//do not update for invisible avatar.
+ }
+
+ render_avatar = !mCulled; //visible and not culled.
}
std::vector<BOOL> layer_baked;
@@ -4165,7 +4129,7 @@ void LLVOAvatar::updateTextures()
}
}
}
- if (isIndexBakedTexture((ETextureIndex) texture_index))
+ if (isIndexBakedTexture((ETextureIndex) texture_index) && render_avatar)
{
const S32 boost_level = getAvatarBakedBoostLevel();
imagep = LLViewerTextureManager::staticCastToFetchedTexture(getImage(texture_index,0), TRUE);
@@ -4181,7 +4145,7 @@ void LLVOAvatar::updateTextures()
<< " on host " << getRegion()->getHost() << llendl;
}
- addBakedTextureStats( imagep, mPixelArea, texel_area_ratio, boost_level );
+ addBakedTextureStats( imagep, mPixelArea, texel_area_ratio, boost_level );
}
}
@@ -4189,11 +4153,6 @@ void LLVOAvatar::updateTextures()
{
setDebugText(llformat("%4.0f:%4.0f", fsqrtf(mMinPixelArea),fsqrtf(mMaxPixelArea)));
}
-
- if( render_avatar )
- {
- mShadowImagep->addTextureStats(mPixelArea);
- }
}
@@ -4204,19 +4163,90 @@ void LLVOAvatar::addLocalTextureStats( ETextureIndex idx, LLViewerFetchedTexture
return;
}
-
+const S32 MAX_TEXTURE_UPDATE_INTERVAL = 64 ; //need to call updateTextures() at least every 32 frames.
+const S32 MAX_TEXTURE_VIRTURE_SIZE_RESET_INTERVAL = S32_MAX ; //frames
+void LLVOAvatar::checkTextureLoading()
+{
+ static const F32 MAX_INVISIBLE_WAITING_TIME = 15.f ; //seconds
+
+ BOOL pause = !isVisible() ;
+ if(!pause)
+ {
+ mInvisibleTimer.reset() ;
+ }
+ if(mLoadedCallbacksPaused == pause)
+ {
+ return ;
+ }
+
+ if(mCallbackTextureList.empty()) //when is self or no callbacks. Note: this list for self is always empty.
+ {
+ mLoadedCallbacksPaused = pause ;
+ return ; //nothing to check.
+ }
+
+ if(pause && mInvisibleTimer.getElapsedTimeF32() < MAX_INVISIBLE_WAITING_TIME)
+ {
+ return ; //have not been invisible for enough time.
+ }
+
+ for(LLLoadedCallbackEntry::source_callback_list_t::iterator iter = mCallbackTextureList.begin();
+ iter != mCallbackTextureList.end(); ++iter)
+ {
+ LLViewerFetchedTexture* tex = gTextureList.findImage(*iter) ;
+ if(tex)
+ {
+ if(pause)//pause texture fetching.
+ {
+ tex->pauseLoadedCallbacks(&mCallbackTextureList) ;
+
+ //set to terminate texture fetching after MAX_TEXTURE_UPDATE_INTERVAL frames.
+ tex->setMaxVirtualSizeResetInterval(MAX_TEXTURE_UPDATE_INTERVAL);
+ tex->resetMaxVirtualSizeResetCounter() ;
+ }
+ else//unpause
+ {
+ static const F32 START_AREA = 100.f ;
+
+ tex->unpauseLoadedCallbacks(&mCallbackTextureList) ;
+ tex->addTextureStats(START_AREA); //jump start the fetching again
+ }
+ }
+ }
+
+ if(!pause)
+ {
+ updateTextures() ; //refresh texture stats.
+ }
+ mLoadedCallbacksPaused = pause ;
+ return ;
+}
+
+const F32 SELF_ADDITIONAL_PRI = 0.75f ;
+const F32 ADDITIONAL_PRI = 0.5f;
void LLVOAvatar::addBakedTextureStats( LLViewerFetchedTexture* imagep, F32 pixel_area, F32 texel_area_ratio, S32 boost_level)
{
- mMaxPixelArea = llmax(pixel_area, mMaxPixelArea);
- mMinPixelArea = llmin(pixel_area, mMinPixelArea);
+ //Note:
+ //if this function is not called for the last MAX_TEXTURE_VIRTURE_SIZE_RESET_INTERVAL frames,
+ //the texture pipeline will stop fetching this texture.
+
imagep->resetTextureStats();
- imagep->setResetMaxVirtualSizeFlag(false) ;
imagep->setCanUseHTTP(false) ; //turn off http fetching for baked textures.
+ imagep->setMaxVirtualSizeResetInterval(MAX_TEXTURE_VIRTURE_SIZE_RESET_INTERVAL);
+ imagep->resetMaxVirtualSizeResetCounter() ;
+
+ mMaxPixelArea = llmax(pixel_area, mMaxPixelArea);
+ mMinPixelArea = llmin(pixel_area, mMinPixelArea);
imagep->addTextureStats(pixel_area / texel_area_ratio);
imagep->setBoostLevel(boost_level);
- if(boost_level == LLViewerTexture::BOOST_AVATAR_BAKED_SELF)
+
+ if(boost_level != LLViewerTexture::BOOST_AVATAR_BAKED_SELF)
{
- imagep->setAdditionalDecodePriority(1.0f) ;
+ imagep->setAdditionalDecodePriority(ADDITIONAL_PRI) ;
+ }
+ else
+ {
+ imagep->setAdditionalDecodePriority(SELF_ADDITIONAL_PRI) ;
}
}
@@ -5389,7 +5419,7 @@ BOOL LLVOAvatar::updateJointLODs()
if (res)
{
sNumLODChangesThisFrame++;
- dirtyMesh();
+ dirtyMesh(2);
return TRUE;
}
}
@@ -5413,18 +5443,9 @@ LLDrawable *LLVOAvatar::createDrawable(LLPipeline *pipeline)
mDrawable->addFace(poolp, NULL);
mDrawable->setRenderType(LLPipeline::RENDER_TYPE_AVATAR);
- LLFace *facep;
-
- // Add faces for the foot shadows
- facep = mDrawable->addFace((LLFacePool*) NULL, mShadowImagep);
- mShadow0Facep = facep;
-
- facep = mDrawable->addFace((LLFacePool*) NULL, mShadowImagep);
- mShadow1Facep = facep;
-
mNumInitFaces = mDrawable->getNumFaces() ;
- dirtyMesh();
+ dirtyMesh(2);
return mDrawable;
}
@@ -5464,107 +5485,6 @@ BOOL LLVOAvatar::updateGeometry(LLDrawable *drawable)
}
//-----------------------------------------------------------------------------
-// updateShadowFaces()
-//-----------------------------------------------------------------------------
-void LLVOAvatar::updateShadowFaces()
-{
- LLFace *face0p = mShadow0Facep;
- LLFace *face1p = mShadow1Facep;
-
- //
- // render avatar shadows
- //
- if (mInAir || mUpdatePeriod >= IMPOSTOR_PERIOD)
- {
- face0p->setSize(0, 0);
- face1p->setSize(0, 0);
- return;
- }
-
- LLSprite sprite(mShadowImagep.notNull() ? mShadowImagep->getID() : LLUUID::null);
- sprite.setFollow(FALSE);
- const F32 cos_angle = gSky.getSunDirection().mV[2];
- F32 cos_elev = sqrt(1 - cos_angle * cos_angle);
- if (cos_angle < 0) cos_elev = -cos_elev;
- sprite.setSize(0.4f + cos_elev * 0.8f, 0.3f);
- LLVector3 sun_vec = gSky.mVOSkyp ? gSky.mVOSkyp->getToSun() : LLVector3(0.f, 0.f, 0.f);
-
- if (mShadowImagep->hasGLTexture())
- {
- LLVector3 normal;
- LLVector3d shadow_pos;
- LLVector3 shadow_pos_agent;
- F32 foot_height;
-
- if (mFootLeftp)
- {
- LLVector3 joint_world_pos = mFootLeftp->getWorldPosition();
- // this only does a ray straight down from the foot, as our client-side ray-tracing is very limited now
- // but we make an explicit ray trace call in expectation of future improvements
- resolveRayCollisionAgent(gAgent.getPosGlobalFromAgent(joint_world_pos),
- gAgent.getPosGlobalFromAgent(gSky.getSunDirection() + joint_world_pos), shadow_pos, normal);
- shadow_pos_agent = gAgent.getPosAgentFromGlobal(shadow_pos);
- foot_height = joint_world_pos.mV[VZ] - shadow_pos_agent.mV[VZ];
-
- // Pull sprite in direction of surface normal
- shadow_pos_agent += normal * SHADOW_OFFSET_AMT;
-
- // Render sprite
- sprite.setNormal(normal);
- if (isSelf() && gAgentCamera.getCameraMode() == CAMERA_MODE_MOUSELOOK)
- {
- sprite.setColor(0.f, 0.f, 0.f, 0.f);
- }
- else
- {
- sprite.setColor(0.f, 0.f, 0.f, clamp_rescale(foot_height, MIN_SHADOW_HEIGHT, MAX_SHADOW_HEIGHT, 0.5f, 0.f));
- }
- sprite.setPosition(shadow_pos_agent);
-
- LLVector3 foot_to_knee = mKneeLeftp->getWorldPosition() - joint_world_pos;
- //foot_to_knee.normalize();
- foot_to_knee -= projected_vec(foot_to_knee, sun_vec);
- sprite.setYaw(azimuth(sun_vec - foot_to_knee));
-
- sprite.updateFace(*face0p);
- }
-
- if (mFootRightp)
- {
- LLVector3 joint_world_pos = mFootRightp->getWorldPosition();
- // this only does a ray straight down from the foot, as our client-side ray-tracing is very limited now
- // but we make an explicit ray trace call in expectation of future improvements
- resolveRayCollisionAgent(gAgent.getPosGlobalFromAgent(joint_world_pos),
- gAgent.getPosGlobalFromAgent(gSky.getSunDirection() + joint_world_pos), shadow_pos, normal);
- shadow_pos_agent = gAgent.getPosAgentFromGlobal(shadow_pos);
- foot_height = joint_world_pos.mV[VZ] - shadow_pos_agent.mV[VZ];
-
- // Pull sprite in direction of surface normal
- shadow_pos_agent += normal * SHADOW_OFFSET_AMT;
-
- // Render sprite
- sprite.setNormal(normal);
- if (isSelf() && gAgentCamera.getCameraMode() == CAMERA_MODE_MOUSELOOK)
- {
- sprite.setColor(0.f, 0.f, 0.f, 0.f);
- }
- else
- {
- sprite.setColor(0.f, 0.f, 0.f, clamp_rescale(foot_height, MIN_SHADOW_HEIGHT, MAX_SHADOW_HEIGHT, 0.5f, 0.f));
- }
- sprite.setPosition(shadow_pos_agent);
-
- LLVector3 foot_to_knee = mKneeRightp->getWorldPosition() - joint_world_pos;
- //foot_to_knee.normalize();
- foot_to_knee -= projected_vec(foot_to_knee, sun_vec);
- sprite.setYaw(azimuth(sun_vec - foot_to_knee));
-
- sprite.updateFace(*face1p);
- }
- }
-}
-
-//-----------------------------------------------------------------------------
// updateSexDependentLayerSets()
//-----------------------------------------------------------------------------
void LLVOAvatar::updateSexDependentLayerSets( BOOL upload_bake )
@@ -5579,9 +5499,12 @@ void LLVOAvatar::updateSexDependentLayerSets( BOOL upload_bake )
//-----------------------------------------------------------------------------
void LLVOAvatar::dirtyMesh()
{
- mDirtyMesh = TRUE;
+ dirtyMesh(1);
+}
+void LLVOAvatar::dirtyMesh(S32 priority)
+{
+ mDirtyMesh = llmax(mDirtyMesh, priority);
}
-
//-----------------------------------------------------------------------------
// hideSkirt()
//-----------------------------------------------------------------------------
@@ -5615,6 +5538,7 @@ BOOL LLVOAvatar::setParent(LLViewerObject* parent)
void LLVOAvatar::addChild(LLViewerObject *childp)
{
+ childp->extractAttachmentItemID(); // find the inventory item this object is associated with.
LLViewerObject::addChild(childp);
if (childp->mDrawable)
{
@@ -5652,6 +5576,7 @@ LLViewerJointAttachment* LLVOAvatar::getTargetAttachmentPoint(LLViewerObject* vi
if (!attachment)
{
llwarns << "Object attachment point invalid: " << attachmentID << llendl;
+ attachment = get_if_there(mAttachmentPoints, 1, (LLViewerJointAttachment*)NULL); // Arbitrary using 1 (chest)
}
return attachment;
@@ -5703,6 +5628,15 @@ BOOL LLVOAvatar::canAttachMoreObjects() const
}
//-----------------------------------------------------------------------------
+// canAttachMoreObjects()
+// Returns true if we can attach <n> more objects.
+//-----------------------------------------------------------------------------
+BOOL LLVOAvatar::canAttachMoreObjects(U32 n) const
+{
+ return (getNumAttachments() + n) <= MAX_AGENT_ATTACHMENTS;
+}
+
+//-----------------------------------------------------------------------------
// lazyAttach()
//-----------------------------------------------------------------------------
void LLVOAvatar::lazyAttach()
@@ -6131,6 +6065,13 @@ void LLVOAvatar::updateMeshTextures()
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;
+ if(!isSelf())
+ {
+ src_callback_list = &mCallbackTextureList ;
+ paused = mLoadedCallbacksPaused ;
+ }
std::vector<BOOL> is_layer_baked;
is_layer_baked.resize(mBakedTextureDatas.size(), false);
@@ -6147,10 +6088,14 @@ void LLVOAvatar::updateMeshTextures()
// When an avatar is changing clothes and not in Appearance mode,
// use the last-known good baked texture until it finish the first
// render of the new layerset.
+
+ const BOOL layerset_invalid = !mBakedTextureDatas[i].mTexLayerSet
+ || !mBakedTextureDatas[i].mTexLayerSet->getComposite()->isInitialized()
+ || !mBakedTextureDatas[i].mTexLayerSet->isLocalTextureDataAvailable();
+
use_lkg_baked_layer[i] = (!is_layer_baked[i]
&& (mBakedTextureDatas[i].mLastTextureIndex != IMG_DEFAULT_AVATAR)
- && mBakedTextureDatas[i].mTexLayerSet
- && !mBakedTextureDatas[i].mTexLayerSet->getComposite()->isInitialized());
+ && layerset_invalid);
if (use_lkg_baked_layer[i])
{
mBakedTextureDatas[i].mTexLayerSet->setUpdatesEnabled(TRUE);
@@ -6201,10 +6146,12 @@ void LLVOAvatar::updateMeshTextures()
{
mBakedTextureDatas[i].mIsLoaded = FALSE;
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 ));
+ {
+ baked_img->setLoadedCallback(onBakedTextureMasksLoaded, MORPH_MASK_REQUESTED_DISCARD, TRUE, TRUE, new LLTextureMaskData( mID ),
+ src_callback_list, paused);
}
- baked_img->setLoadedCallback(onBakedTextureLoaded, SWITCH_TO_BAKED_DISCARD, FALSE, FALSE, new LLUUID( mID ) );
+ baked_img->setLoadedCallback(onBakedTextureLoaded, SWITCH_TO_BAKED_DISCARD, FALSE, FALSE, new LLUUID( mID ),
+ src_callback_list, paused );
}
}
else if (mBakedTextureDatas[i].mTexLayerSet
@@ -6664,6 +6611,14 @@ void LLVOAvatar::onFirstTEMessageReceived()
{
mFirstTEMessageReceived = TRUE;
+ LLLoadedCallbackEntry::source_callback_list_t* src_callback_list = NULL ;
+ BOOL paused = FALSE ;
+ if(!isSelf())
+ {
+ src_callback_list = &mCallbackTextureList ;
+ paused = mLoadedCallbacksPaused ;
+ }
+
for (U32 i = 0; i < mBakedTextureDatas.size(); i++)
{
const BOOL layer_baked = isTextureDefined(mBakedTextureDatas[i].mTextureIndex);
@@ -6677,9 +6632,11 @@ void LLVOAvatar::onFirstTEMessageReceived()
// 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)) )
{
- image->setLoadedCallback( onBakedTextureMasksLoaded, MORPH_MASK_REQUESTED_DISCARD, TRUE, TRUE, new LLTextureMaskData( mID ));
+ image->setLoadedCallback( onBakedTextureMasksLoaded, MORPH_MASK_REQUESTED_DISCARD, TRUE, TRUE, new LLTextureMaskData( mID ),
+ src_callback_list, paused);
}
- image->setLoadedCallback( onInitialBakedTextureLoaded, MAX_DISCARD_LEVEL, FALSE, FALSE, new LLUUID( mID ) );
+ image->setLoadedCallback( onInitialBakedTextureLoaded, MAX_DISCARD_LEVEL, FALSE, FALSE, new LLUUID( mID ),
+ src_callback_list, paused );
}
}
@@ -6700,7 +6657,7 @@ bool LLVOAvatar::visualParamWeightsAreDefault()
param;
param = getNextVisualParam())
{
- if (param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE)
+ if (param->isTweakable())
{
LLViewerVisualParam* vparam = dynamic_cast<LLViewerVisualParam*>(param);
llassert(vparam);
@@ -6810,7 +6767,7 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys )
{
for( S32 i = 0; i < num_blocks; i++ )
{
- while( param && (param->getGroup() != VISUAL_PARAM_GROUP_TWEAKABLE) )
+ while( param && (param->getGroup() != VISUAL_PARAM_GROUP_TWEAKABLE) ) // should not be any of group VISUAL_PARAM_GROUP_TWEAKABLE_NO_TRANSMIT
{
param = getNextVisualParam();
}
@@ -6843,7 +6800,7 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys )
}
}
- const S32 expected_tweakable_count = getVisualParamCountInGroup(VISUAL_PARAM_GROUP_TWEAKABLE);
+ 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;
@@ -6878,12 +6835,14 @@ void LLVOAvatar::processAvatarAppearance( LLMessageSystem* mesgsys )
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
- if (visualParamWeightsAreDefault())
+ if (visualParamWeightsAreDefault() && mRuthTimer.getElapsedTimeF32() > LOADING_TIMEOUT_SECONDS)
{
// re-request appearance, hoping that it comes back with a shape next time
llinfos << "Re-requesting AvatarAppearance for object: " << getID() << llendl;
LLAvatarPropertiesProcessor::getInstance()->sendAvatarTexturesRequest(getID());
+ mRuthTimer.reset();
}
else
{
@@ -7130,7 +7089,7 @@ void LLVOAvatar::dumpArchetypeXML( void* )
{
LLViewerVisualParam* viewer_param = (LLViewerVisualParam*)param;
if( (viewer_param->getWearableType() == type) &&
- (viewer_param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE) )
+ (viewer_param->isTweakable() ) )
{
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());
@@ -7203,7 +7162,7 @@ void LLVOAvatar::cullAvatarsByPixelArea()
std::sort(LLCharacter::sInstances.begin(), LLCharacter::sInstances.end(), CompareScreenAreaGreater());
// Update the avatars that have changed status
- U32 rank = 0;
+ U32 rank = 2; //1 is reserved for self.
for (std::vector<LLCharacter*>::iterator iter = LLCharacter::sInstances.begin();
iter != LLCharacter::sInstances.end(); ++iter)
{
@@ -7227,7 +7186,7 @@ void LLVOAvatar::cullAvatarsByPixelArea()
if (inst->isSelf())
{
- inst->setVisibilityRank(0);
+ inst->setVisibilityRank(1);
}
else if (inst->mDrawable.notNull() && inst->mDrawable->isVisible())
{
@@ -7826,18 +7785,15 @@ BOOL LLVOAvatar::updateLOD()
BOOL res = updateJointLODs();
LLFace* facep = mDrawable->getFace(0);
- if (facep->mVertexBuffer.isNull() ||
- (LLVertexBuffer::sEnableVBOs &&
- ((facep->mVertexBuffer->getUsage() == GL_STATIC_DRAW ? TRUE : FALSE) !=
- (facep->getPool()->getVertexShaderLevel() > 0 ? TRUE : FALSE))))
+ if (facep->mVertexBuffer.isNull())
{
- mDirtyMesh = TRUE;
+ dirtyMesh(2);
}
- if (mDirtyMesh || mDrawable->isState(LLDrawable::REBUILD_GEOMETRY))
+ if (mDirtyMesh >= 2 || mDrawable->isState(LLDrawable::REBUILD_GEOMETRY))
{ //LOD changed or new mesh created, allocate new vertex buffer if needed
updateMeshData();
- mDirtyMesh = FALSE;
+ mDirtyMesh = 0;
mNeedsSkin = TRUE;
mDrawable->clearState(LLDrawable::REBUILD_GEOMETRY);
}
diff --git a/indra/newview/llvoavatar.h b/indra/newview/llvoavatar.h
index 4259bb8e73..d51b8701af 100644
--- a/indra/newview/llvoavatar.h
+++ b/indra/newview/llvoavatar.h
@@ -3,31 +3,25 @@
* @brief Declaration of LLVOAvatar class which is a derivation of
* LLViewerObject
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -214,7 +208,6 @@ public:
void idleUpdateWindEffect();
void idleUpdateNameTag(const LLVector3& root_pos_last);
void idleUpdateRenderCost();
- void idleUpdateTractorBeam();
void idleUpdateBelowWater();
//--------------------------------------------------------------------
@@ -263,6 +256,8 @@ private:
S32 mFullyLoadedFrameCounter;
LLFrameTimer mFullyLoadedTimer;
LLFrameTimer mRuthTimer;
+protected:
+ LLFrameTimer mInvisibleTimer;
/** State
** **
@@ -340,7 +335,6 @@ private:
**/
public:
- U32 renderFootShadows();
U32 renderImpostor(LLColor4U color = LLColor4U(255,255,255,255), S32 diffuse_channel = 0);
U32 renderRigid();
U32 renderSkinned(EAvatarRenderPass pass);
@@ -499,7 +493,8 @@ protected:
};
typedef std::vector<BakedTextureData> bakedtexturedata_vec_t;
bakedtexturedata_vec_t mBakedTextureDatas;
-
+ LLLoadedCallbackEntry::source_callback_list_t mCallbackTextureList ;
+ BOOL mLoadedCallbacksPaused;
//--------------------------------------------------------------------
// Local Textures
//--------------------------------------------------------------------
@@ -519,7 +514,7 @@ private:
virtual const LLTextureEntry* getTexEntry(const U8 te_num) const;
virtual void setTexEntry(const U8 index, const LLTextureEntry &te);
-
+ void checkTextureLoading() ;
//--------------------------------------------------------------------
// Layers
//--------------------------------------------------------------------
@@ -576,7 +571,8 @@ protected:
void releaseMeshData();
virtual void restoreMeshData();
private:
- BOOL mDirtyMesh;
+ void dirtyMesh(S32 priority); // Dirty the avatar mesh, with priority
+ S32 mDirtyMesh; // 0 -- not dirty, 1 -- morphed, 2 -- LOD
BOOL mMeshTexturesDirty;
typedef std::multimap<std::string, LLPolyMesh*> polymesh_map_t;
@@ -608,8 +604,9 @@ public:
// Appearance morphing
//--------------------------------------------------------------------
public:
- BOOL mAppearanceAnimating;
+ BOOL getIsAppearanceAnimating() const { return mAppearanceAnimating; }
private:
+ BOOL mAppearanceAnimating;
LLFrameTimer mAppearanceMorphTimer;
F32 mLastAppearanceBlendTime;
@@ -683,6 +680,7 @@ public:
void rebuildHUD();
void resetHUDAttachments();
BOOL canAttachMoreObjects() const;
+ BOOL canAttachMoreObjects(U32 n) const;
protected:
U32 getNumAttachments() const; // O(N), not O(1)
@@ -865,7 +863,7 @@ private:
public:
// Responsible for detecting the user's voice signal (and when the
// user speaks, it puts a voice symbol over the avatar's head) and gesticulations
- LLVoiceVisualizer* mVoiceVisualizer;
+ LLPointer<LLVoiceVisualizer> mVoiceVisualizer;
int mCurrentGesticulationLevel;
//--------------------------------------------------------------------
@@ -1045,5 +1043,7 @@ protected: // Shared with LLVOAvatarSelf
*******************************************************************************/
}; // LLVOAvatar
+extern const F32 SELF_ADDITIONAL_PRI;
+extern const S32 MAX_TEXTURE_VIRTURE_SIZE_RESET_INTERVAL;
#endif // LL_VO_AVATAR_H
diff --git a/indra/newview/llvoavatardefines.cpp b/indra/newview/llvoavatardefines.cpp
index ed0a4f147d..1ed4e3b61c 100644
--- a/indra/newview/llvoavatardefines.cpp
+++ b/indra/newview/llvoavatardefines.cpp
@@ -2,31 +2,25 @@
* @file llvoavatar.cpp
* @brief Implementation of LLVOAvatar class which is a derivation fo LLViewerObject
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llvoavatardefines.h b/indra/newview/llvoavatardefines.h
index 9c4ee7e716..35bb37463a 100644
--- a/indra/newview/llvoavatardefines.h
+++ b/indra/newview/llvoavatardefines.h
@@ -3,31 +3,25 @@
* @brief Declaration of LLVOAvatar class which is a derivation fo
* LLViewerObject
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llvoavatarself.cpp b/indra/newview/llvoavatarself.cpp
index 91af5fefde..e5cbf65682 100644
--- a/indra/newview/llvoavatarself.cpp
+++ b/indra/newview/llvoavatarself.cpp
@@ -2,31 +2,25 @@
* @file llvoavatar.cpp
* @brief Implementation of LLVOAvatar class which is a derivation fo LLViewerObject
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -246,58 +240,58 @@ BOOL LLVOAvatarSelf::buildMenus()
gAttachBodyPartPieMenus[0] = NULL;
LLContextMenu::Params params;
- params.label(LLTrans::getString("BodyPartsRightArm") + " >");
+ params.label(LLTrans::getString("BodyPartsRightArm"));
params.name(params.label);
params.visible(false);
gAttachBodyPartPieMenus[1] = LLUICtrlFactory::create<LLContextMenu> (params);
- params.label(LLTrans::getString("BodyPartsHead") + " >");
+ params.label(LLTrans::getString("BodyPartsHead"));
params.name(params.label);
gAttachBodyPartPieMenus[2] = LLUICtrlFactory::create<LLContextMenu> (params);
- params.label(LLTrans::getString("BodyPartsLeftArm") + " >");
+ params.label(LLTrans::getString("BodyPartsLeftArm"));
params.name(params.label);
gAttachBodyPartPieMenus[3] = LLUICtrlFactory::create<LLContextMenu> (params);
gAttachBodyPartPieMenus[4] = NULL;
- params.label(LLTrans::getString("BodyPartsLeftLeg") + " >");
+ params.label(LLTrans::getString("BodyPartsLeftLeg"));
params.name(params.label);
gAttachBodyPartPieMenus[5] = LLUICtrlFactory::create<LLContextMenu> (params);
- params.label(LLTrans::getString("BodyPartsTorso") + " >");
+ params.label(LLTrans::getString("BodyPartsTorso"));
params.name(params.label);
gAttachBodyPartPieMenus[6] = LLUICtrlFactory::create<LLContextMenu> (params);
- params.label(LLTrans::getString("BodyPartsRightLeg") + " >");
+ params.label(LLTrans::getString("BodyPartsRightLeg"));
params.name(params.label);
gAttachBodyPartPieMenus[7] = LLUICtrlFactory::create<LLContextMenu> (params);
gDetachBodyPartPieMenus[0] = NULL;
- params.label(LLTrans::getString("BodyPartsRightArm") + " >");
+ params.label(LLTrans::getString("BodyPartsRightArm"));
params.name(params.label);
gDetachBodyPartPieMenus[1] = LLUICtrlFactory::create<LLContextMenu> (params);
- params.label(LLTrans::getString("BodyPartsHead") + " >");
+ params.label(LLTrans::getString("BodyPartsHead"));
params.name(params.label);
gDetachBodyPartPieMenus[2] = LLUICtrlFactory::create<LLContextMenu> (params);
- params.label(LLTrans::getString("BodyPartsLeftArm") + " >");
+ params.label(LLTrans::getString("BodyPartsLeftArm"));
params.name(params.label);
gDetachBodyPartPieMenus[3] = LLUICtrlFactory::create<LLContextMenu> (params);
gDetachBodyPartPieMenus[4] = NULL;
- params.label(LLTrans::getString("BodyPartsLeftLeg") + " >");
+ params.label(LLTrans::getString("BodyPartsLeftLeg"));
params.name(params.label);
gDetachBodyPartPieMenus[5] = LLUICtrlFactory::create<LLContextMenu> (params);
- params.label(LLTrans::getString("BodyPartsTorso") + " >");
+ params.label(LLTrans::getString("BodyPartsTorso"));
params.name(params.label);
gDetachBodyPartPieMenus[6] = LLUICtrlFactory::create<LLContextMenu> (params);
- params.label(LLTrans::getString("BodyPartsRightLeg") + " >");
+ params.label(LLTrans::getString("BodyPartsRightLeg"));
params.name(params.label);
gDetachBodyPartPieMenus[7] = LLUICtrlFactory::create<LLContextMenu> (params);
@@ -640,6 +634,7 @@ BOOL LLVOAvatarSelf::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time)
return TRUE;
}
LLVOAvatar::idleUpdate(agent, world, time);
+ idleUpdateTractorBeam();
return TRUE;
}
@@ -1016,6 +1011,44 @@ BOOL LLVOAvatarSelf::isWearingAttachment(const LLUUID& inv_item_id) const
}
//-----------------------------------------------------------------------------
+BOOL LLVOAvatarSelf::attachmentWasRequested(const LLUUID& inv_item_id) const
+{
+ const F32 REQUEST_EXPIRATION_SECONDS = 5.0; // any request older than this is ignored/removed.
+ std::map<LLUUID,LLTimer>::iterator it = mAttachmentRequests.find(inv_item_id);
+ if (it != mAttachmentRequests.end())
+ {
+ const LLTimer& request_time = it->second;
+ F32 request_time_elapsed = request_time.getElapsedTimeF32();
+ if (request_time_elapsed > REQUEST_EXPIRATION_SECONDS)
+ {
+ mAttachmentRequests.erase(it);
+ return FALSE;
+ }
+ else
+ {
+ return TRUE;
+ }
+ }
+ else
+ {
+ return FALSE;
+ }
+}
+
+//-----------------------------------------------------------------------------
+void LLVOAvatarSelf::addAttachmentRequest(const LLUUID& inv_item_id)
+{
+ LLTimer current_time;
+ mAttachmentRequests[inv_item_id] = current_time;
+}
+
+//-----------------------------------------------------------------------------
+void LLVOAvatarSelf::removeAttachmentRequest(const LLUUID& inv_item_id)
+{
+ mAttachmentRequests.erase(inv_item_id);
+}
+
+//-----------------------------------------------------------------------------
// getWornAttachment()
//-----------------------------------------------------------------------------
LLViewerObject* LLVOAvatarSelf::getWornAttachment(const LLUUID& inv_item_id)
@@ -1067,8 +1100,10 @@ const LLViewerJointAttachment *LLVOAvatarSelf::attachObject(LLViewerObject *view
// Should just be the last object added
if (attachment->isObjectAttached(viewer_object))
{
- const LLUUID& attachment_id = viewer_object->getItemID();
+ const LLUUID& attachment_id = viewer_object->getAttachmentItemID();
LLAppearanceMgr::instance().registerAttachment(attachment_id);
+ // Clear any pending requests once the attachment arrives.
+ removeAttachmentRequest(attachment_id);
}
return attachment;
@@ -1077,7 +1112,7 @@ const LLViewerJointAttachment *LLVOAvatarSelf::attachObject(LLViewerObject *view
//virtual
BOOL LLVOAvatarSelf::detachObject(LLViewerObject *viewer_object)
{
- const LLUUID attachment_id = viewer_object->getItemID();
+ const LLUUID attachment_id = viewer_object->getAttachmentItemID();
if (LLVOAvatar::detachObject(viewer_object))
{
// the simulator should automatically handle permission revocation
@@ -1115,6 +1150,41 @@ BOOL LLVOAvatarSelf::detachObject(LLViewerObject *viewer_object)
return FALSE;
}
+// static
+BOOL LLVOAvatarSelf::detachAttachmentIntoInventory(const LLUUID &item_id)
+{
+ LLInventoryItem* item = gInventory.getItem(item_id);
+ if (item)
+ {
+ gMessageSystem->newMessageFast(_PREHASH_DetachAttachmentIntoInv);
+ gMessageSystem->nextBlockFast(_PREHASH_ObjectData);
+ gMessageSystem->addUUIDFast(_PREHASH_AgentID, gAgent.getID());
+ gMessageSystem->addUUIDFast(_PREHASH_ItemID, item_id);
+ gMessageSystem->sendReliable(gAgent.getRegion()->getHost());
+
+ // This object might have been selected, so let the selection manager know it's gone now
+ LLViewerObject *found_obj = gObjectList.findObject(item_id);
+ if (found_obj)
+ {
+ LLSelectMgr::getInstance()->remove(found_obj);
+ }
+
+ // Error checking in case this object was attached to an invalid point
+ // In that case, just remove the item from COF preemptively since detach
+ // will fail.
+ if (isAgentAvatarValid())
+ {
+ const LLViewerObject *attached_obj = gAgentAvatarp->getWornAttachment(item_id);
+ if (!attached_obj)
+ {
+ LLAppearanceMgr::instance().removeCOFItemLinks(item_id, false);
+ }
+ }
+ return TRUE;
+ }
+ return FALSE;
+}
+
U32 LLVOAvatarSelf::getNumWearables(LLVOAvatarDefines::ETextureIndex i) const
{
LLWearableType::EType type = LLVOAvatarDictionary::getInstance()->getTEWearableType(i);
@@ -1148,11 +1218,11 @@ void LLVOAvatarSelf::localTextureLoaded(BOOL success, LLViewerFetchedTexture *sr
discard_level < local_tex_obj->getDiscard())
{
local_tex_obj->setDiscard(discard_level);
- if (!gAgentCamera.cameraCustomizeAvatar())
+ if (isUsingBakedTextures())
{
requestLayerSetUpdate(index);
}
- else if (gAgentCamera.cameraCustomizeAvatar())
+ else
{
LLVisualParamHint::requestHintUpdates();
}
@@ -1622,18 +1692,21 @@ void LLVOAvatarSelf::setLocalTexture(ETextureIndex type, LLViewerTexture* src_te
if (tex_discard >= 0 && tex_discard <= desired_discard)
{
local_tex_obj->setDiscard(tex_discard);
- if (isSelf() && !gAgentCamera.cameraCustomizeAvatar())
+ if (isSelf())
+ {
+ if (gAgentAvatarp->isUsingBakedTextures())
{
requestLayerSetUpdate(type);
}
- else if (isSelf() && gAgentCamera.cameraCustomizeAvatar())
+ else
{
LLVisualParamHint::requestHintUpdates();
}
}
+ }
else
- {
- tex->setLoadedCallback(onLocalTextureLoaded, desired_discard, TRUE, FALSE, new LLAvatarTexData(getID(), type));
+ {
+ tex->setLoadedCallback(onLocalTextureLoaded, desired_discard, TRUE, FALSE, new LLAvatarTexData(getID(), type), NULL);
}
}
tex->setMinDiscardLevel(desired_discard);
@@ -2032,9 +2105,9 @@ void LLVOAvatarSelf::addLocalTextureStats( ETextureIndex type, LLViewerFetchedTe
imagep->setBoostLevel(getAvatarBoostLevel());
imagep->resetTextureStats();
- imagep->setResetMaxVirtualSizeFlag(false) ;
+ imagep->setMaxVirtualSizeResetInterval(MAX_TEXTURE_VIRTURE_SIZE_RESET_INTERVAL);
imagep->addTextureStats( desired_pixels / texel_area_ratio );
- imagep->setAdditionalDecodePriority(1.0f) ;
+ imagep->setAdditionalDecodePriority(SELF_ADDITIONAL_PRI) ;
imagep->forceUpdateBindStats() ;
if (imagep->getDiscardLevel() < 0)
{
@@ -2142,6 +2215,11 @@ void LLVOAvatarSelf::setNewBakedTexture( ETextureIndex te, const LLUUID& uuid )
void LLVOAvatarSelf::outputRezDiagnostics() const
{
+ if(!gSavedSettings.getBOOL("DebugAvatarLocalTexLoadedTime"))
+ {
+ return ;
+ }
+
const F32 final_time = mDebugSelfLoadTimer.getElapsedTimeF32();
llinfos << "REZTIME: Myself rez stats:" << llendl;
llinfos << "\t Time from avatar creation to load wearables: " << (S32)mDebugTimeWearablesLoaded << llendl;
@@ -2261,6 +2339,16 @@ 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)
{
llinfos << "TAT: forced full rebake. " << llendl;
diff --git a/indra/newview/llvoavatarself.h b/indra/newview/llvoavatarself.h
index 55b4fd87c8..23a799ea3a 100644
--- a/indra/newview/llvoavatarself.h
+++ b/indra/newview/llvoavatarself.h
@@ -3,31 +3,25 @@
* @brief Declaration of LLVOAvatar class which is a derivation fo
* LLViewerObject
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -39,6 +33,7 @@
struct LocalTextureData;
+
//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// LLVOAvatarSelf
//
@@ -217,6 +212,7 @@ public:
void setCachedBakedTexture(LLVOAvatarDefines::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();
@@ -290,10 +286,18 @@ protected:
public:
void updateAttachmentVisibility(U32 camera_mode);
BOOL isWearingAttachment(const LLUUID& inv_item_id) const;
+ BOOL attachmentWasRequested(const LLUUID& inv_item_id) const;
+ void addAttachmentRequest(const LLUUID& inv_item_id);
+ void removeAttachmentRequest(const LLUUID& inv_item_id);
LLViewerObject* getWornAttachment(const LLUUID& inv_item_id);
const std::string getAttachedPointName(const LLUUID& inv_item_id) const;
/*virtual*/ const LLViewerJointAttachment *attachObject(LLViewerObject *viewer_object);
/*virtual*/ BOOL detachObject(LLViewerObject *viewer_object);
+ static BOOL detachAttachmentIntoInventory(const LLUUID& item_id);
+
+private:
+ // Track attachments that have been requested but have not arrived yet.
+ mutable std::map<LLUUID,LLTimer> mAttachmentRequests;
//--------------------------------------------------------------------
// HUDs
diff --git a/indra/newview/llvocache.cpp b/indra/newview/llvocache.cpp
index 3f1c132e77..8bdb8e069e 100644
--- a/indra/newview/llvocache.cpp
+++ b/indra/newview/llvocache.cpp
@@ -2,104 +2,133 @@
* @file llvocache.cpp
* @brief Cache of objects on the viewer.
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
#include "llviewerprecompiledheaders.h"
-
#include "llvocache.h"
-
#include "llerror.h"
+#include "llregionhandle.h"
+
+BOOL check_read(LLAPRFile* apr_file, void* src, S32 n_bytes)
+{
+ return apr_file->read(src, n_bytes) == n_bytes ;
+}
+
+BOOL check_write(LLAPRFile* apr_file, void* src, S32 n_bytes)
+{
+ return apr_file->write(src, n_bytes) == n_bytes ;
+}
//---------------------------------------------------------------------------
// LLVOCacheEntry
//---------------------------------------------------------------------------
LLVOCacheEntry::LLVOCacheEntry(U32 local_id, U32 crc, LLDataPackerBinaryBuffer &dp)
+ :
+ mLocalID(local_id),
+ mCRC(crc),
+ mHitCount(0),
+ mDupeCount(0),
+ mCRCChangeCount(0)
{
- mLocalID = local_id;
- mCRC = crc;
- mHitCount = 0;
- mDupeCount = 0;
- mCRCChangeCount = 0;
mBuffer = new U8[dp.getBufferSize()];
mDP.assignBuffer(mBuffer, dp.getBufferSize());
mDP = dp;
}
LLVOCacheEntry::LLVOCacheEntry()
+ :
+ mLocalID(0),
+ mCRC(0),
+ mHitCount(0),
+ mDupeCount(0),
+ mCRCChangeCount(0),
+ mBuffer(NULL)
{
- mLocalID = 0;
- mCRC = 0;
- mHitCount = 0;
- mDupeCount = 0;
- mCRCChangeCount = 0;
- mBuffer = NULL;
mDP.assignBuffer(mBuffer, 0);
}
-
-static inline void checkedRead(LLFILE *fp, void *data, size_t nbytes)
+LLVOCacheEntry::LLVOCacheEntry(LLAPRFile* apr_file)
{
- if (fread(data, 1, nbytes, fp) != nbytes)
+ S32 size = -1;
+ BOOL success;
+
+ success = check_read(apr_file, &mLocalID, sizeof(U32));
+ if(success)
{
- llwarns << "Short read" << llendl;
- memset(data, 0, nbytes);
+ success = check_read(apr_file, &mCRC, sizeof(U32));
}
-}
+ if(success)
+ {
+ success = check_read(apr_file, &mHitCount, sizeof(S32));
+ }
+ if(success)
+ {
+ success = check_read(apr_file, &mDupeCount, sizeof(S32));
+ }
+ if(success)
+ {
+ success = check_read(apr_file, &mCRCChangeCount, sizeof(S32));
+ }
+ if(success)
+ {
+ success = check_read(apr_file, &size, sizeof(S32));
-LLVOCacheEntry::LLVOCacheEntry(LLFILE *fp)
-{
- S32 size;
- checkedRead(fp, &mLocalID, sizeof(U32));
- checkedRead(fp, &mCRC, sizeof(U32));
- checkedRead(fp, &mHitCount, sizeof(S32));
- checkedRead(fp, &mDupeCount, sizeof(S32));
- checkedRead(fp, &mCRCChangeCount, sizeof(S32));
+ // Corruption in the cache entries
+ if ((size > 10000) || (size < 1))
+ {
+ // We've got a bogus size, skip reading it.
+ // We won't bother seeking, because the rest of this file
+ // is likely bogus, and will be tossed anyway.
+ llwarns << "Bogus cache entry, size " << size << ", aborting!" << llendl;
+ success = FALSE;
+ }
+ }
+ if(success && size > 0)
+ {
+ mBuffer = new U8[size];
+ success = check_read(apr_file, mBuffer, size);
- checkedRead(fp, &size, sizeof(S32));
+ if(success)
+ {
+ mDP.assignBuffer(mBuffer, size);
+ }
+ else
+ {
+ delete[] mBuffer ;
+ mBuffer = NULL ;
+ }
+ }
- // Corruption in the cache entries
- if ((size > 10000) || (size < 1))
+ if(!success)
{
- // We've got a bogus size, skip reading it.
- // We won't bother seeking, because the rest of this file
- // is likely bogus, and will be tossed anyway.
- llwarns << "Bogus cache entry, size " << size << ", aborting!" << llendl;
mLocalID = 0;
mCRC = 0;
+ mHitCount = 0;
+ mDupeCount = 0;
+ mCRCChangeCount = 0;
mBuffer = NULL;
- return;
}
-
- mBuffer = new U8[size];
- checkedRead(fp, mBuffer, size);
- mDP.assignBuffer(mBuffer, size);
}
LLVOCacheEntry::~LLVOCacheEntry()
@@ -154,22 +183,468 @@ void LLVOCacheEntry::dump() const
<< llendl;
}
-static inline void checkedWrite(LLFILE *fp, const void *data, size_t nbytes)
+BOOL LLVOCacheEntry::writeToFile(LLAPRFile* apr_file) const
+{
+ BOOL success;
+ success = check_write(apr_file, (void*)&mLocalID, sizeof(U32));
+ if(success)
+ {
+ success = check_write(apr_file, (void*)&mCRC, sizeof(U32));
+ }
+ if(success)
+ {
+ success = check_write(apr_file, (void*)&mHitCount, sizeof(S32));
+ }
+ if(success)
+ {
+ success = check_write(apr_file, (void*)&mDupeCount, sizeof(S32));
+ }
+ if(success)
+ {
+ success = check_write(apr_file, (void*)&mCRCChangeCount, sizeof(S32));
+ }
+ if(success)
+ {
+ S32 size = mDP.getBufferSize();
+ success = check_write(apr_file, (void*)&size, sizeof(S32));
+
+ if(success)
+ {
+ success = check_write(apr_file, (void*)mBuffer, size);
+ }
+}
+
+ return success ;
+}
+
+//-------------------------------------------------------------------
+//LLVOCache
+//-------------------------------------------------------------------
+// Format string used to construct filename for the object cache
+static const char OBJECT_CACHE_FILENAME[] = "objects_%d_%d.slc";
+
+const U32 MAX_NUM_OBJECT_ENTRIES = 128 ;
+const U32 NUM_ENTRIES_TO_PURGE = 16 ;
+const char* object_cache_dirname = "objectcache";
+const char* header_filename = "object.cache";
+
+LLVOCache* LLVOCache::sInstance = NULL;
+
+//static
+LLVOCache* LLVOCache::getInstance()
+{
+ if(!sInstance)
+ {
+ sInstance = new LLVOCache() ;
+}
+ return sInstance ;
+}
+
+//static
+BOOL LLVOCache::hasInstance()
+{
+ return sInstance != NULL ;
+}
+
+//static
+void LLVOCache::destroyClass()
+{
+ if(sInstance)
+ {
+ delete sInstance ;
+ sInstance = NULL ;
+ }
+}
+
+LLVOCache::LLVOCache():
+ mInitialized(FALSE),
+ mReadOnly(TRUE),
+ mNumEntries(0),
+ mCacheSize(1)
+{
+ mLocalAPRFilePoolp = new LLVolatileAPRPool() ;
+}
+
+LLVOCache::~LLVOCache()
+{
+ writeCacheHeader();
+ clearCacheInMemory();
+ delete mLocalAPRFilePoolp;
+}
+
+void LLVOCache::setDirNames(ELLPath location)
+{
+ std::string delem = gDirUtilp->getDirDelimiter();
+
+ mHeaderFileName = gDirUtilp->getExpandedFilename(location, object_cache_dirname, header_filename);
+ mObjectCacheDirName = gDirUtilp->getExpandedFilename(location, object_cache_dirname);
+}
+
+void LLVOCache::initCache(ELLPath location, U32 size, U32 cache_version)
+{
+ if(mInitialized)
+ {
+ return ;
+ }
+
+ setDirNames(location);
+ if (!mReadOnly)
+ {
+ LLFile::mkdir(mObjectCacheDirName);
+ }
+ mCacheSize = llclamp(size,
+ MAX_NUM_OBJECT_ENTRIES, NUM_ENTRIES_TO_PURGE);
+
+ mMetaInfo.mVersion = cache_version;
+ readCacheHeader();
+ mInitialized = TRUE ;
+
+ if(mMetaInfo.mVersion != cache_version)
+ {
+ mMetaInfo.mVersion = cache_version ;
+ if(mReadOnly) //disable cache
+ {
+ clearCacheInMemory();
+ }
+ else //delete the current cache if the format does not match.
+ {
+ removeCache();
+ }
+ }
+}
+
+void LLVOCache::removeCache(ELLPath location)
+{
+ if(mReadOnly)
+ {
+ return ;
+ }
+
+ std::string delem = gDirUtilp->getDirDelimiter();
+ std::string mask = delem + "*";
+ std::string cache_dir = gDirUtilp->getExpandedFilename(location, object_cache_dirname);
+ gDirUtilp->deleteFilesInDir(cache_dir, mask); //delete all files
+ LLFile::rmdir(cache_dir);
+
+ clearCacheInMemory();
+ mInitialized = FALSE ;
+}
+
+void LLVOCache::removeCache()
+{
+ llassert_always(mInitialized) ;
+ if(mReadOnly)
+ {
+ return ;
+ }
+
+ std::string delem = gDirUtilp->getDirDelimiter();
+ std::string mask = delem + "*";
+ gDirUtilp->deleteFilesInDir(mObjectCacheDirName, mask);
+
+ clearCacheInMemory() ;
+ writeCacheHeader();
+}
+
+void LLVOCache::clearCacheInMemory()
+{
+ if(!mHeaderEntryQueue.empty())
+ {
+ for(header_entry_queue_t::iterator iter = mHeaderEntryQueue.begin(); iter != mHeaderEntryQueue.end(); ++iter)
+ {
+ delete *iter ;
+ }
+ mHeaderEntryQueue.clear();
+ mHandleEntryMap.clear();
+ mNumEntries = 0 ;
+ }
+}
+
+void LLVOCache::getObjectCacheFilename(U64 handle, std::string& filename)
{
- if (fwrite(data, 1, nbytes, fp) != nbytes)
+ U32 region_x, region_y;
+
+ grid_from_region_handle(handle, &region_x, &region_y);
+ filename = gDirUtilp->getExpandedFilename(LL_PATH_CACHE, object_cache_dirname,
+ llformat(OBJECT_CACHE_FILENAME, region_x, region_y));
+
+ return ;
+}
+
+void LLVOCache::removeFromCache(U64 handle)
+{
+ if(mReadOnly)
+ {
+ return ;
+ }
+
+ std::string filename;
+ getObjectCacheFilename(handle, filename);
+ LLAPRFile::remove(filename, mLocalAPRFilePoolp);
+}
+
+BOOL LLVOCache::checkRead(LLAPRFile* apr_file, void* src, S32 n_bytes)
+{
+ if(!check_read(apr_file, src, n_bytes))
+ {
+ delete apr_file ;
+ removeCache() ;
+ return FALSE ;
+ }
+
+ return TRUE ;
+}
+
+BOOL LLVOCache::checkWrite(LLAPRFile* apr_file, void* src, S32 n_bytes)
+{
+ if(!check_write(apr_file, src, n_bytes))
+ {
+ delete apr_file ;
+ removeCache() ;
+ return FALSE ;
+ }
+
+ return TRUE ;
+}
+
+void LLVOCache::readCacheHeader()
+{
+ //clear stale info.
+ clearCacheInMemory();
+
+ if (LLAPRFile::isExist(mHeaderFileName, mLocalAPRFilePoolp))
+ {
+ LLAPRFile* apr_file = new LLAPRFile(mHeaderFileName, APR_READ|APR_BINARY, mLocalAPRFilePoolp);
+
+ //read the meta element
+ if(!checkRead(apr_file, &mMetaInfo, sizeof(HeaderMetaInfo)))
+ {
+ return ;
+ }
+
+ HeaderEntryInfo* entry ;
+ mNumEntries = 0 ;
+ while(mNumEntries < MAX_NUM_OBJECT_ENTRIES)
+ {
+ entry = new HeaderEntryInfo() ;
+ if(!checkRead(apr_file, entry, sizeof(HeaderEntryInfo)))
+ {
+ delete entry ;
+ return ;
+ }
+ else if(!entry->mTime) //end of the cache.
+ {
+ delete entry ;
+ return ;
+ }
+
+ entry->mIndex = mNumEntries++ ;
+ mHeaderEntryQueue.insert(entry) ;
+ mHandleEntryMap[entry->mHandle] = entry ;
+ }
+
+ delete apr_file ;
+ }
+ else
+ {
+ writeCacheHeader() ;
+ }
+}
+
+void LLVOCache::writeCacheHeader()
+{
+ if(mReadOnly)
+ {
+ return ;
+ }
+
+ LLAPRFile* apr_file = new LLAPRFile(mHeaderFileName, APR_CREATE|APR_WRITE|APR_BINARY, mLocalAPRFilePoolp);
+
+ //write the meta element
+ if(!checkWrite(apr_file, &mMetaInfo, sizeof(HeaderMetaInfo)))
+ {
+ return ;
+ }
+
+ mNumEntries = 0 ;
+ for(header_entry_queue_t::iterator iter = mHeaderEntryQueue.begin() ; iter != mHeaderEntryQueue.end(); ++iter)
+ {
+ (*iter)->mIndex = mNumEntries++ ;
+ if(!checkWrite(apr_file, (void*)*iter, sizeof(HeaderEntryInfo)))
+ {
+ return ;
+ }
+ }
+
+ mNumEntries = mHeaderEntryQueue.size() ;
+ if(mNumEntries < MAX_NUM_OBJECT_ENTRIES)
+ {
+ HeaderEntryInfo* entry = new HeaderEntryInfo() ;
+ for(S32 i = mNumEntries ; i < MAX_NUM_OBJECT_ENTRIES ; i++)
+ {
+ //fill the cache with the default entry.
+ if(!checkWrite(apr_file, entry, sizeof(HeaderEntryInfo)))
+ {
+ mReadOnly = TRUE ; //disable the cache.
+ return ;
+ }
+ }
+ delete entry ;
+ }
+ delete apr_file ;
+}
+
+BOOL LLVOCache::updateEntry(const HeaderEntryInfo* entry)
+{
+ LLAPRFile* apr_file = new LLAPRFile(mHeaderFileName, APR_WRITE|APR_BINARY, mLocalAPRFilePoolp);
+ apr_file->seek(APR_SET, entry->mIndex * sizeof(HeaderEntryInfo) + sizeof(HeaderMetaInfo)) ;
+
+ return checkWrite(apr_file, (void*)entry, sizeof(HeaderEntryInfo)) ;
+}
+
+void LLVOCache::readFromCache(U64 handle, const LLUUID& id, LLVOCacheEntry::vocache_entry_map_t& cache_entry_map)
+{
+ llassert_always(mInitialized);
+
+ handle_entry_map_t::iterator iter = mHandleEntryMap.find(handle) ;
+ if(iter == mHandleEntryMap.end()) //no cache
+ {
+ return ;
+ }
+
+ std::string filename;
+ getObjectCacheFilename(handle, filename);
+ LLAPRFile* apr_file = new LLAPRFile(filename, APR_READ|APR_BINARY, mLocalAPRFilePoolp);
+
+ LLUUID cache_id ;
+ if(!checkRead(apr_file, cache_id.mData, UUID_BYTES))
+ {
+ return ;
+ }
+ if(cache_id != id)
+ {
+ llinfos << "Cache ID doesn't match for this region, discarding"<< llendl;
+
+ delete apr_file ;
+ return ;
+ }
+
+ S32 num_entries;
+ if(!checkRead(apr_file, &num_entries, sizeof(S32)))
+ {
+ return ;
+ }
+
+ for (S32 i = 0; i < num_entries; i++)
+ {
+ LLVOCacheEntry* entry = new LLVOCacheEntry(apr_file);
+ if (!entry->getLocalID())
+ {
+ llwarns << "Aborting cache file load for " << filename << ", cache file corruption!" << llendl;
+ delete entry ;
+ break;
+ }
+ cache_entry_map[entry->getLocalID()] = entry;
+ }
+ num_entries = cache_entry_map.size() ;
+
+ delete apr_file ;
+ return ;
+}
+
+void LLVOCache::purgeEntries()
+{
+ U32 limit = mCacheSize - NUM_ENTRIES_TO_PURGE ;
+ while(mHeaderEntryQueue.size() > limit)
{
- llwarns << "Short write" << llendl;
+ header_entry_queue_t::iterator iter = mHeaderEntryQueue.begin() ;
+ HeaderEntryInfo* entry = *iter ;
+
+ removeFromCache(entry->mHandle) ;
+ mHandleEntryMap.erase(entry->mHandle) ;
+ mHeaderEntryQueue.erase(iter) ;
+ delete entry ;
}
+
+ writeCacheHeader() ;
+ readCacheHeader() ;
+ mNumEntries = mHandleEntryMap.size() ;
}
-void LLVOCacheEntry::writeToFile(LLFILE *fp) const
+void LLVOCache::writeToCache(U64 handle, const LLUUID& id, const LLVOCacheEntry::vocache_entry_map_t& cache_entry_map, BOOL dirty_cache)
{
- checkedWrite(fp, &mLocalID, sizeof(U32));
- checkedWrite(fp, &mCRC, sizeof(U32));
- checkedWrite(fp, &mHitCount, sizeof(S32));
- checkedWrite(fp, &mDupeCount, sizeof(S32));
- checkedWrite(fp, &mCRCChangeCount, sizeof(S32));
- S32 size = mDP.getBufferSize();
- checkedWrite(fp, &size, sizeof(S32));
- checkedWrite(fp, mBuffer, size);
+ llassert_always(mInitialized);
+
+ if(mReadOnly)
+ {
+ return ;
+ }
+
+ HeaderEntryInfo* entry;
+ handle_entry_map_t::iterator iter = mHandleEntryMap.find(handle) ;
+ if(iter == mHandleEntryMap.end()) //new entry
+ {
+ if(mNumEntries >= mCacheSize)
+ {
+ purgeEntries() ;
+ }
+
+ entry = new HeaderEntryInfo();
+ entry->mHandle = handle ;
+ entry->mTime = time(NULL) ;
+ entry->mIndex = mNumEntries++ ;
+ mHeaderEntryQueue.insert(entry) ;
+ mHandleEntryMap[handle] = entry ;
+ }
+ else
+ {
+ entry = iter->second ;
+ entry->mTime = time(NULL) ;
+
+ //resort
+ mHeaderEntryQueue.erase(entry) ;
+ mHeaderEntryQueue.insert(entry) ;
+ }
+
+ //update cache header
+ if(!updateEntry(entry))
+ {
+ return ; //update failed.
+ }
+
+ if(!dirty_cache)
+ {
+ return ; //nothing changed, no need to update.
+ }
+
+ //write to cache file
+ std::string filename;
+ getObjectCacheFilename(handle, filename);
+ LLAPRFile* apr_file = new LLAPRFile(filename, APR_CREATE|APR_WRITE|APR_BINARY, mLocalAPRFilePoolp);
+
+ if(!checkWrite(apr_file, (void*)id.mData, UUID_BYTES))
+ {
+ return ;
+ }
+
+ S32 num_entries = cache_entry_map.size() ;
+ if(!checkWrite(apr_file, &num_entries, sizeof(S32)))
+ {
+ return ;
+ }
+
+ for (LLVOCacheEntry::vocache_entry_map_t::const_iterator iter = cache_entry_map.begin(); iter != cache_entry_map.end(); ++iter)
+ {
+ if(!iter->second->writeToFile(apr_file))
+ {
+ //failed
+ delete apr_file ;
+ removeCache() ;
+ return ;
+ }
+ }
+
+ delete apr_file ;
+ return ;
}
+
diff --git a/indra/newview/llvocache.h b/indra/newview/llvocache.h
index 1970a1e72f..56b48ef705 100644
--- a/indra/newview/llvocache.h
+++ b/indra/newview/llvocache.h
@@ -2,31 +2,25 @@
* @file llvocache.h
* @brief Cache of objects on the viewer.
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -42,11 +36,11 @@
// Cache entries
class LLVOCacheEntry;
-class LLVOCacheEntry : public LLDLinked<LLVOCacheEntry>
+class LLVOCacheEntry
{
public:
LLVOCacheEntry(U32 local_id, U32 crc, LLDataPackerBinaryBuffer &dp);
- LLVOCacheEntry(LLFILE *fp);
+ LLVOCacheEntry(LLAPRFile* apr_file);
LLVOCacheEntry();
~LLVOCacheEntry();
@@ -56,12 +50,15 @@ public:
S32 getCRCChangeCount() const { return mCRCChangeCount; }
void dump() const;
- void writeToFile(LLFILE *fp) const;
+ BOOL writeToFile(LLAPRFile* apr_file) const;
void assignCRC(U32 crc, LLDataPackerBinaryBuffer &dp);
LLDataPackerBinaryBuffer *getDP(U32 crc);
void recordHit();
void recordDupe() { mDupeCount++; }
+public:
+ typedef std::map<U32, LLVOCacheEntry*> vocache_entry_map_t;
+
protected:
U32 mLocalID;
U32 mCRC;
@@ -72,4 +69,81 @@ protected:
U8 *mBuffer;
};
+//
+//Note: LLVOCache is not thread-safe
+//
+class LLVOCache
+{
+private:
+ struct HeaderEntryInfo
+ {
+ HeaderEntryInfo() : mIndex(0), mHandle(0), mTime(0) {}
+ S32 mIndex;
+ U64 mHandle ;
+ U32 mTime ;
+ };
+
+ struct HeaderMetaInfo
+ {
+ HeaderMetaInfo() : mVersion(0){}
+
+ U32 mVersion;
+ };
+
+ struct header_entry_less
+ {
+ bool operator()(const HeaderEntryInfo* lhs, const HeaderEntryInfo* rhs) const
+ {
+ return lhs->mTime < rhs->mTime; // older entry in front of queue (set)
+ }
+ };
+ typedef std::set<HeaderEntryInfo*, header_entry_less> header_entry_queue_t;
+ typedef std::map<U64, HeaderEntryInfo*> handle_entry_map_t;
+private:
+ LLVOCache() ;
+
+public:
+ ~LLVOCache() ;
+
+ void initCache(ELLPath location, U32 size, U32 cache_version) ;
+ void removeCache(ELLPath location) ;
+
+ void readFromCache(U64 handle, const LLUUID& id, LLVOCacheEntry::vocache_entry_map_t& cache_entry_map) ;
+ void writeToCache(U64 handle, const LLUUID& id, const LLVOCacheEntry::vocache_entry_map_t& cache_entry_map, BOOL dirty_cache) ;
+
+ void setReadOnly(BOOL read_only) {mReadOnly = read_only;}
+
+private:
+ void setDirNames(ELLPath location);
+ // determine the cache filename for the region from the region handle
+ void getObjectCacheFilename(U64 handle, std::string& filename);
+ void removeFromCache(U64 handle);
+ void readCacheHeader();
+ void writeCacheHeader();
+ void clearCacheInMemory();
+ void removeCache() ;
+ void purgeEntries();
+ BOOL updateEntry(const HeaderEntryInfo* entry);
+ BOOL checkRead(LLAPRFile* apr_file, void* src, S32 n_bytes) ;
+ BOOL checkWrite(LLAPRFile* apr_file, void* src, S32 n_bytes) ;
+
+private:
+ BOOL mInitialized ;
+ BOOL mReadOnly ;
+ HeaderMetaInfo mMetaInfo;
+ U32 mCacheSize;
+ U32 mNumEntries;
+ std::string mHeaderFileName ;
+ std::string mObjectCacheDirName;
+ LLVolatileAPRPool* mLocalAPRFilePoolp ;
+ header_entry_queue_t mHeaderEntryQueue;
+ handle_entry_map_t mHandleEntryMap;
+
+ static LLVOCache* sInstance ;
+public:
+ static LLVOCache* getInstance() ;
+ static BOOL hasInstance() ;
+ static void destroyClass() ;
+};
+
#endif
diff --git a/indra/newview/llvoclouds.cpp b/indra/newview/llvoclouds.cpp
index 5153cef709..78aa6e6ab8 100644
--- a/indra/newview/llvoclouds.cpp
+++ b/indra/newview/llvoclouds.cpp
@@ -2,31 +2,25 @@
* @file llvoclouds.cpp
* @brief Implementation of LLVOClouds class which is a derivation fo LLViewerObject
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llvoclouds.h b/indra/newview/llvoclouds.h
index c4a75f5b5e..430923a108 100644
--- a/indra/newview/llvoclouds.h
+++ b/indra/newview/llvoclouds.h
@@ -2,31 +2,25 @@
* @file llvoclouds.h
* @brief Description of LLVOClouds class
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llvograss.cpp b/indra/newview/llvograss.cpp
index a82afbeb76..f57f7b67ea 100644
--- a/indra/newview/llvograss.cpp
+++ b/indra/newview/llvograss.cpp
@@ -2,31 +2,25 @@
* @file llvograss.cpp
* @brief Not a blade, but a clump of grass
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -53,6 +47,7 @@
#include "llworld.h"
#include "lldir.h"
#include "llxmltree.h"
+#include "llvotree.h"
const S32 GRASS_MAX_BLADES = 32;
const F32 GRASS_BLADE_BASE = 0.25f; // Width of grass at base
@@ -294,6 +289,23 @@ BOOL LLVOGrass::idleUpdate(LLAgent &agent, LLWorld &world, const F64 &time)
return TRUE;
}
+ if(LLVOTree::isTreeRenderingStopped()) //stop rendering grass
+ {
+ if(mNumBlades)
+ {
+ mNumBlades = 0 ;
+ gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_ALL, TRUE);
+ }
+ return TRUE ;
+ }
+ else if(!mNumBlades)//restart grass rendering
+ {
+ mNumBlades = GRASS_MAX_BLADES ;
+ gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_ALL, TRUE);
+
+ return TRUE ;
+ }
+
if (mPatch && (mLastPatchUpdateTime != mPatch->getLastUpdateTime()))
{
gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_VOLUME, TRUE);
@@ -340,7 +352,20 @@ BOOL LLVOGrass::updateLOD()
{
return FALSE;
}
-
+ if(LLVOTree::isTreeRenderingStopped())
+ {
+ if(mNumBlades)
+ {
+ mNumBlades = 0 ;
+ gPipeline.markRebuild(mDrawable, LLDrawable::REBUILD_ALL, TRUE);
+ }
+ return TRUE ;
+ }
+ if(!mNumBlades)
+ {
+ mNumBlades = GRASS_MAX_BLADES;
+ }
+
LLFace* face = mDrawable->getFace(0);
F32 tan_angle = 0.f;
@@ -387,8 +412,24 @@ static LLFastTimer::DeclareTimer FTM_UPDATE_GRASS("Update Grass");
BOOL LLVOGrass::updateGeometry(LLDrawable *drawable)
{
LLFastTimer ftm(FTM_UPDATE_GRASS);
+
dirtySpatialGroup();
- plantBlades();
+
+ if(!mNumBlades)//stop rendering grass
+ {
+ if (mDrawable->getNumFaces() > 0)
+ {
+ LLFace* facep = mDrawable->getFace(0);
+ if(facep)
+ {
+ facep->setSize(0, 0);
+ }
+ }
+ }
+ else
+ {
+ plantBlades();
+ }
return TRUE;
}
@@ -429,6 +470,11 @@ void LLVOGrass::getGeometry(S32 idx,
LLStrider<LLColor4U>& colorsp,
LLStrider<U16>& indicesp)
{
+ if(!mNumBlades)//stop rendering grass
+ {
+ return ;
+ }
+
mPatch = mRegionp->getLand().resolvePatchRegion(getPositionRegion());
if (mPatch)
mLastPatchUpdateTime = mPatch->getLastUpdateTime();
diff --git a/indra/newview/llvograss.h b/indra/newview/llvograss.h
index 6a6fcc31c3..c262fdcc79 100644
--- a/indra/newview/llvograss.h
+++ b/indra/newview/llvograss.h
@@ -2,31 +2,25 @@
* @file llvograss.h
* @brief Description of LLVOGrass class
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llvoground.cpp b/indra/newview/llvoground.cpp
index 221c6b61ec..f032ae8780 100644
--- a/indra/newview/llvoground.cpp
+++ b/indra/newview/llvoground.cpp
@@ -2,31 +2,25 @@
* @file llvoground.cpp
* @brief LLVOGround class implementation
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llvoground.h b/indra/newview/llvoground.h
index 0ccb0834a2..73b097327e 100644
--- a/indra/newview/llvoground.h
+++ b/indra/newview/llvoground.h
@@ -2,31 +2,25 @@
* @file llvoground.h
* @brief LLVOGround class header file
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llvoicechannel.cpp b/indra/newview/llvoicechannel.cpp
index 070663e22f..9e3d61ae44 100644
--- a/indra/newview/llvoicechannel.cpp
+++ b/indra/newview/llvoicechannel.cpp
@@ -2,31 +2,25 @@
* @file llvoicechannel.cpp
* @brief Voice Channel related classes
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llvoicechannel.h b/indra/newview/llvoicechannel.h
index 074f9b8bba..c8d338b0a3 100644
--- a/indra/newview/llvoicechannel.h
+++ b/indra/newview/llvoicechannel.h
@@ -2,31 +2,25 @@
* @file llvoicechannel.h
* @brief Voice channel related classes
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llvoiceclient.cpp b/indra/newview/llvoiceclient.cpp
index e8635d7f1a..6c44f639ec 100644
--- a/indra/newview/llvoiceclient.cpp
+++ b/indra/newview/llvoiceclient.cpp
@@ -2,30 +2,25 @@
* @file llvoiceclient.cpp
* @brief Voice client delegation class implementation.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llvoiceclient.h b/indra/newview/llvoiceclient.h
index 0e3d9a5435..24d7d7163e 100644
--- a/indra/newview/llvoiceclient.h
+++ b/indra/newview/llvoiceclient.h
@@ -2,30 +2,25 @@
* @file llvoiceclient.h
* @brief Declaration of LLVoiceClient class which is the interface to the voice client process.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
#ifndef LL_VOICE_CLIENT_H
diff --git a/indra/newview/llvoicevisualizer.cpp b/indra/newview/llvoicevisualizer.cpp
index 4794cab32e..47060720e7 100644
--- a/indra/newview/llvoicevisualizer.cpp
+++ b/indra/newview/llvoicevisualizer.cpp
@@ -2,31 +2,25 @@
* @file llvoicevisualizer.cpp
* @brief Draws in-world speaking indicators.
*
- * $LicenseInfo:firstyear=2000&license=viewergpl$
- *
- * Copyright (c) 2000-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2000&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llvoicevisualizer.h b/indra/newview/llvoicevisualizer.h
index 1887849300..e434c7f3f1 100644
--- a/indra/newview/llvoicevisualizer.h
+++ b/indra/newview/llvoicevisualizer.h
@@ -2,31 +2,25 @@
* @file llvoicevisualizer.h
* @brief Draws in-world speaking indicators.
*
- * $LicenseInfo:firstyear=2000&license=viewergpl$
- *
- * Copyright (c) 2000-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2000&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llvoicevivox.cpp b/indra/newview/llvoicevivox.cpp
index 4dc9edb247..e674fec053 100644
--- a/indra/newview/llvoicevivox.cpp
+++ b/indra/newview/llvoicevivox.cpp
@@ -2,31 +2,25 @@
* @file LLVivoxVoiceClient.cpp
* @brief Implementation of LLVivoxVoiceClient class which is the interface to the voice client process.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2010, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -392,7 +386,7 @@ LLVivoxVoiceClient::~LLVivoxVoiceClient()
{
}
-//----------------------------------------------
+//---------------------------------------------------
void LLVivoxVoiceClient::init(LLPumpIO *pump)
{
@@ -406,7 +400,8 @@ void LLVivoxVoiceClient::terminate()
{
logout();
connectorShutdown();
- closeSocket(); // Need to do this now -- bad things happen if the destructor does it later.
+ closeSocket(); // Need to do this now -- bad things happen if the destructor does it later.
+ cleanUp();
}
else
{
@@ -414,6 +409,18 @@ void LLVivoxVoiceClient::terminate()
}
}
+//---------------------------------------------------
+
+void LLVivoxVoiceClient::cleanUp()
+{
+ deleteAllSessions();
+ deleteAllBuddies();
+ deleteAllVoiceFonts();
+ deleteVoiceFontTemplates();
+}
+
+//---------------------------------------------------
+
const LLVoiceVersionInfo& LLVivoxVoiceClient::getVersion()
{
return mVoiceVersion;
@@ -782,14 +789,10 @@ void LLVivoxVoiceClient::stateMachine()
{
//MARK: stateDisableCleanup
case stateDisableCleanup:
- // Clean up and reset everything.
+ // Clean up and reset everything.
closeSocket();
- deleteAllSessions();
- deleteAllBuddies();
- deleteAllVoiceFonts();
- deleteVoiceFontTemplates();
+ cleanUp();
- mConnectorHandle.clear();
mAccountHandle.clear();
mAccountPassword.clear();
mVoiceAccountServerURI.clear();
@@ -1681,12 +1684,9 @@ void LLVivoxVoiceClient::stateMachine()
//MARK: stateLoggedOut
case stateLoggedOut: // logout response received
- // Once we're logged out, all these things are invalid.
+ // Once we're logged out, these things are invalid.
mAccountHandle.clear();
- deleteAllSessions();
- deleteAllBuddies();
- deleteAllVoiceFonts();
- deleteVoiceFontTemplates();
+ cleanUp();
if(mVoiceEnabled && !mRelogRequested)
{
@@ -1784,6 +1784,8 @@ void LLVivoxVoiceClient::closeSocket(void)
{
mSocket.reset();
mConnected = false;
+ mConnectorHandle.clear();
+ mAccountHandle.clear();
}
void LLVivoxVoiceClient::loginSendMessage()
@@ -2376,8 +2378,7 @@ void LLVivoxVoiceClient::giveUp()
{
// All has failed. Clean up and stop trying.
closeSocket();
- deleteAllSessions();
- deleteAllBuddies();
+ cleanUp();
setState(stateJail);
}
@@ -7117,6 +7118,13 @@ void LLVivoxProtocolParser::reset()
alias.clear();
numberOfAliases = 0;
applicationString.clear();
+ id = 0;
+ nameString.clear();
+ descriptionString.clear();
+ expirationDate = LLDate();
+ hasExpired = false;
+ fontType = 0;
+ fontStatus = 0;
}
//virtual
diff --git a/indra/newview/llvoicevivox.h b/indra/newview/llvoicevivox.h
index f858f8f74e..08f2f75a39 100644
--- a/indra/newview/llvoicevivox.h
+++ b/indra/newview/llvoicevivox.h
@@ -2,31 +2,25 @@
* @file llvoicevivox.h
* @brief Declaration of LLDiamondwareVoiceClient class which is the interface to the voice client process.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2010, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
#ifndef LL_VOICE_VIVOX_H
@@ -674,7 +668,10 @@ protected:
private:
LLVoiceVersionInfo mVoiceVersion;
-
+
+ /// Clean up objects created during a voice session.
+ void cleanUp();
+
state mState;
bool mSessionTerminateRequested;
bool mRelogRequested;
diff --git a/indra/newview/llvoinventorylistener.cpp b/indra/newview/llvoinventorylistener.cpp
index 5e9b88042f..1ea90c6a98 100644
--- a/indra/newview/llvoinventorylistener.cpp
+++ b/indra/newview/llvoinventorylistener.cpp
@@ -2,31 +2,25 @@
* @file llvoinventorylistener.cpp
* @brief Interface for classes that wish to receive updates about viewer object inventory
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llvoinventorylistener.h b/indra/newview/llvoinventorylistener.h
index 1531e6e339..bf14d19b01 100644
--- a/indra/newview/llvoinventorylistener.h
+++ b/indra/newview/llvoinventorylistener.h
@@ -2,31 +2,25 @@
* @file llvoinventorylistener.h
* @brief Interface for classes that wish to receive updates about viewer object inventory
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llvopartgroup.cpp b/indra/newview/llvopartgroup.cpp
index 3ba4ecad0c..40833ad259 100644
--- a/indra/newview/llvopartgroup.cpp
+++ b/indra/newview/llvopartgroup.cpp
@@ -2,31 +2,25 @@
* @file llvopartgroup.cpp
* @brief Group of particle systems
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llvopartgroup.h b/indra/newview/llvopartgroup.h
index 18583b4be9..b136f2cbfa 100644
--- a/indra/newview/llvopartgroup.h
+++ b/indra/newview/llvopartgroup.h
@@ -2,31 +2,25 @@
* @file llvopartgroup.h
* @brief Group of particle systems
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llvosky.cpp b/indra/newview/llvosky.cpp
index d73850cb49..7ae8c2c07d 100644
--- a/indra/newview/llvosky.cpp
+++ b/indra/newview/llvosky.cpp
@@ -2,31 +2,25 @@
* @file llvosky.cpp
* @brief LLVOSky class implementation
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -975,7 +969,10 @@ void LLVOSky::calcAtmospherics(void)
}
temp2.mV[1] = llmax(0.f, lighty);
- temp2.mV[1] = 1.f / temp2.mV[1];
+ if(temp2.mV[1] > 0.f)
+ {
+ temp2.mV[1] = 1.f / temp2.mV[1];
+ }
componentMultBy(sunlight, componentExp((light_atten * -1.f) * temp2.mV[1]));
// Distance
diff --git a/indra/newview/llvosky.h b/indra/newview/llvosky.h
index 8366909755..6b3e7873a1 100644
--- a/indra/newview/llvosky.h
+++ b/indra/newview/llvosky.h
@@ -2,31 +2,25 @@
* @file llvosky.h
* @brief LLVOSky class header file
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -145,10 +139,10 @@ protected:
~LLSkyTex();
- static S32 getResolution() { return sResolution; }
+ static S32 getResolution() { return sResolution; }
static S32 getCurrent() { return sCurrent; }
- static S32 stepCurrent() { return (sCurrent = (sCurrent + 1) % 2); }
- static S32 getNext() { return ((sCurrent+1) % 2); }
+ static S32 stepCurrent() { sCurrent++; sCurrent &= 1; return sCurrent; }
+ static S32 getNext() { return ((sCurrent+1) & 1); }
static S32 getWhich(const BOOL curr) { return curr ? sCurrent : getNext(); }
void initEmpty(const S32 tex);
diff --git a/indra/newview/llvosurfacepatch.cpp b/indra/newview/llvosurfacepatch.cpp
index ef7b161003..eba600b50a 100644
--- a/indra/newview/llvosurfacepatch.cpp
+++ b/indra/newview/llvosurfacepatch.cpp
@@ -2,31 +2,25 @@
* @file llvosurfacepatch.cpp
* @brief Viewer-object derived "surface patch", which is a piece of terrain
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llvosurfacepatch.h b/indra/newview/llvosurfacepatch.h
index 10a5888526..bd80e1dbe6 100644
--- a/indra/newview/llvosurfacepatch.h
+++ b/indra/newview/llvosurfacepatch.h
@@ -2,31 +2,25 @@
* @file llvosurfacepatch.h
* @brief Description of LLVOSurfacePatch class
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llvotextbubble.cpp b/indra/newview/llvotextbubble.cpp
index 428ef20006..b61dae53ba 100644
--- a/indra/newview/llvotextbubble.cpp
+++ b/indra/newview/llvotextbubble.cpp
@@ -2,31 +2,25 @@
* @file llvotextbubble.cpp
* @brief Viewer-object text bubble.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llvotextbubble.h b/indra/newview/llvotextbubble.h
index 7f84dbf631..9c39929711 100644
--- a/indra/newview/llvotextbubble.h
+++ b/indra/newview/llvotextbubble.h
@@ -2,31 +2,25 @@
* @file llvotextbubble.h
* @brief Description of LLVORock class, which a derivation of LLViewerObject
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llvotree.cpp b/indra/newview/llvotree.cpp
index eb5b6c6618..37a974be28 100644
--- a/indra/newview/llvotree.cpp
+++ b/indra/newview/llvotree.cpp
@@ -2,31 +2,25 @@
* @file llvotree.cpp
* @brief LLVOTree class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -73,7 +67,7 @@ S32 LLVOTree::sLODVertexCount[sMAX_NUM_TREE_LOD_LEVELS];
S32 LLVOTree::sLODIndexOffset[sMAX_NUM_TREE_LOD_LEVELS];
S32 LLVOTree::sLODIndexCount[sMAX_NUM_TREE_LOD_LEVELS];
S32 LLVOTree::sLODSlices[sMAX_NUM_TREE_LOD_LEVELS] = {10, 5, 4, 3};
-F32 LLVOTree::sLODAngles[sMAX_NUM_TREE_LOD_LEVELS] = {30.f, 20.f, 15.f, 0.00001f};
+F32 LLVOTree::sLODAngles[sMAX_NUM_TREE_LOD_LEVELS] = {30.f, 20.f, 15.f, F_ALMOST_ZERO};
F32 LLVOTree::sTreeFactor = 1.f;
@@ -101,6 +95,12 @@ LLVOTree::~LLVOTree()
}
}
+//static
+bool LLVOTree::isTreeRenderingStopped()
+{
+ return LLVOTree::sTreeFactor < LLVOTree::sLODAngles[sMAX_NUM_TREE_LOD_LEVELS - 1] ;
+}
+
// static
void LLVOTree::initClass()
{
@@ -313,7 +313,10 @@ 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->setMaxVirtualSizeResetInterval(MAX_TREE_TEXTURE_VIRTURE_SIZE_RESET_INTERVAL); //allow to wait for at most 16 frames to reset virtual size.
+
mBranchLength = sSpeciesTable[mSpecies]->mBranchLength;
mTrunkLength = sSpeciesTable[mSpecies]->mTrunkLength;
mLeafScale = sSpeciesTable[mSpecies]->mLeafScale;
@@ -439,22 +442,35 @@ void LLVOTree::render(LLAgent &agent)
void LLVOTree::setPixelAreaAndAngle(LLAgent &agent)
{
- // First calculate values as for any other object (for mAppAngle)
- LLViewerObject::setPixelAreaAndAngle(agent);
-
- // Re-calculate mPixelArea accurately
+ LLVector3 center = getPositionAgent();//center of tree.
+ LLVector3 viewer_pos_agent = gAgentCamera.getCameraPositionAgent();
+ LLVector3 lookAt = center - viewer_pos_agent;
+ F32 dist = lookAt.normVec() ;
+ F32 cos_angle_to_view_dir = lookAt * LLViewerCamera::getInstance()->getXAxis() ;
- // This should be the camera's center, as soon as we move to all region-local.
- LLVector3 relative_position = getPositionAgent() - gAgentCamera.getCameraPositionAgent();
- F32 range_squared = relative_position.lengthSquared() ;
+ F32 range = dist - getMinScale()/2;
+ if (range < F_ALMOST_ZERO || isHUDAttachment()) // range == zero
+ {
+ mAppAngle = 180.f;
+ }
+ else
+ {
+ mAppAngle = (F32) atan2( getMaxScale(), range) * RAD_TO_DEG;
+ }
F32 max_scale = mBillboardScale * getMaxScale();
F32 area = max_scale * (max_scale*mBillboardRatio);
-
// Compute pixels per meter at the given range
- F32 pixels_per_meter = LLViewerCamera::getInstance()->getViewHeightInPixels() / tan(LLViewerCamera::getInstance()->getView());
+ F32 pixels_per_meter = LLViewerCamera::getInstance()->getViewHeightInPixels() / (tan(LLViewerCamera::getInstance()->getView()) * dist);
+ mPixelArea = pixels_per_meter * pixels_per_meter * area ;
+
+ F32 importance = LLFace::calcImportanceToCamera(cos_angle_to_view_dir, dist) ;
+ mPixelArea = LLFace::adjustPixelArea(importance, mPixelArea) ;
+ if (mPixelArea > LLViewerCamera::getInstance()->getScreenPixelArea())
+ {
+ mAppAngle = 180.f;
+ }
- mPixelArea = (pixels_per_meter) * (pixels_per_meter) * area / range_squared;
#if 0
// mAppAngle is a bit of voodoo;
// use the one calculated LLViewerObject::setPixelAreaAndAngle above
diff --git a/indra/newview/llvotree.h b/indra/newview/llvotree.h
index 036ad692b1..fd0ebdf8e2 100644
--- a/indra/newview/llvotree.h
+++ b/indra/newview/llvotree.h
@@ -2,31 +2,25 @@
* @file llvotree.h
* @brief LLVOTree class header file
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -59,6 +53,7 @@ public:
// Initialize data that's only inited once per class.
static void initClass();
static void cleanupClass();
+ static bool isTreeRenderingStopped();
/*virtual*/ U32 processUpdateMessage(LLMessageSystem *mesgsys,
void **user_data,
diff --git a/indra/newview/llvotreenew.h b/indra/newview/llvotreenew.h
index 426470101d..0bb07008ca 100644
--- a/indra/newview/llvotreenew.h
+++ b/indra/newview/llvotreenew.h
@@ -2,31 +2,25 @@
* @file llvotreenew.h
* @brief LLVOTreeNew class header file
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llvovolume.cpp b/indra/newview/llvovolume.cpp
index 24e2f745d4..761e12020b 100644
--- a/indra/newview/llvovolume.cpp
+++ b/indra/newview/llvovolume.cpp
@@ -2,31 +2,25 @@
* @file llvovolume.cpp
* @brief LLVOVolume class implementation
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -93,8 +87,14 @@ static LLFastTimer::DeclareTimer FTM_GEN_VOLUME("Generate Volumes");
class LLMediaDataClientObjectImpl : public LLMediaDataClientObject
{
public:
- LLMediaDataClientObjectImpl(LLVOVolume *obj, bool isNew) : mObject(obj), mNew(isNew) {}
- LLMediaDataClientObjectImpl() { mObject = NULL; }
+ LLMediaDataClientObjectImpl(LLVOVolume *obj, bool isNew) : mObject(obj), mNew(isNew)
+ {
+ mObject->addMDCImpl();
+ }
+ ~LLMediaDataClientObjectImpl()
+ {
+ mObject->removeMDCImpl();
+ }
virtual U8 getMediaDataCount() const
{ return mObject->getNumTEs(); }
@@ -119,6 +119,18 @@ public:
}
return result;
}
+ virtual bool isCurrentMediaUrl(U8 index, const std::string &url) const
+ {
+ LLTextureEntry *te = mObject->getTE(index);
+ if (te)
+ {
+ if (te->getMediaData())
+ {
+ return (te->getMediaData()->getCurrentURL() == url);
+ }
+ }
+ return url.empty();
+ }
virtual LLUUID getID() const
{ return mObject->getID(); }
@@ -193,6 +205,7 @@ LLVOVolume::LLVOVolume(const LLUUID &id, const LLPCode pcode, LLViewerRegion *re
mMediaImplList.resize(getNumTEs());
mLastFetchedMediaVersion = -1;
mIndexInTex = 0;
+ mMDCImplCount = 0;
}
LLVOVolume::~LLVOVolume()
@@ -218,9 +231,12 @@ void LLVOVolume::markDead()
{
if (!mDead)
{
- LLMediaDataClientObject::ptr_t obj = new LLMediaDataClientObjectImpl(const_cast<LLVOVolume*>(this), false);
- if (sObjectMediaClient) sObjectMediaClient->removeFromQueue(obj);
- if (sObjectMediaNavigateClient) sObjectMediaNavigateClient->removeFromQueue(obj);
+ if(getMDCImplCount() > 0)
+ {
+ LLMediaDataClientObject::ptr_t obj = new LLMediaDataClientObjectImpl(const_cast<LLVOVolume*>(this), false);
+ if (sObjectMediaClient) sObjectMediaClient->removeFromQueue(obj);
+ if (sObjectMediaNavigateClient) sObjectMediaNavigateClient->removeFromQueue(obj);
+ }
// Detach all media impls from this object
for(U32 i = 0 ; i < mMediaImplList.size() ; i++)
@@ -2025,12 +2041,12 @@ void LLVOVolume::mediaNavigated(LLViewerMediaImpl *impl, LLPluginClassMedia* plu
}
else
{
- llwarns << "Couldn't find media entry!" << llendl;
+ LL_WARNS("MediaOnAPrim") << "Couldn't find media entry!" << LL_ENDL;
}
if(block_navigation)
{
- llinfos << "blocking navigate to URI " << new_location << llendl;
+ LL_INFOS("MediaOnAPrim") << "blocking navigate to URI " << new_location << LL_ENDL;
// "bounce back" to the current URL from the media entry
mediaNavigateBounceBack(face_index);
@@ -2038,7 +2054,7 @@ void LLVOVolume::mediaNavigated(LLViewerMediaImpl *impl, LLPluginClassMedia* plu
else if (sObjectMediaNavigateClient)
{
- llinfos << "broadcasting navigate with URI " << new_location << llendl;
+ LL_DEBUGS("MediaOnAPrim") << "broadcasting navigate with URI " << new_location << LL_ENDL;
sObjectMediaNavigateClient->navigate(new LLMediaDataClientObjectImpl(this, false), face_index, new_location);
}
@@ -2060,14 +2076,19 @@ void LLVOVolume::mediaEvent(LLViewerMediaImpl *impl, LLPluginClassMedia* plugin,
}
break;
+ case LLViewerMediaImpl::MEDIANAVSTATE_FIRST_LOCATION_CHANGED_SPURIOUS:
+ // This navigate didn't change the current URL.
+ LL_DEBUGS("MediaOnAPrim") << " NOT broadcasting navigate (spurious)" << LL_ENDL;
+ break;
+
case LLViewerMediaImpl::MEDIANAVSTATE_SERVER_FIRST_LOCATION_CHANGED:
// This is the first location changed event after the start of a server-directed nav. Don't broadcast it.
- llinfos << " NOT broadcasting navigate (server-directed)" << llendl;
+ LL_INFOS("MediaOnAPrim") << " NOT broadcasting navigate (server-directed)" << LL_ENDL;
break;
default:
// This is a subsequent location-changed due to a redirect. Don't broadcast.
- llinfos << " NOT broadcasting navigate (redirect)" << llendl;
+ LL_INFOS("MediaOnAPrim") << " NOT broadcasting navigate (redirect)" << LL_ENDL;
break;
}
}
@@ -2084,9 +2105,14 @@ void LLVOVolume::mediaEvent(LLViewerMediaImpl *impl, LLPluginClassMedia* plugin,
}
break;
+ case LLViewerMediaImpl::MEDIANAVSTATE_COMPLETE_BEFORE_LOCATION_CHANGED_SPURIOUS:
+ // This navigate didn't change the current URL.
+ LL_DEBUGS("MediaOnAPrim") << " NOT broadcasting navigate (spurious)" << LL_ENDL;
+ break;
+
case LLViewerMediaImpl::MEDIANAVSTATE_SERVER_COMPLETE_BEFORE_LOCATION_CHANGED:
// This is the the navigate complete event from a server-directed nav. Don't broadcast it.
- llinfos << " NOT broadcasting navigate (server-directed)" << llendl;
+ LL_INFOS("MediaOnAPrim") << " NOT broadcasting navigate (server-directed)" << LL_ENDL;
break;
default:
@@ -2460,6 +2486,17 @@ void LLVOVolume::updateSpotLightPriority()
}
+bool LLVOVolume::isLightSpotlight() const
+{
+ LLLightImageParams* params = (LLLightImageParams*) getParameterEntry(LLNetworkData::PARAMS_LIGHT_IMAGE);
+ if (params)
+ {
+ return params->isLightSpotlight();
+ }
+ return false;
+}
+
+
LLViewerTexture* LLVOVolume::getLightTexture()
{
LLUUID id = getLightTextureID();
@@ -2919,9 +2956,7 @@ F32 LLVOVolume::getBinRadius()
{
LLFace* face = mDrawable->getFace(i);
if (face->getPoolType() == LLDrawPool::POOL_ALPHA &&
- (!LLPipeline::sFastAlpha ||
- face->getFaceColor().mV[3] != 1.f ||
- !face->getTexture()->getIsAlphaMask()))
+ !face->canRenderAsMask())
{
alpha_wrap = TRUE;
break;
@@ -3197,11 +3232,10 @@ void LLVolumeGeometryManager::registerFace(LLSpatialGroup* group, LLFace* facep,
S32 idx = draw_vec.size()-1;
-
BOOL fullbright = (type == LLRenderPass::PASS_FULLBRIGHT) ||
- (type == LLRenderPass::PASS_INVISIBLE) ||
- (type == LLRenderPass::PASS_ALPHA ? facep->isState(LLFace::FULLBRIGHT) : FALSE);
-
+ (type == LLRenderPass::PASS_INVISIBLE) ||
+ (type == LLRenderPass::PASS_ALPHA && facep->isState(LLFace::FULLBRIGHT));
+
if (!fullbright && type != LLRenderPass::PASS_GLOW && !facep->mVertexBuffer->hasDataType(LLVertexBuffer::TYPE_NORMAL))
{
llwarns << "Non fullbright face has no normals!" << llendl;
@@ -3226,16 +3260,12 @@ void LLVolumeGeometryManager::registerFace(LLSpatialGroup* group, LLFace* facep,
model_mat = &(drawable->getRegion()->mRenderMatrix);
}
- U8 bump = (type == LLRenderPass::PASS_BUMP ? facep->getTextureEntry()->getBumpmap() : 0);
+
+ U8 bump = (type == LLRenderPass::PASS_BUMP || type == LLRenderPass::PASS_POST_BUMP) ? facep->getTextureEntry()->getBumpmap() : 0;
LLViewerTexture* tex = facep->getTexture();
- U8 glow = 0;
-
- if (type == LLRenderPass::PASS_GLOW)
- {
- glow = (U8) (facep->getTextureEntry()->getGlow() * 255);
- }
+ U8 glow = (U8) (facep->getTextureEntry()->getGlow() * 255);
if (facep->mVertexBuffer.isNull())
{
@@ -3300,6 +3330,7 @@ void LLVolumeGeometryManager::getGeometry(LLSpatialGroup* group)
static LLFastTimer::DeclareTimer FTM_REBUILD_VOLUME_VB("Volume");
static LLFastTimer::DeclareTimer FTM_REBUILD_VBO("VBO Rebuilt");
+
void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)
{
if (group->changeLOD())
@@ -3425,10 +3456,7 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)
if (type == LLDrawPool::POOL_ALPHA)
{
- if (LLPipeline::sFastAlpha &&
- (te->getColor().mV[VW] == 1.0f) &&
- (!te->getFullbright()) && // hack: alpha masking renders fullbright faces invisible, need to figure out why - for now, avoid
- facep->getTexture()->getIsAlphaMask())
+ if (facep->canRenderAsMask())
{ //can be treated as alpha mask
simple_faces.push_back(facep);
}
@@ -3530,6 +3558,8 @@ void LLVolumeGeometryManager::rebuildGeom(LLSpatialGroup* group)
}
static LLFastTimer::DeclareTimer FTM_VOLUME_GEOM("Volume Geometry");
+static LLFastTimer::DeclareTimer FTM_VOLUME_GEOM_PARTIAL("Terse Rebuild");
+
void LLVolumeGeometryManager::rebuildMesh(LLSpatialGroup* group)
{
llassert(group);
@@ -3542,6 +3572,7 @@ void LLVolumeGeometryManager::rebuildMesh(LLSpatialGroup* group)
for (LLSpatialGroup::element_iter drawable_iter = group->getData().begin(); drawable_iter != group->getData().end(); ++drawable_iter)
{
+ LLFastTimer t(FTM_VOLUME_GEOM_PARTIAL);
LLDrawable* drawablep = *drawable_iter;
if (drawablep->isDead() || drawablep->isState(LLDrawable::FORCE_INVISIBLE) )
@@ -3769,15 +3800,12 @@ void LLVolumeGeometryManager::genDrawInfo(LLSpatialGroup* group, U32 mask, std::
const LLTextureEntry* te = facep->getTextureEntry();
- BOOL is_alpha = facep->getPoolType() == LLDrawPool::POOL_ALPHA ? TRUE : FALSE;
+ BOOL is_alpha = (facep->getPoolType() == LLDrawPool::POOL_ALPHA) ? TRUE : FALSE;
if (is_alpha)
{
// can we safely treat this as an alpha mask?
- if (LLPipeline::sFastAlpha &&
- (te->getColor().mV[VW] == 1.0f) &&
- (!te->getFullbright()) && // hack: alpha masking renders fullbright faces invisible, need to figure out why - for now, avoid
- facep->getTexture()->getIsAlphaMask())
+ if (facep->canRenderAsMask())
{
if (te->getFullbright())
{
@@ -3802,66 +3830,76 @@ void LLVolumeGeometryManager::genDrawInfo(LLSpatialGroup* group, U32 mask, std::
&& group->mSpatialPartition->mPartitionType != LLViewerRegion::PARTITION_HUD
&& LLPipeline::sRenderBump
&& te->getShiny())
- {
+ { //shiny
if (tex->getPrimaryFormat() == GL_ALPHA)
- {
+ { //invisiprim+shiny
registerFace(group, facep, LLRenderPass::PASS_INVISI_SHINY);
registerFace(group, facep, LLRenderPass::PASS_INVISIBLE);
}
else if (LLPipeline::sRenderDeferred)
- {
- if (te->getBumpmap())
- {
- registerFace(group, facep, LLRenderPass::PASS_BUMP);
- }
- else if (te->getFullbright())
- {
+ { //deferred rendering
+ if (te->getFullbright())
+ { //register in post deferred fullbright shiny pass
registerFace(group, facep, LLRenderPass::PASS_FULLBRIGHT_SHINY);
+ if (te->getBumpmap())
+ { //register in post deferred bump pass
+ registerFace(group, facep, LLRenderPass::PASS_POST_BUMP);
+ }
+ }
+ else if (te->getBumpmap())
+ { //register in deferred bump pass
+ registerFace(group, facep, LLRenderPass::PASS_BUMP);
}
else
- {
+ { //register in deferred simple pass (deferred simple includes shiny)
llassert(mask & LLVertexBuffer::MAP_NORMAL);
registerFace(group, facep, LLRenderPass::PASS_SIMPLE);
}
}
else if (fullbright)
- {
+ { //not deferred, register in standard fullbright shiny pass
registerFace(group, facep, LLRenderPass::PASS_FULLBRIGHT_SHINY);
}
else
- {
+ { //not deferred or fullbright, register in standard shiny pass
registerFace(group, facep, LLRenderPass::PASS_SHINY);
}
}
else
- {
+ { //not alpha and not shiny
if (!is_alpha && tex->getPrimaryFormat() == GL_ALPHA)
- {
+ { //invisiprim
registerFace(group, facep, LLRenderPass::PASS_INVISIBLE);
}
else if (fullbright)
- {
+ { //fullbright
registerFace(group, facep, LLRenderPass::PASS_FULLBRIGHT);
+ if (LLPipeline::sRenderDeferred && LLPipeline::sRenderBump && te->getBumpmap())
+ { //if this is the deferred render and a bump map is present, register in post deferred bump
+ registerFace(group, facep, LLRenderPass::PASS_POST_BUMP);
+ }
}
else
{
- if (LLPipeline::sRenderDeferred && te->getBumpmap())
- {
+ if (LLPipeline::sRenderDeferred && LLPipeline::sRenderBump && te->getBumpmap())
+ { //non-shiny or fullbright deferred bump
registerFace(group, facep, LLRenderPass::PASS_BUMP);
}
else
- {
+ { //all around simple
llassert(mask & LLVertexBuffer::MAP_NORMAL);
registerFace(group, facep, LLRenderPass::PASS_SIMPLE);
}
}
+ //not sure why this is here -- shiny HUD attachments maybe? -- davep 5/11/2010
if (!is_alpha && te->getShiny() && LLPipeline::sRenderBump)
{
registerFace(group, facep, LLRenderPass::PASS_SHINY);
}
}
+ //not sure why this is here, and looks like it might cause bump mapped objects to get rendered redundantly -- davep 5/11/2010
if (!is_alpha && !LLPipeline::sRenderDeferred)
{
llassert((mask & LLVertexBuffer::MAP_NORMAL) || fullbright);
@@ -3873,7 +3911,7 @@ void LLVolumeGeometryManager::genDrawInfo(LLSpatialGroup* group, U32 mask, std::
}
}
- if (LLPipeline::sRenderGlow && te->getGlow() > 0.f)
+ if (!is_alpha && LLPipeline::sRenderGlow && te->getGlow() > 0.f)
{
registerFace(group, facep, LLRenderPass::PASS_GLOW);
}
diff --git a/indra/newview/llvovolume.h b/indra/newview/llvovolume.h
index a8bb597f93..1e9b9737b1 100644
--- a/indra/newview/llvovolume.h
+++ b/indra/newview/llvovolume.h
@@ -2,31 +2,25 @@
* @file llvovolume.h
* @brief LLVOVolume class header file
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -215,6 +209,7 @@ public:
LLColor3 getLightBaseColor() const; // not scaled by intensity
LLColor3 getLightColor() const; // scaled by intensity
LLUUID getLightTextureID() const;
+ bool isLightSpotlight() const;
LLVector3 getSpotLightParams() const;
void updateSpotLightPriority();
F32 getSpotLightPriority() const;
@@ -273,6 +268,10 @@ public:
// Returns the "last fetched" media version, or -1 if not fetched yet
S32 getLastFetchedMediaVersion() const { return mLastFetchedMediaVersion; }
+
+ void addMDCImpl() { ++mMDCImplCount; }
+ void removeMDCImpl() { --mMDCImplCount; }
+ S32 getMDCImplCount() { return mMDCImplCount; }
protected:
S32 computeLODDetail(F32 distance, F32 radius);
@@ -306,6 +305,7 @@ private:
media_list_t mMediaImplList;
S32 mLastFetchedMediaVersion; // as fetched from the server, starts as -1
S32 mIndexInTex;
+ S32 mMDCImplCount;
// statics
public:
static F32 sLODSlopDistanceFactor;// Changing this to zero, effectively disables the LOD transition slop
diff --git a/indra/newview/llvowater.cpp b/indra/newview/llvowater.cpp
index a8c4625f6e..598938b710 100644
--- a/indra/newview/llvowater.cpp
+++ b/indra/newview/llvowater.cpp
@@ -2,31 +2,25 @@
* @file llvowater.cpp
* @brief LLVOWater class implementation
*
- * $LicenseInfo:firstyear=2005&license=viewergpl$
- *
- * Copyright (c) 2005-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llvowater.h b/indra/newview/llvowater.h
index 3cc031e589..beefc3f17f 100644
--- a/indra/newview/llvowater.h
+++ b/indra/newview/llvowater.h
@@ -2,31 +2,25 @@
* @file llvowater.h
* @brief Description of LLVOWater class
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llvowlsky.cpp b/indra/newview/llvowlsky.cpp
index 1749ccef94..ca57c0144b 100644
--- a/indra/newview/llvowlsky.cpp
+++ b/indra/newview/llvowlsky.cpp
@@ -2,31 +2,25 @@
* @file llvowlsky.cpp
* @brief LLVOWLSky class implementation
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llvowlsky.h b/indra/newview/llvowlsky.h
index 82abe79cb6..825e13a203 100644
--- a/indra/newview/llvowlsky.h
+++ b/indra/newview/llvowlsky.h
@@ -2,31 +2,25 @@
* @file llvowlsky.h
* @brief LLVOWLSky class definition
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llwatchdog.cpp b/indra/newview/llwatchdog.cpp
index 330bc8a394..1694126802 100644
--- a/indra/newview/llwatchdog.cpp
+++ b/indra/newview/llwatchdog.cpp
@@ -2,31 +2,25 @@
* @file llthreadwatchdog.cpp
* @brief The LLThreadWatchdog class definitions
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llwatchdog.h b/indra/newview/llwatchdog.h
index 79398c434a..fee3ec6f20 100644
--- a/indra/newview/llwatchdog.h
+++ b/indra/newview/llwatchdog.h
@@ -2,31 +2,25 @@
* @file llthreadwatchdog.h
* @brief The LLThreadWatchdog class declaration
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llwaterparammanager.cpp b/indra/newview/llwaterparammanager.cpp
index 436cd478b4..7314894c2e 100644
--- a/indra/newview/llwaterparammanager.cpp
+++ b/indra/newview/llwaterparammanager.cpp
@@ -2,31 +2,25 @@
* @file llwaterparammanager.cpp
* @brief Implementation for the LLWaterParamManager class.
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llwaterparammanager.h b/indra/newview/llwaterparammanager.h
index babaf0076f..c479f1861c 100644
--- a/indra/newview/llwaterparammanager.h
+++ b/indra/newview/llwaterparammanager.h
@@ -2,31 +2,25 @@
* @file llwaterparammanager.h
* @brief Implementation for the LLWaterParamManager class.
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llwaterparamset.cpp b/indra/newview/llwaterparamset.cpp
index 3e97f9dbef..9457d631be 100644
--- a/indra/newview/llwaterparamset.cpp
+++ b/indra/newview/llwaterparamset.cpp
@@ -2,31 +2,25 @@
* @file llwaterparamset.cpp
* @brief Implementation for the LLWaterParamSet class.
*
- * $LicenseInfo:firstyear=2005&license=viewergpl$
- *
- * Copyright (c) 2005-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llwaterparamset.h b/indra/newview/llwaterparamset.h
index 9087843ec7..9957d5371b 100644
--- a/indra/newview/llwaterparamset.h
+++ b/indra/newview/llwaterparamset.h
@@ -2,31 +2,25 @@
* @file llwlparamset.h
* @brief Interface for the LLWaterParamSet class.
*
- * $LicenseInfo:firstyear=2005&license=viewergpl$
- *
- * Copyright (c) 2005-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llwearable.cpp b/indra/newview/llwearable.cpp
index 46c736c853..d1c0990f90 100644
--- a/indra/newview/llwearable.cpp
+++ b/indra/newview/llwearable.cpp
@@ -2,31 +2,25 @@
* @file llwearable.cpp
* @brief LLWearable class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -52,6 +46,7 @@
#include "llvoavatarself.h"
#include "llvoavatardefines.h"
#include "llwearable.h"
+#include "llviewercontrol.h"
using namespace LLVOAvatarDefines;
@@ -444,9 +439,10 @@ BOOL LLWearable::importFile( LLFILE* file )
delete mSavedTEMap[te];
}
- image->setLoadedCallback(LLVOAvatarSelf::debugOnTimingLocalTexLoaded,0,TRUE,FALSE, new LLVOAvatarSelf::LLAvatarTexData(id, (LLVOAvatarDefines::ETextureIndex)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);
@@ -483,7 +479,7 @@ BOOL LLWearable::isOldVersion() const
param;
param = (LLViewerVisualParam*) gAgentAvatarp->getNextVisualParam() )
{
- if( (param->getWearableType() == mType) && (param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE ) )
+ if( (param->getWearableType() == mType) && (param->isTweakable() ) )
{
param_count++;
if( !is_in_map(mVisualParamIndexMap, param->getID() ) )
@@ -534,7 +530,7 @@ BOOL LLWearable::isDirty() const
param = (LLViewerVisualParam*) gAgentAvatarp->getNextVisualParam() )
{
if( (param->getWearableType() == mType)
- && (param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE )
+ && (param->isTweakable() )
&& !param->getCrossWearable())
{
F32 current_weight = getVisualParamWeight(param->getID());
@@ -588,7 +584,7 @@ void LLWearable::setParamsToDefaults()
for( LLVisualParam* param = gAgentAvatarp->getFirstVisualParam(); param; param = gAgentAvatarp->getNextVisualParam() )
{
- if( (((LLViewerVisualParam*)param)->getWearableType() == mType ) && (param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE ) )
+ if( (((LLViewerVisualParam*)param)->getWearableType() == mType ) && (param->isTweakable() ) )
{
setVisualParamWeight(param->getID(),param->getDefaultWeight(), FALSE);
}
@@ -692,14 +688,14 @@ void LLWearable::removeFromAvatar( LLWearableType::EType type, BOOL upload_bake
// Pull params
for( LLVisualParam* param = gAgentAvatarp->getFirstVisualParam(); param; param = gAgentAvatarp->getNextVisualParam() )
{
- if( (((LLViewerVisualParam*)param)->getWearableType() == type) && (param->getGroup() == VISUAL_PARAM_GROUP_TWEAKABLE ) )
+ if( (((LLViewerVisualParam*)param)->getWearableType() == type) && (param->isTweakable() ) )
{
S32 param_id = param->getID();
gAgentAvatarp->setVisualParamWeight( param_id, param->getDefaultWeight(), upload_bake );
}
}
- if( gAgentCamera.cameraCustomizeAvatar() )
+ if(gAgentCamera.cameraCustomizeAvatar())
{
LLSideTray::getInstance()->showPanel("sidepanel_appearance", LLSD().with("type", "edit_outfit"));
}
diff --git a/indra/newview/llwearable.h b/indra/newview/llwearable.h
index 6b6067fd27..fd614ade64 100644
--- a/indra/newview/llwearable.h
+++ b/indra/newview/llwearable.h
@@ -2,31 +2,25 @@
* @file llwearable.h
* @brief LLWearable class header file
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * Copyright (c) 2002-2009, 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.
*
- * Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -164,7 +158,7 @@ private:
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
+ 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 9c308359fa..a49dc1b59d 100644
--- a/indra/newview/llwearableitemslist.cpp
+++ b/indra/newview/llwearableitemslist.cpp
@@ -2,30 +2,25 @@
* @file llwearableitemslist.cpp
* @brief A flat list of wearable items.
*
- * $LicenseInfo:firstyear=2010&license=viewergpl$
- *
- * Copyright (c) 2010, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2010&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -34,11 +29,11 @@
#include "llwearableitemslist.h"
#include "lliconctrl.h"
+#include "llmenugl.h" // for LLContextMenu
#include "llagentwearables.h"
#include "llappearancemgr.h"
#include "llinventoryfunctions.h"
-#include "llmenugl.h" // for LLContextMenu
#include "lltransutil.h"
#include "llviewerattachmenu.h"
#include "llvoavatarself.h"
@@ -85,8 +80,8 @@ void LLPanelWearableListItem::onMouseLeave(S32 x, S32 y, MASK mask)
reshapeWidgets();
}
-LLPanelWearableListItem::LLPanelWearableListItem(LLViewerInventoryItem* item)
-: LLPanelInventoryListItemBase(item)
+LLPanelWearableListItem::LLPanelWearableListItem(LLViewerInventoryItem* item, const LLPanelWearableListItem::Params& params)
+: LLPanelInventoryListItemBase(item, params)
{
}
@@ -95,41 +90,62 @@ LLPanelWearableListItem::LLPanelWearableListItem(LLViewerInventoryItem* item)
//////////////////////////////////////////////////////////////////////////
// static
-LLPanelWearableOutfitItem* LLPanelWearableOutfitItem::create(LLViewerInventoryItem* item)
+LLPanelWearableOutfitItem* LLPanelWearableOutfitItem::create(LLViewerInventoryItem* item,
+ bool worn_indication_enabled)
{
LLPanelWearableOutfitItem* list_item = NULL;
if (item)
{
- list_item = new LLPanelWearableOutfitItem(item);
- list_item->init();
+ const LLPanelInventoryListItemBase::Params& params = LLUICtrlFactory::getDefaultParams<LLPanelInventoryListItemBase>();
+
+ list_item = new LLPanelWearableOutfitItem(item, worn_indication_enabled, params);
+ list_item->initFromParams(params);
+ list_item->postBuild();
}
return list_item;
}
-LLPanelWearableOutfitItem::LLPanelWearableOutfitItem(LLViewerInventoryItem* item)
-: LLPanelInventoryListItemBase(item)
+LLPanelWearableOutfitItem::LLPanelWearableOutfitItem(LLViewerInventoryItem* item,
+ bool worn_indication_enabled,
+ const LLPanelWearableOutfitItem::Params& params)
+: LLPanelInventoryListItemBase(item, params)
+, mWornIndicationEnabled(worn_indication_enabled)
{
}
// virtual
void LLPanelWearableOutfitItem::updateItem(const std::string& name,
- const LLStyle::Params& input_params)
+ EItemState item_state)
{
std::string search_label = name;
- LLStyle::Params style_params = input_params;
- if (mItem && get_is_item_worn(mItem->getUUID()))
+ // Updating item's worn status depending on whether it is linked in COF or not.
+ // We don't use get_is_item_worn() here because this update is triggered by
+ // an inventory observer upon link in COF beind added or removed so actual
+ // worn status of a linked item may still remain unchanged.
+ if (mWornIndicationEnabled && LLAppearanceMgr::instance().isLinkInCOF(mInventoryItemUUID))
{
search_label += LLTrans::getString("worn");
- style_params.font.style("BOLD");
+ item_state = IS_WORN;
}
- LLPanelInventoryListItemBase::updateItem(search_label, style_params);
+ LLPanelInventoryListItemBase::updateItem(search_label, item_state);
}
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
+static LLWidgetNameRegistry::StaticRegistrar sRegisterPanelClothingListItem(&typeid(LLPanelClothingListItem::Params), "clothing_list_item");
+
+
+LLPanelClothingListItem::Params::Params()
+: up_btn("up_btn"),
+ down_btn("down_btn"),
+ edit_btn("edit_btn"),
+ lock_panel("lock_panel"),
+ edit_panel("edit_panel"),
+ lock_icon("lock_icon")
+{}
// static
LLPanelClothingListItem* LLPanelClothingListItem::create(LLViewerInventoryItem* item)
@@ -137,24 +153,54 @@ LLPanelClothingListItem* LLPanelClothingListItem::create(LLViewerInventoryItem*
LLPanelClothingListItem* list_item = NULL;
if(item)
{
- list_item = new LLPanelClothingListItem(item);
- list_item->init();
+ const LLPanelClothingListItem::Params& params = LLUICtrlFactory::getDefaultParams<LLPanelClothingListItem>();
+ list_item = new LLPanelClothingListItem(item, params);
+ list_item->initFromParams(params);
+ list_item->postBuild();
}
return list_item;
}
-LLPanelClothingListItem::LLPanelClothingListItem(LLViewerInventoryItem* item)
- : LLPanelDeletableWearableListItem(item)
+LLPanelClothingListItem::LLPanelClothingListItem(LLViewerInventoryItem* item, const LLPanelClothingListItem::Params& params)
+ : LLPanelDeletableWearableListItem(item, params)
+{
+ LLButton::Params button_params = params.up_btn;
+ applyXUILayout(button_params, this);
+ addChild(LLUICtrlFactory::create<LLButton>(button_params));
+
+ button_params = params.down_btn;
+ applyXUILayout(button_params, this);
+ addChild(LLUICtrlFactory::create<LLButton>(button_params));
+
+ LLPanel::Params panel_params = params.lock_panel;
+ applyXUILayout(panel_params, this);
+ LLPanel* lock_panelp = LLUICtrlFactory::create<LLPanel>(panel_params);
+ addChild(lock_panelp);
+
+ panel_params = params.edit_panel;
+ applyXUILayout(panel_params, this);
+ LLPanel* edit_panelp = LLUICtrlFactory::create<LLPanel>(panel_params);
+ addChild(edit_panelp);
+
+ if (lock_panelp)
{
+ LLIconCtrl::Params icon_params = params.lock_icon;
+ applyXUILayout(icon_params, this);
+ lock_panelp->addChild(LLUICtrlFactory::create<LLIconCtrl>(icon_params));
}
-LLPanelClothingListItem::~LLPanelClothingListItem()
+ if (edit_panelp)
{
+ button_params = params.edit_btn;
+ applyXUILayout(button_params, this);
+ edit_panelp->addChild(LLUICtrlFactory::create<LLButton>(button_params));
+ }
+
+ setSeparatorVisible(false);
}
-void LLPanelClothingListItem::init()
+LLPanelClothingListItem::~LLPanelClothingListItem()
{
- LLUICtrlFactory::getInstance()->buildPanel(this, "panel_clothing_list_item.xml");
}
BOOL LLPanelClothingListItem::postBuild()
@@ -176,30 +222,62 @@ BOOL LLPanelClothingListItem::postBuild()
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
+static LLWidgetNameRegistry::StaticRegistrar sRegisterPanelBodyPartsListItem(&typeid(LLPanelBodyPartsListItem::Params), "bodyparts_list_item");
+
+
+LLPanelBodyPartsListItem::Params::Params()
+: edit_btn("edit_btn"),
+ edit_panel("edit_panel"),
+ lock_panel("lock_panel"),
+ lock_icon("lock_icon")
+{}
+
// static
LLPanelBodyPartsListItem* LLPanelBodyPartsListItem::create(LLViewerInventoryItem* item)
{
LLPanelBodyPartsListItem* list_item = NULL;
if(item)
{
- list_item = new LLPanelBodyPartsListItem(item);
- list_item->init();
+ const Params& params = LLUICtrlFactory::getDefaultParams<LLPanelBodyPartsListItem>();
+ list_item = new LLPanelBodyPartsListItem(item, params);
+ list_item->initFromParams(params);
+ list_item->postBuild();
}
return list_item;
}
-LLPanelBodyPartsListItem::LLPanelBodyPartsListItem(LLViewerInventoryItem* item)
-: LLPanelWearableListItem(item)
+LLPanelBodyPartsListItem::LLPanelBodyPartsListItem(LLViewerInventoryItem* item, const LLPanelBodyPartsListItem::Params& params)
+: LLPanelWearableListItem(item, params)
{
+ LLPanel::Params panel_params = params.edit_panel;
+ applyXUILayout(panel_params, this);
+ LLPanel* edit_panelp = LLUICtrlFactory::create<LLPanel>(panel_params);
+ addChild(edit_panelp);
+
+ panel_params = params.lock_panel;
+ applyXUILayout(panel_params, this);
+ LLPanel* lock_panelp = LLUICtrlFactory::create<LLPanel>(panel_params);
+ addChild(lock_panelp);
+
+ if (edit_panelp)
+ {
+ LLButton::Params btn_params = params.edit_btn;
+ applyXUILayout(btn_params, this);
+ edit_panelp->addChild(LLUICtrlFactory::create<LLButton>(btn_params));
}
-LLPanelBodyPartsListItem::~LLPanelBodyPartsListItem()
+ if (lock_panelp)
{
+ LLIconCtrl::Params icon_params = params.lock_icon;
+ applyXUILayout(icon_params, this);
+ lock_panelp->addChild(LLUICtrlFactory::create<LLIconCtrl>(icon_params));
+ }
+
+ setSeparatorVisible(true);
}
-void LLPanelBodyPartsListItem::init()
+LLPanelBodyPartsListItem::~LLPanelBodyPartsListItem()
{
- LLUICtrlFactory::getInstance()->buildPanel(this, "panel_body_parts_list_item.xml");
}
BOOL LLPanelBodyPartsListItem::postBuild()
@@ -212,6 +290,11 @@ BOOL LLPanelBodyPartsListItem::postBuild()
return TRUE;
}
+static LLWidgetNameRegistry::StaticRegistrar sRegisterPanelDeletableWearableListItem(&typeid(LLPanelDeletableWearableListItem::Params), "deletable_wearable_list_item");
+
+LLPanelDeletableWearableListItem::Params::Params()
+: delete_btn("delete_btn")
+{}
// static
LLPanelDeletableWearableListItem* LLPanelDeletableWearableListItem::create(LLViewerInventoryItem* item)
@@ -219,20 +302,22 @@ LLPanelDeletableWearableListItem* LLPanelDeletableWearableListItem::create(LLVie
LLPanelDeletableWearableListItem* list_item = NULL;
if(item)
{
- list_item = new LLPanelDeletableWearableListItem(item);
- list_item->init();
+ const Params& params = LLUICtrlFactory::getDefaultParams<LLPanelDeletableWearableListItem>();
+ list_item = new LLPanelDeletableWearableListItem(item, params);
+ list_item->initFromParams(params);
+ list_item->postBuild();
}
return list_item;
}
-LLPanelDeletableWearableListItem::LLPanelDeletableWearableListItem(LLViewerInventoryItem* item)
-: LLPanelWearableListItem(item)
+LLPanelDeletableWearableListItem::LLPanelDeletableWearableListItem(LLViewerInventoryItem* item, const LLPanelDeletableWearableListItem::Params& params)
+: LLPanelWearableListItem(item, params)
{
-}
+ LLButton::Params button_params = params.delete_btn;
+ applyXUILayout(button_params, this);
+ addChild(LLUICtrlFactory::create<LLButton>(button_params));
-void LLPanelDeletableWearableListItem::init()
-{
- LLUICtrlFactory::getInstance()->buildPanel(this, "panel_deletable_wearable_list_item.xml");
+ setSeparatorVisible(true);
}
BOOL LLPanelDeletableWearableListItem::postBuild()
@@ -258,51 +343,59 @@ LLPanelAttachmentListItem* LLPanelAttachmentListItem::create(LLViewerInventoryIt
LLPanelAttachmentListItem* list_item = NULL;
if(item)
{
- list_item = new LLPanelAttachmentListItem(item);
- list_item->init();
+ const Params& params = LLUICtrlFactory::getDefaultParams<LLPanelDeletableWearableListItem>();
+
+ list_item = new LLPanelAttachmentListItem(item, params);
+ list_item->initFromParams(params);
+ list_item->postBuild();
}
return list_item;
}
-void LLPanelAttachmentListItem::setTitle(const std::string& title,
- const std::string& highlit_text,
- const LLStyle::Params& input_params)
+void LLPanelAttachmentListItem::updateItem(const std::string& name,
+ EItemState item_state)
{
- std::string title_joint = title;
+ std::string title_joint = name;
- if (mItem && isAgentAvatarValid() && gAgentAvatarp->isWearingAttachment(mItem->getLinkedUUID()))
+ LLViewerInventoryItem* inv_item = getItem();
+ if (inv_item && isAgentAvatarValid() && gAgentAvatarp->isWearingAttachment(inv_item->getLinkedUUID()))
{
- std::string joint = LLTrans::getString(gAgentAvatarp->getAttachedPointName(mItem->getLinkedUUID()));
- title_joint = title + " (" + joint + ")";
+ std::string joint = LLTrans::getString(gAgentAvatarp->getAttachedPointName(inv_item->getLinkedUUID()));
+ title_joint = title_joint + " (" + joint + ")";
}
- LLPanelDeletableWearableListItem::setTitle(title_joint, highlit_text, input_params);
+ LLPanelInventoryListItemBase::updateItem(title_joint, item_state);
}
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
+static LLWidgetNameRegistry::StaticRegistrar sRegisterPanelDummyClothingListItem(&typeid(LLPanelDummyClothingListItem::Params), "dummy_clothing_list_item");
+
+LLPanelDummyClothingListItem::Params::Params()
+: add_panel("add_panel"),
+ add_btn("add_btn")
+{}
LLPanelDummyClothingListItem* LLPanelDummyClothingListItem::create(LLWearableType::EType w_type)
{
- LLPanelDummyClothingListItem* list_item = new LLPanelDummyClothingListItem(w_type);
- list_item->init();
+ const Params& params = LLUICtrlFactory::getDefaultParams<LLPanelDummyClothingListItem>();
+
+ LLPanelDummyClothingListItem* list_item = new LLPanelDummyClothingListItem(w_type, params);
+ list_item->initFromParams(params);
+ list_item->postBuild();
return list_item;
}
BOOL LLPanelDummyClothingListItem::postBuild()
{
- LLIconCtrl* icon = getChild<LLIconCtrl>("item_icon");
- setIconCtrl(icon);
- setTitleCtrl(getChild<LLTextBox>("item_name"));
-
addWidgetToRightSide("btn_add_panel");
setIconImage(LLInventoryIcon::getIcon(LLAssetType::AT_CLOTHING, LLInventoryType::IT_NONE, mWearableType, FALSE));
updateItem(wearableTypeToString(mWearableType));
// Make it look loke clothing item - reserve space for 'delete' button
- setLeftWidgetsWidth(icon->getRect().mLeft);
+ setLeftWidgetsWidth(getChildView("item_icon")->getRect().mLeft);
setWidgetsVisible(false);
reshapeWidgets();
@@ -315,15 +408,23 @@ LLWearableType::EType LLPanelDummyClothingListItem::getWearableType() const
return mWearableType;
}
-LLPanelDummyClothingListItem::LLPanelDummyClothingListItem(LLWearableType::EType w_type)
- : LLPanelWearableListItem(NULL)
- , mWearableType(w_type)
+LLPanelDummyClothingListItem::LLPanelDummyClothingListItem(LLWearableType::EType w_type, const LLPanelDummyClothingListItem::Params& params)
+: LLPanelWearableListItem(NULL, params),
+ mWearableType(w_type)
{
-}
+ LLPanel::Params panel_params(params.add_panel);
+ applyXUILayout(panel_params, this);
+ LLPanel* add_panelp = LLUICtrlFactory::create<LLPanel>(panel_params);
+ addChild(add_panelp);
-void LLPanelDummyClothingListItem::init()
+ if (add_panelp)
{
- LLUICtrlFactory::getInstance()->buildPanel(this, "panel_dummy_clothing_list_item.xml");
+ LLButton::Params button_params(params.add_btn);
+ applyXUILayout(button_params, this);
+ add_panelp->addChild(LLUICtrlFactory::create<LLButton>(button_params));
+}
+
+ setSeparatorVisible(true);
}
typedef std::map<LLWearableType::EType, std::string> clothing_to_string_map_t;
@@ -363,6 +464,29 @@ std::string LLPanelDummyClothingListItem::wearableTypeToString(LLWearableType::E
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
+LLWearableItemTypeNameComparator::LLWearableTypeOrder::LLWearableTypeOrder(LLWearableItemTypeNameComparator::ETypeListOrder order_priority, bool sort_asset_by_name, bool sort_wearable_by_name):
+ mOrderPriority(order_priority),
+ mSortAssetTypeByName(sort_asset_by_name),
+ mSortWearableTypeByName(sort_wearable_by_name)
+{
+}
+
+LLWearableItemTypeNameComparator::LLWearableItemTypeNameComparator()
+{
+ // By default the sort order conforms the order by spec of MY OUTFITS items list:
+ // 1. CLOTHING - sorted by name
+ // 2. OBJECT - sorted by type
+ // 3. BODYPART - sorted by name
+ mWearableOrder[LLAssetType::AT_CLOTHING] = LLWearableTypeOrder(ORDER_RANK_1, false, false);
+ mWearableOrder[LLAssetType::AT_OBJECT] = LLWearableTypeOrder(ORDER_RANK_2, true, true);
+ mWearableOrder[LLAssetType::AT_BODYPART] = LLWearableTypeOrder(ORDER_RANK_3, false, true);
+}
+
+void LLWearableItemTypeNameComparator::setOrder(LLAssetType::EType items_of_type, LLWearableItemTypeNameComparator::ETypeListOrder order_priority, bool sort_asset_items_by_name, bool sort_wearable_items_by_name)
+{
+ mWearableOrder[items_of_type] = LLWearableTypeOrder(order_priority, sort_asset_items_by_name, sort_wearable_items_by_name);
+}
+
/*virtual*/
bool LLWearableItemNameComparator::doCompare(const LLPanelInventoryListItemBase* wearable_item1, const LLPanelInventoryListItemBase* wearable_item2) const
{
@@ -391,9 +515,9 @@ bool LLWearableItemTypeNameComparator::doCompare(const LLPanelInventoryListItemB
return item_type_order1 < item_type_order2;
}
- if (item_type_order1 & TLO_NOT_CLOTHING)
+ if (sortAssetTypeByName(item_type1))
{
- // If both items are of the same asset type except AT_CLOTHING
+ // If both items are of the same asset type except AT_CLOTHING and AT_BODYPART
// we can compare them by name.
return LLWearableItemNameComparator::doCompare(wearable_item1, wearable_item2);
}
@@ -402,61 +526,112 @@ bool LLWearableItemTypeNameComparator::doCompare(const LLPanelInventoryListItemB
const LLWearableType::EType item_wearable_type2 = wearable_item2->getWearableType();
if (item_wearable_type1 != item_wearable_type2)
+ // If items are of different LLWearableType::EType types they are compared
+ // by LLWearableType::EType. types order determined in LLWearableType::EType.
{
- // If items are of different clothing types they are compared
- // by clothing types order determined in LLWearableType::EType.
+ // If items are of different LLWearableType::EType types they are compared
+ // by LLWearableType::EType. types order determined in LLWearableType::EType.
return item_wearable_type1 < item_wearable_type2;
}
else
{
// If both items are of the same clothing type they are compared
- // by description and place in reverse order i.e. outer layer item
- // on top.
+ // by description and place in reverse order (i.e. outer layer item
+ // on top) OR by name
+ if(sortWearableTypeByName(item_type1))
+ {
+ return LLWearableItemNameComparator::doCompare(wearable_item1, wearable_item2);
+ }
return wearable_item1->getDescription() > wearable_item2->getDescription();
}
}
-// static
-LLWearableItemTypeNameComparator::ETypeListOrder LLWearableItemTypeNameComparator::getTypeListOrder(LLAssetType::EType item_type)
+LLWearableItemTypeNameComparator::ETypeListOrder LLWearableItemTypeNameComparator::getTypeListOrder(LLAssetType::EType item_type) const
{
- switch (item_type)
+ wearable_type_order_map_t::const_iterator const_it = mWearableOrder.find(item_type);
+
+
+ if(const_it == mWearableOrder.end())
{
- case LLAssetType::AT_OBJECT:
- return TLO_ATTACHMENT;
+ llwarns<<"Absent information about order rang of items of "<<LLAssetType::getDesc(item_type)<<" type"<<llendl;
+ return ORDER_RANK_UNKNOWN;
+ }
+
+ return const_it->second.mOrderPriority;
+}
+
+bool LLWearableItemTypeNameComparator::sortAssetTypeByName(LLAssetType::EType item_type) const
+{
+ wearable_type_order_map_t::const_iterator const_it = mWearableOrder.find(item_type);
- case LLAssetType::AT_CLOTHING:
- return TLO_CLOTHING;
- case LLAssetType::AT_BODYPART:
- return TLO_BODYPART;
+ if(const_it == mWearableOrder.end())
+ {
+ llwarns<<"Absent information about sorting items of "<<LLAssetType::getDesc(item_type)<<" type"<<llendl;
+ return true;
+ }
- default:
- return TLO_UNKNOWN;
+
+ return const_it->second.mSortAssetTypeByName;
}
+
+
+bool LLWearableItemTypeNameComparator::sortWearableTypeByName(LLAssetType::EType item_type) const
+{
+ wearable_type_order_map_t::const_iterator const_it = mWearableOrder.find(item_type);
+
+
+ if(const_it == mWearableOrder.end())
+ {
+ llwarns<<"Absent information about sorting items of "<<LLAssetType::getDesc(item_type)<<" type"<<llendl;
+ return true;
}
+
+ return const_it->second.mSortWearableTypeByName;
+}
+
+/*virtual*/
+bool LLWearableItemCreationDateComparator::doCompare(const LLPanelInventoryListItemBase* item1, const LLPanelInventoryListItemBase* item2) const
+{
+ time_t date1 = item1->getCreationDate();
+ time_t date2 = item2->getCreationDate();
+
+ if (date1 == date2)
+ {
+ return LLWearableItemNameComparator::doCompare(item1, item2);
+ }
+
+ return date1 > date2;
+}
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////
-static const LLWearableItemTypeNameComparator WEARABLE_TYPE_NAME_COMPARATOR;
+static LLWearableItemTypeNameComparator WEARABLE_TYPE_NAME_COMPARATOR;
+static const LLWearableItemTypeNameComparator WEARABLE_TYPE_LAYER_COMPARATOR;
+static const LLWearableItemNameComparator WEARABLE_NAME_COMPARATOR;
+static const LLWearableItemCreationDateComparator WEARABLE_CREATION_DATE_COMPARATOR;
static const LLDefaultChildRegistry::Register<LLWearableItemsList> r("wearable_items_list");
LLWearableItemsList::Params::Params()
: standalone("standalone", true)
+, worn_indication_enabled("worn_indication_enabled", true)
{}
LLWearableItemsList::LLWearableItemsList(const LLWearableItemsList::Params& p)
: LLInventoryItemsList(p)
{
- setComparator(&WEARABLE_TYPE_NAME_COMPARATOR);
+ setSortOrder(E_SORT_BY_TYPE_LAYER, false);
mIsStandalone = p.standalone;
if (mIsStandalone)
{
// Use built-in context menu.
setRightMouseDownCallback(boost::bind(&LLWearableItemsList::onRightClick, this, _2, _3));
}
+ mWornIndicationEnabled = p.worn_indication_enabled;
+ setNoItemsCommentText(LLTrans::getString("LoadingData"));
}
// virtual
@@ -472,7 +647,7 @@ void LLWearableItemsList::addNewItem(LLViewerInventoryItem* item, bool rearrange
llassert(item != NULL);
}
- LLPanelWearableOutfitItem *list_item = LLPanelWearableOutfitItem::create(item);
+ LLPanelWearableOutfitItem *list_item = LLPanelWearableOutfitItem::create(item, mWornIndicationEnabled);
if (!list_item)
return;
@@ -498,11 +673,19 @@ void LLWearableItemsList::updateList(const LLUUID& category_id)
LLInventoryModel::EXCLUDE_TRASH,
collector);
+ if(item_array.empty() && gInventory.isCategoryComplete(category_id))
+ {
+ setNoItemsCommentText(LLTrans::getString("EmptyOutfitText"));
+ }
+
refreshList(item_array);
}
-void LLWearableItemsList::updateChangedItems(const LLInventoryModel::changed_items_t& changed_items_uuids)
+void LLWearableItemsList::updateChangedItems(const uuid_vec_t& changed_items_uuids)
{
+ // nothing to update
+ if (changed_items_uuids.empty()) return;
+
typedef std::vector<LLPanel*> item_panel_list_t;
item_panel_list_t items;
@@ -520,13 +703,14 @@ void LLWearableItemsList::updateChangedItems(const LLInventoryModel::changed_ite
LLUUID linked_uuid = inv_item->getLinkedUUID();
- for (LLInventoryModel::changed_items_t::const_iterator iter = changed_items_uuids.begin();
+ for (uuid_vec_t::const_iterator iter = changed_items_uuids.begin();
iter != changed_items_uuids.end();
++iter)
{
if (linked_uuid == *iter)
{
item->setNeedsRefresh(true);
+ break;
}
}
}
@@ -545,6 +729,38 @@ void LLWearableItemsList::onRightClick(S32 x, S32 y)
ContextMenu::instance().show(this, selected_uuids, x, y);
}
+void LLWearableItemsList::setSortOrder(ESortOrder sort_order, bool sort_now)
+{
+ switch (sort_order)
+ {
+ case E_SORT_BY_MOST_RECENT:
+ setComparator(&WEARABLE_CREATION_DATE_COMPARATOR);
+ break;
+ case E_SORT_BY_NAME:
+ setComparator(&WEARABLE_NAME_COMPARATOR);
+ break;
+ case E_SORT_BY_TYPE_LAYER:
+ setComparator(&WEARABLE_TYPE_LAYER_COMPARATOR);
+ break;
+ case E_SORT_BY_TYPE_NAME:
+ {
+ WEARABLE_TYPE_NAME_COMPARATOR.setOrder(LLAssetType::AT_CLOTHING, LLWearableItemTypeNameComparator::ORDER_RANK_1, false, true);
+ setComparator(&WEARABLE_TYPE_NAME_COMPARATOR);
+ break;
+ }
+
+ // No "default:" to raise compiler warning
+ // if we're not handling something
+ }
+
+ mSortOrder = sort_order;
+
+ if (sort_now)
+ {
+ sort();
+ }
+}
+
//////////////////////////////////////////////////////////////////////////
/// ContextMenu
//////////////////////////////////////////////////////////////////////////
@@ -568,13 +784,11 @@ 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 wear = boost::bind(&LLAppearanceMgr::wearItemOnAvatar, LLAppearanceMgr::getInstance(), _1, true, true);
- functor_t add = boost::bind(&LLAppearanceMgr::wearItemOnAvatar, LLAppearanceMgr::getInstance(), _1, true, false);
functor_t take_off = boost::bind(&LLAppearanceMgr::removeItemFromAvatar, LLAppearanceMgr::getInstance(), _1);
// Register handlers common for all wearable types.
- registrar.add("Wearable.Wear", boost::bind(handleMultiple, wear, ids));
- registrar.add("Wearable.Add", boost::bind(handleMultiple, add, ids));
+ 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));
@@ -613,9 +827,12 @@ void LLWearableItemsList::ContextMenu::updateItemsVisibility(LLContextMenu* menu
U32 mask = 0; // mask of selected items' types
U32 n_items = ids.size(); // number of selected items
U32 n_worn = 0; // number of worn items among the selected ones
+ U32 n_already_worn = 0; // number of items worn of same type as selected items
U32 n_links = 0; // number of links among the selected items
U32 n_editable = 0; // number of editable items among the selected ones
+ bool can_be_worn = true;
+
for (uuid_vec_t::const_iterator it = ids.begin(); it != ids.end(); ++it)
{
LLUUID id = *it;
@@ -630,10 +847,11 @@ void LLWearableItemsList::ContextMenu::updateItemsVisibility(LLContextMenu* menu
updateMask(mask, item->getType());
- bool is_link = item->getIsLinkType();
- bool is_worn = get_is_item_worn(id);
- bool is_editable = gAgentWearables.isWearableModifiable(id);
-
+ const LLWearableType::EType wearable_type = item->getWearableType();
+ const bool is_link = item->getIsLinkType();
+ const bool is_worn = get_is_item_worn(id);
+ const bool is_editable = gAgentWearables.isWearableModifiable(id);
+ const bool is_already_worn = gAgentWearables.selfHasWearable(wearable_type);
if (is_worn)
{
++n_worn;
@@ -646,15 +864,28 @@ void LLWearableItemsList::ContextMenu::updateItemsVisibility(LLContextMenu* menu
{
++n_links;
}
+ if (is_already_worn)
+ {
+ ++n_already_worn;
+ }
+
+ if (can_be_worn)
+ {
+ can_be_worn = get_can_item_be_worn(item->getLinkedUUID());
+ }
} // for
bool standalone = mParent ? mParent->isStandalone() : false;
+ bool wear_add_visible = mask & (MASK_CLOTHING|MASK_ATTACHMENT) && n_worn == 0 && can_be_worn && (n_already_worn != 0 || mask & MASK_ATTACHMENT);
// *TODO: eliminate multiple traversals over the menu items
- setMenuItemVisible(menu, "wear_add", mask == MASK_CLOTHING && n_worn == 0);
- setMenuItemEnabled(menu, "wear_add", n_items == 1 && canAddWearable(ids.front()));
- setMenuItemVisible(menu, "wear", n_worn == 0);
- setMenuItemVisible(menu, "edit", !standalone && mask & (MASK_CLOTHING|MASK_BODYPART));
+ setMenuItemVisible(menu, "wear_wear", n_already_worn == 0 && n_worn == 0 && can_be_worn);
+ setMenuItemEnabled(menu, "wear_wear", n_already_worn == 0 && n_worn == 0);
+ setMenuItemVisible(menu, "wear_add", wear_add_visible);
+ setMenuItemEnabled(menu, "wear_add", canAddWearables(ids));
+ setMenuItemVisible(menu, "wear_replace", n_worn == 0 && n_already_worn != 0 && can_be_worn);
+ //visible only when one item selected and this item is worn
+ setMenuItemVisible(menu, "edit", !standalone && mask & (MASK_CLOTHING|MASK_BODYPART) && n_worn == n_items && n_worn == 1);
setMenuItemEnabled(menu, "edit", n_editable == 1 && n_worn == 1 && n_items == 1);
setMenuItemVisible(menu, "create_new", mask & (MASK_CLOTHING|MASK_BODYPART) && n_items == 1);
setMenuItemVisible(menu, "show_original", !standalone);
@@ -665,6 +896,8 @@ void LLWearableItemsList::ContextMenu::updateItemsVisibility(LLContextMenu* menu
setMenuItemEnabled(menu, "take_off_or_detach", n_worn == n_items);
setMenuItemVisible(menu, "object_profile", !standalone);
setMenuItemEnabled(menu, "object_profile", n_items == 1);
+ setMenuItemVisible(menu, "--no options--", FALSE);
+ setMenuItemEnabled(menu, "--no options--", FALSE);
// Populate or hide the "Attach to..." / "Attach to HUD..." submenus.
if (mask == MASK_ATTACHMENT && n_worn == 0)
@@ -681,6 +914,20 @@ void LLWearableItemsList::ContextMenu::updateItemsVisibility(LLContextMenu* menu
{
llwarns << "Non-wearable items passed." << llendl;
}
+
+ U32 num_visible_items = 0;
+ for (U32 menu_item_index = 0; menu_item_index < menu->getItemCount(); ++menu_item_index)
+ {
+ const LLMenuItemGL* menu_item = menu->getItem(menu_item_index);
+ if (menu_item && menu_item->getVisible())
+ {
+ num_visible_items++;
+ }
+ }
+ if (num_visible_items == 0)
+ {
+ setMenuItemVisible(menu, "--no options--", TRUE);
+ }
}
void LLWearableItemsList::ContextMenu::updateItemsLabels(LLContextMenu* menu)
@@ -692,10 +939,8 @@ void LLWearableItemsList::ContextMenu::updateItemsLabels(LLContextMenu* menu)
LLViewerInventoryItem* item = gInventory.getLinkedItem(mUUIDs.back());
if (!item || !item->isWearableType()) return;
- LLStringUtil::format_map_t args;
LLWearableType::EType w_type = item->getWearableType();
- args["[WEARABLE_TYPE]"] = LLWearableType::getTypeDefaultNewName(w_type);
- std::string new_label = LLTrans::getString("CreateNewWearable", args);
+ std::string new_label = LLTrans::getString("create_new_" + LLWearableType::getTypeName(w_type));
LLMenuItemGL* menu_item = menu->getChild<LLMenuItemGL>("create_new");
menu_item->setLabel(new_label);
@@ -746,23 +991,61 @@ void LLWearableItemsList::ContextMenu::createNewWearable(const LLUUID& item_id)
LLAgentWearables::createWearable(item->getWearableType(), true);
}
-// Can we wear another wearable of the given item's wearable type?
+// Returns true if all the given objects and clothes can be added.
// static
-bool LLWearableItemsList::ContextMenu::canAddWearable(const LLUUID& item_id)
+bool LLWearableItemsList::ContextMenu::canAddWearables(const uuid_vec_t& item_ids)
{
- if (!gAgentWearables.areWearablesLoaded())
+ // TODO: investigate wearables may not be loaded at this point EXT-8231
+
+ U32 n_objects = 0;
+ boost::unordered_map<LLWearableType::EType, U32> clothes_by_type;
+
+ // Count given clothes (by wearable type) and objects.
+ for (uuid_vec_t::const_iterator it = item_ids.begin(); it != item_ids.end(); ++it)
{
- return false;
+ LLViewerInventoryItem* item = gInventory.getItem(*it);
+ if (!item)
+ {
+ return false;
+ }
+
+ if (item->getType() == LLAssetType::AT_OBJECT)
+ {
+ ++n_objects;
+ }
+ else if (item->getType() == LLAssetType::AT_CLOTHING)
+ {
+ ++clothes_by_type[item->getWearableType()];
+ }
+ else
+ {
+ llwarns << "Unexpected wearable type" << llendl;
+ return false;
+ }
}
- LLViewerInventoryItem* item = gInventory.getItem(item_id);
- if (!item || item->getType() != LLAssetType::AT_CLOTHING)
+ // Check whether we can add all the objects.
+ if (!isAgentAvatarValid() || !gAgentAvatarp->canAttachMoreObjects(n_objects))
{
return false;
}
- U32 wearable_count = gAgentWearables.getWearableCount(item->getWearableType());
- return wearable_count < LLAgentWearables::MAX_CLOTHING_PER_TYPE;
+ // Check whether we can add all the clothes.
+ boost::unordered_map<LLWearableType::EType, U32>::const_iterator m_it;
+ for (m_it = clothes_by_type.begin(); m_it != clothes_by_type.end(); ++m_it)
+ {
+ LLWearableType::EType w_type = m_it->first;
+ U32 n_clothes = m_it->second;
+
+ U32 wearable_count = gAgentWearables.getWearableCount(w_type);
+ if ((wearable_count + n_clothes) > LLAgentWearables::MAX_CLOTHING_PER_TYPE)
+ {
+ return false;
+ }
+
+ }
+
+ return true;
}
// EOF
diff --git a/indra/newview/llwearableitemslist.h b/indra/newview/llwearableitemslist.h
index 5dc06284c3..b060c9f076 100644
--- a/indra/newview/llwearableitemslist.h
+++ b/indra/newview/llwearableitemslist.h
@@ -2,30 +2,25 @@
* @file llwearableitemslist.h
* @brief A flat list of wearable items.
*
- * $LicenseInfo:firstyear=2010&license=viewergpl$
- *
- * Copyright (c) 2010, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2010&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
- *
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/flossexception
- *
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
- *
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -38,7 +33,7 @@
// newview
#include "llinventoryitemslist.h"
-#include "llinventorymodel.h"
+#include "llinventorylistitem.h"
#include "lllistcontextmenu.h"
#include "llwearabletype.h"
@@ -67,7 +62,7 @@ public:
protected:
- LLPanelWearableListItem(LLViewerInventoryItem* item);
+ LLPanelWearableListItem(LLViewerInventoryItem* item, const Params& params);
};
/**
@@ -81,22 +76,34 @@ class LLPanelWearableOutfitItem : public LLPanelInventoryListItemBase
{
LOG_CLASS(LLPanelWearableOutfitItem);
public:
- static LLPanelWearableOutfitItem* create(LLViewerInventoryItem* item);
+ static LLPanelWearableOutfitItem* create(LLViewerInventoryItem* item,
+ bool worn_indication_enabled);
/**
* Updates item name and (worn) suffix.
*/
/*virtual*/ void updateItem(const std::string& name,
- const LLStyle::Params& input_params = LLStyle::Params());
+ EItemState item_state = IS_DEFAULT);
protected:
- LLPanelWearableOutfitItem(LLViewerInventoryItem* item);
+ LLPanelWearableOutfitItem(LLViewerInventoryItem* item,
+ bool worn_indication_enabled, const Params& params);
+
+private:
+ bool mWornIndicationEnabled;
};
class LLPanelDeletableWearableListItem : public LLPanelWearableListItem
{
LOG_CLASS(LLPanelDeletableWearableListItem);
public:
+ struct Params : public LLInitParam::Block<Params, LLPanelWearableListItem::Params>
+ {
+ Optional<LLButton::Params> delete_btn;
+
+ Params();
+ };
+
static LLPanelDeletableWearableListItem* create(LLViewerInventoryItem* item);
@@ -110,9 +117,7 @@ public:
inline void setShowDeleteButton(bool show) { setShowWidget("btn_delete", show); }
protected:
- LLPanelDeletableWearableListItem(LLViewerInventoryItem* item);
-
- /*virtual*/ void init();
+ LLPanelDeletableWearableListItem(LLViewerInventoryItem* item, const Params& params);
};
/** Outfit list item for an attachment */
@@ -124,12 +129,11 @@ public:
virtual ~LLPanelAttachmentListItem() {};
/** Set item title. Joint name is added to the title in parenthesis */
- /*virtual*/ void setTitle(const std::string& title,
- const std::string& highlit_text,
- const LLStyle::Params& input_params = LLStyle::Params());
+ /*virtual*/ void updateItem(const std::string& name,
+ EItemState item_state = IS_DEFAULT);
protected:
- LLPanelAttachmentListItem(LLViewerInventoryItem* item) : LLPanelDeletableWearableListItem(item) {};
+ LLPanelAttachmentListItem(LLViewerInventoryItem* item, const Params& params) : LLPanelDeletableWearableListItem(item, params) {};
};
/**
@@ -142,6 +146,18 @@ class LLPanelClothingListItem : public LLPanelDeletableWearableListItem
LOG_CLASS(LLPanelClothingListItem);
public:
+ struct Params : public LLInitParam::Block<Params, LLPanelDeletableWearableListItem::Params>
+ {
+ Optional<LLButton::Params> up_btn,
+ down_btn,
+ edit_btn;
+ Optional<LLPanel::Params> lock_panel,
+ edit_panel;
+ Optional<LLIconCtrl::Params> lock_icon;
+
+ Params();
+ };
+
static LLPanelClothingListItem* create(LLViewerInventoryItem* item);
virtual ~LLPanelClothingListItem();
@@ -157,18 +173,25 @@ public:
inline void setShowLockButton(bool show) { setShowWidget("btn_lock", show); }
inline void setShowEditButton(bool show) { setShowWidget("btn_edit_panel", show); }
-
protected:
- LLPanelClothingListItem(LLViewerInventoryItem* item);
-
- /*virtual*/ void init();
+ LLPanelClothingListItem(LLViewerInventoryItem* item, const Params& params);
+
};
class LLPanelBodyPartsListItem : public LLPanelWearableListItem
{
LOG_CLASS(LLPanelBodyPartsListItem);
public:
+ struct Params : public LLInitParam::Block<Params, LLPanelWearableListItem::Params>
+ {
+ Optional<LLButton::Params> edit_btn;
+ Optional<LLPanel::Params> lock_panel,
+ edit_panel;
+ Optional<LLIconCtrl::Params> lock_icon;
+
+ Params();
+ };
static LLPanelBodyPartsListItem* create(LLViewerInventoryItem* item);
@@ -183,9 +206,7 @@ public:
inline void setShowEditButton(bool show) { setShowWidget("btn_edit_panel", show); }
protected:
- LLPanelBodyPartsListItem(LLViewerInventoryItem* item);
-
- /*virtual*/ void init();
+ LLPanelBodyPartsListItem(LLViewerInventoryItem* item, const Params& params);
};
@@ -197,15 +218,19 @@ protected:
class LLPanelDummyClothingListItem : public LLPanelWearableListItem
{
public:
+ struct Params : public LLInitParam::Block<Params, LLPanelWearableListItem::Params>
+ {
+ Optional<LLPanel::Params> add_panel;
+ Optional<LLButton::Params> add_btn;
+ Params();
+ };
static LLPanelDummyClothingListItem* create(LLWearableType::EType w_type);
/*virtual*/ BOOL postBuild();
LLWearableType::EType getWearableType() const;
protected:
- LLPanelDummyClothingListItem(LLWearableType::EType w_type);
-
- /*virtual*/ void init();
+ LLPanelDummyClothingListItem(LLWearableType::EType w_type, const Params& params);
static std::string wearableTypeToString(LLWearableType::EType w_type);
@@ -276,33 +301,89 @@ class LLWearableItemTypeNameComparator : public LLWearableItemNameComparator
LOG_CLASS(LLWearableItemTypeNameComparator);
public:
- LLWearableItemTypeNameComparator() {};
+
+ LLWearableItemTypeNameComparator();
virtual ~LLWearableItemTypeNameComparator() {};
+ enum ETypeListOrder
+ {
+ ORDER_RANK_1 = 1,
+ ORDER_RANK_2,
+ ORDER_RANK_3,
+ ORDER_RANK_UNKNOWN
+ };
+
+ void setOrder(LLAssetType::EType items_of_type, ETypeListOrder order_priority, bool sort_items_by_name, bool sort_wearable_items_by_name);
+
protected:
/**
- * Returns "true" if wearable_item1 is placed before wearable_item2 sorted by the following:
- * - Attachments (abc order)
- * - Clothing
+ * All information about sort order is stored in mWearableOrder map
+ *
+ * mWearableOrder : KEYS VALUES
+ * [LLAssetType] [struct LLWearableTypeOrder]
+ *
+ *---------------------------------------------------------------------------------------------
+ * I. Determines order (ORDER_RANK) in which items of LLAssetType should be displayed in list.
+ * For example by spec in MY OUTFITS the order is:
+ * 1. AT_CLOTHING (ORDER_RANK_1)
+ * 2. AT_OBJECT (ORDER_RANK_2)
+ * 3. AT_BODYPART (ORDER_RANK_3)
+ *
+ * II.Items of each type(LLAssetType) are sorted by name or type(LLWearableType)
+ * For example by spec in MY OUTFITS the order within each items type(LLAssetType) is:
+ * 1. AT_OBJECTS (abc order)
+ * 2. AT_CLOTHINGS
* - by type (types order determined in LLWearableType::EType)
* - outer layer on top
- * - Body Parts (abc order),
- * "false" otherwise.
+ * 3. AT_BODYPARTS (abc order)
+ *---------------------------------------------------------------------------------------------
+ *
+ * For each LLAssetType (KEYS in mWearableOrder) the information about:
+ *
+ * I. ORDER_RANK (the flag is LLWearableTypeOrder::mOrderPriority)
+ *
+ * II. whether items of this LLAssetType type should be ordered
+ * by name or by LLWearableType::EType (the flag is LLWearableTypeOrder::mSortAssetTypeByName)
+ *
+ * III.whether items of LLWearableType type within this LLAssetType
+ * should be ordered by name (the flag is LLWearableTypeOrder::mSortWearableTypeByName)
+ *
+ * holds in mWearableOrder map as VALUES (struct LLWearableTypeOrder).
*/
/*virtual*/ bool doCompare(const LLPanelInventoryListItemBase* wearable_item1, const LLPanelInventoryListItemBase* wearable_item2) const;
private:
- enum ETypeListOrder
+
+ struct LLWearableTypeOrder
{
- TLO_ATTACHMENT = 0x01,
- TLO_CLOTHING = 0x02,
- TLO_BODYPART = 0x04,
- TLO_UNKNOWN = 0x08,
+ ETypeListOrder mOrderPriority;
+ bool mSortAssetTypeByName;
+ bool mSortWearableTypeByName;
- TLO_NOT_CLOTHING = TLO_ATTACHMENT | TLO_BODYPART | TLO_UNKNOWN
+ LLWearableTypeOrder(ETypeListOrder order_priority, bool sort_asset_by_name, bool sort_wearable_by_name);
+ LLWearableTypeOrder() : mOrderPriority(ORDER_RANK_UNKNOWN), mSortAssetTypeByName(false), mSortWearableTypeByName(false) {};
};
- static LLWearableItemTypeNameComparator::ETypeListOrder getTypeListOrder(LLAssetType::EType item_type);
+ ETypeListOrder getTypeListOrder(LLAssetType::EType item_type) const;
+
+ bool sortAssetTypeByName(LLAssetType::EType item_type) const;
+ bool sortWearableTypeByName(LLAssetType::EType item_type) const;
+
+ typedef std::map<LLAssetType::EType,LLWearableTypeOrder> wearable_type_order_map_t;
+ wearable_type_order_map_t mWearableOrder;
+};
+
+/**
+ * @class LLWearableItemCreationDateComparator
+ *
+ * Comparator for sorting wearable list items by creation date (newest go first).
+ */
+class LLWearableItemCreationDateComparator : public LLWearableItemNameComparator
+{
+ LOG_CLASS(LLWearableItemCreationDateComparator);
+
+protected:
+ /*virtual*/ bool doCompare(const LLPanelInventoryListItemBase* item1, const LLPanelInventoryListItemBase* item2) const;
};
/**
@@ -315,6 +396,7 @@ private:
*/
class LLWearableItemsList : public LLInventoryItemsList
{
+ LOG_CLASS(LLWearableItemsList);
public:
/**
* Context menu.
@@ -344,7 +426,7 @@ public:
static void setMenuItemEnabled(LLContextMenu* menu, const std::string& name, bool val);
static void updateMask(U32& mask, LLAssetType::EType at);
static void createNewWearable(const LLUUID& item_id);
- static bool canAddWearable(const LLUUID& item_id);
+ static bool canAddWearables(const uuid_vec_t& item_ids);
LLWearableItemsList* mParent;
};
@@ -352,10 +434,19 @@ public:
struct Params : public LLInitParam::Block<Params, LLInventoryItemsList::Params>
{
Optional<bool> standalone;
+ Optional<bool> worn_indication_enabled;
Params();
};
+ typedef enum e_sort_order {
+ // Values should be compatible with InventorySortOrder setting.
+ E_SORT_BY_NAME = 0,
+ E_SORT_BY_MOST_RECENT = 1,
+ E_SORT_BY_TYPE_LAYER = 2,
+ E_SORT_BY_TYPE_NAME = 3,
+ } ESortOrder;
+
virtual ~LLWearableItemsList();
/*virtual*/ void addNewItem(LLViewerInventoryItem* item, bool rearrange = true);
@@ -366,10 +457,14 @@ public:
* Update items that match UUIDs from changed_items_uuids
* or links that point at such items.
*/
- void updateChangedItems(const LLInventoryModel::changed_items_t& changed_items_uuids);
+ void updateChangedItems(const uuid_vec_t& changed_items_uuids);
bool isStandalone() const { return mIsStandalone; }
+ ESortOrder getSortOrder() const { return mSortOrder; }
+
+ void setSortOrder(ESortOrder sort_order, bool sort_now = true);
+
protected:
friend class LLUICtrlFactory;
LLWearableItemsList(const LLWearableItemsList::Params& p);
@@ -377,6 +472,9 @@ protected:
void onRightClick(S32 x, S32 y);
bool mIsStandalone;
+ bool mWornIndicationEnabled;
+
+ ESortOrder mSortOrder;
};
#endif //LL_LLWEARABLEITEMSLIST_H
diff --git a/indra/newview/llwearablelist.cpp b/indra/newview/llwearablelist.cpp
index aedaeba42a..ddbcdfc3f7 100644
--- a/indra/newview/llwearablelist.cpp
+++ b/indra/newview/llwearablelist.cpp
@@ -2,31 +2,25 @@
* @file llwearablelist.cpp
* @brief LLWearableList class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llwearablelist.h b/indra/newview/llwearablelist.h
index 16ef11b8bd..12d0037aee 100644
--- a/indra/newview/llwearablelist.h
+++ b/indra/newview/llwearablelist.h
@@ -2,31 +2,25 @@
* @file llwearablelist.h
* @brief LLWearableList class header file
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llwearabletype.cpp b/indra/newview/llwearabletype.cpp
index 2a14ace38c..0d707d65bf 100644
--- a/indra/newview/llwearabletype.cpp
+++ b/indra/newview/llwearabletype.cpp
@@ -2,31 +2,25 @@
* @file llwearabletype.cpp
* @brief LLWearableType class implementation
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
- *
- * Copyright (c) 2002-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -83,9 +77,8 @@ LLWearableDictionary::LLWearableDictionary()
addEntry(LLWearableType::WT_SKIRT, new WearableEntry("skirt", "New Skirt", LLAssetType::AT_CLOTHING, LLInventoryIcon::ICONNAME_CLOTHING_SKIRT));
addEntry(LLWearableType::WT_ALPHA, new WearableEntry("alpha", "New Alpha", LLAssetType::AT_CLOTHING, LLInventoryIcon::ICONNAME_CLOTHING_ALPHA));
addEntry(LLWearableType::WT_TATTOO, new WearableEntry("tattoo", "New Tattoo", LLAssetType::AT_CLOTHING, LLInventoryIcon::ICONNAME_CLOTHING_TATTOO));
- addEntry(LLWearableType::WT_INVALID, new WearableEntry("invalid", "Invalid Wearable", LLAssetType::AT_NONE, LLInventoryIcon::ICONNAME_NONE));
- addEntry(LLWearableType::WT_NONE, new WearableEntry("none", "Invalid Wearable", LLAssetType::AT_NONE, LLInventoryIcon::ICONNAME_NONE));
- addEntry(LLWearableType::WT_COUNT, new WearableEntry("count", "Invalid Wearable", LLAssetType::AT_NONE, LLInventoryIcon::ICONNAME_NONE));
+ addEntry(LLWearableType::WT_INVALID, new WearableEntry("invalid", "Invalid Wearable", LLAssetType::AT_NONE, LLInventoryIcon::ICONNAME_INVALID));
+ addEntry(LLWearableType::WT_NONE, new WearableEntry("none", "Invalid Wearable", LLAssetType::AT_NONE, LLInventoryIcon::ICONNAME_INVALID));
}
// static
@@ -101,6 +94,7 @@ 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;
}
@@ -109,6 +103,7 @@ const std::string& LLWearableType::getTypeDefaultNewName(LLWearableType::EType t
{
const LLWearableDictionary *dict = LLWearableDictionary::getInstance();
const WearableEntry *entry = dict->lookup(type);
+ if (!entry) return getTypeDefaultNewName(WT_INVALID);
return entry->mDefaultNewName;
}
@@ -117,6 +112,7 @@ 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;
}
@@ -125,6 +121,7 @@ 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;
}
@@ -133,6 +130,7 @@ LLInventoryIcon::EIconName LLWearableType::getIconName(LLWearableType::EType typ
{
const LLWearableDictionary *dict = LLWearableDictionary::getInstance();
const WearableEntry *entry = dict->lookup(type);
+ if (!entry) return getIconName(WT_INVALID);
return entry->mIconName;
-}
+}
diff --git a/indra/newview/llwearabletype.h b/indra/newview/llwearabletype.h
index 8090fd8df7..3bbf8ba0bd 100644
--- a/indra/newview/llwearabletype.h
+++ b/indra/newview/llwearabletype.h
@@ -2,30 +2,25 @@
* @file llwearabletype.h
* @brief LLWearableType class header file
*
- * $LicenseInfo:firstyear=2002&license=viewergpl$
+ * $LicenseInfo:firstyear=2002&license=viewerlgpl$
+ * Second Life Viewer Source Code
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * Copyright (c) 2002-2009, 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.
*
- * Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
- * * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llweb.cpp b/indra/newview/llweb.cpp
index 5c9633c036..73a37a6993 100644
--- a/indra/newview/llweb.cpp
+++ b/indra/newview/llweb.cpp
@@ -3,31 +3,25 @@
* @brief Functions dealing with web browsers
* @author James Cook
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -84,36 +78,44 @@ void LLWeb::initClass()
// static
-void LLWeb::loadURL(const std::string& url)
+void LLWeb::loadURL(const std::string& url, const std::string& target, const std::string& uuid)
{
- if (gSavedSettings.getBOOL("UseExternalBrowser"))
+ if(target == "_internal")
+ {
+ // Force load in the internal browser, as if with a blank target.
+ loadURLInternal(url, "", uuid);
+ }
+ else if (gSavedSettings.getBOOL("UseExternalBrowser") || (target == "_external"))
{
loadURLExternal(url);
}
else
{
- loadURLInternal(url);
+ loadURLInternal(url, target, uuid);
}
}
// static
-void LLWeb::loadURLInternal(const std::string &url)
+void LLWeb::loadURLInternal(const std::string &url, const std::string& target, const std::string& uuid)
{
- LLFloaterReg::showInstance("media_browser", url);
+ LLFloaterMediaBrowser::create(url, target, uuid);
}
// static
-void LLWeb::loadURLExternal(const std::string& url)
+void LLWeb::loadURLExternal(const std::string& url, const std::string& uuid)
{
- loadURLExternal(url, true);
+ loadURLExternal(url, true, uuid);
}
// static
-void LLWeb::loadURLExternal(const std::string& url, bool async)
+void LLWeb::loadURLExternal(const std::string& url, bool async, const std::string& uuid)
{
+ // Act like the proxy window was closed, since we won't be able to track targeted windows in the external browser.
+ LLViewerMedia::proxyWindowClosed(uuid);
+
LLSD payload;
payload["url"] = url;
LLNotificationsUtil::add( "WebLaunchExternalTarget", LLSD(), payload, boost::bind(on_load_url_external_response, _1, _2, async));
diff --git a/indra/newview/llweb.h b/indra/newview/llweb.h
index 1119b80bb4..2915376583 100644
--- a/indra/newview/llweb.h
+++ b/indra/newview/llweb.h
@@ -3,31 +3,25 @@
* @brief Functions dealing with web browsers
* @author James Cook
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -49,15 +43,19 @@ public:
static void initClass();
/// Load the given url in the user's preferred web browser
- static void loadURL(const std::string& url);
+ static void loadURL(const std::string& url, const std::string& target, const std::string& uuid = LLStringUtil::null);
+ static void loadURL(const std::string& url) { loadURL(url, LLStringUtil::null); }
/// Load the given url in the user's preferred web browser
- static void loadURL(const char* url) { loadURL( ll_safe_string(url) ); }
+ static void loadURL(const char* url, const std::string& target) { loadURL( ll_safe_string(url), target); }
+ static void loadURL(const char* url) { loadURL( ll_safe_string(url), LLStringUtil::null ); }
/// Load the given url in the Second Life internal web browser
- static void loadURLInternal(const std::string &url);
+ static void loadURLInternal(const std::string &url, const std::string& target, const std::string& uuid = LLStringUtil::null);
+ static void loadURLInternal(const std::string &url) { loadURLInternal(url, LLStringUtil::null); }
/// Load the given url in the operating system's web browser, async if we want to return immediately
/// before browser has spawned
- static void loadURLExternal(const std::string& url);
- static void loadURLExternal(const std::string& url, bool async);
+ static void loadURLExternal(const std::string& url) { loadURLExternal(url, LLStringUtil::null); };
+ static void loadURLExternal(const std::string& url, const std::string& uuid);
+ static void loadURLExternal(const std::string& url, bool async, const std::string& uuid = LLStringUtil::null);
/// Returns escaped url (eg, " " to "%20") - used by all loadURL methods
static std::string escapeURL(const std::string& url);
diff --git a/indra/newview/llwebsharing.cpp b/indra/newview/llwebsharing.cpp
new file mode 100644
index 0000000000..43b1a320c3
--- /dev/null
+++ b/indra/newview/llwebsharing.cpp
@@ -0,0 +1,603 @@
+/**
+ * @file llwebsharing.cpp
+ * @author Aimee
+ * @brief Web Snapshot Sharing
+ *
+ * $LicenseInfo:firstyear=2010&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 "llwebsharing.h"
+
+#include "llagentui.h"
+#include "llbufferstream.h"
+#include "llhttpclient.h"
+#include "llhttpstatuscodes.h"
+#include "llsdserialize.h"
+#include "llsdutil.h"
+#include "llurl.h"
+#include "llviewercontrol.h"
+
+#include <boost/regex.hpp>
+#include <boost/algorithm/string/replace.hpp>
+
+
+
+///////////////////////////////////////////////////////////////////////////////
+//
+class LLWebSharingConfigResponder : public LLHTTPClient::Responder
+{
+ LOG_CLASS(LLWebSharingConfigResponder);
+public:
+ /// Overrides the default LLSD parsing behaviour, to allow parsing a JSON response.
+ virtual void completedRaw(U32 status, const std::string& reason,
+ const LLChannelDescriptors& channels,
+ const LLIOPipe::buffer_ptr_t& buffer)
+ {
+ LLSD content;
+ LLBufferStream istr(channels, buffer.get());
+ LLPointer<LLSDParser> parser = new LLSDNotationParser();
+
+ if (parser->parse(istr, content, LLSDSerialize::SIZE_UNLIMITED) == LLSDParser::PARSE_FAILURE)
+ {
+ LL_WARNS("WebSharing") << "Failed to deserialize LLSD from JSON response. " << " [" << status << "]: " << reason << LL_ENDL;
+ }
+ else
+ {
+ completed(status, reason, content);
+ }
+ }
+
+ virtual void error(U32 status, const std::string& reason)
+ {
+ LL_WARNS("WebSharing") << "Error [" << status << "]: " << reason << LL_ENDL;
+ }
+
+ virtual void result(const LLSD& content)
+ {
+ LLWebSharing::instance().receiveConfig(content);
+ }
+};
+
+
+
+///////////////////////////////////////////////////////////////////////////////
+//
+class LLWebSharingOpenIDAuthResponder : public LLHTTPClient::Responder
+{
+ LOG_CLASS(LLWebSharingOpenIDAuthResponder);
+public:
+ /* virtual */ void completedHeader(U32 status, const std::string& reason, const LLSD& content)
+ {
+ completed(status, reason, content);
+ }
+
+ /* virtual */ void completedRaw(U32 status, const std::string& reason,
+ const LLChannelDescriptors& channels,
+ const LLIOPipe::buffer_ptr_t& buffer)
+ {
+ /// Left empty to override the default LLSD parsing behaviour.
+ }
+
+ virtual void error(U32 status, const std::string& reason)
+ {
+ if (HTTP_UNAUTHORIZED == status)
+ {
+ LL_WARNS("WebSharing") << "AU account not authenticated." << LL_ENDL;
+ // *TODO: No account found on AU, so start the account creation process here.
+ }
+ else
+ {
+ LL_WARNS("WebSharing") << "Error [" << status << "]: " << reason << LL_ENDL;
+ LLWebSharing::instance().retryOpenIDAuth();
+ }
+
+ }
+
+ virtual void result(const LLSD& content)
+ {
+ if (content.has("set-cookie"))
+ {
+ // OpenID request succeeded and returned a session cookie.
+ LLWebSharing::instance().receiveSessionCookie(content["set-cookie"].asString());
+ }
+ }
+};
+
+
+
+///////////////////////////////////////////////////////////////////////////////
+//
+class LLWebSharingSecurityTokenResponder : public LLHTTPClient::Responder
+{
+ LOG_CLASS(LLWebSharingSecurityTokenResponder);
+public:
+ /// Overrides the default LLSD parsing behaviour, to allow parsing a JSON response.
+ virtual void completedRaw(U32 status, const std::string& reason,
+ const LLChannelDescriptors& channels,
+ const LLIOPipe::buffer_ptr_t& buffer)
+ {
+ LLSD content;
+ LLBufferStream istr(channels, buffer.get());
+ LLPointer<LLSDParser> parser = new LLSDNotationParser();
+
+ if (parser->parse(istr, content, LLSDSerialize::SIZE_UNLIMITED) == LLSDParser::PARSE_FAILURE)
+ {
+ LL_WARNS("WebSharing") << "Failed to deserialize LLSD from JSON response. " << " [" << status << "]: " << reason << LL_ENDL;
+ LLWebSharing::instance().retryOpenIDAuth();
+ }
+ else
+ {
+ completed(status, reason, content);
+ }
+ }
+
+ virtual void error(U32 status, const std::string& reason)
+ {
+ LL_WARNS("WebSharing") << "Error [" << status << "]: " << reason << LL_ENDL;
+ LLWebSharing::instance().retryOpenIDAuth();
+ }
+
+ virtual void result(const LLSD& content)
+ {
+ if (content[0].has("st") && content[0].has("expires"))
+ {
+ const std::string& token = content[0]["st"].asString();
+ const std::string& expires = content[0]["expires"].asString();
+ if (LLWebSharing::instance().receiveSecurityToken(token, expires))
+ {
+ // Sucessfully received a valid security token.
+ return;
+ }
+ }
+ else
+ {
+ LL_WARNS("WebSharing") << "No security token received." << LL_ENDL;
+ }
+
+ LLWebSharing::instance().retryOpenIDAuth();
+ }
+};
+
+
+
+///////////////////////////////////////////////////////////////////////////////
+//
+class LLWebSharingUploadResponder : public LLHTTPClient::Responder
+{
+ LOG_CLASS(LLWebSharingUploadResponder);
+public:
+ /// Overrides the default LLSD parsing behaviour, to allow parsing a JSON response.
+ virtual void completedRaw(U32 status, const std::string& reason,
+ const LLChannelDescriptors& channels,
+ const LLIOPipe::buffer_ptr_t& buffer)
+ {
+/*
+ // Dump the body, for debugging.
+
+ LLBufferStream istr1(channels, buffer.get());
+ std::ostringstream ostr;
+ std::string body;
+
+ while (istr1.good())
+ {
+ char buf[1024];
+ istr1.read(buf, sizeof(buf));
+ body.append(buf, istr1.gcount());
+ }
+ LL_DEBUGS("WebSharing") << body << LL_ENDL;
+*/
+ LLSD content;
+ LLBufferStream istr(channels, buffer.get());
+ LLPointer<LLSDParser> parser = new LLSDNotationParser();
+
+ if (parser->parse(istr, content, LLSDSerialize::SIZE_UNLIMITED) == LLSDParser::PARSE_FAILURE)
+ {
+ LL_WARNS("WebSharing") << "Failed to deserialize LLSD from JSON response. " << " [" << status << "]: " << reason << LL_ENDL;
+ }
+ else
+ {
+ completed(status, reason, content);
+ }
+ }
+
+ virtual void error(U32 status, const std::string& reason)
+ {
+ LL_WARNS("WebSharing") << "Error [" << status << "]: " << reason << LL_ENDL;
+ }
+
+ virtual void result(const LLSD& content)
+ {
+ if (content[0].has("result") && content[0].has("id") &&
+ content[0]["id"].asString() == "newMediaItem")
+ {
+ // *TODO: Upload successful, continue from here to post metadata and create AU activity.
+ }
+ else
+ {
+ LL_WARNS("WebSharing") << "Error [" << content[0]["code"].asString()
+ << "]: " << content[0]["message"].asString() << LL_ENDL;
+ }
+ }
+};
+
+
+
+///////////////////////////////////////////////////////////////////////////////
+//
+LLWebSharing::LLWebSharing()
+: mConfig(),
+ mSecurityToken(LLSD::emptyMap()),
+ mEnabled(false),
+ mRetries(0),
+ mImage(NULL),
+ mMetadata(LLSD::emptyMap())
+{
+}
+
+void LLWebSharing::init()
+{
+ if (!mEnabled)
+ {
+ sendConfigRequest();
+ }
+}
+
+bool LLWebSharing::shareSnapshot(LLImageJPEG* snapshot, LLSD& metadata)
+{
+ LL_INFOS("WebSharing") << metadata << LL_ENDL;
+
+ if (mImage)
+ {
+ // *TODO: Handle this possibility properly, queue them up?
+ LL_WARNS("WebSharing") << "Snapshot upload already in progress." << LL_ENDL;
+ return false;
+ }
+
+ mImage = snapshot;
+ mMetadata = metadata;
+
+ // *TODO: Check whether we have a valid security token already and re-use it.
+ sendOpenIDAuthRequest();
+ return true;
+}
+
+bool LLWebSharing::setOpenIDCookie(const std::string& cookie)
+{
+ LL_DEBUGS("WebSharing") << "Setting OpenID cookie " << cookie << LL_ENDL;
+ mOpenIDCookie = cookie;
+ return validateConfig();
+}
+
+bool LLWebSharing::receiveConfig(const LLSD& config)
+{
+ LL_DEBUGS("WebSharing") << "Received config data: " << config << LL_ENDL;
+ mConfig = config;
+ return validateConfig();
+}
+
+bool LLWebSharing::receiveSessionCookie(const std::string& cookie)
+{
+ LL_DEBUGS("WebSharing") << "Received AU session cookie: " << cookie << LL_ENDL;
+ mSessionCookie = cookie;
+
+ // Fetch a security token using the new session cookie.
+ LLWebSharing::instance().sendSecurityTokenRequest();
+
+ return (!mSessionCookie.empty());
+}
+
+bool LLWebSharing::receiveSecurityToken(const std::string& token, const std::string& expires)
+{
+ mSecurityToken["st"] = token;
+ mSecurityToken["expires"] = LLDate(expires);
+
+ if (!securityTokenIsValid(mSecurityToken))
+ {
+ LL_WARNS("WebSharing") << "Invalid security token received: \"" << token << "\" Expires: " << expires << LL_ENDL;
+ return false;
+ }
+
+ LL_DEBUGS("WebSharing") << "Received security token: \"" << token << "\" Expires: " << expires << LL_ENDL;
+ mRetries = 0;
+
+ // Continue the upload process now that we have a security token.
+ sendUploadRequest();
+
+ return true;
+}
+
+void LLWebSharing::sendConfigRequest()
+{
+ std::string config_url = gSavedSettings.getString("SnapshotConfigURL");
+ LL_DEBUGS("WebSharing") << "Requesting Snapshot Sharing config data from: " << config_url << LL_ENDL;
+
+ LLSD headers = LLSD::emptyMap();
+ headers["Accept"] = "application/json";
+
+ LLHTTPClient::get(config_url, new LLWebSharingConfigResponder(), headers);
+}
+
+void LLWebSharing::sendOpenIDAuthRequest()
+{
+ std::string auth_url = mConfig["openIdAuthUrl"];
+ LL_DEBUGS("WebSharing") << "Starting OpenID Auth: " << auth_url << LL_ENDL;
+
+ LLSD headers = LLSD::emptyMap();
+ headers["Cookie"] = mOpenIDCookie;
+ headers["Accept"] = "*/*";
+
+ // Send request, successful login will trigger fetching a security token.
+ LLHTTPClient::get(auth_url, new LLWebSharingOpenIDAuthResponder(), headers);
+}
+
+bool LLWebSharing::retryOpenIDAuth()
+{
+ if (mRetries++ >= MAX_AUTH_RETRIES)
+ {
+ LL_WARNS("WebSharing") << "Exceeded maximum number of authorization attempts, aborting." << LL_ENDL;
+ mRetries = 0;
+ return false;
+ }
+
+ LL_WARNS("WebSharing") << "Authorization failed, retrying (" << mRetries << "/" << MAX_AUTH_RETRIES << ")" << LL_ENDL;
+ sendOpenIDAuthRequest();
+ return true;
+}
+
+void LLWebSharing::sendSecurityTokenRequest()
+{
+ std::string token_url = mConfig["securityTokenUrl"];
+ LL_DEBUGS("WebSharing") << "Fetching security token from: " << token_url << LL_ENDL;
+
+ LLSD headers = LLSD::emptyMap();
+ headers["Cookie"] = mSessionCookie;
+
+ headers["Accept"] = "application/json";
+ headers["Content-Type"] = "application/json";
+
+ std::ostringstream body;
+ body << "{ \"gadgets\": [{ \"url\":\""
+ << mConfig["gadgetSpecUrl"].asString()
+ << "\" }] }";
+
+ // postRaw() takes ownership of the buffer and releases it later.
+ size_t size = body.str().size();
+ U8 *data = new U8[size];
+ memcpy(data, body.str().data(), size);
+
+ // Send request, receiving a valid token will trigger snapshot upload.
+ LLHTTPClient::postRaw(token_url, data, size, new LLWebSharingSecurityTokenResponder(), headers);
+}
+
+void LLWebSharing::sendUploadRequest()
+{
+ LLUriTemplate upload_template(mConfig["openSocialRpcUrlTemplate"].asString());
+ std::string upload_url(upload_template.buildURI(mSecurityToken));
+
+ LL_DEBUGS("WebSharing") << "Posting upload to: " << upload_url << LL_ENDL;
+
+ static const std::string BOUNDARY("------------abcdef012345xyZ");
+
+ LLSD headers = LLSD::emptyMap();
+ headers["Cookie"] = mSessionCookie;
+
+ headers["Accept"] = "application/json";
+ headers["Content-Type"] = "multipart/form-data; boundary=" + BOUNDARY;
+
+ std::ostringstream body;
+ body << "--" << BOUNDARY << "\r\n"
+ << "Content-Disposition: form-data; name=\"request\"\r\n\r\n"
+ << "[{"
+ << "\"method\":\"mediaItems.create\","
+ << "\"params\": {"
+ << "\"userId\":[\"@me\"],"
+ << "\"groupId\":\"@self\","
+ << "\"mediaItem\": {"
+ << "\"mimeType\":\"image/jpeg\","
+ << "\"type\":\"image\","
+ << "\"url\":\"@field:image1\""
+ << "}"
+ << "},"
+ << "\"id\":\"newMediaItem\""
+ << "}]"
+ << "--" << BOUNDARY << "\r\n"
+ << "Content-Disposition: form-data; name=\"image1\"\r\n\r\n";
+
+ // Insert the image data.
+ // *FIX: Treating this as a string will probably screw it up ...
+ U8* image_data = mImage->getData();
+ for (S32 i = 0; i < mImage->getDataSize(); ++i)
+ {
+ body << image_data[i];
+ }
+
+ body << "\r\n--" << BOUNDARY << "--\r\n";
+
+ // postRaw() takes ownership of the buffer and releases it later.
+ size_t size = body.str().size();
+ U8 *data = new U8[size];
+ memcpy(data, body.str().data(), size);
+
+ // Send request, successful upload will trigger posting metadata.
+ LLHTTPClient::postRaw(upload_url, data, size, new LLWebSharingUploadResponder(), headers);
+}
+
+bool LLWebSharing::validateConfig()
+{
+ // Check the OpenID Cookie has been set.
+ if (mOpenIDCookie.empty())
+ {
+ mEnabled = false;
+ return mEnabled;
+ }
+
+ if (!mConfig.isMap())
+ {
+ mEnabled = false;
+ return mEnabled;
+ }
+
+ // Template to match the received config against.
+ LLSD required(LLSD::emptyMap());
+ required["gadgetSpecUrl"] = "";
+ required["loginTokenUrl"] = "";
+ required["openIdAuthUrl"] = "";
+ required["photoPageUrlTemplate"] = "";
+ required["openSocialRpcUrlTemplate"] = "";
+ required["securityTokenUrl"] = "";
+ required["tokenBasedLoginUrlTemplate"] = "";
+ required["viewerIdUrl"] = "";
+
+ std::string mismatch(llsd_matches(required, mConfig));
+ if (!mismatch.empty())
+ {
+ LL_WARNS("WebSharing") << "Malformed config data response: " << mismatch << LL_ENDL;
+ mEnabled = false;
+ return mEnabled;
+ }
+
+ mEnabled = true;
+ return mEnabled;
+}
+
+// static
+bool LLWebSharing::securityTokenIsValid(LLSD& token)
+{
+ return (token.has("st") &&
+ token.has("expires") &&
+ (token["st"].asString() != "") &&
+ (token["expires"].asDate() > LLDate::now()));
+}
+
+
+
+///////////////////////////////////////////////////////////////////////////////
+//
+LLUriTemplate::LLUriTemplate(const std::string& uri_template)
+ :
+ mTemplate(uri_template)
+{
+}
+
+std::string LLUriTemplate::buildURI(const LLSD& vars)
+{
+ // *TODO: Separate parsing the template from building the URI.
+ // Parsing only needs to happen on construction/assignnment.
+
+ static const std::string VAR_NAME_REGEX("[[:alpha:]][[:alnum:]\\._-]*");
+ // Capture var name with and without surrounding {}
+ static const std::string VAR_REGEX("\\{(" + VAR_NAME_REGEX + ")\\}");
+ // Capture delimiter and comma separated list of var names.
+ static const std::string JOIN_REGEX("\\{-join\\|(&)\\|(" + VAR_NAME_REGEX + "(?:," + VAR_NAME_REGEX + ")*)\\}");
+
+ std::string uri = mTemplate;
+ boost::smatch results;
+
+ // Validate and expand join operators : {-join|&|var1,var2,...}
+
+ boost::regex join_regex(JOIN_REGEX);
+
+ while (boost::regex_search(uri, results, join_regex))
+ {
+ // Extract the list of var names from the results.
+ std::string delim = results[1].str();
+ std::string var_list = results[2].str();
+
+ // Expand the list of vars into a query string with their values
+ std::string query = expandJoin(delim, var_list, vars);
+
+ // Substitute the query string into the template.
+ uri = boost::regex_replace(uri, join_regex, query, boost::format_first_only);
+ }
+
+ // Expand vars : {var1}
+
+ boost::regex var_regex(VAR_REGEX);
+
+ std::set<std::string> var_names;
+ std::string::const_iterator start = uri.begin();
+ std::string::const_iterator end = uri.end();
+
+ // Extract the var names used.
+ while (boost::regex_search(start, end, results, var_regex))
+ {
+ var_names.insert(results[1].str());
+ start = results[0].second;
+ }
+
+ // Replace each var with its value.
+ for (std::set<std::string>::const_iterator it = var_names.begin(); it != var_names.end(); ++it)
+ {
+ std::string var = *it;
+ if (vars.has(var))
+ {
+ boost::replace_all(uri, "{" + var + "}", vars[var].asString());
+ }
+ }
+
+ return uri;
+}
+
+std::string LLUriTemplate::expandJoin(const std::string& delim, const std::string& var_list, const LLSD& vars)
+{
+ std::ostringstream query;
+
+ typedef boost::tokenizer<boost::char_separator<char> > tokenizer;
+ boost::char_separator<char> sep(",");
+ tokenizer var_names(var_list, sep);
+ tokenizer::const_iterator it = var_names.begin();
+
+ // First var does not need a delimiter
+ if (it != var_names.end())
+ {
+ const std::string& name = *it;
+ if (vars.has(name))
+ {
+ // URL encode the value before appending the name=value pair.
+ query << name << "=" << escapeURL(vars[name].asString());
+ }
+ }
+
+ for (++it; it != var_names.end(); ++it)
+ {
+ const std::string& name = *it;
+ if (vars.has(name))
+ {
+ // URL encode the value before appending the name=value pair.
+ query << delim << name << "=" << escapeURL(vars[name].asString());
+ }
+ }
+
+ return query.str();
+}
+
+// static
+std::string LLUriTemplate::escapeURL(const std::string& unescaped)
+{
+ char* escaped = curl_escape(unescaped.c_str(), unescaped.size());
+ std::string result = escaped;
+ curl_free(escaped);
+ return result;
+}
+
diff --git a/indra/newview/llwebsharing.h b/indra/newview/llwebsharing.h
new file mode 100644
index 0000000000..ad9c99c224
--- /dev/null
+++ b/indra/newview/llwebsharing.h
@@ -0,0 +1,224 @@
+/**
+ * @file llwebsharing.h
+ * @author Aimee
+ * @brief Web Snapshot Sharing
+ *
+ * $LicenseInfo:firstyear=2010&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_LLWEBSHARING_H
+#define LL_LLWEBSHARING_H
+
+#include "llimagejpeg.h"
+#include "llsingleton.h"
+
+
+
+/**
+ * @class LLWebSharing
+ *
+ * Manages authentication to, and interaction with, a web service allowing the
+ * upload of snapshot images taken within the viewer, using OpenID and the
+ * OpenSocial APIs.
+ * http://www.opensocial.org/Technical-Resources/opensocial-spec-v09/RPC-Protocol.html
+ */
+class LLWebSharing : public LLSingleton<LLWebSharing>
+{
+ LOG_CLASS(LLWebSharing);
+public:
+ /*
+ * Performs initial setup, by requesting config data from the web service if
+ * it has not already been received.
+ */
+ void init();
+
+ /*
+ * @return true if both the OpenID cookie and config data have been received.
+ */
+ bool enabled() const { return mEnabled; };
+
+ /*
+ * Sets the OpenID cookie to use for login to the web service.
+ *
+ * @param cookie a string containing the OpenID cookie.
+ *
+ * @return true if both the OpenID cookie and config data have been received.
+ */
+ bool setOpenIDCookie(const std::string& cookie);
+
+ /*
+ * Receive config data used to connect to the web service.
+ *
+ * @param config an LLSD map of URL templates for the web service end-points.
+ *
+ * @return true if both the OpenID cookie and config data have been received.
+ *
+ * @see sendConfigRequest()
+ */
+ bool receiveConfig(const LLSD& config);
+
+ /*
+ * Receive the session cookie from the web service, which is the result of
+ * the OpenID login process.
+ *
+ * @see sendOpenIDAuthRequest()
+ */
+ bool receiveSessionCookie(const std::string& cookie);
+
+ /*
+ * Receive a security token for the upload service.
+ *
+ * @see sendSecurityTokenRequest()
+ */
+ bool receiveSecurityToken(const std::string& token, const std::string& expires);
+
+ /*
+ * Restarts the authentication process if the maximum number of retries has
+ * not been exceeded.
+ *
+ * @return true if retrying, false if LLWebSharing::MAX_AUTH_RETRIES has been exceeded.
+ */
+ bool retryOpenIDAuth();
+
+ /*
+ * Post a snapshot to the upload service.
+ *
+ * @return true if accepted for upload, false if already uploading another image.
+ */
+ bool shareSnapshot(LLImageJPEG* snapshot, LLSD& metadata);
+
+private:
+ static const S32 MAX_AUTH_RETRIES = 4;
+
+ friend class LLSingleton<LLWebSharing>;
+
+ LLWebSharing();
+ ~LLWebSharing() {};
+
+ /*
+ * Request a map of URLs and URL templates to the web service end-points.
+ *
+ * @see receiveConfig()
+ */
+ void sendConfigRequest();
+
+ /*
+ * Initiate the OpenID login process.
+ *
+ * @see receiveSessionCookie()
+ */
+ void sendOpenIDAuthRequest();
+
+ /*
+ * Request a security token for the upload service.
+ *
+ * @see receiveSecurityToken()
+ */
+ void sendSecurityTokenRequest();
+
+ /*
+ * Request a security token for the upload service.
+ *
+ * @see receiveSecurityToken()
+ */
+ void sendUploadRequest();
+
+ /*
+ * Checks all necessary config information has been received, and sets mEnabled.
+ *
+ * @return true if both the OpenID cookie and config data have been received.
+ */
+ bool validateConfig();
+
+ /*
+ * Checks the security token is present and has not expired.
+ *
+ * @param token an LLSD map containing the token string and the time it expires.
+ *
+ * @return true if the token is not empty and has not expired.
+ */
+ static bool securityTokenIsValid(LLSD& token);
+
+ std::string mOpenIDCookie;
+ std::string mSessionCookie;
+ LLSD mSecurityToken;
+
+ LLSD mConfig;
+ bool mEnabled;
+
+ LLPointer<LLImageJPEG> mImage;
+ LLSD mMetadata;
+
+ S32 mRetries;
+};
+
+/**
+ * @class LLUriTemplate
+ *
+ * @brief Builds complete URIs, given URI template and a map of keys and values
+ * to use for substition.
+ * Note: This is only a partial implementation of a draft standard required
+ * by the web API used by LLWebSharing.
+ * See: http://tools.ietf.org/html/draft-gregorio-uritemplate-03
+ *
+ * @see LLWebSharing
+ */
+class LLUriTemplate
+{
+ LOG_CLASS(LLUriTemplate);
+public:
+ LLUriTemplate(const std::string& uri_template);
+ ~LLUriTemplate() {};
+
+ /*
+ * Builds a complete URI from the template.
+ *
+ * @param vars an LLSD map of keys and values for substitution.
+ *
+ * @return a string containing the complete URI.
+ */
+ std::string buildURI(const LLSD& vars);
+
+private:
+ /*
+ * Builds a URL query string.
+ *
+ * @param delim a string containing the separator to use between name=value pairs.
+ * @param var_list a string containing a comma separated list of variable names.
+ * @param vars an LLSD map of keys and values for substitution.
+ *
+ * @return a URL query string.
+ */
+ std::string expandJoin(const std::string& delim, const std::string& var_list, const LLSD& vars);
+
+ /*
+ * URL escape the given string.
+ * LLWeb::escapeURL() only does a partial escape, so this uses curl_escape() instead.
+ */
+ static std::string escapeURL(const std::string& unescaped);
+
+ std::string mTemplate;
+};
+
+
+
+#endif // LL_LLWEBSHARING_H
diff --git a/indra/newview/llwind.cpp b/indra/newview/llwind.cpp
index cbee4ddae1..69d3090442 100644
--- a/indra/newview/llwind.cpp
+++ b/indra/newview/llwind.cpp
@@ -2,31 +2,25 @@
* @file llwind.cpp
* @brief LLWind class implementation
*
- * $LicenseInfo:firstyear=2000&license=viewergpl$
- *
- * Copyright (c) 2000-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2000&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llwind.h b/indra/newview/llwind.h
index 7a4582d9d0..925cb6d642 100644
--- a/indra/newview/llwind.h
+++ b/indra/newview/llwind.h
@@ -2,31 +2,25 @@
* @file llwind.h
* @brief LLWind class header file
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llwindebug.cpp b/indra/newview/llwindebug.cpp
new file mode 100644
index 0000000000..551d0be8d7
--- /dev/null
+++ b/indra/newview/llwindebug.cpp
@@ -0,0 +1,191 @@
+/**
+ * @file llwindebug.cpp
+ * @brief Windows debugging functions
+ *
+ * $LicenseInfo:firstyear=2004&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 "llwindebug.h"
+#include "lldir.h"
+
+
+// based on dbghelp.h
+typedef BOOL (WINAPI *MINIDUMPWRITEDUMP)(HANDLE hProcess, DWORD dwPid, HANDLE hFile, MINIDUMP_TYPE DumpType,
+ CONST PMINIDUMP_EXCEPTION_INFORMATION ExceptionParam,
+ CONST PMINIDUMP_USER_STREAM_INFORMATION UserStreamParam,
+ CONST PMINIDUMP_CALLBACK_INFORMATION CallbackParam
+ );
+
+MINIDUMPWRITEDUMP f_mdwp = NULL;
+
+
+class LLMemoryReserve {
+public:
+ LLMemoryReserve();
+ ~LLMemoryReserve();
+ void reserve();
+ void release();
+protected:
+ unsigned char *mReserve;
+ static const size_t MEMORY_RESERVATION_SIZE;
+};
+
+LLMemoryReserve::LLMemoryReserve() :
+ mReserve(NULL)
+{
+};
+
+LLMemoryReserve::~LLMemoryReserve()
+{
+ release();
+}
+
+// I dunno - this just seemed like a pretty good value.
+const size_t LLMemoryReserve::MEMORY_RESERVATION_SIZE = 5 * 1024 * 1024;
+
+void LLMemoryReserve::reserve()
+{
+ if(NULL == mReserve)
+ mReserve = new unsigned char[MEMORY_RESERVATION_SIZE];
+};
+
+void LLMemoryReserve::release()
+{
+ delete [] mReserve;
+ mReserve = NULL;
+};
+
+static LLMemoryReserve gEmergencyMemoryReserve;
+
+
+LONG NTAPI vectoredHandler(PEXCEPTION_POINTERS exception_infop)
+{
+ LLWinDebug::instance().generateMinidump(exception_infop);
+ return EXCEPTION_CONTINUE_SEARCH;
+}
+
+// static
+void LLWinDebug::init()
+{
+ static bool s_first_run = true;
+ // Load the dbghelp dll now, instead of waiting for the crash.
+ // Less potential for stack mangling
+
+ // Don't install vectored exception handler if being debugged.
+ if(IsDebuggerPresent()) return;
+
+ if (s_first_run)
+ {
+ // First, try loading from the directory that the app resides in.
+ std::string local_dll_name = gDirUtilp->findFile("dbghelp.dll", gDirUtilp->getWorkingDir(), gDirUtilp->getExecutableDir());
+
+ HMODULE hDll = NULL;
+ hDll = LoadLibraryA(local_dll_name.c_str());
+ if (!hDll)
+ {
+ hDll = LoadLibrary(L"dbghelp.dll");
+ }
+
+ if (!hDll)
+ {
+ LL_WARNS("AppInit") << "Couldn't find dbghelp.dll!" << LL_ENDL;
+ }
+ else
+ {
+ f_mdwp = (MINIDUMPWRITEDUMP) GetProcAddress(hDll, "MiniDumpWriteDump");
+
+ if (!f_mdwp)
+ {
+ FreeLibrary(hDll);
+ hDll = NULL;
+ }
+ }
+
+ gEmergencyMemoryReserve.reserve();
+
+ s_first_run = false;
+
+ // Add this exeption hanlder to save windows style minidump.
+ AddVectoredExceptionHandler(0, &vectoredHandler);
+ }
+}
+
+void LLWinDebug::writeDumpToFile(MINIDUMP_TYPE type, MINIDUMP_EXCEPTION_INFORMATION *ExInfop, const std::string& filename)
+{
+ // Temporary fix to switch out the code that writes the DMP file.
+ // Fix coming that doesn't write a mini dump file for regular C++ exceptions.
+ const bool enable_write_dump_file = false;
+ if ( enable_write_dump_file )
+ {
+ if(f_mdwp == NULL || gDirUtilp == NULL)
+ {
+ return;
+ }
+ else
+ {
+ std::string dump_path = gDirUtilp->getExpandedFilename(LL_PATH_LOGS, filename);
+
+ HANDLE hFile = CreateFileA(dump_path.c_str(),
+ GENERIC_WRITE,
+ FILE_SHARE_WRITE,
+ NULL,
+ CREATE_ALWAYS,
+ FILE_ATTRIBUTE_NORMAL,
+ NULL);
+
+ if (hFile != INVALID_HANDLE_VALUE)
+ {
+ // Write the dump, ignoring the return value
+ f_mdwp(GetCurrentProcess(),
+ GetCurrentProcessId(),
+ hFile,
+ type,
+ ExInfop,
+ NULL,
+ NULL);
+
+ CloseHandle(hFile);
+ }
+
+ }
+ }
+}
+
+// static
+void LLWinDebug::generateMinidump(struct _EXCEPTION_POINTERS *exception_infop)
+{
+ std::string dump_path = gDirUtilp->getExpandedFilename(LL_PATH_LOGS,
+ "SecondLifeException");
+ if (exception_infop)
+ {
+ // Since there is exception info... Release the hounds.
+ gEmergencyMemoryReserve.release();
+
+ _MINIDUMP_EXCEPTION_INFORMATION ExInfo;
+
+ ExInfo.ThreadId = ::GetCurrentThreadId();
+ ExInfo.ExceptionPointers = exception_infop;
+ ExInfo.ClientPointers = NULL;
+ writeDumpToFile((MINIDUMP_TYPE)(MiniDumpWithDataSegs | MiniDumpWithIndirectlyReferencedMemory), &ExInfo, "SecondLife.dmp");
+ }
+}
diff --git a/indra/newview/llwindebug.h b/indra/newview/llwindebug.h
new file mode 100644
index 0000000000..3837825d31
--- /dev/null
+++ b/indra/newview/llwindebug.h
@@ -0,0 +1,43 @@
+/**
+ * @file llwindebug.h
+ * @brief LLWinDebug class header file
+ *
+ * $LicenseInfo:firstyear=2004&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_LLWINDEBUG_H
+#define LL_LLWINDEBUG_H
+
+#include "stdtypes.h"
+#include <dbghelp.h>
+
+class LLWinDebug:
+ public LLSingleton<LLWinDebug>
+{
+public:
+ static void init();
+ static void generateMinidump(struct _EXCEPTION_POINTERS *pExceptionInfo = NULL);
+private:
+ static void writeDumpToFile(MINIDUMP_TYPE type, MINIDUMP_EXCEPTION_INFORMATION *ExInfop, const std::string& filename);
+};
+
+#endif // LL_LLWINDEBUG_H
diff --git a/indra/newview/llwlanimator.cpp b/indra/newview/llwlanimator.cpp
index f7e40e49f9..a94a2e41aa 100644
--- a/indra/newview/llwlanimator.cpp
+++ b/indra/newview/llwlanimator.cpp
@@ -2,31 +2,25 @@
* @file llwlanimator.cpp
* @brief Implementation for the LLWLAnimator class.
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llwlanimator.h b/indra/newview/llwlanimator.h
index 533fd120db..5677290213 100644
--- a/indra/newview/llwlanimator.h
+++ b/indra/newview/llwlanimator.h
@@ -2,31 +2,25 @@
* @file llwlanimator.h
* @brief Interface for the LLWLAnimator class.
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llwldaycycle.cpp b/indra/newview/llwldaycycle.cpp
index 000d50795f..85b3d62a49 100644
--- a/indra/newview/llwldaycycle.cpp
+++ b/indra/newview/llwldaycycle.cpp
@@ -2,31 +2,25 @@
* @file llwldaycycle.cpp
* @brief Implementation for the LLWLDayCycle class.
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llwldaycycle.h b/indra/newview/llwldaycycle.h
index eed6a78c18..5cbf72191d 100644
--- a/indra/newview/llwldaycycle.h
+++ b/indra/newview/llwldaycycle.h
@@ -2,31 +2,25 @@
* @file llwlparammanager.h
* @brief Implementation for the LLWLParamManager class.
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llwlparammanager.cpp b/indra/newview/llwlparammanager.cpp
index 7cac564619..9b6047395a 100644
--- a/indra/newview/llwlparammanager.cpp
+++ b/indra/newview/llwlparammanager.cpp
@@ -2,31 +2,25 @@
* @file llwlparammanager.cpp
* @brief Implementation for the LLWLParamManager class.
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llwlparammanager.h b/indra/newview/llwlparammanager.h
index a117dc1b03..8c6329e769 100644
--- a/indra/newview/llwlparammanager.h
+++ b/indra/newview/llwlparammanager.h
@@ -2,31 +2,25 @@
* @file llwlparammanager.h
* @brief Implementation for the LLWLParamManager class.
*
- * $LicenseInfo:firstyear=2007&license=viewergpl$
- *
- * Copyright (c) 2007-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2007&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llwlparamset.cpp b/indra/newview/llwlparamset.cpp
index ea9c00ae81..cf06766d73 100644
--- a/indra/newview/llwlparamset.cpp
+++ b/indra/newview/llwlparamset.cpp
@@ -2,31 +2,25 @@
* @file llwlparamset.cpp
* @brief Implementation for the LLWLParamSet class.
*
- * $LicenseInfo:firstyear=2005&license=viewergpl$
- *
- * Copyright (c) 2005-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llwlparamset.h b/indra/newview/llwlparamset.h
index 21d646f3b0..487e2bf922 100644
--- a/indra/newview/llwlparamset.h
+++ b/indra/newview/llwlparamset.h
@@ -2,31 +2,25 @@
* @file llwlparamset.h
* @brief Interface for the LLWLParamSet class.
*
- * $LicenseInfo:firstyear=2005&license=viewergpl$
- *
- * Copyright (c) 2005-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llworld.cpp b/indra/newview/llworld.cpp
index f30567f481..5760d04a08 100644
--- a/indra/newview/llworld.cpp
+++ b/indra/newview/llworld.cpp
@@ -2,31 +2,25 @@
* @file llworld.cpp
* @brief Initial test structure to organize viewer regions
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -127,6 +121,7 @@ void LLWorld::destroyClass()
LLViewerRegion* region_to_delete = *region_it++;
removeRegion(region_to_delete->getHost());
}
+ LLVOCache::getInstance()->destroyClass() ;
LLViewerPartSim::getInstance()->destroyClass();
}
@@ -262,6 +257,8 @@ void LLWorld::removeRegion(const LLHost &host)
llwarns << "Disabling region " << regionp->getName() << " that agent is in!" << llendl;
LLAppViewer::instance()->forceDisconnect(LLTrans::getString("YouHaveBeenDisconnected"));
+
+ regionp->saveObjectCache() ; //force to save objects here in case that the object cache is about to be destroyed.
return;
}
@@ -1055,9 +1052,11 @@ void LLWorld::disconnectRegions()
}
}
+static LLFastTimer::DeclareTimer FTM_ENABLE_SIMULATOR("Enable Sim");
void process_enable_simulator(LLMessageSystem *msg, void **user_data)
{
+ LLFastTimer t(FTM_ENABLE_SIMULATOR);
// enable the appropriate circuit for this simulator and
// add its values into the gSimulator structure
U64 handle;
diff --git a/indra/newview/llworld.h b/indra/newview/llworld.h
index 5310009d7c..4465fde210 100644
--- a/indra/newview/llworld.h
+++ b/indra/newview/llworld.h
@@ -7,31 +7,25 @@
* neighboring regions. As the user crosses region boundaries, new
* regions are added to the world and distant ones are rolled up.
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llworldmap.cpp b/indra/newview/llworldmap.cpp
index 66cb02ce99..350ba39b45 100644
--- a/indra/newview/llworldmap.cpp
+++ b/indra/newview/llworldmap.cpp
@@ -2,31 +2,25 @@
* @file llworldmap.cpp
* @brief Underlying data representation for map of the world
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -37,6 +31,7 @@
#include "llworldmapmessage.h"
#include "message.h"
#include "lltracker.h"
+#include "lluistring.h"
#include "llviewertexturelist.h"
#include "lltrans.h"
@@ -522,8 +517,12 @@ bool LLWorldMap::insertItem(U32 x_world, U32 y_world, std::string& name, LLUUID&
case MAP_ITEM_LAND_FOR_SALE: // land for sale
case MAP_ITEM_LAND_FOR_SALE_ADULT: // adult land for sale
{
- std::string tooltip = llformat("%d sq. m. L$%d", extra, extra2);
- new_item.setTooltip(tooltip);
+ static LLUIString tooltip_fmt = LLTrans::getString("worldmap_item_tooltip_format");
+
+ tooltip_fmt.setArg("[AREA]", llformat("%d", extra));
+ tooltip_fmt.setArg("[PRICE]", llformat("%d", extra2));
+ new_item.setTooltip(tooltip_fmt.getString());
+
if (type == MAP_ITEM_LAND_FOR_SALE)
{
siminfo->insertLandForSale(new_item);
diff --git a/indra/newview/llworldmap.h b/indra/newview/llworldmap.h
index e4e677eb64..73530b9694 100644
--- a/indra/newview/llworldmap.h
+++ b/indra/newview/llworldmap.h
@@ -2,31 +2,25 @@
* @file llworldmap.h
* @brief Underlying data storage for the map of the entire world.
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -52,7 +46,7 @@ public:
LLItemInfo(F32 global_x, F32 global_y, const std::string& name, LLUUID id);
// Setters
- void setTooltip(std::string& tooltip) { mToolTip = tooltip; }
+ void setTooltip(const std::string& tooltip) { mToolTip = tooltip; }
void setElevation(F64 z) { mPosGlobal.mdV[VZ] = z; }
void setCount(S32 count) { mCount = count; }
// void setSelected(bool selected) { mSelected = selected; }
diff --git a/indra/newview/llworldmapmessage.cpp b/indra/newview/llworldmapmessage.cpp
index 09c5b9b196..66d0d698ba 100644
--- a/indra/newview/llworldmapmessage.cpp
+++ b/indra/newview/llworldmapmessage.cpp
@@ -2,31 +2,25 @@
* @file llworldmapmessage.cpp
* @brief Handling of the messages to the DB made by and for the world map.
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llworldmapmessage.h b/indra/newview/llworldmapmessage.h
index 2c8fedcb10..12b6ef4792 100644
--- a/indra/newview/llworldmapmessage.h
+++ b/indra/newview/llworldmapmessage.h
@@ -2,31 +2,25 @@
* @file llworldmapmessage.h
* @brief Handling of the messages to the DB made by and for the world map.
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llworldmapview.cpp b/indra/newview/llworldmapview.cpp
index 081a3721b1..0c17b5e297 100644
--- a/indra/newview/llworldmapview.cpp
+++ b/indra/newview/llworldmapview.cpp
@@ -2,31 +2,25 @@
* @file llworldmapview.cpp
* @brief LLWorldMapView class implementation
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llworldmapview.h b/indra/newview/llworldmapview.h
index 9eecacb2d8..9ab53b1ba3 100644
--- a/indra/newview/llworldmapview.h
+++ b/indra/newview/llworldmapview.h
@@ -2,31 +2,25 @@
* @file llworldmapview.h
* @brief LLWorldMapView class header file
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llworldmipmap.cpp b/indra/newview/llworldmipmap.cpp
index debd6b611f..be8298daab 100644
--- a/indra/newview/llworldmipmap.cpp
+++ b/indra/newview/llworldmipmap.cpp
@@ -2,31 +2,25 @@
* @file llworldmipmap.cpp
* @brief Data storage for the S3 mipmap of the entire world.
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llworldmipmap.h b/indra/newview/llworldmipmap.h
index ecf1003468..963aac1403 100644
--- a/indra/newview/llworldmipmap.h
+++ b/indra/newview/llworldmipmap.h
@@ -2,31 +2,25 @@
* @file llworldmipmap.h
* @brief Data storage for the S3 mipmap of the entire world.
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llworldview.cpp b/indra/newview/llworldview.cpp
index b44a365677..f5dc2a5290 100644
--- a/indra/newview/llworldview.cpp
+++ b/indra/newview/llworldview.cpp
@@ -2,31 +2,25 @@
* @file llworldview.cpp
* @brief LLWorldView class implementation
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llxmlrpclistener.cpp b/indra/newview/llxmlrpclistener.cpp
index 8237132ac5..2596f239ca 100644
--- a/indra/newview/llxmlrpclistener.cpp
+++ b/indra/newview/llxmlrpclistener.cpp
@@ -4,8 +4,25 @@
* @date 2009-03-18
* @brief Implementation for llxmlrpclistener.
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- * Copyright (c) 2009, Linden Research, Inc.
+ * $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$
*/
diff --git a/indra/newview/llxmlrpclistener.h b/indra/newview/llxmlrpclistener.h
index 120c2b329b..58b38ce1cf 100644
--- a/indra/newview/llxmlrpclistener.h
+++ b/indra/newview/llxmlrpclistener.h
@@ -7,8 +7,25 @@
* which this class listens, and by the expected content of LLSD it
* receives.
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- * Copyright (c) 2009, Linden Research, Inc.
+ * $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$
*/
diff --git a/indra/newview/llxmlrpctransaction.cpp b/indra/newview/llxmlrpctransaction.cpp
index 1d10ec7b28..257884d921 100644
--- a/indra/newview/llxmlrpctransaction.cpp
+++ b/indra/newview/llxmlrpctransaction.cpp
@@ -2,31 +2,25 @@
* @file llxmlrpctransaction.cpp
* @brief LLXMLRPCTransaction and related class implementations
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/llxmlrpctransaction.h b/indra/newview/llxmlrpctransaction.h
index 8beb2e2623..f2589c7f41 100644
--- a/indra/newview/llxmlrpctransaction.h
+++ b/indra/newview/llxmlrpctransaction.h
@@ -2,31 +2,25 @@
* @file llxmlrpctransaction.h
* @brief LLXMLRPCTransaction and related class header file
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/macmain.h b/indra/newview/macmain.h
index f2b1f6209d..11c909a8c3 100644
--- a/indra/newview/macmain.h
+++ b/indra/newview/macmain.h
@@ -2,31 +2,25 @@
* @file macmain.h
* @brief Main Mac viewer defines
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/macutil_Prefix.h b/indra/newview/macutil_Prefix.h
index 85a48724cc..fd8e927a08 100644
--- a/indra/newview/macutil_Prefix.h
+++ b/indra/newview/macutil_Prefix.h
@@ -2,31 +2,25 @@
* @file macutil_Prefix.h
* @brief Precompiled prefix file
*
- * $LicenseInfo:firstyear=2005&license=viewergpl$
- *
- * Copyright (c) 2005-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/macview_Prefix.h b/indra/newview/macview_Prefix.h
index 07f8093426..5936197a85 100644
--- a/indra/newview/macview_Prefix.h
+++ b/indra/newview/macview_Prefix.h
@@ -2,31 +2,25 @@
* @file macview_Prefix.h
* @brief Prefix header for all source files of the 'newview' target in the 'newview' project.
*
- * $LicenseInfo:firstyear=2003&license=viewergpl$
- *
- * Copyright (c) 2003-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2003&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/noise.cpp b/indra/newview/noise.cpp
index df8922e546..5f2c718b49 100644
--- a/indra/newview/noise.cpp
+++ b/indra/newview/noise.cpp
@@ -2,31 +2,25 @@
* @file noise.cpp
* @brief Perlin noise routines for procedural textures, etc
*
- * $LicenseInfo:firstyear=2000&license=viewergpl$
- *
- * Copyright (c) 2000-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2000&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -36,6 +30,7 @@
#include "llrand.h"
+
// static
#define B 0x100
S32 p[B + B + 2];
diff --git a/indra/newview/noise.h b/indra/newview/noise.h
index d324c52e44..0923bffcf2 100644
--- a/indra/newview/noise.h
+++ b/indra/newview/noise.h
@@ -2,31 +2,25 @@
* @file noise.h
* @brief Perlin noise routines for procedural textures, etc
*
- * $LicenseInfo:firstyear=2000&license=viewergpl$
- *
- * Copyright (c) 2000-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2000&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/pipeline.cpp b/indra/newview/pipeline.cpp
index ee3a2fc34f..1ee3b84b5e 100644
--- a/indra/newview/pipeline.cpp
+++ b/indra/newview/pipeline.cpp
@@ -2,31 +2,25 @@
* @file pipeline.cpp
* @brief Rendering pipeline.
*
- * $LicenseInfo:firstyear=2005&license=viewergpl$
- *
- * Copyright (c) 2005-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -191,6 +185,7 @@ std::string gPoolNames[] =
};
void drawBox(const LLVector3& c, const LLVector3& r);
+void drawBoxOutline(const LLVector3& pos, const LLVector3& size);
U32 nhpo2(U32 v)
{
@@ -268,7 +263,8 @@ BOOL LLPipeline::sRenderHighlight = TRUE;
BOOL LLPipeline::sForceOldBakedUpload = FALSE;
S32 LLPipeline::sUseOcclusion = 0;
BOOL LLPipeline::sDelayVBUpdate = TRUE;
-BOOL LLPipeline::sFastAlpha = TRUE;
+BOOL LLPipeline::sAutoMaskAlphaDeferred = TRUE;
+BOOL LLPipeline::sAutoMaskAlphaNonDeferred = FALSE;
BOOL LLPipeline::sDisableShaders = FALSE;
BOOL LLPipeline::sRenderBump = TRUE;
BOOL LLPipeline::sUseTriStrips = TRUE;
@@ -328,7 +324,6 @@ LLPipeline::LLPipeline() :
mInitialized(FALSE),
mVertexShadersEnabled(FALSE),
mVertexShadersLoaded(0),
- mRenderTypeMask(0),
mRenderDebugFeatureMask(0),
mRenderDebugMask(0),
mOldRenderDebugMask(0),
@@ -362,6 +357,7 @@ void LLPipeline::init()
sDynamicLOD = gSavedSettings.getBOOL("RenderDynamicLOD");
sRenderBump = gSavedSettings.getBOOL("RenderObjectBump");
sUseTriStrips = gSavedSettings.getBOOL("RenderUseTriStrips");
+ LLVertexBuffer::sUseStreamDraw = gSavedSettings.getBOOL("RenderUseStreamVBO");
sRenderAttachedLights = gSavedSettings.getBOOL("RenderAttachedLights");
sRenderAttachedParticles = gSavedSettings.getBOOL("RenderAttachedParticles");
@@ -381,7 +377,11 @@ void LLPipeline::init()
LLViewerStats::getInstance()->mTrianglesDrawnStat.reset();
resetFrameStats();
- mRenderTypeMask = 0xffffffff; // All render types start on
+ for (U32 i = 0; i < NUM_RENDER_TYPES; ++i)
+ {
+ mRenderTypeEnabled[i] = TRUE; //all rendering types start enabled
+ }
+
mRenderDebugFeatureMask = 0xffffffff; // All debugging features on
mRenderDebugMask = 0; // All debug starts off
@@ -408,6 +408,8 @@ void LLPipeline::init()
{
mSpotLightFade[i] = 1.f;
}
+
+ setLightingDetail(-1);
}
LLPipeline::~LLPipeline()
@@ -510,6 +512,7 @@ void LLPipeline::destroyGL()
}
static LLFastTimer::DeclareTimer FTM_RESIZE_SCREEN_TEXTURE("Resize Screen Texture");
+
void LLPipeline::resizeScreenTexture()
{
LLFastTimer ft(FTM_RESIZE_SCREEN_TEXTURE);
@@ -566,9 +569,12 @@ void LLPipeline::allocateScreenBuffer(U32 resX, U32 resY)
F32 scale = gSavedSettings.getF32("RenderShadowResolutionScale");
+ //HACK: make alpha masking work on ATI depth shadows (work around for ATI driver bug)
+ U32 shadow_fmt = gGLManager.mIsATI ? GL_ALPHA : 0;
+
for (U32 i = 0; i < 4; i++)
{
- mShadow[i].allocate(U32(resX*scale),U32(resY*scale), 0, TRUE, FALSE, LLTexUnit::TT_RECT_TEXTURE);
+ mShadow[i].allocate(U32(resX*scale),U32(resY*scale), shadow_fmt, TRUE, FALSE, LLTexUnit::TT_RECT_TEXTURE);
}
@@ -577,11 +583,9 @@ void LLPipeline::allocateScreenBuffer(U32 resX, U32 resY)
for (U32 i = 4; i < 6; i++)
{
- mShadow[i].allocate(width, height, 0, TRUE, FALSE);
+ mShadow[i].allocate(width, height, shadow_fmt, TRUE, FALSE);
}
-
-
width = nhpo2(resX)/2;
height = nhpo2(resY)/2;
mLuminanceMap.allocate(width,height, GL_RGBA, FALSE, FALSE);
@@ -626,9 +630,11 @@ void LLPipeline::updateRenderDeferred()
{
BOOL deferred = (gSavedSettings.getBOOL("RenderDeferred") &&
LLRenderTarget::sUseFBO &&
+ LLFeatureManager::getInstance()->isFeatureAvailable("RenderDeferred") &&
gSavedSettings.getBOOL("VertexShaderEnable") &&
gSavedSettings.getBOOL("RenderAvatarVP") &&
- gSavedSettings.getBOOL("WindLightUseAtmosShaders")) ? TRUE : FALSE;
+ (gSavedSettings.getBOOL("WindLightUseAtmosShaders")) ? TRUE : FALSE) &&
+ !gUseWireframe;
sRenderDeferred = deferred;
}
@@ -903,13 +909,18 @@ S32 LLPipeline::setLightingDetail(S32 level)
if (level < 0)
{
- level = gSavedSettings.getS32("RenderLightingDetail");
+ if (gSavedSettings.getBOOL("VertexShaderEnable"))
+ {
+ level = 1;
+ }
+ else
+ {
+ level = 0;
+ }
}
level = llclamp(level, 0, getMaxLightingDetail());
if (level != mLightingDetail)
{
- gSavedSettings.setS32("RenderLightingDetail", level);
-
mLightingDetail = level;
if (mVertexShadersLoaded == 1)
@@ -1513,8 +1524,10 @@ BOOL LLPipeline::visibleObjectsInFrustum(LLCamera& camera)
BOOL LLPipeline::getVisibleExtents(LLCamera& camera, LLVector3& min, LLVector3& max)
{
- min = LLVector3(F32_MAX, F32_MAX, F32_MAX);
- max = LLVector3(-F32_MAX, -F32_MAX, -F32_MAX);
+ const F32 X = 65536.f;
+
+ min = LLVector3(X,X,X);
+ max = LLVector3(-X,-X,-X);
U32 saved_camera_id = LLViewerCamera::sCurCameraID;
LLViewerCamera::sCurCameraID = LLViewerCamera::CAMERA_WORLD;
@@ -1793,7 +1806,7 @@ void LLPipeline::rebuildPriorityGroups()
assertInitialized();
// Iterate through all drawables on the priority build queue,
- for (LLSpatialGroup::sg_list_t::iterator iter = mGroupQ1.begin();
+ for (LLSpatialGroup::sg_vector_t::iterator iter = mGroupQ1.begin();
iter != mGroupQ1.end(); ++iter)
{
LLSpatialGroup* group = *iter;
@@ -1953,23 +1966,31 @@ void LLPipeline::updateGeom(F32 max_dtime)
void LLPipeline::markVisible(LLDrawable *drawablep, LLCamera& camera)
{
LLMemType mt(LLMemType::MTYPE_PIPELINE_MARK_VISIBLE);
- if(!drawablep || drawablep->isDead())
+
+ if(drawablep && !drawablep->isDead())
{
- return;
- }
-
if (drawablep->isSpatialBridge())
{
- LLDrawable* root = ((LLSpatialBridge*) drawablep)->mDrawable;
-
- if (root && root->getParent() && root->getVObj() && root->getVObj()->isAttachment())
+ const LLDrawable* root = ((LLSpatialBridge*) drawablep)->mDrawable;
+ llassert(root); // trying to catch a bad assumption
+ if (root && // // this test may not be needed, see above
+ root->getVObj()->isAttachment())
+ {
+ LLDrawable* rootparent = root->getParent();
+ if (rootparent) // this IS sometimes NULL
+ {
+ LLViewerObject *vobj = rootparent->getVObj();
+ llassert(vobj); // trying to catch a bad assumption
+ if (vobj) // this test may not be needed, see above
{
- LLVOAvatar* av = root->getParent()->getVObj()->asAvatar();
+ const LLVOAvatar* av = vobj->asAvatar();
if (av && av->isImpostor())
{
return;
}
}
+ }
+ }
sCull->pushBridge((LLSpatialBridge*) drawablep);
}
else
@@ -1979,6 +2000,7 @@ void LLPipeline::markVisible(LLDrawable *drawablep, LLCamera& camera)
drawablep->setVisible(camera);
}
+}
void LLPipeline::markMoved(LLDrawable *drawablep, BOOL damped_motion)
{
@@ -2187,14 +2209,13 @@ static LLFastTimer::DeclareTimer FTM_RESET_DRAWORDER("Reset Draw Order");
void LLPipeline::stateSort(LLCamera& camera, LLCullResult &result)
{
- const U32 face_mask = (1 << LLPipeline::RENDER_TYPE_AVATAR) |
- (1 << LLPipeline::RENDER_TYPE_GROUND) |
- (1 << LLPipeline::RENDER_TYPE_TERRAIN) |
- (1 << LLPipeline::RENDER_TYPE_TREE) |
- (1 << LLPipeline::RENDER_TYPE_SKY) |
- (1 << LLPipeline::RENDER_TYPE_WATER);
-
- if (mRenderTypeMask & face_mask)
+ if (hasAnyRenderType(LLPipeline::RENDER_TYPE_AVATAR,
+ LLPipeline::RENDER_TYPE_GROUND,
+ LLPipeline::RENDER_TYPE_TERRAIN,
+ LLPipeline::RENDER_TYPE_TREE,
+ LLPipeline::RENDER_TYPE_SKY,
+ LLPipeline::RENDER_TYPE_WATER,
+ LLPipeline::END_RENDER_TYPES))
{
//clear faces from face pools
LLFastTimer t(FTM_RESET_DRAWORDER);
@@ -2252,7 +2273,6 @@ void LLPipeline::stateSort(LLCamera& camera, LLCullResult &result)
}
}
}
- llpushcallstacks ;
{
LLFastTimer ftm(FTM_STATESORT_DRAWABLE);
for (LLCullResult::drawable_list_t::iterator iter = sCull->beginVisibleList();
@@ -2265,15 +2285,12 @@ void LLPipeline::stateSort(LLCamera& camera, LLCullResult &result)
}
}
}
- llpushcallstacks ;
{
LLFastTimer ftm(FTM_CLIENT_COPY);
LLVertexBuffer::clientCopy();
}
- llpushcallstacks ;
- postSort(camera);
- llpushcallstacks ;
+ postSort(camera);
}
void LLPipeline::stateSort(LLSpatialGroup* group, LLCamera& camera)
@@ -2543,6 +2560,7 @@ void LLPipeline::postSort(LLCamera& camera)
assertInitialized();
+ llpushcallstacks ;
//rebuild drawable geometry
for (LLCullResult::sg_list_t::iterator i = sCull->beginDrawableGroups(); i != sCull->endDrawableGroups(); ++i)
{
@@ -2553,7 +2571,7 @@ void LLPipeline::postSort(LLCamera& camera)
group->rebuildGeom();
}
}
-
+ llpushcallstacks ;
//rebuild groups
sCull->assertDrawMapsEmpty();
@@ -2573,6 +2591,7 @@ void LLPipeline::postSort(LLCamera& camera)
rebuildPriorityGroups();
+ llpushcallstacks ;
const S32 bin_count = 1024*8;
@@ -2674,7 +2693,7 @@ void LLPipeline::postSort(LLCamera& camera)
std::sort(sCull->beginAlphaGroups(), sCull->endAlphaGroups(), LLSpatialGroup::CompareDepthGreater());
}
-
+ llpushcallstacks ;
// only render if the flag is set. The flag is only set if we are in edit mode or the toggle is set in the menus
if (LLFloaterReg::instanceVisible("beacons") && !sShadowRender)
{
@@ -2722,7 +2741,7 @@ void LLPipeline::postSort(LLCamera& camera)
forAllVisibleDrawables(renderSoundHighlights);
}
}
-
+ llpushcallstacks ;
// If managing your telehub, draw beacons at telehub and currently selected spawnpoint.
if (LLFloaterTelehub::renderBeacons())
{
@@ -2752,6 +2771,7 @@ void LLPipeline::postSort(LLCamera& camera)
}
//LLSpatialGroup::sNoDelete = FALSE;
+ llpushcallstacks ;
}
@@ -3191,11 +3211,24 @@ void LLPipeline::renderGeom(LLCamera& camera, BOOL forceVBOUpdate)
LLVertexBuffer::unbind();
- if (!LLPipeline::sReflectionRender && !LLPipeline::sRenderDeferred && gPipeline.hasRenderDebugFeatureMask(LLPipeline::RENDER_DEBUG_FEATURE_UI))
+ if (!LLPipeline::sReflectionRender && !LLPipeline::sRenderDeferred)
{
- // Render debugging beacons.
- gObjectList.renderObjectBeacons();
- gObjectList.resetObjectBeacons();
+ if (gPipeline.hasRenderDebugFeatureMask(LLPipeline::RENDER_DEBUG_FEATURE_UI))
+ {
+ // Render debugging beacons.
+ gObjectList.renderObjectBeacons();
+ gObjectList.resetObjectBeacons();
+ }
+ else
+ {
+ // Make sure particle effects disappear
+ LLHUDObject::renderAllForTimer();
+ }
+ }
+ else
+ {
+ // Make sure particle effects disappear
+ LLHUDObject::renderAllForTimer();
}
LLAppViewer::instance()->pingMainloopTimeout("Pipeline:RenderGeomEnd");
@@ -3415,26 +3448,14 @@ void LLPipeline::renderGeomPostDeferred(LLCamera& camera)
gGLLastMatrix = NULL;
glLoadMatrixd(gGLModelView);
- renderHighlights();
- mHighlightFaces.clear();
-
- renderDebug();
-
- LLVertexBuffer::unbind();
-
- if (gPipeline.hasRenderDebugFeatureMask(LLPipeline::RENDER_DEBUG_FEATURE_UI))
- {
- // Render debugging beacons.
- gObjectList.renderObjectBeacons();
- gObjectList.resetObjectBeacons();
- }
-
if (occlude)
{
occlude = FALSE;
gGLLastMatrix = NULL;
glLoadMatrixd(gGLModelView);
doOcclusion(camera);
+ gGLLastMatrix = NULL;
+ glLoadMatrixd(gGLModelView);
}
}
@@ -3597,12 +3618,17 @@ void LLPipeline::renderDebug()
for (U32 i = 0; i < 8; i++)
{
+ LLVector3* frust = mShadowCamera[i].mAgentFrustum;
+
if (i > 3)
+ { //render shadow frusta as volumes
+ if (mShadowFrustPoints[i-4].empty())
{
+ continue;
+ }
+
gGL.color4fv(col+(i-4)*4);
- LLVector3* frust = mShadowCamera[i].mAgentFrustum;
-
gGL.begin(LLRender::TRIANGLE_STRIP);
gGL.vertex3fv(frust[0].mV); gGL.vertex3fv(frust[4].mV);
gGL.vertex3fv(frust[1].mV); gGL.vertex3fv(frust[5].mV);
@@ -3630,31 +3656,49 @@ void LLPipeline::renderDebug()
if (i < 4)
{
- gGL.begin(LLRender::LINES);
- F32* c = col+i*4;
- for (U32 j = 0; j < mShadowFrustPoints[i].size(); ++j)
+ if (i == 0 || !mShadowFrustPoints[i].empty())
{
+ //render visible point cloud
+ gGL.flush();
+ glPointSize(8.f);
+ gGL.begin(LLRender::POINTS);
+ F32* c = col+i*4;
gGL.color3fv(c);
- for (U32 k = 0; k < mShadowFrustPoints[i].size(); ++k)
- {
- if (j != k)
+ for (U32 j = 0; j < mShadowFrustPoints[i].size(); ++j)
{
gGL.vertex3fv(mShadowFrustPoints[i][j].mV);
- gGL.vertex3fv(mShadowFrustPoints[i][k].mV);
+
}
+ gGL.end();
+
+ gGL.flush();
+ glPointSize(1.f);
+
+ LLVector3* ext = mShadowExtents[i];
+ LLVector3 pos = (ext[0]+ext[1])*0.5f;
+ LLVector3 size = (ext[1]-ext[0])*0.5f;
+ drawBoxOutline(pos, size);
+
+ //render camera frustum splits as outlines
+ gGL.begin(LLRender::LINES);
+ gGL.vertex3fv(frust[0].mV); gGL.vertex3fv(frust[1].mV);
+ gGL.vertex3fv(frust[1].mV); gGL.vertex3fv(frust[2].mV);
+ gGL.vertex3fv(frust[2].mV); gGL.vertex3fv(frust[3].mV);
+ gGL.vertex3fv(frust[3].mV); gGL.vertex3fv(frust[0].mV);
+ gGL.vertex3fv(frust[4].mV); gGL.vertex3fv(frust[5].mV);
+ gGL.vertex3fv(frust[5].mV); gGL.vertex3fv(frust[6].mV);
+ gGL.vertex3fv(frust[6].mV); gGL.vertex3fv(frust[7].mV);
+ gGL.vertex3fv(frust[7].mV); gGL.vertex3fv(frust[4].mV);
+ gGL.vertex3fv(frust[0].mV); gGL.vertex3fv(frust[4].mV);
+ gGL.vertex3fv(frust[1].mV); gGL.vertex3fv(frust[5].mV);
+ gGL.vertex3fv(frust[2].mV); gGL.vertex3fv(frust[6].mV);
+ gGL.vertex3fv(frust[3].mV); gGL.vertex3fv(frust[7].mV);
+ gGL.end();
}
- if (!mShadowFrustOrigin[i].isExactlyZero())
- {
- gGL.vertex3fv(mShadowFrustPoints[i][j].mV);
- gGL.color4f(1,1,1,1);
- gGL.vertex3fv(mShadowFrustOrigin[i].mV);
- }
- }
- gGL.end();
}
/*for (LLWorld::region_list_t::const_iterator iter = LLWorld::getInstance()->getRegionList().begin();
@@ -4566,32 +4610,42 @@ void LLPipeline::setupHWLights(LLDrawPool* pool)
LLVector4 light_pos_gl(light_pos, 1.0f);
F32 light_radius = llmax(light->getLightRadius(), 0.001f);
- F32 atten, quad;
-#if 0 //1.9.1
- if (pool->getVertexShaderLevel() > 0)
- {
- atten = light_radius;
- quad = llmax(light->getLightFalloff(), 0.0001f);
- }
- else
-#endif
- {
- F32 x = (3.f * (1.f + light->getLightFalloff()));
- atten = x / (light_radius); // % of brightness at radius
- quad = 0.0f;
- }
+ F32 x = (3.f * (1.f + light->getLightFalloff())); // why this magic? probably trying to match a historic behavior.
+ float linatten = x / (light_radius); // % of brightness at radius
+
mHWLightColors[cur_light] = light_color;
S32 gllight = GL_LIGHT0+cur_light;
glLightfv(gllight, GL_POSITION, light_pos_gl.mV);
glLightfv(gllight, GL_DIFFUSE, light_color.mV);
glLightfv(gllight, GL_AMBIENT, LLColor4::black.mV);
- glLightfv(gllight, GL_SPECULAR, LLColor4::black.mV);
glLightf (gllight, GL_CONSTANT_ATTENUATION, 0.0f);
- glLightf (gllight, GL_LINEAR_ATTENUATION, atten);
- glLightf (gllight, GL_QUADRATIC_ATTENUATION, quad);
+ glLightf (gllight, GL_LINEAR_ATTENUATION, linatten);
+ glLightf (gllight, GL_QUADRATIC_ATTENUATION, 0.0f);
+ if (light->isLightSpotlight() // directional (spot-)light
+ && (LLPipeline::sRenderDeferred || gSavedSettings.getBOOL("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;
+ //llinfos << "SPOT!!!!!!! fov: " << spotparams.mV[0] << " focus: " << spotparams.mV[1] << " dir: " << at_axis << llendl;
+ glLightfv(gllight, GL_SPOT_DIRECTION, at_axis.mV);
+ glLightf (gllight, GL_SPOT_EXPONENT, 2.0f); // 2.0 = good old dot product ^ 2
+ glLightf (gllight, GL_SPOT_CUTOFF, 90.0f); // hemisphere
+ const float specular[] = {0.f, 0.f, 0.f, 0.f};
+ glLightfv(gllight, GL_SPECULAR, specular);
+ }
+ else // omnidirectional (point) light
+ {
glLightf (gllight, GL_SPOT_EXPONENT, 0.0f);
glLightf (gllight, GL_SPOT_CUTOFF, 180.0f);
+
+ // we use specular.w = 1.0 as a cheap hack for the shaders to know that this is omnidirectional rather than a spotlight
+ const float specular[] = {0.f, 0.f, 0.f, 1.f};
+ glLightfv(gllight, GL_SPECULAR, specular);
+ //llinfos << "boring light" << llendl;
+ }
cur_light++;
if (cur_light >= 8)
{
@@ -4618,13 +4672,10 @@ void LLPipeline::setupHWLights(LLDrawPool* pool)
LLVector4 light_pos_gl(light_pos, 1.0f);
F32 light_radius = 16.f;
- F32 atten, quad;
- {
F32 x = 3.f;
- atten = x / (light_radius); // % of brightness at radius
- quad = 0.0f;
- }
+ float linatten = x / (light_radius); // % of brightness at radius
+
mHWLightColors[2] = light_color;
S32 gllight = GL_LIGHT2;
glLightfv(gllight, GL_POSITION, light_pos_gl.mV);
@@ -4632,8 +4683,8 @@ void LLPipeline::setupHWLights(LLDrawPool* pool)
glLightfv(gllight, GL_AMBIENT, LLColor4::black.mV);
glLightfv(gllight, GL_SPECULAR, LLColor4::black.mV);
glLightf (gllight, GL_CONSTANT_ATTENUATION, 0.0f);
- glLightf (gllight, GL_LINEAR_ATTENUATION, atten);
- glLightf (gllight, GL_QUADRATIC_ATTENUATION, quad);
+ glLightf (gllight, GL_LINEAR_ATTENUATION, linatten);
+ glLightf (gllight, GL_QUADRATIC_ATTENUATION, 0.0f);
glLightf (gllight, GL_SPOT_EXPONENT, 0.0f);
glLightf (gllight, GL_SPOT_CUTOFF, 180.0f);
}
@@ -4754,16 +4805,16 @@ void LLPipeline::enableLightsFullbright(const LLColor4& color)
enableLights(mask);
glLightModelfv(GL_LIGHT_MODEL_AMBIENT,color.mV);
- if (mLightingDetail >= 2)
+ /*if (mLightingDetail >= 2)
{
glColor4f(0.f, 0.f, 0.f, 1.f); // no local lighting by default
- }
+ }*/
}
void LLPipeline::disableLights()
{
enableLights(0); // no lighting (full bright)
- glColor4f(1.f, 1.f, 1.f, 1.f); // lighting color = white by default
+ //glColor4f(1.f, 1.f, 1.f, 1.f); // lighting color = white by default
}
//============================================================================
@@ -4953,8 +5004,7 @@ void LLPipeline::setLight(LLDrawable *drawablep, BOOL is_light)
//static
void LLPipeline::toggleRenderType(U32 type)
{
- U32 bit = (1<<type);
- gPipeline.mRenderTypeMask ^= bit;
+ gPipeline.mRenderTypeEnabled[type] = !gPipeline.mRenderTypeEnabled[type];
}
//static
@@ -5366,6 +5416,7 @@ void LLPipeline::resetVertexBuffers()
{
sRenderBump = gSavedSettings.getBOOL("RenderObjectBump");
sUseTriStrips = gSavedSettings.getBOOL("RenderUseTriStrips");
+ LLVertexBuffer::sUseStreamDraw = gSavedSettings.getBOOL("RenderUseStreamVBO");
for (LLWorld::region_list_t::const_iterator iter = LLWorld::getInstance()->getRegionList().begin();
iter != LLWorld::getInstance()->getRegionList().end(); ++iter)
@@ -5501,6 +5552,7 @@ void LLPipeline::bindScreenToTexture()
}
static LLFastTimer::DeclareTimer FTM_RENDER_BLOOM("Bloom");
+
void LLPipeline::renderBloom(BOOL for_snapshot, F32 zoom_factor, int subfield)
{
LLMemType mt_ru(LLMemType::MTYPE_PIPELINE_RENDER_BLOOM);
@@ -5823,6 +5875,12 @@ void LLPipeline::renderBloom(BOOL for_snapshot, F32 zoom_factor, int subfield)
gGL.getTexUnit(0)->activate();
gGL.getTexUnit(0)->setTextureBlendType(LLTexUnit::TB_MULT);
+
+ if (LLRenderTarget::sUseFBO)
+ { //copy depth buffer from mScreen to framebuffer
+ LLRenderTarget::copyContentsToFramebuffer(mScreen, 0, 0, mScreen.getWidth(), mScreen.getHeight(),
+ 0, 0, mScreen.getWidth(), mScreen.getHeight(), GL_DEPTH_BUFFER_BIT, GL_NEAREST);
+ }
}
@@ -5839,8 +5897,12 @@ void LLPipeline::renderBloom(BOOL for_snapshot, F32 zoom_factor, int subfield)
}
+static LLFastTimer::DeclareTimer FTM_BIND_DEFERRED("Bind Deferred");
+
void LLPipeline::bindDeferredShader(LLGLSLShader& shader, U32 light_index, LLRenderTarget* gi_source, LLRenderTarget* last_gi_post, U32 noise_map)
{
+ LLFastTimer t(FTM_BIND_DEFERRED);
+
if (noise_map == 0xFFFFFFFF)
{
noise_map = mNoiseMap;
@@ -6178,11 +6240,16 @@ void LLPipeline::bindDeferredShader(LLGLSLShader& shader, U32 light_index, LLRen
matrix_nondiag, matrix_nondiag, matrix_diag};
shader.uniformMatrix3fv("ssao_effect_mat", 1, GL_FALSE, ssao_effect_mat);
+ F32 shadow_offset_error = 1.f + gSavedSettings.getF32("RenderShadowOffsetError") * fabsf(LLViewerCamera::getInstance()->getOrigin().mV[2]);
+ F32 shadow_bias_error = 1.f + gSavedSettings.getF32("RenderShadowBiasError") * fabsf(LLViewerCamera::getInstance()->getOrigin().mV[2]);
+
shader.uniform2f("screen_res", mDeferredScreen.getWidth(), mDeferredScreen.getHeight());
shader.uniform1f("near_clip", LLViewerCamera::getInstance()->getNear()*2.f);
- shader.uniform1f("alpha_soften", gSavedSettings.getF32("RenderDeferredAlphaSoften"));
- shader.uniform1f ("shadow_offset", gSavedSettings.getF32("RenderShadowOffset"));
- shader.uniform1f("shadow_bias", gSavedSettings.getF32("RenderShadowBias"));
+ shader.uniform1f ("shadow_offset", gSavedSettings.getF32("RenderShadowOffset")*shadow_offset_error);
+ shader.uniform1f("shadow_bias", gSavedSettings.getF32("RenderShadowBias")*shadow_bias_error);
+ shader.uniform1f ("spot_shadow_offset", gSavedSettings.getF32("RenderSpotShadowOffset"));
+ shader.uniform1f("spot_shadow_bias", gSavedSettings.getF32("RenderSpotShadowBias"));
+
shader.uniform1f("lum_scale", gSavedSettings.getF32("RenderLuminanceScale"));
shader.uniform1f("sun_lum_scale", gSavedSettings.getF32("RenderSunLuminanceScale"));
shader.uniform1f("sun_lum_offset", gSavedSettings.getF32("RenderSunLuminanceOffset"));
@@ -6276,8 +6343,6 @@ void LLPipeline::renderDeferredLighting()
glTexCoord4f(tc.v[0], tc.v[1], tc.v[2], 0);
}
- if (gSavedSettings.getBOOL("RenderDeferredShadow"))
- {
glPushMatrix();
glLoadIdentity();
glMatrixMode(GL_PROJECTION);
@@ -6285,7 +6350,9 @@ void LLPipeline::renderDeferredLighting()
glLoadIdentity();
mDeferredLight[0].bindTarget();
- if (gSavedSettings.getBOOL("RenderDeferredSun"))
+
+ if (gSavedSettings.getBOOL("RenderDeferredSSAO") || gSavedSettings.getS32("RenderShadowDetail") > 0)
+ {
{ //paint shadow/SSAO light map (direct lighting lightmap)
LLFastTimer ftm(FTM_SUN_SHADOW);
bindDeferredShader(gDeferredSunProgram, 0);
@@ -6326,18 +6393,22 @@ void LLPipeline::renderDeferredLighting()
unbindDeferredShader(gDeferredSunProgram);
}
+ }
else
{
+ glClearColor(1,1,1,1);
mDeferredLight[0].clear(GL_COLOR_BUFFER_BIT);
+ glClearColor(0,0,0,0);
}
mDeferredLight[0].flush();
+ { //global illumination specific block (still experimental)
if (gSavedSettings.getBOOL("RenderDeferredBlurLight") &&
gSavedSettings.getBOOL("RenderDeferredGI"))
{
LLFastTimer ftm(FTM_EDGE_DETECTION);
- //get edge map
+ //generate edge map
LLGLDisable blend(GL_BLEND);
LLGLDisable test(GL_ALPHA_TEST);
LLGLDepthTest depth(GL_FALSE);
@@ -6434,8 +6505,9 @@ void LLPipeline::renderDeferredLighting()
unbindDeferredShader(gDeferredPostGIProgram);
}
}
+ }
- if (gSavedSettings.getBOOL("RenderDeferredBlurLight"))
+ if (gSavedSettings.getBOOL("RenderDeferredSSAO"))
{ //soften direct lighting lightmap
LLFastTimer ftm(FTM_SOFTEN_SHADOW);
//blur lightmap
@@ -6505,7 +6577,6 @@ void LLPipeline::renderDeferredLighting()
stop_glerror();
glPopMatrix();
stop_glerror();
- }
//copy depth and stencil from deferred screen
//mScreen.copyContents(mDeferredScreen, 0, 0, mDeferredScreen.getWidth(), mDeferredScreen.getHeight(),
@@ -6514,11 +6585,15 @@ void LLPipeline::renderDeferredLighting()
if (LLViewerShaderMgr::instance()->getVertexShaderLevel(LLViewerShaderMgr::SHADER_DEFERRED) > 2)
{
mDeferredLight[1].bindTarget();
- mDeferredLight[1].clear(GL_COLOR_BUFFER_BIT);
+ // clear color buffer here (GI) - zeroing alpha (glow) is important or it will accumulate against sky
+ glClearColor(0,0,0,0);
+ mScreen.clear(GL_COLOR_BUFFER_BIT);
}
else
{
mScreen.bindTarget();
+ // clear color buffer here - zeroing alpha (glow) is important or it will accumulate against sky
+ glClearColor(0,0,0,0);
mScreen.clear(GL_COLOR_BUFFER_BIT);
}
@@ -6555,15 +6630,16 @@ void LLPipeline::renderDeferredLighting()
LLGLDisable stencil(GL_STENCIL_TEST);
gGL.setSceneBlendType(LLRender::BT_ALPHA);
- U32 render_mask = mRenderTypeMask;
- mRenderTypeMask = mRenderTypeMask &
- ((1 << LLPipeline::RENDER_TYPE_SKY) |
- (1 << LLPipeline::RENDER_TYPE_CLOUDS) |
- (1 << LLPipeline::RENDER_TYPE_WL_SKY));
+ gPipeline.pushRenderTypeMask();
+
+ gPipeline.andRenderTypeMask(LLPipeline::RENDER_TYPE_SKY,
+ LLPipeline::RENDER_TYPE_CLOUDS,
+ LLPipeline::RENDER_TYPE_WL_SKY,
+ LLPipeline::END_RENDER_TYPES);
renderGeomPostDeferred(*LLViewerCamera::getInstance());
- mRenderTypeMask = render_mask;
+ gPipeline.popRenderTypeMask();
}
BOOL render_local = gSavedSettings.getBOOL("RenderDeferredLocalLights");
@@ -6608,6 +6684,15 @@ void LLPipeline::renderDeferredLighting()
continue;
}
+ if (volume->isAttachment())
+ {
+ if (!sRenderAttachedLights)
+ {
+ continue;
+ }
+ }
+
+
LLVector3 center = drawablep->getPositionAgent();
F32* c = center.mV;
F32 s = volume->getLightRadius()*1.5f;
@@ -6658,7 +6743,7 @@ void LLPipeline::renderDeferredLighting()
{ //draw box if camera is outside box
if (render_local)
{
- if (volume->getLightTexture())
+ if (volume->isLightSpotlight())
{
drawablep->getVOVolume()->updateSpotLightPriority();
spot_lights.push_back(drawablep);
@@ -6675,7 +6760,7 @@ void LLPipeline::renderDeferredLighting()
}
else if (render_fullscreen)
{
- if (volume->getLightTexture())
+ if (volume->isLightSpotlight())
{
drawablep->getVOVolume()->updateSpotLightPriority();
fullscreen_spot_lights.push_back(drawablep);
@@ -6876,29 +6961,48 @@ void LLPipeline::renderDeferredLighting()
LLGLDisable blend(GL_BLEND);
LLGLDisable stencil(GL_STENCIL_TEST);
- U32 render_mask = mRenderTypeMask;
- mRenderTypeMask = mRenderTypeMask &
- ((1 << LLPipeline::RENDER_TYPE_ALPHA) |
- (1 << LLPipeline::RENDER_TYPE_FULLBRIGHT) |
- (1 << LLPipeline::RENDER_TYPE_VOLUME) |
- (1 << LLPipeline::RENDER_TYPE_GLOW) |
- (1 << LLPipeline::RENDER_TYPE_BUMP) |
- (1 << LLPipeline::RENDER_TYPE_PASS_SIMPLE) |
- (1 << LLPipeline::RENDER_TYPE_PASS_ALPHA) |
- (1 << LLPipeline::RENDER_TYPE_PASS_ALPHA_MASK) |
- (1 << LLPipeline::RENDER_TYPE_PASS_BUMP) |
- (1 << LLPipeline::RENDER_TYPE_PASS_FULLBRIGHT) |
- (1 << LLPipeline::RENDER_TYPE_PASS_FULLBRIGHT_ALPHA_MASK) |
- (1 << LLPipeline::RENDER_TYPE_PASS_FULLBRIGHT_SHINY) |
- (1 << LLPipeline::RENDER_TYPE_PASS_GLOW) |
- (1 << LLPipeline::RENDER_TYPE_PASS_GRASS) |
- (1 << LLPipeline::RENDER_TYPE_PASS_SHINY) |
- (1 << LLPipeline::RENDER_TYPE_PASS_INVISIBLE) |
- (1 << LLPipeline::RENDER_TYPE_PASS_INVISI_SHINY) |
- (1 << LLPipeline::RENDER_TYPE_AVATAR));
+ pushRenderTypeMask();
+ andRenderTypeMask(LLPipeline::RENDER_TYPE_ALPHA,
+ LLPipeline::RENDER_TYPE_FULLBRIGHT,
+ LLPipeline::RENDER_TYPE_VOLUME,
+ LLPipeline::RENDER_TYPE_GLOW,
+ LLPipeline::RENDER_TYPE_BUMP,
+ LLPipeline::RENDER_TYPE_PASS_SIMPLE,
+ LLPipeline::RENDER_TYPE_PASS_ALPHA,
+ LLPipeline::RENDER_TYPE_PASS_ALPHA_MASK,
+ LLPipeline::RENDER_TYPE_PASS_BUMP,
+ LLPipeline::RENDER_TYPE_PASS_POST_BUMP,
+ LLPipeline::RENDER_TYPE_PASS_FULLBRIGHT,
+ LLPipeline::RENDER_TYPE_PASS_FULLBRIGHT_ALPHA_MASK,
+ LLPipeline::RENDER_TYPE_PASS_FULLBRIGHT_SHINY,
+ LLPipeline::RENDER_TYPE_PASS_GLOW,
+ LLPipeline::RENDER_TYPE_PASS_GRASS,
+ LLPipeline::RENDER_TYPE_PASS_SHINY,
+ LLPipeline::RENDER_TYPE_PASS_INVISIBLE,
+ LLPipeline::RENDER_TYPE_PASS_INVISI_SHINY,
+ LLPipeline::RENDER_TYPE_AVATAR,
+ END_RENDER_TYPES);
renderGeomPostDeferred(*LLViewerCamera::getInstance());
- mRenderTypeMask = render_mask;
+ popRenderTypeMask();
+ }
+
+ {
+ //render highlights, etc.
+ renderHighlights();
+ mHighlightFaces.clear();
+
+ renderDebug();
+
+ LLVertexBuffer::unbind();
+
+ if (gPipeline.hasRenderDebugFeatureMask(LLPipeline::RENDER_DEBUG_FEATURE_UI))
+ {
+ // Render debugging beacons.
+ gObjectList.renderObjectBeacons();
+ LLHUDObject::renderAll();
+ gObjectList.resetObjectBeacons();
+ }
}
mScreen.flush();
@@ -7110,7 +7214,7 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in)
if (LLPipeline::sWaterReflections && assertInitialized() && LLDrawPoolWater::sNeedsReflectionUpdate)
{
BOOL skip_avatar_update = FALSE;
- if (gAgentCamera.getCameraAnimating() || gAgentCamera.getCameraMode() != CAMERA_MODE_MOUSELOOK)
+ if (!isAgentAvatarValid() || gAgentCamera.getCameraAnimating() || gAgentCamera.getCameraMode() != CAMERA_MODE_MOUSELOOK)
{
skip_avatar_update = TRUE;
}
@@ -7134,7 +7238,7 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in)
LLPipeline::sUseOcclusion = llmin(occlusion, 1);
- U32 type_mask = gPipeline.mRenderTypeMask;
+ gPipeline.pushRenderTypeMask();
glh::matrix4f projection = glh_get_current_projection();
glh::matrix4f mat;
@@ -7203,43 +7307,47 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in)
glCullFace(GL_FRONT);
static LLCullResult ref_result;
- U32 ref_mask = 0;
+
if (LLDrawPoolWater::sNeedsDistortionUpdate)
{
//initial sky pass (no user clip plane)
{ //mask out everything but the sky
- U32 tmp = mRenderTypeMask;
- mRenderTypeMask = tmp & ((1 << LLPipeline::RENDER_TYPE_SKY) |
- (1 << LLPipeline::RENDER_TYPE_WL_SKY));
+ gPipeline.pushRenderTypeMask();
+ gPipeline.andRenderTypeMask(LLPipeline::RENDER_TYPE_SKY,
+ LLPipeline::RENDER_TYPE_WL_SKY,
+ LLPipeline::END_RENDER_TYPES);
static LLCullResult result;
updateCull(camera, result);
stateSort(camera, result);
- mRenderTypeMask = tmp & ((1 << LLPipeline::RENDER_TYPE_SKY) |
- (1 << LLPipeline::RENDER_TYPE_CLOUDS) |
- (1 << LLPipeline::RENDER_TYPE_WL_SKY));
+ andRenderTypeMask(LLPipeline::RENDER_TYPE_SKY,
+ LLPipeline::RENDER_TYPE_CLOUDS,
+ LLPipeline::RENDER_TYPE_WL_SKY,
+ LLPipeline::END_RENDER_TYPES);
+
renderGeom(camera, TRUE);
- mRenderTypeMask = tmp;
+ gPipeline.popRenderTypeMask();
}
- U32 mask = mRenderTypeMask;
- mRenderTypeMask &= ~((1<<LLPipeline::RENDER_TYPE_WATER) |
- (1<<LLPipeline::RENDER_TYPE_GROUND) |
- (1<<LLPipeline::RENDER_TYPE_SKY) |
- (1<<LLPipeline::RENDER_TYPE_CLOUDS));
+ gPipeline.pushRenderTypeMask();
- if (gSavedSettings.getBOOL("RenderWaterReflections"))
- { //mask out selected geometry based on reflection detail
+ clearRenderTypeMask(LLPipeline::RENDER_TYPE_WATER,
+ LLPipeline::RENDER_TYPE_GROUND,
+ LLPipeline::RENDER_TYPE_SKY,
+ LLPipeline::RENDER_TYPE_CLOUDS,
+ LLPipeline::END_RENDER_TYPES);
S32 detail = gSavedSettings.getS32("RenderReflectionDetail");
+ if (detail > 0)
+ { //mask out selected geometry based on reflection detail
+ if (detail < 4)
+ {
+ clearRenderTypeMask(LLPipeline::RENDER_TYPE_PARTICLES, END_RENDER_TYPES);
if (detail < 3)
{
- mRenderTypeMask &= ~(1 << LLPipeline::RENDER_TYPE_PARTICLES);
+ clearRenderTypeMask(LLPipeline::RENDER_TYPE_AVATAR, END_RENDER_TYPES);
if (detail < 2)
{
- mRenderTypeMask &= ~(1 << LLPipeline::RENDER_TYPE_AVATAR);
- if (detail < 1)
- {
- mRenderTypeMask &= ~(1 << LLPipeline::RENDER_TYPE_VOLUME);
+ clearRenderTypeMask(LLPipeline::RENDER_TYPE_VOLUME, END_RENDER_TYPES);
}
}
}
@@ -7250,19 +7358,18 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in)
stateSort(camera, ref_result);
}
- ref_mask = mRenderTypeMask;
- mRenderTypeMask = mask;
- }
if (LLDrawPoolWater::sNeedsDistortionUpdate)
{
- mRenderTypeMask = ref_mask;
- if (gSavedSettings.getBOOL("RenderWaterReflections"))
+ if (gSavedSettings.getS32("RenderReflectionDetail") > 0)
{
gPipeline.grabReferences(ref_result);
LLGLUserClipPlane clip_plane(plane, mat, projection);
renderGeom(camera);
}
}
+
+ gPipeline.popRenderTypeMask();
+ }
glCullFace(GL_BACK);
glPopMatrix();
mWaterRef.flush();
@@ -7275,18 +7382,20 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in)
if (last_update)
{
camera.setFar(camera_in.getFar());
- mRenderTypeMask = type_mask & (~(1<<LLPipeline::RENDER_TYPE_WATER) |
- (1<<LLPipeline::RENDER_TYPE_GROUND));
+ clearRenderTypeMask(LLPipeline::RENDER_TYPE_WATER,
+ LLPipeline::RENDER_TYPE_GROUND,
+ END_RENDER_TYPES);
stop_glerror();
LLPipeline::sUnderWaterRender = LLViewerCamera::getInstance()->cameraUnderWater() ? FALSE : TRUE;
if (LLPipeline::sUnderWaterRender)
{
- mRenderTypeMask &= ~((1<<LLPipeline::RENDER_TYPE_GROUND) |
- (1<<LLPipeline::RENDER_TYPE_SKY) |
- (1<<LLPipeline::RENDER_TYPE_CLOUDS) |
- (1<<LLPipeline::RENDER_TYPE_WL_SKY));
+ clearRenderTypeMask(LLPipeline::RENDER_TYPE_GROUND,
+ LLPipeline::RENDER_TYPE_SKY,
+ LLPipeline::RENDER_TYPE_CLOUDS,
+ LLPipeline::RENDER_TYPE_WL_SKY,
+ END_RENDER_TYPES);
}
LLViewerCamera::updateFrustumPlanes(camera);
@@ -7327,7 +7436,7 @@ void LLPipeline::generateWaterReflection(LLCamera& camera_in)
}
glClearColor(0.f, 0.f, 0.f, 0.f);
gViewerWindow->setup3DViewport();
- mRenderTypeMask = type_mask;
+ gPipeline.popRenderTypeMask();
LLDrawPoolWater::sNeedsReflectionUpdate = FALSE;
LLDrawPoolWater::sNeedsDistortionUpdate = FALSE;
LLViewerCamera::getInstance()->setUserClipPlane(LLPlane(-pnorm, -pd));
@@ -7518,112 +7627,169 @@ void LLPipeline::renderShadow(glh::matrix4f& view, glh::matrix4f& proj, LLCamera
LLPipeline::sShadowRender = FALSE;
}
-
+static LLFastTimer::DeclareTimer FTM_VISIBLE_CLOUD("Visible Cloud");
BOOL LLPipeline::getVisiblePointCloud(LLCamera& camera, LLVector3& min, LLVector3& max, std::vector<LLVector3>& fp, LLVector3 light_dir)
{
+ LLFastTimer t(FTM_VISIBLE_CLOUD);
//get point cloud of intersection of frust and min, max
- //get set of planes
- std::vector<LLPlane> ps;
-
if (getVisibleExtents(camera, min, max))
{
return FALSE;
}
- ps.push_back(LLPlane(min, LLVector3(-1,0,0)));
- ps.push_back(LLPlane(min, LLVector3(0,-1,0)));
- ps.push_back(LLPlane(min, LLVector3(0,0,-1)));
- ps.push_back(LLPlane(max, LLVector3(1,0,0)));
- ps.push_back(LLPlane(max, LLVector3(0,1,0)));
- ps.push_back(LLPlane(max, LLVector3(0,0,1)));
+ //get set of planes on bounding box
+ std::vector<LLPlane> bp;
+
+ bp.push_back(LLPlane(min, LLVector3(-1,0,0)));
+ bp.push_back(LLPlane(min, LLVector3(0,-1,0)));
+ bp.push_back(LLPlane(min, LLVector3(0,0,-1)));
+ bp.push_back(LLPlane(max, LLVector3(1,0,0)));
+ bp.push_back(LLPlane(max, LLVector3(0,1,0)));
+ bp.push_back(LLPlane(max, LLVector3(0,0,1)));
+
+ //potential points
+ std::vector<LLVector3> pp;
- /*if (!light_dir.isExactlyZero())
+ //add corners of AABB
+ pp.push_back(LLVector3(min.mV[0], min.mV[1], min.mV[2]));
+ pp.push_back(LLVector3(max.mV[0], min.mV[1], min.mV[2]));
+ pp.push_back(LLVector3(min.mV[0], max.mV[1], min.mV[2]));
+ pp.push_back(LLVector3(max.mV[0], max.mV[1], min.mV[2]));
+ pp.push_back(LLVector3(min.mV[0], min.mV[1], max.mV[2]));
+ pp.push_back(LLVector3(max.mV[0], min.mV[1], max.mV[2]));
+ pp.push_back(LLVector3(min.mV[0], max.mV[1], max.mV[2]));
+ pp.push_back(LLVector3(max.mV[0], max.mV[1], max.mV[2]));
+
+ //add corners of camera frustum
+ for (U32 i = 0; i < 8; i++)
{
- LLPlane ucp;
- LLPlane mcp;
+ pp.push_back(camera.mAgentFrustum[i]);
+ }
- F32 maxd = -1.f;
- F32 mind = 1.f;
- for (U32 i = 0; i < ps.size(); ++i)
- { //pick the plane most aligned to lightDir for user clip plane
- LLVector3 n(ps[i].mV);
- F32 da = n*light_dir;
- if (da > maxd)
+ //bounding box line segments
+ U32 bs[] =
{
- maxd = da;
- ucp = ps[i];
- }
-
- if (da < mind)
+ 0,1,
+ 1,3,
+ 3,2,
+ 2,0,
+
+ 4,5,
+ 5,7,
+ 7,6,
+ 6,4,
+
+ 0,4,
+ 1,5,
+ 3,7,
+ 2,6
+ };
+
+ for (U32 i = 0; i < 12; i++)
+ { //for each line segment in bounding box
+ for (U32 j = 0; j < 6; j++)
+ { //for each plane in camera frustum
+ const LLPlane& cp = camera.getAgentPlane(j);
+ const LLVector3& v1 = pp[bs[i*2+0]];
+ const LLVector3& v2 = pp[bs[i*2+1]];
+ const LLVector3 n(cp.mV);
+
+ LLVector3 line = v1-v2;
+
+ F32 d1 = line*n;
+ F32 d2 = -cp.dist(v2);
+
+ F32 t = d2/d1;
+
+ if (t > 0.f && t < 1.f)
{
- mind = da;
- mcp = ps[i];
+ LLVector3 intersect = v2+line*t;
+ pp.push_back(intersect);
+ }
}
}
- camera.setUserClipPlane(ucp);
-
- ps.clear();
- ps.push_back(ucp);
- ps.push_back(mcp);
- }*/
+ //camera frustum line segments
+ const U32 fs[] =
+ {
+ 0,1,
+ 1,2,
+ 2,3,
+ 3,1,
+
+ 4,5,
+ 5,6,
+ 6,7,
+ 7,4,
- for (U32 i = 0; i < 6; i++)
- {
- ps.push_back(camera.getAgentPlane(i));
- }
-
- //get set of points where planes intersect and points are not above any plane
- fp.clear();
+ 0,4,
+ 1,5,
+ 2,6,
+ 3,7
+ };
+
+ LLVector3 center = (max+min)*0.5f;
+ LLVector3 size = (max-min)*0.5f;
- for (U32 i = 0; i < ps.size(); ++i)
+ for (U32 i = 0; i < 12; i++)
{
- for (U32 j = 0; j < ps.size(); ++j)
+ for (U32 j = 0; j < 6; ++j)
{
- for (U32 k = 0; k < ps.size(); ++k)
+ const LLVector3& v1 = pp[fs[i*2+0]+8];
+ const LLVector3& v2 = pp[fs[i*2+1]+8];
+ const LLPlane& cp = bp[j];
+ const LLVector3 n(cp.mV);
+
+ LLVector3 line = v1-v2;
+
+ F32 d1 = line*n;
+ F32 d2 = -cp.dist(v2);
+
+ F32 t = d2/d1;
+
+ if (t > 0.f && t < 1.f)
{
- if (i == j ||
- i == k ||
- k == j)
- {
- continue;
+ LLVector3 intersect = v2+line*t;
+ pp.push_back(intersect);
+ }
+ }
}
- LLVector3 n1,n2,n3;
- F32 d1,d2,d3;
+ LLVector3 ext[] = { min-LLVector3(0.05f,0.05f,0.05f),
+ max+LLVector3(0.05f,0.05f,0.05f) };
- n1.setVec(ps[i].mV);
- n2.setVec(ps[j].mV);
- n3.setVec(ps[k].mV);
+ for (U32 i = 0; i < pp.size(); ++i)
+ {
+ bool found = true;
- d1 = ps[i].mV[3];
- d2 = ps[j].mV[3];
- d3 = ps[k].mV[3];
+ const F32* p = pp[i].mV;
- //get point of intersection of 3 planes "p"
- LLVector3 p = (-d1*(n2%n3)-d2*(n3%n1)-d3*(n1%n2))/(n1*(n2%n3));
+ for (U32 j = 0; j < 3; ++j)
+ {
+ if (p[j] < ext[0].mV[j] ||
+ p[j] > ext[1].mV[j])
+ {
+ found = false;
+ break;
+ }
+ }
- if (llround(p*n1+d1, 0.0001f) == 0.f &&
- llround(p*n2+d2, 0.0001f) == 0.f &&
- llround(p*n3+d3, 0.0001f) == 0.f)
- { //point is on all three planes
- BOOL found = TRUE;
- for (U32 l = 0; l < ps.size() && found; ++l)
+ for (U32 j = 0; j < 6; ++j)
+ {
+ const LLPlane& cp = camera.getAgentPlane(j);
+ F32 dist = cp.dist(pp[i]);
+ if (dist > 0.05f) //point is above some plane, not contained
{
- if (llround(ps[l].dist(p), 0.0001f) > 0.0f)
- { //point is above some plane, not contained
- found = FALSE;
+ found = false;
+ break;
}
}
if (found)
{
- fp.push_back(p);
- }
- }
- }
+ fp.push_back(pp[i]);
}
}
@@ -7724,21 +7890,22 @@ void LLPipeline::generateGI(LLCamera& camera, LLVector3& lightDir, std::vector<L
sun_cam.ignoreAgentFrustumPlane(LLCamera::AGENT_PLANE_NEAR);
static LLCullResult result;
- U32 type_mask = mRenderTypeMask;
+ pushRenderTypeMask();
- mRenderTypeMask = type_mask & ((1<<LLPipeline::RENDER_TYPE_SIMPLE) |
- (1<<LLPipeline::RENDER_TYPE_FULLBRIGHT) |
- (1<<LLPipeline::RENDER_TYPE_BUMP) |
- (1<<LLPipeline::RENDER_TYPE_VOLUME) |
- (1<<LLPipeline::RENDER_TYPE_TREE) |
- (1<<LLPipeline::RENDER_TYPE_TERRAIN) |
- (1<<LLPipeline::RENDER_TYPE_WATER) |
- (1<<LLPipeline::RENDER_TYPE_PASS_ALPHA_SHADOW) |
- (1<<LLPipeline::RENDER_TYPE_AVATAR) |
- (1 << LLPipeline::RENDER_TYPE_PASS_SIMPLE) |
- (1 << LLPipeline::RENDER_TYPE_PASS_BUMP) |
- (1 << LLPipeline::RENDER_TYPE_PASS_FULLBRIGHT) |
- (1 << LLPipeline::RENDER_TYPE_PASS_SHINY));
+ andRenderTypeMask(LLPipeline::RENDER_TYPE_SIMPLE,
+ LLPipeline::RENDER_TYPE_FULLBRIGHT,
+ LLPipeline::RENDER_TYPE_BUMP,
+ LLPipeline::RENDER_TYPE_VOLUME,
+ LLPipeline::RENDER_TYPE_TREE,
+ LLPipeline::RENDER_TYPE_TERRAIN,
+ LLPipeline::RENDER_TYPE_WATER,
+ LLPipeline::RENDER_TYPE_PASS_ALPHA_SHADOW,
+ LLPipeline::RENDER_TYPE_AVATAR,
+ LLPipeline::RENDER_TYPE_PASS_SIMPLE,
+ LLPipeline::RENDER_TYPE_PASS_BUMP,
+ LLPipeline::RENDER_TYPE_PASS_FULLBRIGHT,
+ LLPipeline::RENDER_TYPE_PASS_SHINY,
+ END_RENDER_TYPES);
@@ -7807,7 +7974,7 @@ void LLPipeline::generateGI(LLCamera& camera, LLVector3& lightDir, std::vector<L
LLPipeline::sShadowRender = FALSE;
sMinRenderSize = 0.f;
- mRenderTypeMask = type_mask;
+ popRenderTypeMask();
}
@@ -7891,29 +8058,10 @@ void LLPipeline::generateHighlight(LLCamera& camera)
void LLPipeline::generateSunShadow(LLCamera& camera)
{
- if (!sRenderDeferred || !gSavedSettings.getBOOL("RenderDeferredShadow"))
- {
- return;
- }
-
- //temporary hack to disable shadows but keep local lights
- static BOOL clear = TRUE;
- BOOL gen_shadow = gSavedSettings.getBOOL("RenderDeferredSunShadow");
- if (!gen_shadow)
+ if (!sRenderDeferred || gSavedSettings.getS32("RenderShadowDetail") <= 0)
{
- if (clear)
- {
- clear = FALSE;
- for (U32 i = 0; i < 6; i++)
- {
- mShadow[i].bindTarget();
- mShadow[i].clear();
- mShadow[i].flush();
- }
- }
return;
}
- clear = TRUE;
F64 last_modelview[16];
F64 last_projection[16];
@@ -7923,23 +8071,24 @@ void LLPipeline::generateSunShadow(LLCamera& camera)
last_projection[i] = gGLLastProjection[i];
}
- U32 type_mask = mRenderTypeMask;
- mRenderTypeMask = type_mask & ((1<<LLPipeline::RENDER_TYPE_SIMPLE) |
- (1<<LLPipeline::RENDER_TYPE_ALPHA) |
- (1<<LLPipeline::RENDER_TYPE_GRASS) |
- (1<<LLPipeline::RENDER_TYPE_FULLBRIGHT) |
- (1<<LLPipeline::RENDER_TYPE_BUMP) |
- (1<<LLPipeline::RENDER_TYPE_VOLUME) |
- (1<<LLPipeline::RENDER_TYPE_AVATAR) |
- (1<<LLPipeline::RENDER_TYPE_TREE) |
- (1<<LLPipeline::RENDER_TYPE_TERRAIN) |
- (1<<LLPipeline::RENDER_TYPE_WATER) |
- (1<<LLPipeline::RENDER_TYPE_PASS_ALPHA_SHADOW) |
- (1 << LLPipeline::RENDER_TYPE_PASS_SIMPLE) |
- (1 << LLPipeline::RENDER_TYPE_PASS_BUMP) |
- (1 << LLPipeline::RENDER_TYPE_PASS_FULLBRIGHT) |
- (1 << LLPipeline::RENDER_TYPE_PASS_SHINY) |
- (1 << LLPipeline::RENDER_TYPE_PASS_FULLBRIGHT_SHINY));
+ pushRenderTypeMask();
+ andRenderTypeMask(LLPipeline::RENDER_TYPE_SIMPLE,
+ LLPipeline::RENDER_TYPE_ALPHA,
+ LLPipeline::RENDER_TYPE_GRASS,
+ LLPipeline::RENDER_TYPE_FULLBRIGHT,
+ LLPipeline::RENDER_TYPE_BUMP,
+ LLPipeline::RENDER_TYPE_VOLUME,
+ LLPipeline::RENDER_TYPE_AVATAR,
+ LLPipeline::RENDER_TYPE_TREE,
+ LLPipeline::RENDER_TYPE_TERRAIN,
+ LLPipeline::RENDER_TYPE_WATER,
+ LLPipeline::RENDER_TYPE_PASS_ALPHA_SHADOW,
+ LLPipeline::RENDER_TYPE_PASS_SIMPLE,
+ LLPipeline::RENDER_TYPE_PASS_BUMP,
+ LLPipeline::RENDER_TYPE_PASS_FULLBRIGHT,
+ LLPipeline::RENDER_TYPE_PASS_SHINY,
+ LLPipeline::RENDER_TYPE_PASS_FULLBRIGHT_SHINY,
+ END_RENDER_TYPES);
gGL.setColorMask(false, false);
@@ -7991,17 +8140,32 @@ void LLPipeline::generateSunShadow(LLCamera& camera)
at.normVec();
+ LLCamera main_camera = camera;
+
F32 near_clip = 0.f;
{
//get visible point cloud
std::vector<LLVector3> fp;
+ main_camera.calcAgentFrustumPlanes(main_camera.mAgentFrustum);
+
LLVector3 min,max;
- getVisiblePointCloud(camera,min,max,fp);
+ getVisiblePointCloud(main_camera,min,max,fp);
if (fp.empty())
{
- mRenderTypeMask = type_mask;
+ if (!hasRenderDebugMask(RENDER_DEBUG_SHADOW_FRUSTA))
+ {
+ mShadowCamera[0] = main_camera;
+ mShadowExtents[0][0] = min;
+ mShadowExtents[0][1] = max;
+
+ mShadowFrustPoints[0].clear();
+ mShadowFrustPoints[1].clear();
+ mShadowFrustPoints[2].clear();
+ mShadowFrustPoints[3].clear();
+ }
+ popRenderTypeMask();
return;
}
@@ -8075,7 +8239,7 @@ void LLPipeline::generateSunShadow(LLCamera& camera)
shadow_cam = camera;
shadow_cam.setFar(16.f);
- LLViewerCamera::updateFrustumPlanes(shadow_cam);
+ LLViewerCamera::updateFrustumPlanes(shadow_cam, FALSE, FALSE, TRUE);
LLVector3* frust = shadow_cam.mAgentFrustum;
@@ -8087,10 +8251,11 @@ void LLPipeline::generateSunShadow(LLCamera& camera)
for (U32 i = 0; i < 4; i++)
{
LLVector3 delta = frust[i+4]-eye;
+ delta += (frust[i+4]-frust[(i+2)%4+4])*0.05f;
delta.normVec();
F32 dp = delta*pn;
- frust[i] = eye + (delta*dist[j])/dp;
- frust[i+4] = eye + (delta*dist[j+1])/dp;
+ frust[i] = eye + (delta*dist[j]*0.95f)/dp;
+ frust[i+4] = eye + (delta*dist[j+1]*1.05f)/dp;
}
shadow_cam.calcAgentFrustumPlanes(frust);
@@ -8431,7 +8596,13 @@ void LLPipeline::generateSunShadow(LLCamera& camera)
}
+ //hack to disable projector shadows
+ static bool clear = true;
+ bool gen_shadow = gSavedSettings.getS32("RenderShadowDetail") > 1;
+ if (gen_shadow)
+ {
+ clear = true;
F32 fade_amt = gFrameIntervalSeconds * llmax(LLViewerCamera::getInstance()->getVelocityStat()->getCurrentPerSec(), 1.f);
//update shadow targets
@@ -8559,6 +8730,20 @@ void LLPipeline::generateSunShadow(LLCamera& camera)
mShadow[i+4].flush();
}
+ }
+ else
+ {
+ if (clear)
+ {
+ clear = false;
+ for (U32 i = 4; i < 6; i++)
+ {
+ mShadow[i].bindTarget();
+ mShadow[i].clear();
+ mShadow[i].flush();
+ }
+ }
+ }
if (!gSavedSettings.getBOOL("CameraOffset"))
{
@@ -8582,7 +8767,7 @@ void LLPipeline::generateSunShadow(LLCamera& camera)
gGLLastProjection[i] = last_projection[i];
}
- mRenderTypeMask = type_mask;
+ popRenderTypeMask();
}
void LLPipeline::renderGroups(LLRenderPass* pass, U32 type, U32 mask, BOOL texture)
@@ -8618,38 +8803,36 @@ void LLPipeline::generateImpostor(LLVOAvatar* avatar)
assertInitialized();
- U32 mask;
BOOL muted = LLMuteList::getInstance()->isMuted(avatar->getID());
+ pushRenderTypeMask();
+
if (muted)
{
- mask = 1 << LLPipeline::RENDER_TYPE_AVATAR;
+ andRenderTypeMask(LLPipeline::RENDER_TYPE_AVATAR, END_RENDER_TYPES);
}
else
{
- mask = (1<<LLPipeline::RENDER_TYPE_VOLUME) |
- (1<<LLPipeline::RENDER_TYPE_AVATAR) |
- (1<<LLPipeline::RENDER_TYPE_BUMP) |
- (1<<LLPipeline::RENDER_TYPE_GRASS) |
- (1<<LLPipeline::RENDER_TYPE_SIMPLE) |
- (1<<LLPipeline::RENDER_TYPE_FULLBRIGHT) |
- (1<<LLPipeline::RENDER_TYPE_ALPHA) |
- (1<<LLPipeline::RENDER_TYPE_INVISIBLE) |
- (1 << LLPipeline::RENDER_TYPE_PASS_SIMPLE) |
- (1 << LLPipeline::RENDER_TYPE_PASS_ALPHA) |
- (1 << LLPipeline::RENDER_TYPE_PASS_ALPHA_MASK) |
- (1 << LLPipeline::RENDER_TYPE_PASS_FULLBRIGHT) |
- (1 << LLPipeline::RENDER_TYPE_PASS_FULLBRIGHT_ALPHA_MASK) |
- (1 << LLPipeline::RENDER_TYPE_PASS_FULLBRIGHT_SHINY) |
- (1 << LLPipeline::RENDER_TYPE_PASS_SHINY) |
- (1 << LLPipeline::RENDER_TYPE_PASS_INVISIBLE) |
- (1 << LLPipeline::RENDER_TYPE_PASS_INVISI_SHINY);
+ andRenderTypeMask(LLPipeline::RENDER_TYPE_VOLUME,
+ LLPipeline::RENDER_TYPE_AVATAR,
+ LLPipeline::RENDER_TYPE_BUMP,
+ LLPipeline::RENDER_TYPE_GRASS,
+ LLPipeline::RENDER_TYPE_SIMPLE,
+ LLPipeline::RENDER_TYPE_FULLBRIGHT,
+ LLPipeline::RENDER_TYPE_ALPHA,
+ LLPipeline::RENDER_TYPE_INVISIBLE,
+ LLPipeline::RENDER_TYPE_PASS_SIMPLE,
+ LLPipeline::RENDER_TYPE_PASS_ALPHA,
+ LLPipeline::RENDER_TYPE_PASS_ALPHA_MASK,
+ LLPipeline::RENDER_TYPE_PASS_FULLBRIGHT,
+ LLPipeline::RENDER_TYPE_PASS_FULLBRIGHT_ALPHA_MASK,
+ LLPipeline::RENDER_TYPE_PASS_FULLBRIGHT_SHINY,
+ LLPipeline::RENDER_TYPE_PASS_SHINY,
+ LLPipeline::RENDER_TYPE_PASS_INVISIBLE,
+ LLPipeline::RENDER_TYPE_PASS_INVISI_SHINY,
+ END_RENDER_TYPES);
}
- mask = mask & gPipeline.getRenderTypeMask();
- U32 saved_mask = gPipeline.mRenderTypeMask;
- gPipeline.mRenderTypeMask = mask;
-
S32 occlusion = sUseOcclusion;
sUseOcclusion = 0;
sReflectionRender = sRenderDeferred ? FALSE : TRUE;
@@ -8823,7 +9006,7 @@ void LLPipeline::generateImpostor(LLVOAvatar* avatar)
sReflectionRender = FALSE;
sImpostorRender = FALSE;
sShadowRender = FALSE;
- gPipeline.mRenderTypeMask = saved_mask;
+ popRenderTypeMask();
glMatrixMode(GL_PROJECTION);
glPopMatrix();
@@ -8864,4 +9047,121 @@ LLCullResult::sg_list_t::iterator LLPipeline::endAlphaGroups()
return sCull->endAlphaGroups();
}
+BOOL LLPipeline::hasRenderType(const U32 type) const
+{
+ return mRenderTypeEnabled[type];
+}
+
+void LLPipeline::setRenderTypeMask(U32 type, ...)
+{
+ va_list args;
+
+ va_start(args, type);
+ while (type < END_RENDER_TYPES)
+ {
+ mRenderTypeEnabled[type] = TRUE;
+ type = va_arg(args, U32);
+ }
+ va_end(args);
+
+ if (type > END_RENDER_TYPES)
+ {
+ llerrs << "Invalid render type." << llendl;
+ }
+}
+
+BOOL LLPipeline::hasAnyRenderType(U32 type, ...) const
+{
+ va_list args;
+
+ va_start(args, type);
+ while (type < END_RENDER_TYPES)
+ {
+ if (mRenderTypeEnabled[type])
+ {
+ return TRUE;
+ }
+ type = va_arg(args, U32);
+ }
+ va_end(args);
+
+ if (type > END_RENDER_TYPES)
+ {
+ llerrs << "Invalid render type." << llendl;
+ }
+
+ return FALSE;
+}
+
+void LLPipeline::pushRenderTypeMask()
+{
+ std::string cur_mask;
+ cur_mask.assign((const char*) mRenderTypeEnabled, sizeof(mRenderTypeEnabled));
+ mRenderTypeEnableStack.push(cur_mask);
+}
+
+void LLPipeline::popRenderTypeMask()
+{
+ if (mRenderTypeEnableStack.empty())
+ {
+ llerrs << "Depleted render type stack." << llendl;
+ }
+
+ memcpy(mRenderTypeEnabled, mRenderTypeEnableStack.top().data(), sizeof(mRenderTypeEnabled));
+ mRenderTypeEnableStack.pop();
+}
+
+void LLPipeline::andRenderTypeMask(U32 type, ...)
+{
+ va_list args;
+
+ BOOL tmp[NUM_RENDER_TYPES];
+ for (U32 i = 0; i < NUM_RENDER_TYPES; ++i)
+ {
+ tmp[i] = FALSE;
+ }
+
+ va_start(args, type);
+ while (type < END_RENDER_TYPES)
+ {
+ if (mRenderTypeEnabled[type])
+ {
+ tmp[type] = TRUE;
+ }
+
+ type = va_arg(args, U32);
+ }
+ va_end(args);
+
+ if (type > END_RENDER_TYPES)
+ {
+ llerrs << "Invalid render type." << llendl;
+ }
+
+ for (U32 i = 0; i < LLPipeline::NUM_RENDER_TYPES; ++i)
+ {
+ mRenderTypeEnabled[i] = tmp[i];
+ }
+
+}
+
+void LLPipeline::clearRenderTypeMask(U32 type, ...)
+{
+ va_list args;
+
+ va_start(args, type);
+ while (type < END_RENDER_TYPES)
+ {
+ mRenderTypeEnabled[type] = FALSE;
+
+ type = va_arg(args, U32);
+ }
+ va_end(args);
+
+ if (type > END_RENDER_TYPES)
+ {
+ llerrs << "Invalid render type." << llendl;
+ }
+}
+
diff --git a/indra/newview/pipeline.h b/indra/newview/pipeline.h
index 89649a0682..fe0683d29f 100644
--- a/indra/newview/pipeline.h
+++ b/indra/newview/pipeline.h
@@ -2,31 +2,25 @@
* @file pipeline.h
* @brief Rendering pipeline definitions
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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$
*/
@@ -46,6 +40,8 @@
#include "lldrawable.h"
#include "llrendertarget.h"
+#include <stack>
+
class LLViewerTexture;
class LLEdge;
class LLFace;
@@ -277,12 +273,25 @@ public:
LLCullResult::sg_list_t::iterator beginAlphaGroups();
LLCullResult::sg_list_t::iterator endAlphaGroups();
+
void addTrianglesDrawn(S32 index_count, U32 render_type = LLRender::TRIANGLES);
- BOOL hasRenderType(const U32 type) const { return (type && (mRenderTypeMask & (1<<type))) ? TRUE : FALSE; }
+
BOOL hasRenderDebugFeatureMask(const U32 mask) const { return (mRenderDebugFeatureMask & mask) ? TRUE : FALSE; }
BOOL hasRenderDebugMask(const U32 mask) const { return (mRenderDebugMask & mask) ? TRUE : FALSE; }
- void setRenderTypeMask(const U32 mask) { mRenderTypeMask = mask; }
- U32 getRenderTypeMask() const { return mRenderTypeMask; }
+
+
+
+ BOOL hasRenderType(const U32 type) const;
+ BOOL hasAnyRenderType(const U32 type, ...) const;
+
+ void setRenderTypeMask(U32 type, ...);
+ void orRenderTypeMask(U32 type, ...);
+ void andRenderTypeMask(U32 type, ...);
+ void clearRenderTypeMask(U32 type, ...);
+
+ void pushRenderTypeMask();
+ void popRenderTypeMask();
+
static void toggleRenderType(U32 type);
// For UI control of render features
@@ -360,6 +369,7 @@ public:
RENDER_TYPE_PASS_FULLBRIGHT_SHINY = LLRenderPass::PASS_FULLBRIGHT_SHINY,
RENDER_TYPE_PASS_SHINY = LLRenderPass::PASS_SHINY,
RENDER_TYPE_PASS_BUMP = LLRenderPass::PASS_BUMP,
+ RENDER_TYPE_PASS_POST_BUMP = LLRenderPass::PASS_POST_BUMP,
RENDER_TYPE_PASS_GLOW = LLRenderPass::PASS_GLOW,
RENDER_TYPE_PASS_ALPHA = LLRenderPass::PASS_ALPHA,
RENDER_TYPE_PASS_ALPHA_MASK = LLRenderPass::PASS_ALPHA_MASK,
@@ -370,7 +380,9 @@ public:
RENDER_TYPE_VOLUME,
RENDER_TYPE_PARTICLES,
RENDER_TYPE_CLOUDS,
- RENDER_TYPE_HUD_PARTICLES
+ RENDER_TYPE_HUD_PARTICLES,
+ NUM_RENDER_TYPES,
+ END_RENDER_TYPES = NUM_RENDER_TYPES
};
enum LLRenderDebugFeatureMask
@@ -444,7 +456,8 @@ public:
static BOOL sForceOldBakedUpload; // If true will not use capabilities to upload baked textures.
static S32 sUseOcclusion; // 0 = no occlusion, 1 = read only, 2 = read/write
static BOOL sDelayVBUpdate;
- static BOOL sFastAlpha;
+ static BOOL sAutoMaskAlphaDeferred;
+ static BOOL sAutoMaskAlphaNonDeferred;
static BOOL sDisableShaders; // if TRUE, rendering will be done without shaders
static BOOL sRenderBump;
static BOOL sUseTriStrips;
@@ -533,7 +546,9 @@ public:
S32 mVertexShadersLoaded; // 0 = no, 1 = yes, -1 = failed
protected:
- U32 mRenderTypeMask;
+ BOOL mRenderTypeEnabled[NUM_RENDER_TYPES];
+ std::stack<std::string> mRenderTypeEnableStack;
+
U32 mRenderDebugFeatureMask;
U32 mRenderDebugMask;
@@ -584,7 +599,7 @@ protected:
//
LLDrawable::drawable_list_t mBuildQ1; // priority
LLDrawable::drawable_list_t mBuildQ2; // non-priority
- LLSpatialGroup::sg_list_t mGroupQ1; //priority
+ LLSpatialGroup::sg_vector_t mGroupQ1; //priority
LLSpatialGroup::sg_vector_t mGroupQ2; // non-priority
LLViewerObject::vobj_list_t mCreateQ;
diff --git a/indra/newview/res/have_artwork_bundle.marker b/indra/newview/res/have_artwork_bundle.marker
new file mode 100644
index 0000000000..1dbb238d53
--- /dev/null
+++ b/indra/newview/res/have_artwork_bundle.marker
@@ -0,0 +1 @@
+If this file exists then you have the artwork bundle installed, which is packaged separately from the Viewer source in the open-source tree. This marker is for the benefit of the build system so it can warn you properly if it's not there. :)
diff --git a/indra/newview/res/resource.h b/indra/newview/res/resource.h
index 6cabd5e10b..28813be896 100644
--- a/indra/newview/res/resource.h
+++ b/indra/newview/res/resource.h
@@ -1,31 +1,25 @@
/**
* @file resource.h
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/res/viewerRes.rc b/indra/newview/res/viewerRes.rc
index df2fb2a6ea..5e8cee1f5f 100644
--- a/indra/newview/res/viewerRes.rc
+++ b/indra/newview/res/viewerRes.rc
@@ -129,8 +129,8 @@ TOOLSIT CURSOR "toolsit.cur"
//
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 2,1,0,0
- PRODUCTVERSION 2,1,0,0
+ FILEVERSION 2,1,1,0
+ PRODUCTVERSION 2,1,1,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
@@ -147,12 +147,12 @@ BEGIN
BEGIN
VALUE "CompanyName", "Linden Lab"
VALUE "FileDescription", "Second Life"
- VALUE "FileVersion", "2.1.0.0"
+ VALUE "FileVersion", "2.1.1.0"
VALUE "InternalName", "Second Life"
- VALUE "LegalCopyright", "Copyright © 2001-2008, Linden Research, Inc."
+ VALUE "LegalCopyright", "Copyright � 2001-2010, Linden Research, Inc."
VALUE "OriginalFilename", "SecondLife.exe"
VALUE "ProductName", "Second Life"
- VALUE "ProductVersion", "2.1.0.0"
+ VALUE "ProductVersion", "2.1.1.0"
END
END
BLOCK "VarFileInfo"
diff --git a/indra/newview/secondlife-i686.supp b/indra/newview/secondlife-i686.supp
index 43d4483466..863c8364ab 100644
--- a/indra/newview/secondlife-i686.supp
+++ b/indra/newview/secondlife-i686.supp
@@ -1,30 +1,25 @@
# @file secondlife-i686.supp
# @brief Valgrind suppressions for Linux i686 viewer.
#
-# $LicenseInfo:firstyear=2000&license=viewergpl$
-#
-# Copyright (c) 2000-2007, Linden Research, Inc.
-#
+# $LicenseInfo:firstyear=2000&license=viewerlgpl$
# Second Life Viewer Source Code
-# The source code in this file ("Source Code") is provided by Linden Lab
-# to you under the terms of the GNU General Public License, version 2.0
-# ("GPL"), unless you have obtained a separate licensing agreement
-# ("Other License"), formally executed by you and Linden Lab. Terms of
-# the GPL can be found in doc/GPL-license.txt in this distribution, or
-# online at http://secondlife.com/developers/opensource/gplv2
+# 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.
#
-# There are special exceptions to the terms and conditions of the GPL as
-# it is applied to this Source Code. View the full text of the exception
-# in the file doc/FLOSS-exception.txt in this software distribution, or
-# online at http://secondlife.com/developers/opensource/flossexception
+# 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.
#
-# By copying, modifying or distributing this software, you acknowledge
-# that you have read and understood your obligations described above,
-# and agree to abide by those obligations.
+# 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
#
-# ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
-# WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
-# COMPLETENESS OR PERFORMANCE.
+# Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
# $/LicenseInfo$
#
# This is a Valgrind suppression file for use on the viewer.
diff --git a/indra/newview/skins/default/colors.xml b/indra/newview/skins/default/colors.xml
index e8a893e31b..b489294f38 100644
--- a/indra/newview/skins/default/colors.xml
+++ b/indra/newview/skins/default/colors.xml
@@ -86,6 +86,9 @@
<color
name="LtOrange"
value="1 .85 .73 1" />
+ <color
+ name="MdBlue"
+ value=".07 .38 .51 1" />
<!-- This color name makes potentially unused colors show up bright purple.
Leave this here until all Unused? are removed below, otherwise
@@ -97,6 +100,9 @@
<!-- UI Definitions -->
<color
+ name="AccordionHeaderTextColor"
+ reference="LtGray" />
+ <color
name="AgentChatColor"
reference="White" />
<color
@@ -110,7 +116,7 @@
reference="LtYellow" />
<color
name="AgentLinkColor"
- reference="White" />
+ reference="EmphasisColor" />
<color
name="AlertTextColor"
value="0.58 0.66 0.84 1" />
@@ -646,6 +652,9 @@
name="ScrollbarTrackColor"
reference="Black" />
<color
+ name="SelectedOutfitTextColor"
+ reference="EmphasisColor" />
+ <color
name="SilhouetteChildColor"
value="0.13 0.42 0.77 1" />
<color
@@ -743,4 +752,7 @@
<color
name="ChatTimestampColor"
reference="White" />
+ <color
+ name="MenuBarProjectBgColor"
+ reference="MdBlue" />
</colors>
diff --git a/indra/newview/skins/default/textures/ff_edit_mine.tga b/indra/newview/skins/default/textures/ff_edit_mine.tga
deleted file mode 100644
index 8f0c35b98f..0000000000
--- a/indra/newview/skins/default/textures/ff_edit_mine.tga
+++ /dev/null
Binary files differ
diff --git a/indra/newview/skins/default/textures/ff_edit_mine_button.tga b/indra/newview/skins/default/textures/ff_edit_mine_button.tga
deleted file mode 100644
index 07627a65c5..0000000000
--- a/indra/newview/skins/default/textures/ff_edit_mine_button.tga
+++ /dev/null
Binary files differ
diff --git a/indra/newview/skins/default/textures/ff_edit_theirs.tga b/indra/newview/skins/default/textures/ff_edit_theirs.tga
deleted file mode 100644
index 005ada2dea..0000000000
--- a/indra/newview/skins/default/textures/ff_edit_theirs.tga
+++ /dev/null
Binary files differ
diff --git a/indra/newview/skins/default/textures/ff_edit_theirs_button.tga b/indra/newview/skins/default/textures/ff_edit_theirs_button.tga
deleted file mode 100644
index 798ef641d3..0000000000
--- a/indra/newview/skins/default/textures/ff_edit_theirs_button.tga
+++ /dev/null
Binary files differ
diff --git a/indra/newview/skins/default/textures/ff_online_status_button.tga b/indra/newview/skins/default/textures/ff_online_status_button.tga
deleted file mode 100644
index 9076df6b9e..0000000000
--- a/indra/newview/skins/default/textures/ff_online_status_button.tga
+++ /dev/null
Binary files differ
diff --git a/indra/newview/skins/default/textures/ff_visible_map.tga b/indra/newview/skins/default/textures/ff_visible_map.tga
deleted file mode 100644
index a4dad78dad..0000000000
--- a/indra/newview/skins/default/textures/ff_visible_map.tga
+++ /dev/null
Binary files differ
diff --git a/indra/newview/skins/default/textures/ff_visible_map_button.tga b/indra/newview/skins/default/textures/ff_visible_map_button.tga
deleted file mode 100644
index 8d13adee3f..0000000000
--- a/indra/newview/skins/default/textures/ff_visible_map_button.tga
+++ /dev/null
Binary files differ
diff --git a/indra/newview/skins/default/textures/ff_visible_online.tga b/indra/newview/skins/default/textures/ff_visible_online.tga
deleted file mode 100644
index 74e3a4e318..0000000000
--- a/indra/newview/skins/default/textures/ff_visible_online.tga
+++ /dev/null
Binary files differ
diff --git a/indra/newview/skins/default/textures/ff_visible_online_button.tga b/indra/newview/skins/default/textures/ff_visible_online_button.tga
deleted file mode 100644
index 08a6cbedd9..0000000000
--- a/indra/newview/skins/default/textures/ff_visible_online_button.tga
+++ /dev/null
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 1c43960d02..250697b4b1 100644
--- 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/Generic_Group_Large.png b/indra/newview/skins/default/textures/icons/Generic_Group_Large.png
index de8a39fc8a..75833eccf3 100644
--- 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_Person_Large.png b/indra/newview/skins/default/textures/icons/Generic_Person_Large.png
index 65b0ce8b67..532288b430 100644
--- 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_On.png b/indra/newview/skins/default/textures/icons/Hierarchy_View_On.png
index c590a5a5d3..296311e797 100644
--- 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/Inv_Invalid.png b/indra/newview/skins/default/textures/icons/Inv_Invalid.png
new file mode 100644
index 0000000000..328be104ee
--- /dev/null
+++ b/indra/newview/skins/default/textures/icons/Inv_Invalid.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 d7e0001dc6..81c13eeabd 100644
--- 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/edit_mine.png b/indra/newview/skins/default/textures/icons/edit_mine.png
new file mode 100644
index 0000000000..a0bc7efd25
--- /dev/null
+++ 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
new file mode 100644
index 0000000000..ed36ad7cfc
--- /dev/null
+++ b/indra/newview/skins/default/textures/icons/edit_theirs.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
new file mode 100644
index 0000000000..78b681cb33
--- /dev/null
+++ 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
new file mode 100644
index 0000000000..52dc2ae74f
--- /dev/null
+++ 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
new file mode 100644
index 0000000000..200e649818
--- /dev/null
+++ b/indra/newview/skins/default/textures/icons/see_on_map.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
new file mode 100644
index 0000000000..a79d999932
--- /dev/null
+++ 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
new file mode 100644
index 0000000000..b692ed92da
--- /dev/null
+++ b/indra/newview/skins/default/textures/navbar/NavBar_BG_NoNav_Bevel.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
new file mode 100644
index 0000000000..50c01062a5
--- /dev/null
+++ 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
new file mode 100644
index 0000000000..bf2065cd37
--- /dev/null
+++ 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
new file mode 100644
index 0000000000..8b48258142
--- /dev/null
+++ 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
new file mode 100644
index 0000000000..09efe779fe
--- /dev/null
+++ b/indra/newview/skins/default/textures/taskpanel/Sidebar_Icon_Undock_Press.png
Binary files differ
diff --git a/indra/newview/skins/default/textures/textures.xml b/indra/newview/skins/default/textures/textures.xml
index cf632c085f..925e2b5b04 100644
--- a/indra/newview/skins/default/textures/textures.xml
+++ b/indra/newview/skins/default/textures/textures.xml
@@ -68,9 +68,9 @@ with the same filename but different name
<texture name="BackArrow_Off" file_name="icons/BackArrow_Off.png" preload="false" />
- <texture name="BackButton_Off" file_name="icons/back_arrow_off.png" preload="false" />
- <texture name="BackButton_Over" file_name="icons/back_arrow_over.png" preload="false" />
- <texture name="BackButton_Press" file_name="icons/back_arrow_press.png" preload="false" />
+ <texture name="BackButton_Off" file_name="icons/back_arrow_off.png" preload="false" scale.left="22" scale.top="12" scale.right="25" scale.bottom="12" />
+ <texture name="BackButton_Over" file_name="icons/back_arrow_over.png" preload="false" scale.left="22" scale.top="12" scale.right="25" scale.bottom="12" />
+ <texture name="BackButton_Press" file_name="icons/back_arrow_press.png" preload="false" scale.left="22" scale.top="12" scale.right="25" scale.bottom="12" />
<texture name="Blank" file_name="Blank.png" preload="false" />
@@ -229,7 +229,8 @@ with the same filename but different name
<texture name="Inv_Underpants" file_name="icons/Inv_Underpants.png" preload="false" />
<texture name="Inv_Undershirt" file_name="icons/Inv_Undershirt.png" preload="false" />
<texture name="Inv_Link" file_name="icons/Inv_Link.png" preload="false" />
-
+ <texture name="Inv_Invalid" file_name="icons/Inv_Invalid.png" preload="false" />
+
<texture name="Linden_Dollar_Alert" file_name="widgets/Linden_Dollar_Alert.png"/>
<texture name="Linden_Dollar_Background" file_name="widgets/Linden_Dollar_Background.png"/>
@@ -276,9 +277,9 @@ with the same filename but different name
<texture name="Movement_Up_Off" file_name="bottomtray/Movement_Up_Off.png" preload="false" />
<texture name="Movement_Up_On" file_name="bottomtray/Movement_Up_On.png" preload="false" />
- <texture name="NavBar_BG_NoFav" file_name="navbar/NavBar_BG_NoFav.png" preload="true" scale.left="1" scale.top="1" scale.right="0" scale.bottom="0" />
<texture name="NavBar_BG" file_name="navbar/NavBar_BG.png" preload="true" scale.left="1" scale.top="1" scale.right="0" scale.bottom="0" />
-
+ <texture name="NavBar_BG_NoFav_Bevel" file_name="navbar/NavBar_BG_NoFav_Bevel.png" preload="true" scale.left="1" scale.top="1" scale.right="0" scale.bottom="0" />
+ <texture name="NavBar_BG_NoNav_Bevel" file_name="navbar/NavBar_BG_NoNav_Bevel.png" preload="true" scale.left="1" scale.top="1" scale.right="0" scale.bottom="0" />
<texture name="Notices_Unread" file_name="bottomtray/Notices_Unread.png" preload="true" />
@@ -358,11 +359,16 @@ with the same filename but different name
<texture name="Pause_Off" file_name="icons/Pause_Off.png" preload="false" />
<texture name="Pause_Over" file_name="icons/Pause_Over.png" preload="false" />
<texture name="Pause_Press" file_name="icons/Pause_Press.png" preload="false" />
+
+ <texture name="Permission_Visible_Online" file_name="icons/see_me_online.png" preload="false" />
+ <texture name="Permission_Visible_Map" file_name="icons/see_on_map.png" preload="false" />
+ <texture name="Permission_Edit_Objects_Mine" file_name="icons/edit_mine.png" preload="false" />
+ <texture name="Permission_Edit_Objects_Theirs" file_name="icons/edit_theirs.png" preload="false" />
+
<texture name="Play_Off" file_name="icons/Play_Off.png" preload="false" />
<texture name="Play_Over" file_name="icons/Play_Over.png" preload="false" />
<texture name="Play_Press" file_name="icons/Play_Press.png" preload="false" />
-
<texture name="ProgressBar" file_name="widgets/ProgressBar.png" preload="true" scale.left="4" scale.top="10" scale.right="48" scale.bottom="2" />
<texture name="ProgressTrack" file_name="widgets/ProgressTrack.png" preload="true" scale.left="4" scale.top="13" scale.right="148" scale.bottom="2" />
@@ -428,6 +434,12 @@ with the same filename but different name
<texture name="SegmentedBtn_Right_Selected_Disabled" file_name="widgets/SegmentedBtn_Right_Selected_Disabled.png" preload="true" scale.left="4" scale.top="19" scale.right="22" scale.bottom="4" />
<texture name="Shirt_Large" file_name="icons/Shirt_Large.png" preload="false" />
+
+ <texture name="Sidebar_Icon_Dock_Foreground" file_name="taskpanel/Sidebar_Icon_Dock_Foreground.png" preload="false" />
+ <texture name="Sidebar_Icon_Dock_Press" file_name="taskpanel/Sidebar_Icon_Dock_Press.png" preload="false" />
+ <texture name="Sidebar_Icon_Undock_Foreground" file_name="taskpanel/Sidebar_Icon_Undock_Foreground.png" preload="false" />
+ <texture name="Sidebar_Icon_Undock_Press" file_name="taskpanel/Sidebar_Icon_Undock_Press.png" preload="false" />
+
<texture name="Shop" file_name="icons/Shop.png" preload="false" />
<texture name="SkipBackward_Off" file_name="icons/SkipBackward_Off.png" preload="false" />
@@ -579,6 +591,10 @@ with the same filename but different name
<texture name="scrollbutton_left_in_blue.tga" file_name="widgets/ScrollArrow_Left_Over_Opaque.png" />
<texture name="scrollbutton_right_out_blue.tga" file_name="widgets/ScrollArrow_Right_Opaque.png" />
<texture name="scrollbutton_right_in_blue.tga" file_name="widgets/ScrollArrow_Right_Over_Opaque.png" />
+ <texture name="scrollbutton_up_out_blue.tga" file_name="widgets/ScrollArrow_Up_Opaque.png" />
+ <texture name="scrollbutton_up_in_blue.tga" file_name="widgets/ScrollArrow_Up_Over_Opaque.png" />
+ <texture name="scrollbutton_down_out_blue.tga" file_name="widgets/ScrollArrow_Down_Opaque.png" />
+ <texture name="scrollbutton_down_in_blue.tga" file_name="widgets/ScrollArrow_Down_Over_Opaque.png" />
<texture name="up_arrow.tga" file_name="up_arrow.png" />
<texture name="down_arrow.tga" file_name="down_arrow.png" />
@@ -642,4 +658,13 @@ with the same filename but different name
<texture name="buy_over" file_name="widgets/buy_over.png" preload="true" scale.left="2" scale.top="15" scale.right="67" scale.bottom="4"/>
<texture name="buy_press" file_name="widgets/buy_press.png" preload="true" scale.left="2" scale.top="15" scale.right="67" scale.bottom="4"/>
+ <texture name="hint_background" file_name="windows/hint_background.png" preload="false" scale.left="8" scale.top="70" scale.right="195" scale.bottom="11"/>
+ <texture name="hint_arrow_left" file_name="windows/hint_arrow_left.png" preload="false"/>
+ <texture name="hint_arrow_right" file_name="windows/hint_arrow_right.png" preload="false"/>
+ <texture name="hint_arrow_up" file_name="windows/hint_arrow_up.png" preload="false"/>
+ <texture name="hint_arrow_down" file_name="windows/hint_arrow_down.png" preload="false"/>
+ <texture name="hint_arrow_lower_left" file_name="windows/hint_arrow_lower_left.png" preload="false"/>
+
+ <texture name="Yellow_Gradient" file_name="windows/yellow_gradient.png"/>
+ <texture name="Popup_Caution" file_name="icons/pop_up_caution.png"/>
</textures>
diff --git a/indra/newview/skins/default/textures/widgets/ScrollArrow_Down_Opaque.png b/indra/newview/skins/default/textures/widgets/ScrollArrow_Down_Opaque.png
new file mode 100644
index 0000000000..a396380fb2
--- /dev/null
+++ 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
new file mode 100644
index 0000000000..9568dea78a
--- /dev/null
+++ 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_Up_Opaque.png b/indra/newview/skins/default/textures/widgets/ScrollArrow_Up_Opaque.png
new file mode 100644
index 0000000000..67a7a5568b
--- /dev/null
+++ 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
new file mode 100644
index 0000000000..0cc8c4404b
--- /dev/null
+++ b/indra/newview/skins/default/textures/widgets/ScrollArrow_Up_Over_Opaque.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
new file mode 100644
index 0000000000..ddadef0978
--- /dev/null
+++ 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
new file mode 100644
index 0000000000..2794b967e8
--- /dev/null
+++ 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
new file mode 100644
index 0000000000..0dfc99898d
--- /dev/null
+++ 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
new file mode 100644
index 0000000000..7ac57f805b
--- /dev/null
+++ 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
new file mode 100644
index 0000000000..bb3e1c07fa
--- /dev/null
+++ 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
new file mode 100644
index 0000000000..cfac5deacb
--- /dev/null
+++ b/indra/newview/skins/default/textures/windows/hint_background.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
new file mode 100644
index 0000000000..5fd847aaef
--- /dev/null
+++ b/indra/newview/skins/default/textures/windows/yellow_gradient.png
Binary files differ
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 053fe4d9d9..a096a87928 100644
--- a/indra/newview/skins/default/xui/da/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/da/floater_about_land.xml
@@ -219,7 +219,7 @@ Gå til &apos;Verden&apos; &gt; &apos;Om land&apos; eller vælg en anden parcel
Region objekt bonus faktor: [BONUS]
</text>
<text name="Simulator primitive usage:">
- Prim forbrug:
+ Prim benyttelse:
</text>
<text name="objects_available">
[COUNT] ud af [MAX] ([AVAILABLE] ledige)
diff --git a/indra/newview/skins/default/xui/da/floater_camera.xml b/indra/newview/skins/default/xui/da/floater_camera.xml
index 37e3307960..5b7ef6db54 100644
--- a/indra/newview/skins/default/xui/da/floater_camera.xml
+++ b/indra/newview/skins/default/xui/da/floater_camera.xml
@@ -9,35 +9,57 @@
<floater.string name="move_tooltip">
Flyt kamera op og ned, til venstre og højre
</floater.string>
- <floater.string name="orbit_mode_title">
- Kredsløb
+ <floater.string name="camera_modes_title">
+ Kamera valg
</floater.string>
<floater.string name="pan_mode_title">
- Panorér
+ Kredsløb zoom panorering
</floater.string>
- <floater.string name="avatar_view_mode_title">
+ <floater.string name="presets_mode_title">
Forvalg
</floater.string>
<floater.string name="free_mode_title">
Se objekt
</floater.string>
<panel name="controls">
- <joystick_track name="cam_track_stick" tool_tip="Flyt kamera op og ned, til venstre og højre"/>
+ <panel name="preset_views_list">
+ <panel_camera_item name="front_view">
+ <panel_camera_item.text name="front_view_text">
+ Se forfra
+ </panel_camera_item.text>
+ </panel_camera_item>
+ <panel_camera_item name="group_view">
+ <panel_camera_item.text name="side_view_text">
+ Se fra siden
+ </panel_camera_item.text>
+ </panel_camera_item>
+ <panel_camera_item name="rear_view">
+ <panel_camera_item.text name="rear_view_text">
+ Se bagfra
+ </panel_camera_item.text>
+ </panel_camera_item>
+ </panel>
+ <panel name="camera_modes_list">
+ <panel_camera_item name="object_view">
+ <panel_camera_item.text name="object_view_text">
+ Se fra objekt
+ </panel_camera_item.text>
+ </panel_camera_item>
+ <panel_camera_item name="mouselook_view">
+ <panel_camera_item.text name="mouselook_view_text">
+ Førsteperson
+ </panel_camera_item.text>
+ </panel_camera_item>
+ </panel>
<panel name="zoom" tool_tip="Zoom kamera mod fokus">
+ <joystick_rotate name="cam_rotate_stick" tool_tip="Kamera kredser rundt om fokus"/>
<slider_bar name="zoom_slider" tool_tip="Zoom kamera mod fokus"/>
- </panel>
- <joystick_rotate name="cam_rotate_stick" tool_tip="Kreds kamera omkring fokus"/>
- <panel name="camera_presets">
- <button name="rear_view" tool_tip="Se bagfra"/>
- <button name="group_view" tool_tip="Se som gruppe"/>
- <button name="front_view" tool_tip="Se forfra"/>
- <button name="mouselook_view" tool_tip="Førsteperson"/>
+ <joystick_track name="cam_track_stick" tool_tip="Flyt kamera op og ned, venstre og højre"/>
</panel>
</panel>
<panel name="buttons">
- <button label="" name="orbit_btn" tool_tip="Rotér kamera"/>
- <button label="" name="pan_btn" tool_tip="Panorér kamera"/>
- <button label="" name="avatarview_btn" tool_tip="Forvalg"/>
- <button label="" name="freecamera_btn" tool_tip="Se objekt"/>
+ <button label="" name="presets_btn" tool_tip="Forvalg"/>
+ <button label="" name="pan_btn" tool_tip="Kredsløb zoom panorering"/>
+ <button label="" name="avatarview_btn" tool_tip="Kamera valg"/>
</panel>
</floater>
diff --git a/indra/newview/skins/default/xui/da/floater_customize.xml b/indra/newview/skins/default/xui/da/floater_customize.xml
deleted file mode 100644
index a47e0d33df..0000000000
--- a/indra/newview/skins/default/xui/da/floater_customize.xml
+++ /dev/null
@@ -1,530 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater customize" title="UDSEENDE">
- <tab_container name="customize tab container">
- <text label="Krops Dele" name="body_parts_placeholder">
- Kropsdele
- </text>
- <panel label="Kropsbygning" name="Shape">
- <button label="Annullér" label_selected="Annullér" name="Revert"/>
- <button label="Krop" label_selected="Krop" name="Body"/>
- <button label="Hoved" label_selected="Hoved" name="Head"/>
- <button label="Øjne" label_selected="Øjne" name="Eyes"/>
- <button label="Ører" label_selected="Ører" name="Ears"/>
- <button label="Næse" label_selected="Næse" name="Nose"/>
- <button label="Mund" label_selected="Mund" name="Mouth"/>
- <button label="Kinder" label_selected="Kinder" name="Chin"/>
- <button label="Overkrop" label_selected="Overkrop" name="Torso"/>
- <button label="Ben" label_selected="Ben" name="Legs"/>
- <radio_group name="sex radio">
- <radio_item label="Kvinde" name="radio" value="0"/>
- <radio_item label="Mand" name="radio2" value="1"/>
- </radio_group>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: Kan ikke redigeres
- </text>
- <text name="title_loading">
- [DESC]: indlæser...
- </text>
- <text name="title_not_worn">
- [DESC]: ikke båret
- </text>
- <text name="path">
- Fundet i [PATH]
- </text>
- <text name="not worn instructions">
- Vælg en ny kropsbygning ved at trække en sådan fra din beholdning over på din avatar. Du kan også oprette en fra bunden og bagefter &apos;tage den på&apos;.
- </text>
- <text name="no modify instructions">
- Du har ikke rettigheder til at redigere denne del.
- </text>
- <text name="Item Action Label">
- Figur:
- </text>
- <button label="Lav ny krop" label_selected="Lav ny krop" name="Create New"/>
- <button label="Gem" label_selected="Gem" name="Save"/>
- <button label="Gem som..." label_selected="Gem som..." name="Save As"/>
- </panel>
- <panel label="Hud" name="Skin">
- <button label="Hudfarve" label_selected="Hudfarve" name="Skin Color"/>
- <button label="Detaljer" label_selected="Detaljer" name="Face Detail"/>
- <button label="Sminke" label_selected="Sminke" name="Makeup"/>
- <button label="Kropsdetaljer" label_selected="Kropsdetaljer" name="Body Detail"/>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: Kan ikke redigeres
- </text>
- <text name="title_loading">
- [DESC]: indlæser...
- </text>
- <text name="title_not_worn">
- [DESC]: ikke båret
- </text>
- <text name="path">
- Fundet i [PATH]
- </text>
- <text name="not worn instructions">
- Vælg en ny hud ved at trække en sådan fra din beholdning over på din avatar. Du kan også oprette en fra bunden og bagefter &apos;tage den på&apos;.
- </text>
- <text name="no modify instructions">
- Du har ikke rettigheder til at redigere denne del.
- </text>
- <text name="Item Action Label">
- Hud:
- </text>
- <texture_picker label="Tatoveringer hoved" name="Head Tattoos" tool_tip="Klik for at vælge et billede" width="98"/>
- <texture_picker label="Tatover. overkrop" name="Upper Tattoos" tool_tip="Klik for at vælge et billede" width="98"/>
- <texture_picker label="Tatover. underkrop" name="Lower Tattoos" tool_tip="Klik for at vælge et billede" width="98"/>
- <button label="Lav ny hud" label_selected="Lav nyt hud" name="Create New"/>
- <button label="Gem" label_selected="Gem" name="Save"/>
- <button label="Gem som..." label_selected="Gem som..." name="Save As"/>
- <button label="Annullér" label_selected="Annullér" name="Revert"/>
- </panel>
- <panel label="HÃ¥r" name="Hair">
- <button label="Farve" label_selected="Farve" name="Color"/>
- <button label="Stil" label_selected="Stil" name="Style"/>
- <button label="Øjenbryn" label_selected="Øjenbryn" name="Eyebrows"/>
- <button label="Skæg" label_selected="Skæg" name="Facial"/>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: kan ikke redigeres
- </text>
- <text name="title_loading">
- [DESC]: indlæser...
- </text>
- <text name="title_not_worn">
- [DESC]: ikke båret
- </text>
- <text name="path">
- Fundet i [PATH]
- </text>
- <text name="not worn instructions">
- Vælg et nyt hår ved at trække et sådant fra din beholdning over på din avatar. Du kan også oprette et fra bunden og bagefter &apos;tage det på&apos;.
- </text>
- <text name="no modify instructions">
- Du har ikke rettigheder til at redigere denne del.
- </text>
- <text name="Item Action Label">
- HÃ¥r:
- </text>
- <texture_picker label="Tekstur" name="Texture" tool_tip="Klik for at vælge et billede"/>
- <button label="Lav nyt hår" label_selected="Lav nyt hår" name="Create New"/>
- <button label="Gem" label_selected="Gem" name="Save"/>
- <button label="Gem som..." label_selected="Gem som..." name="Save As"/>
- <button label="Annullér" label_selected="Annullér" name="Revert"/>
- </panel>
- <panel label="Øjne" name="Eyes">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: Kan ikke redigeres
- </text>
- <text name="title_loading">
- [DESC]: indlæser...
- </text>
- <text name="title_not_worn">
- [DESC]: ikke båret
- </text>
- <text name="path">
- Fundet i [PATH]
- </text>
- <text name="not worn instructions">
- Vælg et nyt sæt øjne ved at trække et sådant par fra din beholdning over på din avatar. Du kan også oprette et par fra bunden og bagefter &apos;tage dem på&apos;.
- </text>
- <text name="no modify instructions">
- Du har ikke rettigheder til at redigere denne del.
- </text>
- <text name="Item Action Label">
- Øjne:
- </text>
- <texture_picker label="Iris" name="Iris" tool_tip="Klik for at vælge et billede"/>
- <button label="Lav nye øjne" label_selected="Lav nye øjne" name="Create New"/>
- <button label="Gem" label_selected="Gem" name="Save"/>
- <button label="Gem som..." label_selected="Gem som..." name="Save As"/>
- <button label="Annullér" label_selected="Annullér" name="Revert"/>
- </panel>
- <text label="Tøje" name="clothes_placeholder">
- Tøj
- </text>
- <panel label="Trøje" name="Shirt">
- <texture_picker label="Stof" name="Fabric" tool_tip="Klik for at vælge et billede"/>
- <color_swatch label="Farve" name="Color/Tint" tool_tip="Klik for at åbne farvevælger"/>
- <button label="Tag af" label_selected="Tag af" name="Take Off"/>
- <button label="Lav ny trøje" label_selected="Lav ny trøje" name="Create New"/>
- <button label="Gem" label_selected="Gem" name="Save"/>
- <button label="Gem som..." label_selected="Gem som..." name="Save As"/>
- <button label="Annullér" label_selected="Annullér" name="Revert"/>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: Kan ikke redigeres
- </text>
- <text name="title_loading">
- [DESC]: indlæser...
- </text>
- <text name="title_not_worn">
- [DESC]: ikke båret
- </text>
- <text name="path">
- Fundet i [PATH]
- </text>
- <text name="not worn instructions">
- Vælg en ny trøje ved at trække en fra din beholdning over på din avatar. Du kan også oprette en fra bunden og bagefter &apos;tage den på&apos;.
- </text>
- <text name="no modify instructions">
- Du har ikke rettigheder til at redigere denne del.
- </text>
- <text name="Item Action Label">
- Trøje:
- </text>
- </panel>
- <panel label="Bukser" name="Pants">
- <texture_picker label="Stof" name="Fabric" tool_tip="Klik for at vælge et billede"/>
- <color_swatch label="Farve" name="Color/Tint" tool_tip="Klik for at åbne farvevælger"/>
- <button label="Tag af" label_selected="Tag af" name="Take Off"/>
- <button label="Lav nye bukser" label_selected="Lav nye bukser" name="Create New"/>
- <button label="Gem" label_selected="Gem" name="Save"/>
- <button label="Gem som..." label_selected="Gem som..." name="Save As"/>
- <button label="Annullér" label_selected="Annullér" name="Revert"/>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: Kan ikke redigeres
- </text>
- <text name="title_loading">
- [DESC]: indlæser...
- </text>
- <text name="title_not_worn">
- [DESC]: ikke båret
- </text>
- <text name="path">
- Fundet i [PATH]
- </text>
- <text name="not worn instructions">
- Vælg et nyt par bukser ved at trække et par fra din beholdning over på din avatar. Du kan også oprette et par fra bunden og bagefter &apos;tage dem på&apos;.
- </text>
- <text name="no modify instructions">
- Du har ikke rettigheder til at redigere denne del.
- </text>
- <text name="Item Action Label">
- Bukser:
- </text>
- </panel>
- <panel label="Sko" name="Shoes">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: Kan ikke redigeres
- </text>
- <text name="title_loading">
- [DESC]: indlæser...
- </text>
- <text name="title_not_worn">
- [DESC]: ikke båret
- </text>
- <text name="path">
- Fundet i [PATH]
- </text>
- <text name="not worn instructions">
- Vælg et nyt par sko ved at trække et par fra din beholdning over på din avatar. Du kan også oprette et par fra bunden og bagefter &apos;tage dem på&apos;.
- </text>
- <button label="Lav nye sko" label_selected="Lav nye sko" name="Create New"/>
- <text name="no modify instructions">
- Du har ikke rettigheder til at redigere denne del.
- </text>
- <text name="Item Action Label">
- Sko:
- </text>
- <texture_picker label="Stof" name="Fabric" tool_tip="Klik for at vælge et billede"/>
- <color_swatch label="Farve" name="Color/Tint" tool_tip="Klik for at åbne farvevælger"/>
- <button label="Tag af" label_selected="Tag af" name="Take Off"/>
- <button label="Gem" label_selected="Gem" name="Save"/>
- <button label="Gem som..." label_selected="Gem som..." name="Save As"/>
- <button label="Annullér" label_selected="Annullér" name="Revert"/>
- </panel>
- <panel label="Strømper" name="Socks">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: Kan ikke redigeres
- </text>
- <text name="title_loading">
- [DESC]: indlæser...
- </text>
- <text name="title_not_worn">
- [DESC]: ikke båret
- </text>
- <text name="path">
- Fundet i [PATH]
- </text>
- <text name="not worn instructions">
- Vælg et nyt par sokker ved at trække et par fra din beholdning over på din avatar. Du kan også oprette et par fra bunden og bagefter &apos;tage dem på&apos;.
- </text>
- <button label="Lav nye strømper" label_selected="Lav nye strømper" name="Create New"/>
- <text name="no modify instructions">
- Du har ikke rettigheder til at redigere denne del.
- </text>
- <text name="Item Action Label">
- Strømper:
- </text>
- <texture_picker label="Stof" name="Fabric" tool_tip="Klik for at vælge et billede"/>
- <color_swatch label="Farve" name="Color/Tint" tool_tip="Klik for at åbne farvevælger"/>
- <button label="Tag af" label_selected="Tag af" name="Take Off"/>
- <button label="Gem" label_selected="Gem" name="Save"/>
- <button label="Gem som..." label_selected="Gem som..." name="Save As"/>
- <button label="Annullér" label_selected="Annullér" name="Revert"/>
- </panel>
- <panel label="Jakke" name="Jacket">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: Kan ikke redigeres
- </text>
- <text name="title_loading">
- [DESC]: indlæser...
- </text>
- <text name="title_not_worn">
- [DESC]: ikke båret
- </text>
- <text name="path">
- Fundet i [PATH]
- </text>
- <text name="not worn instructions">
- Vælg en ny jakke ved at trække en fra din beholdning over på din avatar. Du kan også oprette en fra bunden og bagefter &apos;tage den på&apos;.
- </text>
- <button label="Lav ny jakke" label_selected="Lav ny jakke" name="Create New"/>
- <text name="no modify instructions">
- Du har ikke rettigheder til at redigere denne del.
- </text>
- <text name="Item Action Label">
- Jakke:
- </text>
- <texture_picker label="Stof øverst" name="Upper Fabric" tool_tip="Klik for at vælge et billede"/>
- <texture_picker label="Stof nederst" name="Lower Fabric" tool_tip="Klik for at vælge et billede"/>
- <color_swatch label="Farve" name="Color/Tint" tool_tip="Klik for at åbne farvevælger"/>
- <button label="Tag af" label_selected="Tag af" name="Take Off"/>
- <button label="Gem" label_selected="Gem" name="Save"/>
- <button label="Gem som..." label_selected="Gem som..." name="Save As"/>
- <button label="Annullér" label_selected="Annullér" name="Revert"/>
- </panel>
- <panel label="Handsker" name="Gloves">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: Kan ikke redigeres
- </text>
- <text name="title_loading">
- [DESC]: indlæser...
- </text>
- <text name="title_not_worn">
- [DESC]: ikke båret
- </text>
- <text name="path">
- Fundet i [PATH]
- </text>
- <text name="not worn instructions">
- Vælg et sæt nye handsker ved at trække et par fra din beholdning over på din avatar. Du kan også oprette et par fra bunden og bagefter &apos;tage dem på&apos;.
- </text>
- <button label="Lav nye handsker" label_selected="Lav nye handsker" name="Create New"/>
- <text name="no modify instructions">
- Du har ikke rettigheder til at redigere denne del.
- </text>
- <text name="Item Action Label">
- Handsker:
- </text>
- <texture_picker label="Stof" name="Fabric" tool_tip="Klik for at vælge et billede"/>
- <color_swatch label="Farve" name="Color/Tint" tool_tip="Klik for at åbne farvevælger"/>
- <button label="Tag af" label_selected="Tag af" name="Take Off"/>
- <button label="Gem" label_selected="Gem" name="Save"/>
- <button label="Gem som..." label_selected="Gem som..." name="Save As"/>
- <button label="Annullér" label_selected="Annullér" name="Revert"/>
- </panel>
- <panel label="Undertrøje" name="Undershirt">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: Kan ikke redigeres
- </text>
- <text name="title_loading">
- [DESC]: indlæser...
- </text>
- <text name="title_not_worn">
- [DESC]: ikke båret
- </text>
- <text name="path">
- Fundet i [PATH]
- </text>
- <text name="not worn instructions">
- Vælg en ny undertrøje ved at trække en fra din beholdning over på din avatar. Du kan også oprette en fra bunden og bagefter &apos;tage den på&apos;.
- </text>
- <button label="Lav ny undertrøje" label_selected="Lav ny undertrøje" name="Create New"/>
- <text name="no modify instructions">
- Du har ikke rettigheder til at redigere denne del.
- </text>
- <text name="Item Action Label">
- Undertrøje:
- </text>
- <texture_picker label="Stof" name="Fabric" tool_tip="Klik for at vælge et billede"/>
- <color_swatch label="Farve" name="Color/Tint" tool_tip="Klik for at åbne farvevælger"/>
- <button label="Tag af" label_selected="Tag af" name="Take Off"/>
- <button label="Gem" label_selected="Gem" name="Save"/>
- <button label="Gem som..." label_selected="Gem som..." name="Save As"/>
- <button label="Annullér" label_selected="Annullér" name="Revert"/>
- </panel>
- <panel label="Underbukser" name="Underpants">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: Kan ikke redigeres
- </text>
- <text name="title_loading">
- [DESC]: indlæser...
- </text>
- <text name="title_not_worn">
- [DESC]: ikke båret
- </text>
- <text name="path">
- Fundet i [PATH]
- </text>
- <text name="not worn instructions">
- Vælg et nyt par underbukser ved at trække et par fra din beholdning over på din avatar. Du kan også oprette et par fra bunden og bagefter &apos;tage dem på&apos;.
- </text>
- <button label="Lav nye underbukser" label_selected="Lav nye underbukser" name="Create New"/>
- <text name="no modify instructions">
- Du har ikke rettigheder til at redigere denne del.
- </text>
- <text name="Item Action Label">
- Underbukser:
- </text>
- <texture_picker label="Stof" name="Fabric" tool_tip="Klik for at vælge et billede"/>
- <color_swatch label="Farve" name="Color/Tint" tool_tip="Klik for at åbne farvevælger"/>
- <button label="Tag af" label_selected="Tag af" name="Take Off"/>
- <button label="Gem" label_selected="Gem" name="Save"/>
- <button label="Gem som..." label_selected="Gem som..." name="Save As"/>
- <button label="Annullér" label_selected="Annullér" name="Revert"/>
- </panel>
- <panel label="Nederdel" name="Skirt">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: Kan ikke redigeres
- </text>
- <text name="title_loading">
- [DESC]: indlæser...
- </text>
- <text name="title_not_worn">
- [DESC]: ikke båret
- </text>
- <text name="path">
- Fundet i [PATH]
- </text>
- <text name="not worn instructions">
- Vælg en ny nederdel ved at trække en fra din beholdning over på din avatar. Du kan også oprette en fra bunden og bagefter &apos;tage den på&apos;.
- </text>
- <button label="Lav ny nederdel" label_selected="Lav ny nederdel" name="Create New"/>
- <text name="no modify instructions">
- Du har ikke rettigheder til at redigere denne del.
- </text>
- <text name="Item Action Label">
- Nederdel:
- </text>
- <texture_picker label="Stof" name="Fabric" tool_tip="Klik for at vælge et billede"/>
- <color_swatch label="Farve" name="Color/Tint" tool_tip="Klik for at åbne farvevælger"/>
- <button label="Tag af" label_selected="Tag af" name="Take Off"/>
- <button label="Gem" label_selected="Gem" name="Save"/>
- <button label="Gem som..." label_selected="Gem som..." name="Save As"/>
- <button label="Annullér" label_selected="Annullér" name="Revert"/>
- </panel>
- <panel label="Tatovering" name="Tattoo">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: kan ikke ændre
- </text>
- <text name="title_loading">
- [DESC]: indlæser...
- </text>
- <text name="title_not_worn">
- [DESC]: ikke båret
- </text>
- <text name="path">
- Placeret i [PATH]
- </text>
- <text name="not worn instructions">
- Vælg en ny tatovering ved at trække en fra din beholdning over på din avatar. Du kan også oprette en fra bunden og bagefter &apos;tage den på&apos;.
- </text>
- <button label="lav ny tatovering" label_selected="Lav ny tatovering" name="Create New"/>
- <text name="no modify instructions">
- Du har ikke rettigheder til at ændre denne.
- </text>
- <text name="Item Action Label">
- Tatovering:
- </text>
- <texture_picker label="Tatovering - hovede" name="Head Tattoo" tool_tip="Klik for at vælge et billede"/>
- <texture_picker label="Øvre tatovering" name="Upper Tattoo" tool_tip="Klik for at vælge et billede"/>
- <texture_picker label="Nedre tatovering" name="Lower Tattoo" tool_tip="Klik for at vælge et billede"/>
- <button label="Tag af" label_selected="Tag af" name="Take Off"/>
- <button label="Gem" label_selected="Gem" name="Save"/>
- <button label="Gem som..." label_selected="Gem som..." name="Save As"/>
- <button label="Vend tilbage" label_selected="Vend tilbage" name="Revert"/>
- </panel>
- <panel label="Alpha" name="Alpha">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: kan ikke ændre
- </text>
- <text name="title_loading">
- [DESC]: indlæser...
- </text>
- <text name="title_not_worn">
- [DESC]: ikke båret
- </text>
- <text name="path">
- Placeret i [PATH]
- </text>
- <text name="not worn instructions">
- Vælg en ny &apos;alpha maske&apos; ved at trække en fra din beholdning over på din avatar. Du kan også oprette en fra bunden og bagefter &apos;tage den på&apos;.
- </text>
- <button label="Lav ny &quot;Alpha&quot;" label_selected="Lav ny &quot;Alpha&quot;" name="Create New"/>
- <text name="no modify instructions">
- Du har ikke rettigheder til at ændre denne.
- </text>
- <text name="Item Action Label">
- Alpha:
- </text>
- <texture_picker label="Alpha - nedre" name="Lower Alpha" tool_tip="Klik for at vælge et billede"/>
- <texture_picker label="Øvre alpha" name="Upper Alpha" tool_tip="Klik for at vælge et billede"/>
- <texture_picker label="Alpha - hoved" name="Head Alpha" tool_tip="Klik for at vælge et billede"/>
- <texture_picker label="Alpha - øjne" name="Eye Alpha" tool_tip="Klik for at vælge et billede"/>
- <texture_picker label="Alpha - hår" name="Hair Alpha" tool_tip="Klik for at vælge et billede"/>
- <button label="Tag af" label_selected="Tag af" name="Take Off"/>
- <button label="Gem" label_selected="Gem" name="Save"/>
- <button label="Gem som..." label_selected="Gem som..." name="Save As"/>
- <button label="Vend tilbage" label_selected="Vend tilbage" name="Revert"/>
- </panel>
- </tab_container>
- <scroll_container name="panel_container"/>
- <button label="Script info" label_selected="Script info" name="script_info" tool_tip="Vis scripts vedhæftet på din avatar"/>
- <button label="Lav sæt" label_selected="Lav sæt" name="make_outfit_btn"/>
- <button label="Annullér" label_selected="Annullér" name="Cancel"/>
- <button label="OK" label_selected="OK" name="Ok"/>
-</floater>
diff --git a/indra/newview/skins/default/xui/da/floater_device_settings.xml b/indra/newview/skins/default/xui/da/floater_device_settings.xml
deleted file mode 100644
index 06d431a8f9..0000000000
--- a/indra/newview/skins/default/xui/da/floater_device_settings.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_device_settings" title="STEMME CHAT ENHEDSOPSÆTNING"/>
diff --git a/indra/newview/skins/default/xui/da/floater_im.xml b/indra/newview/skins/default/xui/da/floater_im.xml
deleted file mode 100644
index 776bc9ab13..0000000000
--- a/indra/newview/skins/default/xui/da/floater_im.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<multi_floater name="im_floater" title="Personlig samtale (IM)">
- <string name="only_user_message">
- Du er den eneste beboer i denne session.
- </string>
- <string name="offline_message">
- [FIRST] [LAST] er ikke logget på.
- </string>
- <string name="invite_message">
- Tryk på [BUTTON NAME] knappen for at acceptére/tilslutte til denne stemme chat.
- </string>
- <string name="muted_message">
- Du har blokeret denne beboer. Hvis du sender en besked til beboeren vil dette automatisk medføre fjernelse af blokeringen
- </string>
- <string name="generic_request_error">
- Kunne ikke etablere forbindelse, prøv igen senere
- </string>
- <string name="insufficient_perms_error">
- Du har ikke de fornødne rettigheder.
- </string>
- <string name="session_does_not_exist_error">
- Denne samtale er lukket ned
- </string>
- <string name="no_ability_error">
- Du har ikke den mulighed.
- </string>
- <string name="not_a_mod_error">
- Du er ikke moderator for denne samtale.
- </string>
- <string name="muted_error">
- Du er blevet &quot;blokeret&quot;.
- </string>
- <string name="add_session_event">
- Kunne ikke tilføje beboere til chat session med [RECIPIENT].
- </string>
- <string name="message_session_event">
- Ikke muligt at sende din besked til samtalen med [RECIPIENT].
- </string>
- <string name="removed_from_group">
- Du er blevet fjernet fra gruppen.
- </string>
- <string name="close_on_no_ability">
- Du har ikke længere mulighed for at deltage i samtalen
- </string>
-</multi_floater>
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 aa7df6ad2b..16df7e4b03 100644
--- a/indra/newview/skins/default/xui/da/floater_im_session.xml
+++ b/indra/newview/skins/default/xui/da/floater_im_session.xml
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="panel_im">
<layout_stack name="im_panels">
- <layout_panel label="IM kontrol panel" name="panel_im_control_panel"/>
<layout_panel>
<line_editor label="Til" name="chat_editor"/>
</layout_panel>
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 2349174db2..7a3c3e466a 100644
--- a/indra/newview/skins/default/xui/da/floater_incoming_call.xml
+++ b/indra/newview/skins/default/xui/da/floater_incoming_call.xml
@@ -16,7 +16,13 @@
har sluttet sig til stemme chat opkald med en konference chat.
</floater.string>
<floater.string name="VoiceInviteGroup">
- deltager nu i Stemme chat opkald med denne gruppe [GROUP].
+ netop tilsuttet stemme kanal for &apos;[GROUP]&apos;.
+ </floater.string>
+ <floater.string name="VoiceInviteQuestionGroup">
+ Ønsker du at forlade [CURRENT_CHAT] og tilsutte dig kald med &apos;[GROUP]&apos;?
+ </floater.string>
+ <floater.string name="VoiceInviteQuestionDefault">
+ Ønsker du at forlade [CURRENT_CHAT] og tilslutte dig denne stemmechat?
</floater.string>
<text name="question">
Ønsker du at forlade [CURRENT_CHAT] og slutte dig til denne stemme chat?
diff --git a/indra/newview/skins/default/xui/da/floater_map.xml b/indra/newview/skins/default/xui/da/floater_map.xml
index cd6c03058b..c331908c3c 100644
--- a/indra/newview/skins/default/xui/da/floater_map.xml
+++ b/indra/newview/skins/default/xui/da/floater_map.xml
@@ -24,6 +24,9 @@
<floater.string name="mini_map_northwest">
NV
</floater.string>
+ <floater.string name="mini_map_caption">
+ MINIKORT
+ </floater.string>
<text label="N" name="floater_map_north" text="N">
N
</text>
diff --git a/indra/newview/skins/default/xui/da/floater_my_friends.xml b/indra/newview/skins/default/xui/da/floater_my_friends.xml
deleted file mode 100644
index c3db53ce63..0000000000
--- a/indra/newview/skins/default/xui/da/floater_my_friends.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_my_friends" title="KONTAKTER">
- <tab_container name="friends_and_groups">
- <panel label="Venner" name="friends_panel"/>
- <panel label="Grupper" name="groups_panel"/>
- </tab_container>
-</floater>
diff --git a/indra/newview/skins/default/xui/da/floater_outfit_save_as.xml b/indra/newview/skins/default/xui/da/floater_outfit_save_as.xml
deleted file mode 100644
index 0bcb96b151..0000000000
--- a/indra/newview/skins/default/xui/da/floater_outfit_save_as.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="modal container" title="Gem sæt">
- <button label="Gem" label_selected="Gem" name="Save"/>
- <button label="Annullér" label_selected="Annullér" name="Cancel"/>
- <text name="Save item as:">
- Gem hvad jeg har på som et nyt sæt:
- </text>
- <line_editor name="name ed">
- [DESC] (ny)
- </line_editor>
-</floater>
diff --git a/indra/newview/skins/default/xui/da/floater_preview_classified.xml b/indra/newview/skins/default/xui/da/floater_preview_classified.xml
deleted file mode 100644
index bc232f3e9f..0000000000
--- a/indra/newview/skins/default/xui/da/floater_preview_classified.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="classified_preview" title="ANNONCE INFORMATION">
- <floater.string name="Title">
- Annonce: [NAME]
- </floater.string>
-</floater>
diff --git a/indra/newview/skins/default/xui/da/floater_preview_event.xml b/indra/newview/skins/default/xui/da/floater_preview_event.xml
deleted file mode 100644
index 3e870b58ae..0000000000
--- a/indra/newview/skins/default/xui/da/floater_preview_event.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="event_preview" title="EVENT INFORMATION">
- <floater.string name="Title">
- Event: [NAME]
- </floater.string>
-</floater>
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 f49fd8c99a..bd2b194717 100644
--- a/indra/newview/skins/default/xui/da/floater_preview_gesture.xml
+++ b/indra/newview/skins/default/xui/da/floater_preview_gesture.xml
@@ -24,9 +24,6 @@
<floater.string name="Title">
Bevægelse: [NAME]
</floater.string>
- <text name="name_text">
- Navn:
- </text>
<text name="desc_label">
Beskrivelse:
</text>
@@ -45,7 +42,12 @@
<text name="library_label">
Type:
</text>
- <scroll_list name="library_list"/>
+ <scroll_list name="library_list">
+ <scroll_list.rows name="action_animation" value="Animation"/>
+ <scroll_list.rows name="action_sound" value="Lyd"/>
+ <scroll_list.rows name="action_chat" value="Chat"/>
+ <scroll_list.rows name="action_wait" value="Vent"/>
+ </scroll_list>
<button label="Tilføj &gt;&gt;" name="add_btn"/>
<text name="steps_label">
Trin:
@@ -53,12 +55,15 @@
<button label="Op" name="up_btn"/>
<button label="Ned" name="down_btn"/>
<button label="Fjern" name="delete_btn"/>
+ <text name="options_text">
+ (valg)
+ </text>
<radio_group name="animation_trigger_type">
<radio_item label="Start" name="start"/>
<radio_item label="Stop" name="stop"/>
</radio_group>
<check_box label="Indtil animation er færdig" name="wait_anim_check"/>
- <check_box label="tid i sekunder" name="wait_time_check"/>
+ <check_box label="tid i sekunder:" name="wait_time_check"/>
<text name="help_label">
Alle trin vil ske samtidigt, medmindre du tilføjer vente trin.
</text>
diff --git a/indra/newview/skins/default/xui/da/floater_preview_gesture_info.xml b/indra/newview/skins/default/xui/da/floater_preview_gesture_info.xml
deleted file mode 100644
index 9892a92e4c..0000000000
--- a/indra/newview/skins/default/xui/da/floater_preview_gesture_info.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Gesture" title="BEVÆGELSE GENVEJ"/>
diff --git a/indra/newview/skins/default/xui/da/floater_preview_gesture_shortcut.xml b/indra/newview/skins/default/xui/da/floater_preview_gesture_shortcut.xml
deleted file mode 100644
index 4d4cca1d90..0000000000
--- a/indra/newview/skins/default/xui/da/floater_preview_gesture_shortcut.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Gesture" title="GENVEJ BEVÆGELSER">
- <text name="trigger_label">
- Chat:
- </text>
- <text name="key_label">
- Tastatur:
- </text>
- <combo_box label="Intet" name="modifier_combo"/>
- <combo_box label="Intet" name="key_combo"/>
- <text name="replace_text" tool_tip="Erstat udløser ord med disse ord. For eksempel uløser &quot;hello&quot; erstat med &quot;hej&quot; vil ændre chat &apos;Jeg ville bare sige hello&apos; til &apos;Jeg ville bare sige hej&apos; samtidig med bevægelsen afspilles!">
- Erstat:
- </text>
- <line_editor name="replace_editor" tool_tip="Erstat udløser ord med disse ord. For eksempel uløser &quot;hello&quot; erstat med &quot;hej&quot; vil ændre chat &apos;Jeg ville bare sige hello&apos; til &apos;Jeg ville bare sige hej&apos; samtidig med bevægelsen afspilles!"/>
-</floater>
diff --git a/indra/newview/skins/default/xui/da/floater_preview_gesture_steps.xml b/indra/newview/skins/default/xui/da/floater_preview_gesture_steps.xml
deleted file mode 100644
index 9892a92e4c..0000000000
--- a/indra/newview/skins/default/xui/da/floater_preview_gesture_steps.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Gesture" title="BEVÆGELSE GENVEJ"/>
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 220042f015..0f65e6c18a 100644
--- a/indra/newview/skins/default/xui/da/floater_publish_classified.xml
+++ b/indra/newview/skins/default/xui/da/floater_publish_classified.xml
@@ -5,7 +5,7 @@
Husk, annonceomkostninger kan ikke refunderes.
</text>
- <spinner label="Pris for annonce:" name="price_for_listing" tool_tip="Pris for optagelse af annonce." value="50"/>
+ <spinner label="Pris: L$" name="price_for_listing" tool_tip="Pris for optagelse af annonce." value="50"/>
<text name="l$_text" value="L$"/>
<text name="more_info_text">
Mere info (link til hjælp om annoncer)
diff --git a/indra/newview/skins/default/xui/da/floater_snapshot.xml b/indra/newview/skins/default/xui/da/floater_snapshot.xml
index 7f7fb8ddf0..926c2429ac 100644
--- a/indra/newview/skins/default/xui/da/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/da/floater_snapshot.xml
@@ -1,16 +1,75 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Snapshot" title="Foto">
+<floater name="Snapshot" title="SE FOTO">
<floater.string name="unknown">
ukendt
</floater.string>
+ <radio_group label="foto type" name="snapshot_type_radio">
+ <radio_item label="Email" name="postcard"/>
+ <radio_item label="Min beholdning (L$[AMOUNT])" name="texture"/>
+ <radio_item label="Gem til min computer" name="local"/>
+ </radio_group>
+ <text name="file_size_label">
+ [SIZE] KB
+ </text>
<button label="Tag nyt foto" name="new_snapshot_btn"/>
- <line_editor label="Beskrivelse" name="description"/>
- <button label="Del foto" name="share"/>
- <button label="Del på internettet" name="share_to_web"/>
- <button label="Gem til beholdning" name="save_to_inventory"/>
- <button label="Gem foto" name="save"/>
- <button label="Email foto" name="share_to_email"/>
- <button label="Gem på computer" name="save_to_computer"/>
- <button label="Sæt som profil billede" name="set_profile_pic"/>
- <button label="Tilbage" name="cancel"/>
+ <button label="Send" name="send_btn"/>
+ <button label="Gem (L$[AMOUNT])" name="upload_btn"/>
+ <flyout_button label="Gem" name="save_btn" tool_tip="Gem billede til en fil">
+ <flyout_button.item label="Gem" name="save_item"/>
+ <flyout_button.item label="Gem som..." name="saveas_item"/>
+ </flyout_button>
+ <button label="Mere" name="more_btn" tool_tip="Avancerede valg"/>
+ <button label="Mindre" name="less_btn" tool_tip="Avanceret opsætning"/>
+ <button label="Annullér" name="discard_btn"/>
+ <text name="type_label2">
+ Størrelse
+ </text>
+ <text name="format_label">
+ Format
+ </text>
+ <combo_box label="Opløsning" name="postcard_size_combo">
+ <combo_box.item label="Nuværende vindue" name="CurrentWindow"/>
+ <combo_box.item label="640x480" name="640x480"/>
+ <combo_box.item label="800x600" name="800x600"/>
+ <combo_box.item label="1024x768" name="1024x768"/>
+ <combo_box.item label="Brugerdefineret" name="Custom"/>
+ </combo_box>
+ <combo_box label="Opløsning" name="texture_size_combo">
+ <combo_box.item label="Nuværende vindue" name="CurrentWindow"/>
+ <combo_box.item label="Lille (128x128)" name="Small(128x128)"/>
+ <combo_box.item label="Medium (256x256)" name="Medium(256x256)"/>
+ <combo_box.item label="Stor (512x512)" name="Large(512x512)"/>
+ <combo_box.item label="Brugeropsat" name="Custom"/>
+ </combo_box>
+ <combo_box label="Opløsning" name="local_size_combo">
+ <combo_box.item label="Nuværende vindue" name="CurrentWindow"/>
+ <combo_box.item label="320x240" name="320x240"/>
+ <combo_box.item label="640x480" name="640x480"/>
+ <combo_box.item label="800x600" name="800x600"/>
+ <combo_box.item label="1024x768" name="1024x768"/>
+ <combo_box.item label="1280x1024" name="1280x1024"/>
+ <combo_box.item label="1600x1200" name="1600x1200"/>
+ <combo_box.item label="Brugeropsat" name="Custom"/>
+ </combo_box>
+ <combo_box label="Format" name="local_format_combo">
+ <combo_box.item label="PNG" name="PNG"/>
+ <combo_box.item label="JPEG" name="JPEG"/>
+ <combo_box.item label="BMP" name="BMP"/>
+ </combo_box>
+ <spinner label="Bredde" name="snapshot_width"/>
+ <spinner label="Højde" name="snapshot_height"/>
+ <check_box label="Fasthold proportioner" name="keep_aspect_check"/>
+ <slider label="Billedkvalitet" name="image_quality_slider"/>
+ <text name="layer_type_label">
+ Indfang:
+ </text>
+ <combo_box label="Billedlag" name="layer_types">
+ <combo_box.item label="Farver" name="Colors"/>
+ <combo_box.item label="Dybde" name="Depth"/>
+ </combo_box>
+ <check_box label="Snitflade" name="ui_check"/>
+ <check_box label="HUDs" name="hud_check"/>
+ <check_box label="Behold åben efter gem" name="keep_open_check"/>
+ <check_box label="Frys billede (fuld skærm)" name="freeze_frame_check"/>
+ <check_box label="Auto-optegn" name="auto_snapshot_check"/>
</floater>
diff --git a/indra/newview/skins/default/xui/da/floater_statistics.xml b/indra/newview/skins/default/xui/da/floater_statistics.xml
deleted file mode 100644
index 8c33f3ecb3..0000000000
--- a/indra/newview/skins/default/xui/da/floater_statistics.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="stats floater" title="STATISTIK"/>
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 05e9eb6cdd..4c956f13a7 100644
--- a/indra/newview/skins/default/xui/da/floater_voice_controls.xml
+++ b/indra/newview/skins/default/xui/da/floater_voice_controls.xml
@@ -19,8 +19,12 @@
<layout_panel name="my_panel">
<text name="user_text" value="Min avatar:"/>
</layout_panel>
- <layout_panel name="leave_call_btn_panel">
- <button label="Forlad opkald" name="leave_call_btn"/>
+ <layout_panel name="leave_call_panel">
+ <layout_stack name="voice_effect_and_leave_call_stack">
+ <layout_panel name="leave_call_btn_panel">
+ <button label="Forlad opkald" name="leave_call_btn"/>
+ </layout_panel>
+ </layout_stack>
</layout_panel>
</layout_stack>
</floater>
diff --git a/indra/newview/skins/default/xui/da/floater_voice_effect.xml b/indra/newview/skins/default/xui/da/floater_voice_effect.xml
new file mode 100644
index 0000000000..86ad251103
--- /dev/null
+++ b/indra/newview/skins/default/xui/da/floater_voice_effect.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater label="Steder" name="voice_effects" title="STEMME MORPH">
+ <string name="no_voice_effect">
+ (Ingen stemme &quot;morph&quot;)
+ </string>
+ <string name="active_voice_effect">
+ (Aktiv)
+ </string>
+ <string name="unsubscribed_voice_effect">
+ (Ikke aktiveret)
+ </string>
+ <string name="new_voice_effect">
+ (Ny!)
+ </string>
+ <text name="preview_text">
+ For at se
+ </text>
+ <text name="status_text">
+ Optag en prøve, klik derefter på en stemme for at høre hvordan det vil lyde.
+ </text>
+ <button label="Optag" name="record_btn" tool_tip="Optag en stemmeprøve."/>
+ <button label="Stop" name="record_stop_btn"/>
+ <text name="voice_morphing_link">
+ [[URL] Abonnér nu]
+ </text>
+ <scroll_list name="voice_effect_list" tool_tip="Optag en prøve med din stemme og klik på en effekt for at teste.">
+ <scroll_list.columns label="Stemme navn" name="name"/>
+ <scroll_list.columns label="Udløber" name="expires"/>
+ </scroll_list>
+</floater>
diff --git a/indra/newview/skins/default/xui/da/floater_wearable_save_as.xml b/indra/newview/skins/default/xui/da/floater_wearable_save_as.xml
deleted file mode 100644
index 17d5b9c205..0000000000
--- a/indra/newview/skins/default/xui/da/floater_wearable_save_as.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="modal container" title="">
- <button label="Gem" label_selected="Gem" name="Save"/>
- <button label="Annullér" label_selected="Annullér" name="Cancel"/>
- <text name="Save item as:">
- Gem genstand i min beholdning som:
- </text>
- <line_editor name="name ed">
- Ny [DESC]
- </line_editor>
-</floater>
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 4dec9a9ba7..97364e0f9f 100644
--- a/indra/newview/skins/default/xui/da/floater_world_map.xml
+++ b/indra/newview/skins/default/xui/da/floater_world_map.xml
@@ -19,12 +19,12 @@
<text name="land_sale_label">
Land til salg
</text>
- <text name="by_owner_label">
- efter ejer
- </text>
<text name="auction_label">
land auktion
</text>
+ <text name="by_owner_label">
+ efter ejer
+ </text>
<button name="Go Home" tool_tip="Teleportér til min hjemmelokation"/>
<text name="Home_label">
Hjem
@@ -35,11 +35,11 @@
<text name="pg_label">
Generelt
</text>
- <check_box name="event_mature_chk"/>
- <text name="mature_label">
+ <check_box initial_value="true" name="events_mature_chk"/>
+ <text name="events_mature_label">
Moderat
</text>
- <text name="adult_label">
+ <text name="events_adult_label">
Voksent
</text>
</panel>
@@ -58,6 +58,9 @@
<search_editor label="Regioner efter navn" name="location" tool_tip="Indtast navn på en region"/>
<button label="Find" name="DoSearch" tool_tip="Led efter region"/>
<button name="Clear" tool_tip="Fjern søgelinier og nulstil kort"/>
+ <text name="events_label">
+ Lokation:
+ </text>
<button label="Teleport" name="Teleport" tool_tip="Teleportér til valgte sted"/>
<button label="Kopiér SLurl" name="copy_slurl" tool_tip="Kopierer nuværende lokation som SLurl der kan sendes på web."/>
<button label="Vis valgte" name="Show Destination" tool_tip="Centrér kortet på valgte lokation"/>
diff --git a/indra/newview/skins/default/xui/da/inspect_object.xml b/indra/newview/skins/default/xui/da/inspect_object.xml
index 8cbcf6cac8..78ccc5b869 100644
--- a/indra/newview/skins/default/xui/da/inspect_object.xml
+++ b/indra/newview/skins/default/xui/da/inspect_object.xml
@@ -8,8 +8,8 @@
Af [CREATOR]
</string>
<string name="CreatorAndOwner">
- af [CREATOR]
-ejer [OWNER]
+ Af [CREATOR]
+Owner [OWNER]
</string>
<string name="Price">
L$[AMOUNT]
@@ -23,6 +23,13 @@ ejer [OWNER]
<string name="Sit">
Sid
</string>
+ <text name="object_name" value="Test objekt navn der reelt er to linier og meget lang"/>
+ <text name="price_text">
+ L$30,000
+ </text>
+ <text name="object_description">
+ Dette er en meget lang beskrivelse af et objekt udformet så den fylder mindst 80 karakterer i længden eller endda nærmere 120 på dette sted. Man kan aldrig vide....
+ </text>
<button label="Køb" name="buy_btn"/>
<button label="Betal" name="pay_btn"/>
<button label="Tag kopi" name="take_free_copy_btn"/>
diff --git a/indra/newview/skins/default/xui/da/language_settings.xml b/indra/newview/skins/default/xui/da/language_settings.xml
index fa8a788605..3e46f69af1 100644
--- a/indra/newview/skins/default/xui/da/language_settings.xml
+++ b/indra/newview/skins/default/xui/da/language_settings.xml
@@ -17,6 +17,7 @@
datetimeToCodes["month"] = "%B"; // August
datetimeToCodes["mthnum"] = "%m"; // 08
datetimeToCodes["day"] = "%d"; // 31
+ datetimeToCodes["sday"] = "%-d"; // 9
datetimeToCodes["hour24"] = "%H"; // 14
datetimeToCodes["hour"] = "%H"; // 14
datetimeToCodes["hour12"] = "%I"; // 02
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 bf52e5d57f..e70b7ce33d 100644
--- a/indra/newview/skins/default/xui/da/menu_attachment_self.xml
+++ b/indra/newview/skins/default/xui/da/menu_attachment_self.xml
@@ -3,11 +3,13 @@
<menu_item_call label="Berør" name="Attachment Object Touch"/>
<menu_item_call label="Redigér" name="Edit..."/>
<menu_item_call label="Tag af" name="Detach"/>
- <menu_item_call label="Smid" name="Drop"/>
<menu_item_call label="Stå op" name="Stand Up"/>
<menu_item_call label="Skift sæt" name="Change Outfit"/>
+ <menu_item_call label="Redigér mit sæt" name="Edit Outfit"/>
+ <menu_item_call label="Redigér min figur" name="Edit My Shape"/>
<menu_item_call label="Venner" name="Friends..."/>
<menu_item_call label="Grupper" name="Groups..."/>
<menu_item_call label="Profil" name="Profile..."/>
<menu_item_call label="Debug teksturer" name="Debug..."/>
+ <menu_item_call label="Smid" name="Drop"/>
</context_menu>
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 ec85bd05a5..af4fdcc154 100644
--- a/indra/newview/skins/default/xui/da/menu_avatar_self.xml
+++ b/indra/newview/skins/default/xui/da/menu_avatar_self.xml
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Self Pie">
<menu_item_call label="Stå op" name="Stand Up"/>
- <context_menu label="Tag af â–¶" name="Take Off &gt;">
- <context_menu label="Tøj ▶" name="Clothes &gt;">
+ <context_menu label="Tag af" name="Take Off &gt;">
+ <context_menu label="Tøj" name="Clothes &gt;">
<menu_item_call label="Trøje" name="Shirt"/>
<menu_item_call label="Bukser" name="Pants"/>
<menu_item_call label="Nederdel" name="Skirt"/>
@@ -16,8 +16,8 @@
<menu_item_call label="Alpha" name="Self Alpha"/>
<menu_item_call label="Alt tøj" name="All Clothes"/>
</context_menu>
- <context_menu label="HUD â–¶" name="Object Detach HUD"/>
- <context_menu label="Tag af â–¶" name="Object Detach"/>
+ <context_menu label="HUD" name="Object Detach HUD"/>
+ <context_menu label="Tag af" name="Object Detach"/>
<menu_item_call label="Tag alt af" name="Detach All"/>
</context_menu>
<menu_item_call label="Skift sæt" name="Chenge Outfit"/>
diff --git a/indra/newview/skins/default/xui/da/menu_cof_attachment.xml b/indra/newview/skins/default/xui/da/menu_cof_attachment.xml
new file mode 100644
index 0000000000..9d7fc0f223
--- /dev/null
+++ b/indra/newview/skins/default/xui/da/menu_cof_attachment.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<context_menu name="COF Attachment">
+ <menu_item_call label="Tag af" name="detach"/>
+</context_menu>
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
new file mode 100644
index 0000000000..0e90d5a3ae
--- /dev/null
+++ b/indra/newview/skins/default/xui/da/menu_cof_body_part.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<context_menu name="COF Body">
+ <menu_item_call label="Erstat" name="replace"/>
+ <menu_item_call label="Redigér" name="edit"/>
+</context_menu>
diff --git a/indra/newview/skins/default/xui/da/menu_cof_clothing.xml b/indra/newview/skins/default/xui/da/menu_cof_clothing.xml
new file mode 100644
index 0000000000..16c225b7d9
--- /dev/null
+++ b/indra/newview/skins/default/xui/da/menu_cof_clothing.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<context_menu name="COF Clothing">
+ <menu_item_call label="Tag af" name="take_off"/>
+ <menu_item_call label="Redigér" name="edit"/>
+ <menu_item_call label="Erstat" name="replace"/>
+</context_menu>
diff --git a/indra/newview/skins/default/xui/da/menu_cof_gear.xml b/indra/newview/skins/default/xui/da/menu_cof_gear.xml
new file mode 100644
index 0000000000..f44369fd84
--- /dev/null
+++ b/indra/newview/skins/default/xui/da/menu_cof_gear.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="Gear COF">
+ <menu label="Nyt tøj" name="COF.Gear.New_Clothes"/>
+ <menu label="Nye kropsdele" name="COF.Geear.New_Body_Parts"/>
+</menu>
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 45276adda4..d96a8a8a17 100644
--- a/indra/newview/skins/default/xui/da/menu_hide_navbar.xml
+++ b/indra/newview/skins/default/xui/da/menu_hide_navbar.xml
@@ -2,4 +2,5 @@
<menu name="hide_navbar_menu">
<menu_item_check label="Vis navigationsbjælke" name="ShowNavbarNavigationPanel"/>
<menu_item_check label="Vis favoritbjælke" name="ShowNavbarFavoritesPanel"/>
+ <menu_item_check label="Vis min lokation bjælke" name="ShowMiniLocationPanel"/>
</menu>
diff --git a/indra/newview/skins/default/xui/da/menu_inventory.xml b/indra/newview/skins/default/xui/da/menu_inventory.xml
index ff70ec7886..35551318d1 100644
--- a/indra/newview/skins/default/xui/da/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/da/menu_inventory.xml
@@ -59,6 +59,7 @@
<menu_item_call label="Kopiér" name="Copy"/>
<menu_item_call label="Indsæt" name="Paste"/>
<menu_item_call label="Sæt ind som link" name="Paste As Link"/>
+ <menu_item_call label="Slet" name="Remove Link"/>
<menu_item_call label="Slet" name="Delete"/>
<menu_item_call label="Slet systemfolder" name="Delete System Folder"/>
<menu_item_call label="start konference chat" name="Conference Chat Folder"/>
@@ -73,11 +74,11 @@
<menu_item_call label="Deaktivér" name="Deactivate"/>
<menu_item_call label="Gem som" name="Save As"/>
<menu_item_call label="Tag af dig selv" name="Detach From Yourself"/>
- <menu_item_call label="Tag på" name="Object Wear"/>
+ <menu_item_call label="Tag på" name="Wearable And Object Wear"/>
<menu label="Vedhæft" name="Attach To"/>
<menu label="Vedhæft til HUD" name="Attach To HUD"/>
<menu_item_call label="Redigér" name="Wearable Edit"/>
- <menu_item_call label="Tag på" name="Wearable Wear"/>
+ <menu_item_call label="Tilføj" name="Wearable Add"/>
<menu_item_call label="Tag af" name="Take Off"/>
<menu_item_call label="--ingen valg--" name="--no options--"/>
</menu>
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 dc79e4109e..07f70d7190 100644
--- a/indra/newview/skins/default/xui/da/menu_inventory_add.xml
+++ b/indra/newview/skins/default/xui/da/menu_inventory_add.xml
@@ -5,6 +5,7 @@
<menu_item_call label="Lyd (L$[COST])..." name="Upload Sound"/>
<menu_item_call label="Animation (L$[COST])..." name="Upload Animation"/>
<menu_item_call label="Hent mange (L$[COST] pr. fil)..." name="Bulk Upload"/>
+ <menu_item_call label="Sæt standardværdier for upload rettigheder" name="perm prefs"/>
</menu>
<menu_item_call label="Ny mappe" name="New Folder"/>
<menu_item_call label="Nyt script" name="New Script"/>
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 e643498822..75ce7b22f6 100644
--- a/indra/newview/skins/default/xui/da/menu_inventory_gear_default.xml
+++ b/indra/newview/skins/default/xui/da/menu_inventory_gear_default.xml
@@ -6,9 +6,10 @@
<menu_item_call label="Vis filtre" name="show_filters"/>
<menu_item_call label="Nulstil filtre" name="reset_filters"/>
<menu_item_call label="Luk alle mapper" name="close_folders"/>
- <menu_item_call label="Tøm papirkurv" name="empty_trash"/>
<menu_item_call label="Tøm &quot;fundne genstande&quot;" name="empty_lostnfound"/>
<menu_item_call label="Gem tekstur som" name="Save Texture As"/>
+ <menu_item_call label="Del" name="Share"/>
<menu_item_call label="Find original" name="Find Original"/>
<menu_item_call label="Find alle links" name="Find All Links"/>
+ <menu_item_call label="Tøm papirkurv" name="empty_trash"/>
</menu>
diff --git a/indra/newview/skins/default/xui/da/menu_object.xml b/indra/newview/skins/default/xui/da/menu_object.xml
index c98a07e140..3c96d62ce3 100644
--- a/indra/newview/skins/default/xui/da/menu_object.xml
+++ b/indra/newview/skins/default/xui/da/menu_object.xml
@@ -1,6 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Object Pie">
- <menu_item_call label="Berør" name="Object Touch"/>
+ <menu_item_call label="Berør" name="Object Touch">
+ <on_enable parameter="Berør" name="EnableTouch"/>
+ </menu_item_call>
<menu_item_call label="Redigér" name="Edit..."/>
<menu_item_call label="Byg" name="Build"/>
<menu_item_call label="Ã…ben" name="Open"/>
@@ -8,12 +10,12 @@
<menu_item_call label="Stå op" name="Object Stand Up"/>
<menu_item_call label="Objekt profil" name="Object Inspect"/>
<menu_item_call label="Zoom In" name="Zoom In"/>
- <context_menu label="Tag på ▶" name="Put On">
+ <context_menu label="Tag på" name="Put On">
<menu_item_call label="Tag på" name="Wear"/>
- <context_menu label="Vedhæft ▶" name="Object Attach"/>
- <context_menu label="Vedhæft HUD ▶" name="Object Attach HUD"/>
+ <context_menu label="Vedhæft" name="Object Attach"/>
+ <context_menu label="Vedhæft HUD" name="Object Attach HUD"/>
</context_menu>
- <context_menu label="Fjern â–¶" name="Remove">
+ <context_menu label="Fjern" name="Remove">
<menu_item_call label="Rapportér misbrug" name="Report Abuse..."/>
<menu_item_call label="Blokér" name="Object Mute"/>
<menu_item_call label="Returnér" name="Return..."/>
diff --git a/indra/newview/skins/default/xui/da/menu_outfit_gear.xml b/indra/newview/skins/default/xui/da/menu_outfit_gear.xml
new file mode 100644
index 0000000000..8b4c776496
--- /dev/null
+++ b/indra/newview/skins/default/xui/da/menu_outfit_gear.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="Gear Outfit">
+ <menu_item_call label="Tag på - Erstat nuværende sæt" name="wear"/>
+ <menu_item_call label="Tag på - Tilføj til nuværende sæt" name="wear_add"/>
+ <menu_item_call label="Tag af - Fjern fra nuværende sæt" name="take_off"/>
+ <menu label="Nyt tøj" name="New Clothes">
+ <menu_item_call label="Ny trøje" name="New Shirt"/>
+ <menu_item_call label="Nye bukser" name="New Pants"/>
+ <menu_item_call label="Nye sko" name="New Shoes"/>
+ <menu_item_call label="Nye strømper" name="New Socks"/>
+ <menu_item_call label="Ny jakke" name="New Jacket"/>
+ <menu_item_call label="Ny nederdel" name="New Skirt"/>
+ <menu_item_call label="Nye handsker" name="New Gloves"/>
+ <menu_item_call label="Ny undertrøje" name="New Undershirt"/>
+ <menu_item_call label="Nye underbukser" name="New Underpants"/>
+ <menu_item_call label="Ny alpha" name="New Alpha"/>
+ <menu_item_call label="Ny tatovering" name="New Tattoo"/>
+ </menu>
+ <menu label="Nye kropsdele" name="New Body Parts">
+ <menu_item_call label="Ny figur" name="New Shape"/>
+ <menu_item_call label="Nyt hud" name="New Skin"/>
+ <menu_item_call label="Nyt hår" name="New Hair"/>
+ <menu_item_call label="Nye øjne" name="New Eyes"/>
+ </menu>
+ <menu_item_call label="Omdøb sæt" name="rename"/>
+ <menu_item_call label="Slet sæt" name="delete_outfit"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/da/menu_outfit_tab.xml b/indra/newview/skins/default/xui/da/menu_outfit_tab.xml
new file mode 100644
index 0000000000..d6a6f2724f
--- /dev/null
+++ b/indra/newview/skins/default/xui/da/menu_outfit_tab.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<context_menu name="Outfit">
+ <menu_item_call label="Tag på - Erstat nuværende sæt" name="wear_replace"/>
+ <menu_item_call label="Tag på - Tilføj til nuværende sæt" name="wear_add"/>
+ <menu_item_call label="Tag af - Fjern fra nuværende sæt" name="take_off"/>
+ <menu_item_call label="Redigér sæt" name="edit"/>
+ <menu_item_call label="Omdøb sæt" name="rename"/>
+ <menu_item_call label="Slet sæt" name="delete"/>
+</context_menu>
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 2bd28e10de..0069dcbacb 100644
--- a/indra/newview/skins/default/xui/da/menu_participant_list.xml
+++ b/indra/newview/skins/default/xui/da/menu_participant_list.xml
@@ -11,7 +11,7 @@
<menu_item_check label="Se person ikoner" name="View Icons"/>
<menu_item_check label="Blokér stemme" name="Block/Unblock"/>
<menu_item_check label="Blokér tekst" name="MuteText"/>
- <context_menu label="Moderator muligheder &gt;" name="Moderator Options">
+ <context_menu label="Moderator muligheder" name="Moderator Options">
<menu_item_check label="Tillad tekst chat" name="AllowTextChat"/>
<menu_item_call label="Sluk for denne deltager" name="ModerateVoiceMuteSelected"/>
<menu_item_call label="Fjern slukning for denne deltager" name="ModerateVoiceUnMuteSelected"/>
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 3d89715ea8..188229b586 100644
--- a/indra/newview/skins/default/xui/da/menu_save_outfit.xml
+++ b/indra/newview/skins/default/xui/da/menu_save_outfit.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<toggleable_menu name="save_outfit_menu">
<menu_item_call label="Gem" name="save_outfit"/>
- <menu_item_call label="Gem som ny" name="save_as_new_outfit"/>
+ <menu_item_call label="Gem som" name="save_as_new_outfit"/>
</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/da/menu_topinfobar.xml b/indra/newview/skins/default/xui/da/menu_topinfobar.xml
new file mode 100644
index 0000000000..08d1c25d6f
--- /dev/null
+++ b/indra/newview/skins/default/xui/da/menu_topinfobar.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="menu_topinfobar">
+ <menu_item_check label="Vis koordinater" name="Show Coordinates"/>
+ <menu_item_check label="Vis egenskaber for parcel" name="Show Parcel Properties"/>
+ <menu_item_call label="Landemærke" name="Landmark"/>
+ <menu_item_call label="Kopi" name="Copy"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/da/menu_viewer.xml b/indra/newview/skins/default/xui/da/menu_viewer.xml
index a061292eb0..fa74568c2d 100644
--- a/indra/newview/skins/default/xui/da/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/da/menu_viewer.xml
@@ -9,6 +9,7 @@
<menu_item_check label="Beholdning" name="Inventory"/>
<menu_item_check label="Min beholdning" name="ShowSidetrayInventory"/>
<menu_item_check label="Mine bevægelser" name="Gestures"/>
+ <menu_item_check label="Min stemme" name="ShowVoice"/>
<menu label="Min status" name="Status">
<menu_item_call label="Væk" name="Set Away"/>
<menu_item_call label="Optaget" name="Set Busy"/>
@@ -68,6 +69,12 @@
<menu_item_call label="Sammenkæd" name="Link"/>
<menu_item_call label="Adskil" name="Unlink"/>
<menu_item_check label="Redigér sammekædede objekter" name="Edit Linked Parts"/>
+ <menu label="Vis lænkede dele" name="Select Linked Parts">
+ <menu_item_call label="Vælg næste del" name="Select Next Part"/>
+ <menu_item_call label="Vælg forrige del" name="Select Previous Part"/>
+ <menu_item_call label="Inkludér næste del" name="Include Next Part"/>
+ <menu_item_call label="Inkludér forrige del" name="Include Previous Part"/>
+ </menu>
<menu_item_call label="Fokusér på valgte" name="Focus on Selection"/>
<menu_item_call label="Zoom til valgte" name="Zoom to Selection"/>
<menu label="Objekt" name="Object">
@@ -85,7 +92,7 @@
<menu_item_call label="Sæt scripts til &quot;Not Running&quot;" name="Set Scripts to Not Running"/>
</menu>
<menu label="Valg" name="Options">
- <menu_item_call label="Sæt standard rettigheder" name="perm prefs"/>
+ <menu_item_call label="Sæt standard rettigher for upload" name="perm prefs"/>
<menu_item_check label="Vis avancerede rettigheder" name="DebugPermissions"/>
<menu_item_check label="Vælg kun egne objekter" name="Select Only My Objects"/>
<menu_item_check label="Vis kun flytbare objekter" name="Select Only Movable Objects"/>
@@ -98,11 +105,11 @@
<menu_item_call label="Benyt valgte som grundlag for gitter" name="Use Selection for Grid"/>
<menu_item_call label="Gitter indstillinger" name="Grid Options"/>
</menu>
- <menu label="Vis lænkede dele" name="Select Linked Parts">
- <menu_item_call label="Vælg næste del" name="Select Next Part"/>
- <menu_item_call label="Vælg forrige del" name="Select Previous Part"/>
- <menu_item_call label="Inkludér næste del" name="Include Next Part"/>
- <menu_item_call label="Inkludér forrige del" name="Include Previous Part"/>
+ <menu label="Send" name="Upload">
+ <menu_item_call label="Billede (L$[COST])..." name="Upload Image"/>
+ <menu_item_call label="Lyd (L$[COST])..." name="Upload Sound"/>
+ <menu_item_call label="Animation (L$[COST])..." name="Upload Animation"/>
+ <menu_item_call label="Mange (L$[COST] pr. fil)..." name="Bulk Upload"/>
</menu>
</menu>
<menu label="Hjælp" name="Help">
@@ -168,6 +175,7 @@
<menu_item_check label="Søg" name="Search"/>
<menu_item_call label="Frigør taster" name="Release Keys"/>
<menu_item_call label="Sæt UI størrelse til standard" name="Set UI Size to Default"/>
+ <menu_item_check label="Vis avanceret menu" name="Show Advanced Menu - legacy shortcut"/>
<menu_item_check label="Løb altid" name="Always Run"/>
<menu_item_check label="Flyv" name="Fly"/>
<menu_item_call label="Luk vindue" name="Close Window"/>
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
new file mode 100644
index 0000000000..0845f19b15
--- /dev/null
+++ b/indra/newview/skins/default/xui/da/menu_wearable_list_item.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<context_menu name="Outfit Wearable Context Menu">
+ <menu_item_call label="Erstat" name="wear_replace"/>
+ <menu_item_call label="Tag på" name="wear_wear"/>
+ <menu_item_call label="Tilføj" name="wear_add"/>
+ <menu_item_call label="Tag af" name="take_off_or_detach"/>
+ <menu_item_call label="Tag af" name="detach"/>
+ <context_menu label="Vedhæft til" name="wearable_attach_to"/>
+ <context_menu label="Vedhæft på HUD" name="wearable_attach_to_hud"/>
+ <menu_item_call label="Tag af" name="take_off"/>
+ <menu_item_call label="Redigér" name="edit"/>
+ <menu_item_call label="Objekt profil" name="object_profile"/>
+ <menu_item_call label="Vis original" name="show_original"/>
+</context_menu>
diff --git a/indra/newview/skins/default/xui/da/menu_wearing_gear.xml b/indra/newview/skins/default/xui/da/menu_wearing_gear.xml
new file mode 100644
index 0000000000..39f99ad6aa
--- /dev/null
+++ b/indra/newview/skins/default/xui/da/menu_wearing_gear.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="Gear Wearing">
+ <menu_item_call label="Redigér sæt" name="edit"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/da/menu_wearing_tab.xml b/indra/newview/skins/default/xui/da/menu_wearing_tab.xml
new file mode 100644
index 0000000000..878c8bb04d
--- /dev/null
+++ b/indra/newview/skins/default/xui/da/menu_wearing_tab.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<context_menu name="Wearing">
+ <menu_item_call label="Redigér sæt" name="edit"/>
+</context_menu>
diff --git a/indra/newview/skins/default/xui/da/notifications.xml b/indra/newview/skins/default/xui/da/notifications.xml
index 72a1ab6a29..62d9c5a203 100644
--- a/indra/newview/skins/default/xui/da/notifications.xml
+++ b/indra/newview/skins/default/xui/da/notifications.xml
@@ -230,6 +230,10 @@ Er du sikker på at du vil fortsætte?
<notification name="DeleteAvatarPick">
Slet favorit &lt;nolink&gt;[PICK]&lt;/nolink&gt;?
</notification>
+ <notification name="DeleteOutfits">
+ Slet valgte sæt?
+ <usetemplate name="okcancelbuttons" notext="Annullér" yestext="OK"/>
+ </notification>
<notification name="CacheWillClear">
Cache vil blive tømt ved næste genstart af [APP_NAME].
</notification>
@@ -268,6 +272,11 @@ Grafik kvaliteten sættes til &apos;lav&apos; for at undgå typiske problemer me
Vi anbefaler at opdatere driverne til dit grafikkort.
Grafik kvaliteten kan forbedres i indstillinger &gt; Grafik.
</notification>
+ <notification name="CannotCopyWarning">
+ Du har ikke rettigheder til at kopiere følgende genstande:
+[ITEMS]
+og du vil miste dem fra din beholdning hvis du forærer dem væk. Er du sikker på at du vil tilbyde disse genstande?
+ </notification>
<notification name="CannotGiveCategory">
Du har ikke tilladelse til at videreføre den valgte mappe.
</notification>
@@ -283,8 +292,7 @@ Gå til [_URL] for information om køb af L$?
Kunne ikke &apos;forstå&apos; filen: [FILE]
</notification>
<notification name="CorruptedProtectedDataStore">
- Vi kan ikke læse dine beskyttede data så de nulstilles.
- Dette kan ske hvis du ændrer din netværksopsætning.
+ Vi kan ikke udfylde dit brugernavn og password. Dette kan ske hvis du ændrer netværksopsætning
<usetemplate name="okbutton" yestext="OK"/>
</notification>
<notification name="DoNotSupportBulkAnimationUpload">
@@ -412,6 +420,26 @@ Tilbyd venskab til [NAME]?
<button name="Cancel" text="Annullér"/>
</form>
</notification>
+ <notification label="Gem" name="SaveWearableAs">
+ Gem genstand til beholdning som:
+ <form name="form">
+ <input name="message">
+ [DESC] (ny)
+ </input>
+ <button name="Offer" text="OK"/>
+ <button name="Cancel" text="Annullér"/>
+ </form>
+ </notification>
+ <notification label="Omdøb sæt" name="RenameOutfit">
+ Nyt navn til sæt:
+ <form name="form">
+ <input name="new_name">
+ [NAME]
+ </input>
+ <button name="Offer" text="OK"/>
+ <button name="Cancel" text="Annullér"/>
+ </form>
+ </notification>
<notification name="ConfirmItemDeleteHasLinks">
Mindst en af genstandene har lænkede genstande der peger på den. Hvis du sletter denne genstand, vil lænkninger ikke virke mere. Det anbefales kraftigt at fjerne lænkninger først.
@@ -677,9 +705,9 @@ GÃ¥ til &apos;Knowledge Base&apos; for mere information om indholdsratings.
Du har ikke adgang til denne region på grund af din valgte indholdsrating.
</notification>
<notification name="RegionEntryAccessBlocked_Change">
- Du har ikke adgang til den region, da din indholdsrating ikke tillader dette.
+ Du har ikke adgang til denne region på grund af din opsætning af indholdsrating.
-Klik på &quot;Ændre præference&quot; for at forhøje din indholdsrating for direkte adgang nu. Ved at gøre dette vil du få lov til at søge og få adgang til [REGIONMATURITY] indhold. Hvis du ønsker at ændre denne opsætning senere, kan du gøre dette fra Mig &gt; Indstillinger &gt; Generelt.
+For at få adgang til den ønskede region skal du ændre din indholdsrating. Dette vil give dig ret til at søge og får tilgang til indhold af typen [REGIONMATURITY]. For at omgøre ændringer gå til Mig &gt; Indstillinger &gt; Generelt.
<form name="form">
<button name="OK" text="Ændre indstillinger"/>
<button name="Cancel" text="Luk"/>
@@ -911,11 +939,6 @@ Henvis til dette fra en hjemmeside for at give andre nem adgang til denne lokati
Uploader billeder fra verdenen og www...
(Tager omkring 5 minutter.)
</notification>
- <notification name="UploadConfirmation">
- Omkostninger ved at sende: L$[AMOUNT].
-Ønsker du at fortsætte?
- <usetemplate name="okcancelbuttons" notext="Annullér" yestext="Send"/>
- </notification>
<notification name="UploadPayment">
Du betalte L$[AMOUNT] for at uploade.
</notification>
@@ -1327,9 +1350,6 @@ Fra genstand: [OBJECTNAME], ejer: [NAME]?
<notification name="FailedToFindWearable">
Det lykkedes ikke at finde [TYPE] med navnet [DESC] i databasen.
</notification>
- <notification name="ShareToWebFailed">
- Fejl ved afsendelse af billede til web.
- </notification>
<notification name="InvalidWearable">
Den genstand du prøver at tage på benytter en funktion din klient ikke kan forstå. Upgradér venligst din version af [APP_NAME] for at kunne tage denne genstand på.
</notification>
@@ -1460,6 +1480,21 @@ Klik på Acceptér for at deltage eller Afvis for at afvise invitationen. Klik p
<notification name="VoiceLoginRetry">
Vi laver en stemmekanal til dig. Det kan tage op til et minut.
</notification>
+ <notification name="VoiceEffectsExpired">
+ En eller flere af dine stemme &quot;morphs&quot; er udløbet.
+[[URL] Click here] for at forny dit abbonnement.
+ </notification>
+ <notification name="VoiceEffectsExpiredInUse">
+ Den aktive stemme &quot;morph&quot; er udløbet og din normale stemme opsætning er genaktiveret.
+[[URL] Click here] for at forny dit abbonnement.
+ </notification>
+ <notification name="VoiceEffectsWillExpire">
+ En eller flere af dine stemme &quot;morphs&quot; vil udløbe om mindre end [INTERVAL] dage.
+[[URL] Click here] for at forny dit abbonnement.
+ </notification>
+ <notification name="VoiceEffectsNew">
+ Nye stemme &quot;morphs&quot; er tilgængelige!
+ </notification>
<notification name="Cannot enter parcel: not a group member">
Kun medlemmer af en bestemt gruppe kan besøge dette område.
</notification>
@@ -1526,18 +1561,36 @@ De vil blive blokeret nogle få sekunder af sikkerhedsmæssige årsager.
Knappen vil blive vist når der er nok plads til den.
</notification>
<notification name="ShareNotification">
- Træk genstande fra beholdning til en person i beboer vælgeren
+ Vælg beboere at dele med.
+ </notification>
+ <notification name="ShareItemsConfirmation">
+ Er du sikker på at du vil dele følgende genstande:
+
+[ITEMS]
+
+Med følgende beboere:
+
+[RESIDENTS]
+ <usetemplate name="okcancelbuttons" notext="Annullér" yestext="Ok"/>
+ </notification>
+ <notification name="ItemsShared">
+ Genstande er nu delt.
</notification>
<notification name="DeedToGroupFail">
Dedikering til gruppe fejlede.
</notification>
<notification name="AvatarRezNotification">
( [EXISTENCE] sekunder i live )
-Avatar &apos;[NAME]&apos; declouded in [TIME] seconds.
+Avatar &apos;[NAME]&apos; var ikke sky mere, efter [TIME] sekunder.
</notification>
- <notification name="AvatarRezSelfNotification">
- ( [EXISTENCE] sekunder i live )
-Du afsluttede klargøring af dit sæt på [TIME] sekunder.
+ <notification name="AvatarRezSelfBakedDoneNotification">
+ ( [EXISTENCE] seconds alive )
+Du blev færdig med at fremvise dit sæt efter [TIME] sekunder.
+ </notification>
+ <notification name="AvatarRezSelfBakedUpdateNotification">
+ ( [EXISTENCE] seconds alive )
+Du sendte en opdatering af dit udseende efter [TIME] sekunder.
+[STATUS]
</notification>
<notification name="AvatarRezCloudNotification">
( [EXISTENCE] sekunder i live )
@@ -1559,10 +1612,32 @@ Avatar &apos;[NAME]&apos; skiftede til udseende modus.
( [EXISTENCE] sekunder i live )
Avatar &apos;[NAME]&apos; har forladt udseende modus.
</notification>
+ <notification name="NoConnect">
+ Vi har problemer med at oprette forbindelse via [PROTOCOL] [HOSTID].
+Check venligst din netværks- og firewallsetup.
+ <form name="form">
+ <button name="OK" text="OK"/>
+ </form>
+ </notification>
+ <notification name="NoVoiceConnect">
+ Vi har problemer med at oprette forbindelse til din stemme server:
+
+[HOSTID]
+
+Stemme kommunikation vil ikke være tilgængelig.
+Check venligst din netværks- og firewall setup.
+ <form name="form">
+ <button name="OK" text="OK"/>
+ </form>
+ </notification>
<notification name="AvatarRezLeftNotification">
( [EXISTENCE] sekunder i live )
Avatar &apos;[NAME]&apos; forsvandt helt &quot;uploaded&quot;.
</notification>
+ <notification name="AvatarRezSelfBakeNotification">
+ ( [EXISTENCE] sekunder i live )
+You [ACTION] a [RESOLUTION] baked texture for &apos;[BODYREGION]&apos; after [TIME] seconds.
+ </notification>
<notification name="ConfirmLeaveCall">
Er du sikker på at du vil forlade dette opkald?
<usetemplate ignoretext="Bekræft før jeg forlader opkald" name="okcancelignore" notext="Nej" yestext="Ja"/>
@@ -1574,7 +1649,7 @@ vil have lyden slukket - selv efter de har forladt kaldet.
Sluk for alles lyd?
- <usetemplate ignoretext="Bekræft før jeg slukker for alle deltageres lyd i gruppe-kald" name="okcancelignore" notext="OK" yestext="Annullér"/>
+ <usetemplate ignoretext="Bekræft før jeg slukker for alle deltageres lyd i gruppe-kald" name="okcancelignore" notext="Annullér" yestext="Ok"/>
</notification>
<global name="UnsupportedGLRequirements">
Det ser ikke ud til at din hardware opfylder minimumskravene til [APP_NAME]. [APP_NAME] kræver et OpenGL grafikkort som understøter &apos;multitexture&apos;. Check eventuelt om du har de nyeste drivere for grafikkortet, og de nyeste service-packs og patches til dit operativsystem.
@@ -1585,4 +1660,7 @@ Hvis du bliver ved med at have problemer, besøg venligst [SUPPORT_SITE].
Hvis du selv ejer land, kan du benytte det til hjemme lokation.
Ellers kan du se på verdenskortet og finde steder markeret med &quot;Infohub&quot;.
</global>
+ <global name="You died and have been teleported to your home location">
+ Du døde og er blevet teleporteret til din hjemmelokation.
+ </global>
</notifications>
diff --git a/indra/newview/skins/default/xui/da/panel_audio_device.xml b/indra/newview/skins/default/xui/da/panel_audio_device.xml
deleted file mode 100644
index f6d817540e..0000000000
--- a/indra/newview/skins/default/xui/da/panel_audio_device.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<panel name="device_settings">
- <text name="Audio Devices">
- Lydenheder
- </text>
- <text name="Input device (microphone):">
- Input enhed (mikrofon):
- </text>
- <text name="Output device (speakers):">
- Output enhed (højtalere):
- </text>
- <text name="Input level:">
- Input niveau
- </text>
- <text_editor name="voice_intro_text1">
- Med denne skyder kan du regulere hvor højt du lyder i forhold til andre beboere. for at test input niveau kan du blot tale i mikrofon.
- </text_editor>
- <volume_slider name="mic_volume_slider" tool_tip="Ændre lydstyrke med denne skyder" />
- <text name="wait_text">
- Vent venligst
- </text>
- <string name="default_text">
- Standard
- </string>
-</panel>
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 de764d8025..d2ade170d1 100644
--- 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
@@ -1,4 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="wearable_item">
<text name="item_name" value="..."/>
+ <panel name="btn_lock" tool_tip="Du har ikke rettigheder til at redigere"/>
+ <panel name="btn_edit_panel">
+ <button name="btn_edit" tool_tip="Rediger denne figur"/>
+ </panel>
</panel>
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 de764d8025..88b0636e9e 100644
--- a/indra/newview/skins/default/xui/da/panel_clothing_list_item.xml
+++ b/indra/newview/skins/default/xui/da/panel_clothing_list_item.xml
@@ -1,4 +1,9 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="wearable_item">
+ <button name="btn_delete" tool_tip="Fjern fra sæt"/>
<text name="item_name" value="..."/>
+ <panel name="btn_lock" tool_tip="Du har ikke rettigheder til at redigere"/>
+ <panel name="btn_edit_panel">
+ <button name="btn_edit" tool_tip="Redigere denne ting der kan tages på"/>
+ </panel>
</panel>
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 91d90a5660..700ad4fa14 100644
--- 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
@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="deletable_wearable_item">
+ <button name="btn_delete" tool_tip="Fjern fra sæt"/>
<text name="item_name" value="..."/>
</panel>
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 6af84de0c7..dd8d86cfbf 100644
--- 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
@@ -1,4 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="dummy_clothing_item">
<text name="item_name" value="..."/>
+ <panel name="btn_add_panel">
+ <button name="btn_add" tool_tip="Tilføj flere genstande af denne type"/>
+ </panel>
</panel>
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 4360fe35f5..7c1ffe5cfa 100644
--- a/indra/newview/skins/default/xui/da/panel_edit_shape.xml
+++ b/indra/newview/skins/default/xui/da/panel_edit_shape.xml
@@ -1,8 +1,15 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="edit_shape_panel">
- <text name="avatar_height">
- [HEIGHT] meter høj
- </text>
+ <string name="meters">
+ Meter
+ </string>
+ <string name="feet">
+ Fod
+ </string>
+ <string name="height">
+ Højde:
+ </string>
+ <text name="avatar_height"/>
<panel label="Trøje" name="accordion_panel">
<accordion name="wearable_accordion">
<accordion_tab name="shape_body_tab" title="Krop"/>
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 8e6990fe31..604c166ef0 100644
--- a/indra/newview/skins/default/xui/da/panel_edit_wearable.xml
+++ b/indra/newview/skins/default/xui/da/panel_edit_wearable.xml
@@ -72,7 +72,7 @@
<string name="jacket_desc_text">
Jakke:
</string>
- <string name="skirt_skirt_desc_text">
+ <string name="skirt_desc_text">
Nederdel:
</string>
<string name="gloves_desc_text">
@@ -90,6 +90,7 @@
<string name="tattoo_desc_text">
Tatovering:
</string>
+ <labeled_back_button label="Gem" name="back_btn" tool_tip="Tilbage til redigering"/>
<text name="edit_wearable_title" value="Redigerer kropsbygning"/>
<panel label="Trøje" name="wearable_type_panel">
<text name="description_text" value="Kropsbygning:"/>
@@ -100,13 +101,8 @@
<icon name="male_icon" tool_tip="Mandlig"/>
<icon name="female_icon" tool_tip="Kvindelig"/>
</panel>
- <panel label="gear_buttom_panel" name="gear_buttom_panel">
- <button name="friends_viewsort_btn" tool_tip="Valg"/>
- <button name="add_btn" tool_tip="TODO"/>
- <button name="del_btn" tool_tip="TODO"/>
- </panel>
<panel name="button_panel">
<button label="Gem som" name="save_as_button"/>
- <button label="Vend tilbage" name="revert_button"/>
+ <button label="Annullér ændringer" name="revert_button"/>
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/da/panel_friends.xml b/indra/newview/skins/default/xui/da/panel_friends.xml
deleted file mode 100644
index a1a25bdc77..0000000000
--- a/indra/newview/skins/default/xui/da/panel_friends.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="friends">
- <string name="Multiple">
- Flere venner
- </string>
- <scroll_list name="friend_list" tool_tip="Hold Shift eller Ctrl nede imens du klikker for at vælge flere venner">
- <column name="icon_online_status" tool_tip="Online status"/>
- <column label="Name" name="friend_name" tool_tip="Navn"/>
- <column name="icon_visible_online" tool_tip="Venner kan se at du er online"/>
- <column name="icon_visible_map" tool_tip="Venner kan finde dig på kortet"/>
- <column name="icon_edit_mine" tool_tip="Venner kan rette i, slette eller tage dine objekter"/>
- <column name="icon_edit_theirs" tool_tip="Du kan rette i denne vens objekter"/>
- </scroll_list>
- <button label="IM" name="im_btn" tool_tip="Skriv en personlig besked (IM)"/>
- <button label="Profil" name="profile_btn" tool_tip="Vis billede, grupper og anden information"/>
- <button label="Teleport" name="offer_teleport_btn" tool_tip="Tilbyd denne ven at blive teleporteret til din nuværende position"/>
- <button label="Betal" name="pay_btn" tool_tip="Giv Linden dollars (L$) til denne ven"/>
- <button label="Fjern" name="remove_btn" tool_tip="Fjern denne beboer fra din venneliste"/>
- <button label="Tilføj" name="add_btn" tool_tip="Tilbyd venskab til en beboer"/>
-</panel>
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 3079a23d20..eccddb55c8 100644
--- a/indra/newview/skins/default/xui/da/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/da/panel_group_general.xml
@@ -46,7 +46,7 @@
<spinner label="L$" left_delta="130" name="spin_enrollment_fee" tool_tip="Nye medlemmer skal betale dette gebyr for at tilmelde sig gruppen, når &quot;Tilmeldingsgebyr&quot; er valgt." width="60"/>
<combo_box name="group_mature_check" tool_tip="Angiver om din gruppes information anses som &apos;mature&apos;." width="150">
<combo_item name="select_mature">
- - Vælg Mature -
+ - Vælg indholdsrating -
</combo_item>
<combo_box.item label="Mature indhold" name="mature"/>
<combo_box.item label="PG indhold" name="pg"/>
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 d8e8cb3c2a..0a0b8f5e04 100644
--- a/indra/newview/skins/default/xui/da/panel_group_notices.xml
+++ b/indra/newview/skins/default/xui/da/panel_group_notices.xml
@@ -24,7 +24,7 @@ Maksimum er 200 pr. gruppe pr. dag
<text name="notice_list_none_found">
Ingen fundet
</text>
- <button label="Lav en ny besked" label_selected="Lav ny besked" name="create_new_notice" tool_tip="Lav en ny besked"/>
+ <button label="Ny besked" label_selected="Lav ny besked" name="create_new_notice" tool_tip="Lav en ny besked"/>
<button label="Genopfrisk" label_selected="Genopfrisk liste" name="refresh_notices" tool_tip="Genopfrisk beskedliste"/>
<panel label="Lav ny besked" name="panel_create_new_notice">
<text name="lbl">
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 3ab3dd8bf8..ebc773f7ed 100644
--- a/indra/newview/skins/default/xui/da/panel_group_roles.xml
+++ b/indra/newview/skins/default/xui/da/panel_group_roles.xml
@@ -13,6 +13,9 @@
Vælg flere medlemmer ved at holde Ctrl-tasten nede og
klik på deres navne.
</panel.string>
+ <panel.string name="donation_area">
+ [AREA] m²
+ </panel.string>
<filter_editor label="Filtrér medlemmer" name="filter_input"/>
<name_list name="member_list">
<name_list.columns label="Medlemsnavn" name="name"/>
@@ -76,21 +79,15 @@ ting i denne gruppe. Der er en bred vifte af rettigheder.
<text name="static">
Rolle navn
</text>
- <line_editor name="role_name">
- Ansatte
- </line_editor>
+ <line_editor name="role_name"/>
<text name="static3">
Rolle titel
</text>
- <line_editor name="role_title">
- (venter)
- </line_editor>
+ <line_editor name="role_title"/>
<text name="static2">
Beskrivelse
</text>
- <text_editor name="role_description">
- (venter)
- </text_editor>
+ <text_editor name="role_description"/>
<text name="static4">
Tildelte roller
</text>
@@ -105,9 +102,6 @@ ting i denne gruppe. Der er en bred vifte af rettigheder.
</scroll_list>
</panel>
<panel name="actions_footer">
- <text name="static">
- Beskrivelse
- </text>
<text_editor name="action_description">
Denne rettigheder &apos;Udmeld medlemmer fra denne gruppe&apos;. Kun en ejer kan udmelde en anden ejer.
</text_editor>
diff --git a/indra/newview/skins/default/xui/da/panel_groups.xml b/indra/newview/skins/default/xui/da/panel_groups.xml
deleted file mode 100644
index 5877226e57..0000000000
--- a/indra/newview/skins/default/xui/da/panel_groups.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<panel name="groups">
- <scroll_list name="group list">
- <column label="" name="name" />
- </scroll_list>
- <text name="groupdesc" width="300">
- Din nuværende aktive gruppe er fremhævet i listen.
- </text>
- <text name="groupcount" width="300">
- Du er medlem i [COUNT] grupper (ud af maksimalt [MAX]).
- </text>
- <button label="IM/Opkald" name="IM" tool_tip="Ã…bner IM session" />
- <button label="Info" name="Info" />
- <button label="Aktivér" name="Activate" />
- <button label="Forlad" name="Leave" />
- <button label="Opret..." name="Create" />
- <button label="Søg..." name="Search..." />
-</panel>
diff --git a/indra/newview/skins/default/xui/da/panel_nearby_chat.xml b/indra/newview/skins/default/xui/da/panel_nearby_chat.xml
deleted file mode 100644
index 7f94345976..0000000000
--- a/indra/newview/skins/default/xui/da/panel_nearby_chat.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<!-- All our XML is utf-8 encoded. -->
-<panel name="nearby_chat">
- <panel name="chat_caption">
- <text name="sender_name">
- CHAT NÆRVED
- </text>
- </panel>
-</panel>
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 95bfc89f20..b4be70a22a 100644
--- a/indra/newview/skins/default/xui/da/panel_nearby_media.xml
+++ b/indra/newview/skins/default/xui/da/panel_nearby_media.xml
@@ -23,6 +23,12 @@
<button label="Mere &gt;&gt;" label_selected="Mindre &lt;&lt;" name="less_btn" tool_tip="Advancerede kontroller"/>
</panel>
<panel name="nearby_media_panel">
+ <text name="nearby_media_title">
+ Media tæt på
+ </text>
+ <text name="show_text">
+ Vis:
+ </text>
<combo_box name="show_combo">
<combo_box.item label="Overalt" name="All"/>
<combo_box.item label="PÃ¥ dette sted" name="WithinParcel"/>
@@ -36,28 +42,28 @@
<scroll_list.columns label="Navn" name="media_name"/>
<scroll_list.columns label="Debug" name="media_debug"/>
</scroll_list>
- <panel>
+ <panel name="media_controls_panel">
<layout_stack name="media_controls">
<layout_panel name="stop">
- <button name="stop_btn" tool_tip="Stop valgte medie"/>
+ <button name="stop_btn" tool_tip="Stop valgte media"/>
</layout_panel>
<layout_panel name="play">
- <button name="play_btn" tool_tip="Afspil valgte medie"/>
+ <button name="play_btn" tool_tip="Afspil valgte media"/>
</layout_panel>
<layout_panel name="pause">
- <button name="pause_btn" tool_tip="Pause valgt medie"/>
+ <button name="pause_btn" tool_tip="Pause valgte media"/>
</layout_panel>
<layout_panel name="volume_slider_ctrl">
- <slider_bar initial_value="0.5" name="volume_slider" tool_tip="Lydstyrke for valgte medie"/>
+ <slider_bar initial_value="0.5" name="volume_slider" tool_tip="Lydstyrke for valgte media"/>
</layout_panel>
<layout_panel name="mute">
- <button name="mute_btn" tool_tip="Sluk lyd fra valgte medie"/>
+ <button name="mute_btn" tool_tip="Sluk lyd for valgte media"/>
</layout_panel>
<layout_panel name="zoom">
- <button name="zoom_btn" tool_tip="Zoom til valgte medie"/>
+ <button name="zoom_btn" tool_tip="Zoom til valgte media"/>
</layout_panel>
<layout_panel name="unzoom">
- <button name="unzoom_btn" tool_tip="Zoom tilbage fra valgte medie"/>
+ <button name="unzoom_btn" tool_tip="Zoom tilbage fra valgte media"/>
</layout_panel>
</layout_stack>
</panel>
diff --git a/indra/newview/skins/default/xui/da/panel_notes.xml b/indra/newview/skins/default/xui/da/panel_notes.xml
index 5b3a2d0906..00128497ba 100644
--- a/indra/newview/skins/default/xui/da/panel_notes.xml
+++ b/indra/newview/skins/default/xui/da/panel_notes.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Noter &amp; Privatliv" name="panel_notes">
<layout_stack name="layout">
- <panel name="notes_stack">
+ <layout_panel name="notes_stack">
<scroll_container name="profile_scroll">
<panel name="profile_scroll_panel">
<text name="status_message" value="Min private noter:"/>
@@ -11,13 +11,13 @@
<check_box label="Editére, slette og tage mine objekter" name="objects_check"/>
</panel>
</scroll_container>
- </panel>
- <panel name="notes_buttons_panel">
+ </layout_panel>
+ <layout_panel name="notes_buttons_panel">
<button label="Tilføj ven" name="add_friend" tool_tip="Tilbyd venskab til beboer"/>
<button label="IM" name="im" tool_tip="Ã…ben session med personlig besked (IM)"/>
<button label="Kald" name="call" tool_tip="Opkald til denne beboer"/>
<button label="Kort" name="show_on_map_btn" tool_tip="Vis beboer på kort"/>
<button label="Teleport" name="teleport" tool_tip="Tilbyd teleport"/>
- </panel>
+ </layout_panel>
</layout_stack>
</panel>
diff --git a/indra/newview/skins/default/xui/da/panel_online_status.xml b/indra/newview/skins/default/xui/da/panel_online_status.xml
deleted file mode 100644
index fdc489f375..0000000000
--- a/indra/newview/skins/default/xui/da/panel_online_status.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="friend_online_status" name="friend_online_status"/>
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 9aa9fd14cc..99ef3b5411 100644
--- a/indra/newview/skins/default/xui/da/panel_outfit_edit.xml
+++ b/indra/newview/skins/default/xui/da/panel_outfit_edit.xml
@@ -13,7 +13,9 @@
<string name="Filter.All" value="Alle"/>
<string name="Filter.Clothes/Body" value="Tøj/Krop"/>
<string name="Filter.Objects" value="Objekter"/>
- <button label="redigér" name="edit_wearable_btn"/>
+ <string name="Filter.Clothing" value="Tøj"/>
+ <string name="Filter.Bodyparts" value="Kropsdele"/>
+ <string name="replace_body_part" value="Klik for at erstatte din nuværende figur"/>
<text name="title" value="Redigér sæt"/>
<panel label="bottom_panel" name="header_panel">
<panel label="bottom_panel" name="outfit_name_and_status">
@@ -23,23 +25,27 @@
</panel>
<layout_stack name="im_panels">
<layout_panel label="IM kontrolpanel" name="outfit_wearables_panel">
- <panel label="bottom_panel" name="edit_panel"/>
- </layout_panel>
- <layout_panel name="add_wearables_panel">
- <text name="add_to_outfit_label" value="Tilføj til sæt:"/>
<layout_stack name="filter_panels">
- <layout_panel label="IM kontrolpanel" name="filter_panel">
- <filter_editor label="Filter" name="look_item_filter"/>
+ <layout_panel name="add_button_and_combobox">
+ <button label="Tilføj mere..." name="show_add_wearables_btn" tool_tip="Åben/Luk"/>
+ </layout_panel>
+ <layout_panel name="filter_panel">
+ <filter_editor label="Filtrér tøj i beholdning" name="look_item_filter"/>
</layout_panel>
</layout_stack>
- <panel label="add_wearables_button_bar" name="add_wearables_button_bar">
- <button label="F" name="folder_view_btn"/>
- <button label="L" name="list_view_btn"/>
- </panel>
+ </layout_panel>
+ <layout_panel name="add_wearables_panel">
+ <button label="Tag genstand på" name="plus_btn"/>
</layout_panel>
</layout_stack>
+ <panel name="no_add_wearables_button_bar">
+ <button name="shop_btn_1" tool_tip="Besøg SL markedspladsen. Du kan også vælge noget du har på, og så klikke her for at se andre ting som dette"/>
+ </panel>
+ <panel name="add_wearables_button_bar">
+ <button name="shop_btn_2" tool_tip="Besøg SL markedspladsen. Du kan også vælge noget du har på, og så klikke her for at se andre ting som dette"/>
+ </panel>
<panel name="save_revert_button_bar">
<button label="Gem" name="save_btn"/>
- <button label="Gendan" name="revert_btn"/>
+ <button label="Annullér ændringer" name="revert_btn" tool_tip="Vend tilbage til sidst gemte version"/>
</panel>
</panel>
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 681701aba2..6f9dd5b775 100644
--- a/indra/newview/skins/default/xui/da/panel_outfits_inventory.xml
+++ b/indra/newview/skins/default/xui/da/panel_outfits_inventory.xml
@@ -1,14 +1,17 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Ting" name="Outfits">
+ <panel.string name="wear_outfit_tooltip">
+ Tag valgte sæt på
+ </panel.string>
+ <panel.string name="wear_items_tooltip">
+ Bær valgte genstande
+ </panel.string>
<tab_container name="appearance_tabs">
<panel label="MINE SÆT" name="outfitslist_tab"/>
- <inventory_panel label="HAR PÃ…" name="cof_tab"/>
+ <panel label="HAR PÃ…" name="cof_tab"/>
</tab_container>
<panel name="bottom_panel">
- <button name="options_gear_btn" tool_tip="Vis flere muligheder"/>
- <dnd_button name="trash_btn" tool_tip="Fjern valgte genstand"/>
- <button label="Gem sæt" name="make_outfit_btn" tool_tip="Gem udseende som nyt sæt"/>
+ <button label="Gem som" name="save_btn"/>
<button label="Tag på" name="wear_btn" tool_tip="Tag valgte sæt på"/>
- <button label="Redigér sæt" name="edit_current_outfit_btn"/>
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/da/panel_outfits_list.xml b/indra/newview/skins/default/xui/da/panel_outfits_list.xml
new file mode 100644
index 0000000000..72caedb461
--- /dev/null
+++ b/indra/newview/skins/default/xui/da/panel_outfits_list.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="Outfits">
+ <panel name="bottom_panel">
+ <button name="options_gear_btn" tool_tip="Vis yderligere valgmuligheder"/>
+ <button name="trash_btn" tool_tip="Slet valgte sæt"/>
+ </panel>
+</panel>
diff --git a/indra/newview/skins/default/xui/da/panel_outfits_wearing.xml b/indra/newview/skins/default/xui/da/panel_outfits_wearing.xml
new file mode 100644
index 0000000000..8d25efa97b
--- /dev/null
+++ b/indra/newview/skins/default/xui/da/panel_outfits_wearing.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="Wearing">
+ <panel name="bottom_panel">
+ <button name="options_gear_btn" tool_tip="Vis yderligere valgmuligheder"/>
+ </panel>
+</panel>
diff --git a/indra/newview/skins/default/xui/da/panel_places.xml b/indra/newview/skins/default/xui/da/panel_places.xml
index c06176f994..ac15da1717 100644
--- a/indra/newview/skins/default/xui/da/panel_places.xml
+++ b/indra/newview/skins/default/xui/da/panel_places.xml
@@ -5,12 +5,12 @@
<filter_editor label="Filtrér mine steder" name="Filter"/>
<panel name="button_panel">
<button label="Teleportér" name="teleport_btn" tool_tip="Teleportér til det valgte område"/>
- <button label="Kort" name="map_btn"/>
+ <button label="Kort" name="map_btn" tool_tip="Vis dette område på verdenskortet"/>
<button label="Redigér" name="edit_btn" tool_tip="Redigér landemærke information"/>
<button label="â–¼" name="overflow_btn" tool_tip="Vise flere valgmuligheder"/>
<button label="Gem" name="save_btn"/>
<button label="Annullér" name="cancel_btn"/>
<button label="Luk" name="close_btn"/>
- <button label="Profil" name="profile_btn"/>
+ <button label="Profil" name="profile_btn" tool_tip="Vis profil for stedet"/>
</panel>
</panel>
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 807d7939b8..b267c75673 100644
--- a/indra/newview/skins/default/xui/da/panel_preferences_advanced.xml
+++ b/indra/newview/skins/default/xui/da/panel_preferences_advanced.xml
@@ -13,7 +13,7 @@
</text>
<check_box label="Byg/Redigér" name="edit_camera_movement" tool_tip="Benyt automatisk kamera positionering ved start og slut af editerings modus"/>
<check_box label="Udseende" name="appearance_camera_movement" tool_tip="Benyt automatisk kamera positionering ved redigering"/>
- <check_box initial_value="1" label="Sidepanel" name="appearance_sidebar_positioning" tool_tip="Benyt automatisk positionering af kamera"/>
+ <check_box initial_value="sand" label="Sidepanel" name="appearance_sidebar_positioning" tool_tip="Benyt automatisk positionering af kamera"/>
<check_box label="Vis avatar i førsteperson" name="first_person_avatar_visible"/>
<check_box label="Piletaster bruges altid til bevægelse" name="arrow_keys_move_avatar_check"/>
<check_box label="Tast-tast-hold for at løbe" name="tap_tap_hold_to_run"/>
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 20a376f152..bea106bf28 100644
--- a/indra/newview/skins/default/xui/da/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/da/panel_preferences_chat.xml
@@ -56,4 +56,27 @@
<radio_item label="Separate vinduer" name="radio" value="0"/>
<radio_item label="Faner" name="radio2" value="1"/>
</radio_group>
+ <check_box label="Oversæt Chat" name="translate_chat_checkbox" />
+ <text name="translate_language_text" width="110">
+ Chat Sprog:
+ </text>
+ <combo_box name="translate_language_combobox" width="146">
+ <combo_box.item label="System standard" name="System Default Language"/>
+ <combo_box.item label="English (Engelsk)" name="English"/>
+ <combo_box.item label="Dansk" name="Danish"/>
+ <combo_box.item label="Deutsch (Tysk)" name="German"/>
+ <combo_box.item label="Español (Spansk)" name="Spanish"/>
+ <combo_box.item label="Français (Fransk)" name="French"/>
+ <combo_box.item label="Italiano (Italiensk)" name="Italian" />
+ <combo_box.item label="Magyar (Ungarsk)" name="Hungarian" />
+ <combo_box.item label="Nederlands (Hollandsk)" name="Dutch" />
+ <combo_box.item label="Polski (Polsk)" name="Polish" />
+ <combo_box.item label="Português (Portugisisk)" name="Portugese" />
+ <combo_box.item label="РуÑÑкий (Russisk)" name="Russian" />
+ <combo_box.item label="Türkçe (Tyrkisk)" name="Turkish" />
+ <combo_box.item label="УкраїнÑька (Ukrainsk)" name="Ukrainian" />
+ <combo_box.item label="中文 (简体) (Kinesisk)" name="Chinese" />
+ <combo_box.item label="日本語 (Japansk)" name="Japanese" />
+ <combo_box.item label="한국어 (Koreansk)" name="Korean" />
+ </combo_box>
</panel>
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 e70cb48262..6a85cf4aae 100644
--- a/indra/newview/skins/default/xui/da/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/da/panel_preferences_general.xml
@@ -11,7 +11,7 @@
<combo_box.item label="Español (Spansk) - Beta" name="Spanish"/>
<combo_box.item label="Français (Fransk) - Beta" name="French"/>
<combo_box.item label="Polski (Polsk) - Beta" name="Polish"/>
- <combo_box.item label="Portugués (Portugisisk) - Beta" name="Portugese"/>
+ <combo_box.item label="Português (Portugisisk) - Beta" name="Portugese"/>
<combo_box.item label="日本語 (Japansk) - Beta" name="(Japanese)"/>
</combo_box>
<text name="language_textbox2">
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 586896041d..62214089f5 100644
--- a/indra/newview/skins/default/xui/da/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/da/panel_preferences_graphics1.xml
@@ -50,10 +50,7 @@
m
</text>
<slider label="Maks. antal partikler:" name="MaxParticleCount"/>
- <slider label="Maks. avatar optegningsafstand:" name="MaxAvatarDrawDistance"/>
- <text name="DrawDistanceMeterText3">
- m
- </text>
+ <slider label="Maks. antal mini-avatarer:" name="MaxNumberAvatarDrawn"/>
<slider label="Efterbehandlingskvalitet:" name="RenderPostProcess"/>
<text name="MeshDetailText">
Netmaske detaljer:
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 a1b47c3c1f..18cb0e47b9 100644
--- a/indra/newview/skins/default/xui/da/panel_preferences_sound.xml
+++ b/indra/newview/skins/default/xui/da/panel_preferences_sound.xml
@@ -11,8 +11,8 @@
<check_box label="Aktiveret" name="enable_media"/>
<slider label="Stemme chat" name="Voice Volume"/>
<check_box label="Aktiveret" name="enable_voice_check"/>
- <check_box label="Tillad media at afspilles automatisk" name="media_auto_play_btn" tool_tip="Vælg dette for at media afspille automatisk hvis det ønsker det" />
- <check_box label="Afspil media vedhæftet andre avatarer" name="media_show_on_others_btn" tool_tip="Deaktiver dette for at skjule vedhæftet media for avatarer i nærheden" />
+ <check_box label="Tillad media at afspilles automatisk" name="media_auto_play_btn" tool_tip="Vælg dette for at media afspille automatisk hvis det ønsker det" value="true"/>
+ <check_box label="Afspil media vedhæftet andre avatarer" name="media_show_on_others_btn" tool_tip="Deaktiver dette for at skjule vedhæftet media for avatarer i nærheden" value="true"/>
<text name="voice_chat_settings">
Stemme chat opsætning
</text>
@@ -28,6 +28,12 @@
<panel.string name="default_text">
Standard
</panel.string>
+ <panel.string name="default system device">
+ Standard systemenhed
+ </panel.string>
+ <panel.string name="no device">
+ Ingen enheder
+ </panel.string>
<text name="Input">
Input
</text>
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 d3b3c7e21e..cfb32500c6 100644
--- a/indra/newview/skins/default/xui/da/panel_prim_media_controls.xml
+++ b/indra/newview/skins/default/xui/da/panel_prim_media_controls.xml
@@ -13,9 +13,9 @@
50
</string>
<layout_stack name="progress_indicator_area">
- <panel name="media_progress_indicator">
+ <layout_panel name="media_progress_indicator">
<progress_bar name="media_progress_bar" tool_tip="Medie hentes"/>
- </panel>
+ </layout_panel>
</layout_stack>
<layout_stack name="media_controls">
<layout_panel name="back">
diff --git a/indra/newview/skins/default/xui/da/panel_region_general_layout.xml b/indra/newview/skins/default/xui/da/panel_region_general_layout.xml
deleted file mode 100644
index f3c32d6169..0000000000
--- a/indra/newview/skins/default/xui/da/panel_region_general_layout.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="Region" name="General">
- <text name="region_text_lbl">
- Region:
- </text>
- <text name="region_text">
- ukendt
- </text>
- <text name="version_channel_text_lbl">
- Version:
- </text>
- <text name="version_channel_text">
- ukendt
- </text>
- <text name="region_type_lbl">
- Type:
- </text>
- <text name="region_type">
- ukendt
- </text>
- <check_box label="Blokér for redigering af terræn" name="block_terraform_check"/>
- <check_box label="Blokér for flyvning" name="block_fly_check"/>
- <check_box label="Tillad skader" name="allow_damage_check"/>
- <check_box label="Begræns skubning" name="restrict_pushobject"/>
- <check_box label="Tillad at sælge land" name="allow_land_resell_check"/>
- <check_box label="Tillad at samle/dele land" name="allow_parcel_changes_check"/>
- <check_box label="Blokér visning af land i Søgning" name="block_parcel_search_check" tool_tip="Lad beboere se denne region og dens parceller i søgeresultater"/>
- <spinner label="Max besøgende" name="agent_limit_spin"/>
- <spinner label="Objekt bonus" name="object_bonus_spin"/>
- <text label="Rating" name="access_text">
- Rating:
- </text>
- <combo_box label="Moderat" name="access_combo">
- <combo_box.item label="Voksent" name="Adult"/>
- <combo_box.item label="Moderat" name="Mature"/>
- <combo_box.item label="Generel" name="PG"/>
- </combo_box>
- <button label="Gem" name="apply_btn"/>
- <button label="Teleportér en beboer hjem..." name="kick_btn"/>
- <button label="Teleportér alle beboere hjem..." name="kick_all_btn"/>
- <button label="Send besked til region..." name="im_btn"/>
- <button label="Vedligehold telehub..." name="manage_telehub_btn"/>
-</panel>
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 08ffafd5a6..8633f12d24 100644
--- a/indra/newview/skins/default/xui/da/panel_status_bar.xml
+++ b/indra/newview/skins/default/xui/da/panel_status_bar.xml
@@ -21,8 +21,10 @@
<panel.string name="buycurrencylabel">
L$ [AMT]
</panel.string>
- <button label="" label_selected="" name="buycurrency" tool_tip="Min balance"/>
- <button label="Køb L$" name="buyL" tool_tip="Klik for at købe flere L$"/>
+ <panel name="balance_bg">
+ <text name="balance" tool_tip="Min status" value="L$20"/>
+ <button label="KØB L$" name="buyL" tool_tip="Klik for at købe flere L$"/>
+ </panel>
<text name="TimeText" tool_tip="Nuværende tid (Pacific)">
24:00 PST
</text>
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 8a01659ffa..e6e78028f5 100644
--- a/indra/newview/skins/default/xui/da/panel_teleport_history.xml
+++ b/indra/newview/skins/default/xui/da/panel_teleport_history.xml
@@ -1,10 +1,11 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="Teleport History">
<accordion name="history_accordion">
+ <no_matched_tabs_text name="no_matched_teleports_msg" value="Fandt du ikke hvad du søgte? Prøv [secondlife:///app/search/places/[SEARCH_TERM] Search]."/>
+ <no_visible_tabs_text name="no_teleports_msg" value="Teleport historik er tom. Prøv [secondlife:///app/search/places/ Search]."/>
<accordion_tab name="today" title="I dag"/>
<accordion_tab name="yesterday" title="I går"/>
<accordion_tab name="2_days_ago" title="2 dage siden"/>
- 5
<accordion_tab name="3_days_ago" title="3 dage siden"/>
<accordion_tab name="4_days_ago" title="4 dage siden"/>
<accordion_tab name="5_days_ago" title="5 dage siden"/>
diff --git a/indra/newview/skins/default/xui/da/panel_voice_effect.xml b/indra/newview/skins/default/xui/da/panel_voice_effect.xml
new file mode 100644
index 0000000000..50f561ec7f
--- /dev/null
+++ b/indra/newview/skins/default/xui/da/panel_voice_effect.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="panel_voice_effect">
+ <string name="no_voice_effect">
+ Voice Morphing Off
+ </string>
+ <string name="preview_voice_effects">
+ Se stemme &quot;morph&quot; â–¶
+ </string>
+ <string name="get_voice_effects">
+ Hente stemme &quot;morph&quot; â–¶
+ </string>
+ <combo_box name="voice_effect" tool_tip="Vælg en stemme &quot;morph&quot; for at ændre din stemme">
+ <combo_box.item label="Stemme morph slukket" name="no_voice_effect"/>
+ </combo_box>
+</panel>
diff --git a/indra/newview/skins/default/xui/da/sidepanel_appearance.xml b/indra/newview/skins/default/xui/da/sidepanel_appearance.xml
index be049bea38..c5caefe070 100644
--- a/indra/newview/skins/default/xui/da/sidepanel_appearance.xml
+++ b/indra/newview/skins/default/xui/da/sidepanel_appearance.xml
@@ -3,12 +3,14 @@
<string name="No Outfit" value="Intet sæt"/>
<string name="Unsaved Changes" value="Ikke gemte ændringer"/>
<string name="Now Wearing" value="Bærer nu..."/>
+ <string name="Changing outfits" value="Skift sæt"/>
<panel name="panel_currentlook">
<button label="E" name="editappearance_btn"/>
<button label="O" name="openoutfit_btn"/>
<text name="currentlook_status">
(Status)
</text>
+ <button label="" name="edit_outfit_btn" tool_tip="Redigér dette sæt"/>
</panel>
<filter_editor label="Filtrér sæt" name="Filter"/>
</panel>
diff --git a/indra/newview/skins/default/xui/da/sidepanel_inventory.xml b/indra/newview/skins/default/xui/da/sidepanel_inventory.xml
index 767d74ca3f..64ee3f0428 100644
--- a/indra/newview/skins/default/xui/da/sidepanel_inventory.xml
+++ b/indra/newview/skins/default/xui/da/sidepanel_inventory.xml
@@ -2,12 +2,12 @@
<panel label="Ting" name="objects panel">
<panel label="" name="sidepanel__inventory_panel">
<panel name="button_panel">
- <button label="Profil" name="info_btn"/>
- <button label="Del" name="share_btn"/>
- <button label="Køb ind" name="shop_btn"/>
- <button label="Bær" name="wear_btn"/>
+ <button label="Profil" name="info_btn" tool_tip="Vis objekt profil"/>
+ <button label="Del" name="share_btn" tool_tip="Del en genstand fra beholdning"/>
+ <button label="Køb ind" name="shop_btn" tool_tip="Åben hjemmeside for markedsplads"/>
+ <button label="Bær" name="wear_btn" tool_tip="Tag valgte sæt på"/>
<button label="Afspil" name="play_btn"/>
- <button label="Teleportér" name="teleport_btn"/>
+ <button label="Teleportér" name="teleport_btn" tool_tip="Teleport til det valgte område"/>
</panel>
</panel>
</panel>
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 701a59bade..2350af8d49 100644
--- a/indra/newview/skins/default/xui/da/sidepanel_item_info.xml
+++ b/indra/newview/skins/default/xui/da/sidepanel_item_info.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="item properties" title="Objekt profil">
+<panel name="item properties" title="Profil for genstand">
<panel.string name="unknown">
(ukendt)
</panel.string>
@@ -15,9 +15,15 @@
<panel.string name="acquiredDate">
[wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local]
</panel.string>
- <text name="title" value="Objekt profil"/>
- <text name="where" value="(Beholdning)"/>
- <panel label="">
+ <panel.string name="origin_inventory">
+ (Beholdning)
+ </panel.string>
+ <panel.string name="origin_inworld">
+ (I Second Life)
+ </panel.string>
+ <text name="title" value="Profil for genstand"/>
+ <text name="origin" value="(Beholdning)"/>
+ <panel label="" name="item_profile">
<text name="LabelItemNameTitle">
Navn:
</text>
@@ -33,32 +39,30 @@
</text>
<button label="Profil..." name="BtnOwner"/>
<text name="LabelAcquiredTitle">
- Erhvervet:
- </text>
- <text name="LabelAcquiredDate">
- Ons Maj 24 12:50:46 2006
+ Anskaffet:
</text>
+ <text name="LabelAcquiredDate"/>
<panel name="perms_inv">
<text name="perm_modify">
Du kan:
</text>
<check_box label="Redigere" name="CheckOwnerModify"/>
<check_box label="Kopiere" name="CheckOwnerCopy"/>
- <check_box label="Give væk" name="CheckOwnerTransfer"/>
+ <check_box label="Overfør" name="CheckOwnerTransfer"/>
<text name="AnyoneLabel">
- Enhver:
+ Alle:
</text>
<check_box label="Kopiere" name="CheckEveryoneCopy"/>
<text name="GroupLabel">
Gruppe:
</text>
- <check_box label="Dele" name="CheckShareWithGroup" tool_tip="Tillad alle medlemmer i den aktive gruppe at dele dine &apos;redigere&apos; rettigheder for dette objekt. Du skal dedikere for at åbne for rolle begrænsninger."/>
+ <check_box label="Del" name="CheckShareWithGroup" tool_tip="Giver alle medlemmer adgang til at give gruppen ret til at ændre rettigheder for dette objekt. Du skal dedikere for at åbne for rolle begrænsninger."/>
<text name="NextOwnerLabel">
Næste ejer:
</text>
<check_box label="Redigere" name="CheckNextOwnerModify"/>
<check_box label="Kopiere" name="CheckNextOwnerCopy"/>
- <check_box label="Give væk" name="CheckNextOwnerTransfer" tool_tip="Næste ejer kan give væk eller sælge dette objekt"/>
+ <check_box label="Overføre" name="CheckNextOwnerTransfer" tool_tip="Næste ejer kan give væk eller sælge dette objekt"/>
</panel>
<check_box label="Til salg" name="CheckPurchase"/>
<combo_box name="combobox sale copy">
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 bec97734e4..746cf201bc 100644
--- a/indra/newview/skins/default/xui/da/sidepanel_task_info.xml
+++ b/indra/newview/skins/default/xui/da/sidepanel_task_info.xml
@@ -37,7 +37,7 @@
Blandet salg
</panel.string>
<text name="title" value="Objekt profil"/>
- <text name="where" value="(verden)"/>
+ <text name="where" value="(I Second Life)"/>
<panel label="" name="properties_panel">
<text name="Name:">
Navn:
diff --git a/indra/newview/skins/default/xui/da/strings.xml b/indra/newview/skins/default/xui/da/strings.xml
index 5ceb0612a8..712f6f8b50 100644
--- a/indra/newview/skins/default/xui/da/strings.xml
+++ b/indra/newview/skins/default/xui/da/strings.xml
@@ -95,7 +95,7 @@
Et ugyldig hostnavn blev brugt for at få adgang til serveren. Check venligst din SLURL eller navnet på hosten.
</string>
<string name="CertExpired">
- Certifikat returneret fra nettet ser ud til at være udløbet. Check venligst din systemtid eller kontakt administratoren af dette net.
+ Det certifikat der blev returneret ser ud til at være udløbet. Check venligst din systemtid på computeren.
</string>
<string name="CertKeyUsage">
Det certifikat der blev returneret af serveren kan ikke benyttes til SSL. Kontakt venligst administrator af dette net.
@@ -104,7 +104,7 @@
For mange certifikater i serverens certifikat streng. Kontakt venligst administrator af dette net.
</string>
<string name="CertInvalidSignature">
- Certifikat signaturen returneret på dette net kan ikke bekræftes. Kontakt venligst administrator af dette net.
+ Signaturen på certifkat der blev returneret af Second Life serveren kunne ikke bekræftes.
</string>
<string name="LoginFailedNoNetwork">
Netværksfejl: Kunne ikke etablere forbindelse, check venligst din netværksforbindelse.
@@ -181,6 +181,7 @@
<string name="TooltipMustSingleDrop">
Kun et enkelt element kan trækkes ind her
</string>
+ <string name="TooltipPrice" value="L$[BELØB]:"/>
<string name="TooltipHttpUrl">
Klik for at se denne hjemmeside
</string>
@@ -233,7 +234,6 @@
Klik for at starte secondlife:// kommando
</string>
<string name="CurrentURL" value=" Nuværende URL: [CurrentURL]"/>
- <string name="TooltipPrice" value="L$[PRICE]-"/>
<string name="SLurlLabelTeleport">
Teleportér til
</string>
@@ -294,6 +294,9 @@
<string name="ReleaseNotes">
Noter om version
</string>
+ <string name="RELEASE_NOTES_BASE_URL">
+ http://wiki.secondlife.com/wiki/Release_Notes/
+ </string>
<string name="LoadingData">
Henter...
</string>
@@ -639,6 +642,9 @@
<string name="worldmap_offline">
Offline
</string>
+ <string name="worldmap_item_tooltip_format">
+ [AREA] m² L$[PRICE]
+ </string>
<string name="worldmap_results_none_found">
Ingen fundet.
</string>
@@ -729,6 +735,12 @@
<string name="land_type_unknown">
(ukendt)
</string>
+ <string name="Estate / Full Region">
+ Estate / Hel region
+ </string>
+ <string name="Mainland / Full Region">
+ Mainland / Hel region
+ </string>
<string name="all_files">
Alle filer
</string>
@@ -834,6 +846,9 @@
<string name="invalid">
ugyldig
</string>
+ <string name="none">
+ ingen
+ </string>
<string name="shirt_not_worn">
Trøje - ikke på
</string>
@@ -870,6 +885,54 @@
<string name="invalid_not_worn">
ugyldig
</string>
+ <string name="create_new_shape">
+ Opret ny figur
+ </string>
+ <string name="create_new_skin">
+ Opret nyt hud
+ </string>
+ <string name="create_new_hair">
+ Opret nyt hår
+ </string>
+ <string name="create_new_eyes">
+ Opret nye øjne
+ </string>
+ <string name="create_new_shirt">
+ Opret ny trøje
+ </string>
+ <string name="create_new_pants">
+ Opret nye bukser
+ </string>
+ <string name="create_new_shoes">
+ Opret nye sko
+ </string>
+ <string name="create_new_socks">
+ Opret nye strømper
+ </string>
+ <string name="create_new_jacket">
+ Opret ny jakke
+ </string>
+ <string name="create_new_gloves">
+ Opret nye handsker
+ </string>
+ <string name="create_new_undershirt">
+ Opret ny undertrøje
+ </string>
+ <string name="create_new_underpants">
+ Opret nye underbukser
+ </string>
+ <string name="create_new_skirt">
+ Opret ny nederdel
+ </string>
+ <string name="create_new_alpha">
+ Opret ny alpha
+ </string>
+ <string name="create_new_tattoo">
+ Opret ny tatovering
+ </string>
+ <string name="create_new_invalid">
+ ugyldig
+ </string>
<string name="NewWearable">
Ny [WEARABLE_ITEM]
</string>
@@ -971,6 +1034,7 @@
<string name="AnimFlagStop" value=" Stop Animation : "/>
<string name="AnimFlagStart" value=" Start Animation : "/>
<string name="Wave" value=" Vink "/>
+ <string name="GestureActionNone" value="Ingen"/>
<string name="HelloAvatar" value=" Hej, avatar! "/>
<string name="ViewAllGestures" value=" Se alle &gt;&gt;"/>
<string name="GetMoreGestures" value="FÃ¥ mere &gt;&gt;"/>
@@ -1050,12 +1114,18 @@
<string name="InvFolder Gestures">
Bevægelser
</string>
+ <string name="InvFolder Favorite">
+ Favoritter
+ </string>
<string name="InvFolder favorite">
Favoritter
</string>
<string name="InvFolder Current Outfit">
Nuværende sæt
</string>
+ <string name="InvFolder Initial Outfits">
+ Start sæt
+ </string>
<string name="InvFolder My Outfits">
Mine sæt
</string>
@@ -1375,6 +1445,7 @@
<string name="SummaryForTheWeek" value="Opsummering for denne uge, begyndende med "/>
<string name="NextStipendDay" value="Næste stipendie dag er "/>
<string name="GroupIndividualShare" value=" Gruppe Individuel Delt"/>
+ <string name="GroupColumn" value="Gruppe"/>
<string name="Balance">
Balance
</string>
@@ -1570,21 +1641,30 @@
<string name="ATTACH_HUD_BOTTOM_RIGHT">
HUD Nederst til højre
</string>
+ <string name="Bad attachment point">
+ Ugyldig fæste-punkt
+ </string>
<string name="CursorPos">
Linie [LINE], Kolonne [COLUMN]
</string>
<string name="PanelDirCountFound">
[COUNT] fundet
</string>
- <string name="PanelContentsNewScript">
- Nyt script
- </string>
<string name="PanelContentsTooltip">
Indhold i objekt
</string>
+ <string name="PanelContentsNewScript">
+ Nyt script
+ </string>
<string name="BusyModeResponseDefault">
Beboeren du sendte en besked er &apos;optaget&apos;, hvilket betyder at han/hun ikke vil forstyrres. Din besked vil blive vis i hans/hendes IM panel til senere visning.
</string>
+ <string name="NoOutfits">
+ You don&apos;t have any outfits yet. Try [secondlife:///app/search/all/ Search]
+ </string>
+ <string name="NoOutfitsTabsMatched">
+ Fandt du ikke hvad du søgte? Prøv [secondlife:///app/search/all/[SEARCH_TERM] Search].
+ </string>
<string name="MuteByName">
(Efter navn)
</string>
@@ -3445,6 +3525,9 @@ Hvis du bliver ved med at modtage denne besked, kontakt venligst [SUPPORT_SITE].
<string name="session_initialization_timed_out_error">
Initialisering af session er &quot;timed out&quot;
</string>
+ <string name="voice_morphing_url">
+ http://secondlife.com/landing/voicemorphing
+ </string>
<string name="paid_you_ldollars">
[NAME] betalte dig L$[AMOUNT]
</string>
@@ -3502,6 +3585,9 @@ Hvis du bliver ved med at modtage denne besked, kontakt venligst [SUPPORT_SITE].
<string name="group_role_owners">
Ejere
</string>
+ <string name="group_member_status_online">
+ Online
+ </string>
<string name="uploading_abuse_report">
Uploader...
@@ -3555,9 +3641,15 @@ Krænkelsesanmeldelse
<string name="Invalid Wearable">
Kan ikke tages på
</string>
+ <string name="New Gesture">
+ Ny bevægelse
+ </string>
<string name="New Script">
Nyt script
</string>
+ <string name="New Note">
+ Ny note
+ </string>
<string name="New Folder">
Ny folder
</string>
@@ -3615,16 +3707,25 @@ Krænkelsesanmeldelse
<string name="Male - Wow">
Mand - Wow
</string>
- <string name="FeMale - Excuse me">
+ <string name="Female - Chuckle">
+ Kvinde - Kluklatter
+ </string>
+ <string name="Female - Cry">
+ Kvinde - gråd
+ </string>
+ <string name="Female - Embarrassed">
+ Kvinde - Flov
+ </string>
+ <string name="Female - Excuse me">
Kvinde - Undskyld mig
</string>
- <string name="FeMale - Get lost">
+ <string name="Female - Get lost">
Kvinde - Skrid!
</string>
- <string name="FeMale - Blow kiss">
+ <string name="Female - Blow kiss">
Kvinde - Pust et kys
</string>
- <string name="FeMale - Boo">
+ <string name="Female - Boo">
Kvinde - Boo
</string>
<string name="Female - Bored">
@@ -3633,9 +3734,21 @@ Krænkelsesanmeldelse
<string name="Female - Hey">
Kvinde - Hey
</string>
+ <string name="Female - Hey baby">
+ Kvinde - Hey baby
+ </string>
<string name="Female - Laugh">
Kvinde - Latter
</string>
+ <string name="Female - Looking good">
+ Kvinde - &quot;Ser godt ud&quot;
+ </string>
+ <string name="Female - Over here">
+ Kvinde - Herovre
+ </string>
+ <string name="Female - Please">
+ Kvinde - Be´ om
+ </string>
<string name="Female - Repulsed">
Kvinde - Frastødt
</string>
@@ -3657,4 +3770,74 @@ Krænkelsesanmeldelse
<string name="texture_load_dimensions_error">
Kan ikke hente billeder større end [WIDTH]*[HEIGHT]
</string>
+ <string name="words_separator" value=","/>
+ <string name="server_is_down">
+ Desværre er noget gået galt.
+
+ Check venligst status.secondlifegrid.net for at se om der skulle være driftsproblemer.
+ Hvis du bliver ved med at have problemer, check venligst din firewall- og netværksopsætning.
+ </string>
+ <string name="dateTimeWeekdaysNames">
+ Søndag:Mandag:Tirsdag:Onsdag:Torsdag:Fredag:Lørdag
+ </string>
+ <string name="dateTimeWeekdaysShortNames">
+ Søn:Man:Tir:Ons:Tor:Fre:Lør
+ </string>
+ <string name="dateTimeMonthNames">
+ Januar:Februar:Marts:April:Maj:Juni:Juli:August:September:Oktober:November:December
+ </string>
+ <string name="dateTimeMonthShortNames">
+ Jan:Feb:Mar:Apr:Maj:Jun:Jul:Aug:Sep:Okt:Nov:Dec
+ </string>
+ <string name="dateTimeDayFormat">
+ [MDAY]
+ </string>
+ <string name="dateTimeAM">
+ AM
+ </string>
+ <string name="dateTimePM">
+ PM
+ </string>
+ <string name="LocalEstimateUSD">
+ US$ [AMOUNT]
+ </string>
+ <string name="Membership">
+ Medlemsskab
+ </string>
+ <string name="Roles">
+ Roller
+ </string>
+ <string name="Group Identity">
+ Gruppe identitet
+ </string>
+ <string name="Parcel Management">
+ Parcel håndtering
+ </string>
+ <string name="Parcel Identity">
+ Parcel identitet
+ </string>
+ <string name="Parcel Settings">
+ Parcel opsætning
+ </string>
+ <string name="Parcel Powers">
+ Parcel beføjelser
+ </string>
+ <string name="Parcel Access">
+ Parcel adgang
+ </string>
+ <string name="Parcel Content">
+ Parcel indhold
+ </string>
+ <string name="Object Management">
+ Objekt håndtering
+ </string>
+ <string name="Accounting">
+ Regnskab
+ </string>
+ <string name="Notices">
+ Beskeder
+ </string>
+ <string name="Chat">
+ Chat
+ </string>
</strings>
diff --git a/indra/newview/skins/default/xui/de/floater_about.xml b/indra/newview/skins/default/xui/de/floater_about.xml
index 89f9f87043..b18894d478 100644
--- a/indra/newview/skins/default/xui/de/floater_about.xml
+++ b/indra/newview/skins/default/xui/de/floater_about.xml
@@ -28,8 +28,8 @@ Grafikkarten: [GRAPHICS_CARD]
libcurl-Version: [LIBCURL_VERSION]
J2C-Decoderversion: [J2C_VERSION]
Audio-Treiberversion: [AUDIO_DRIVER_VERSION]
-Qt Webkit Version: [QT_WEBKIT_VERSION]
-Vivox-Version: [VIVOX_VERSION]
+Qt Webkit-Version: [QT_WEBKIT_VERSION]
+Voice-Serverversion: [VOICE_VERSION]
</floater.string>
<floater.string name="none">
(keiner)
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 3026ff64b2..f9169ed748 100644
--- a/indra/newview/skins/default/xui/de/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/de/floater_about_land.xml
@@ -62,6 +62,9 @@
<panel.string name="no_selection_text">
Keine Parzelle ausgewählt.
</panel.string>
+ <panel.string name="time_stamp_template">
+ [wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local]
+ </panel.string>
<text name="Name:">
Name:
</text>
@@ -256,18 +259,18 @@ werden.
<text left="204" name="other_objects_text" width="48">
[COUNT]
</text>
- <button label="Anzeigen" label_selected="Anzeigen" name="ShowOther" right="-135" width="60"/>
- <button label="Zurückgeben" label_selected="Zurückgeben..." name="ReturnOther..." right="-10" tool_tip="Objekte an ihre Eigentümer zurückgeben." width="119"/>
- <text left="14" name="Selected / sat upon:" width="140">
+ <button label="Anzeigen" label_selected="Anzeigen" name="ShowOther"/>
+ <button label="Zurückgeben" label_selected="Zurückgeben..." name="ReturnOther..." tool_tip="Objekte an ihre Eigentümer zurückgeben."/>
+ <text name="Selected / sat upon:">
Ausgewählt/gesessen auf:
</text>
- <text left="204" name="selected_objects_text" width="48">
+ <text name="selected_objects_text">
[COUNT]
</text>
<text name="Autoreturn">
Objekte anderer Einwohner automatisch zurückgeben (Minuten, 0 für aus):
</text>
- <line_editor name="clean other time" right="-10" width="56"/>
+ <line_editor name="clean other time"/>
<text name="Object Owners:">
Objekteigentümer:
</text>
@@ -276,7 +279,7 @@ werden.
<name_list name="owner list">
<name_list.columns label="Typ" name="type"/>
<name_list.columns label="Name" name="name"/>
- <name_list.columns label="Anzahl" name="count" width="80"/>
+ <name_list.columns label="Anzahl" name="count"/>
<name_list.columns label="Aktuellstes" name="mostrecent"/>
</name_list>
</panel>
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 92c0c4a27a..8235eacde0 100644
--- a/indra/newview/skins/default/xui/de/floater_avatar_textures.xml
+++ b/indra/newview/skins/default/xui/de/floater_avatar_textures.xml
@@ -3,46 +3,48 @@
<floater.string name="InvalidAvatar">
UNGÜLTIGER AVATAR
</floater.string>
- <text name="label" width="120">
- Gebackene Texturen
- </text>
- <text name="composite_label" width="170">
- Zusammengesetzte Texturen
- </text>
- <button label="Läd IDs in Konsole ab" label_selected="Abladen" name="Dump"/>
<scroll_container name="profile_scroll">
<panel name="scroll_content_panel">
- <texture_picker label="Haare" name="hair-baked"/>
- <texture_picker label="Haare" name="hair_grain"/>
- <texture_picker label="Alpha: Haare" name="hair_alpha"/>
- <texture_picker label="Kopf" name="head-baked"/>
- <texture_picker label="Make-Up" name="head_bodypaint"/>
- <texture_picker label="Kopf: Alpha" name="head_alpha"/>
- <texture_picker label="Kopftattoo" name="head_tattoo"/>
- <texture_picker label="Augen" name="eyes-baked"/>
- <texture_picker label="Auge" name="eyes_iris"/>
- <texture_picker label="Alpha: Augen" name="eyes_alpha"/>
- <texture_picker label="Oberkörper" name="upper-baked"/>
- <texture_picker label="Oberkörper: Körperfarbe" name="upper_bodypaint" width=
- "140"/>
- <texture_picker label="Unterhemd" name="upper_undershirt"/>
- <texture_picker label="Handschuhe" name="upper_gloves"/>
- <texture_picker label="Hemd" name="upper_shirt"/>
- <texture_picker label="Oberjacke" name="upper_jacket"/>
- <texture_picker label="Alpha: Oben" name="upper_alpha"/>
- <texture_picker label="Obere Tattoos" name="upper_tattoo"/>
- <texture_picker label="Unterkörper" name="lower-baked"/>
- <texture_picker label="Unterkörper: Körperfarbe" name="lower_bodypaint" width=
- "140"/>
- <texture_picker label="Unterhose" name="lower_underpants"/>
- <texture_picker label="Socken" name="lower_socks"/>
- <texture_picker label="Schuhe" name="lower_shoes"/>
- <texture_picker label="Hose" name="lower_pants"/>
- <texture_picker label="Jacke" name="lower_jacket"/>
- <texture_picker label="Alpha: Unten" name="lower_alpha"/>
- <texture_picker label="Untere Tattoos" name="lower_tattoo"/>
- <texture_picker label="Rock" name="skirt-baked"/>
- <texture_picker label="Rock" name="skirt"/>
+ <text name="label">
+ Gebackene
+Texturen
+ </text>
+ <text name="composite_label">
+ Zusammengesetzte
+Texturen
+ </text>
+ <button label="IDs an Konsole ausgeben" label_selected="Abladen" name="Dump"/>
+ <panel name="scroll_content_panel">
+ <texture_picker label="Haare" name="hair-baked"/>
+ <texture_picker label="Haare" name="hair_grain"/>
+ <texture_picker label="Alpha: Haare" name="hair_alpha"/>
+ <texture_picker label="Kopf" name="head-baked"/>
+ <texture_picker label="Make-Up" name="head_bodypaint"/>
+ <texture_picker label="Kopf: Alpha" name="head_alpha"/>
+ <texture_picker label="Kopftätowierung" name="head_tattoo"/>
+ <texture_picker label="Augen" name="eyes-baked"/>
+ <texture_picker label="Auge" name="eyes_iris"/>
+ <texture_picker label="Alpha: Augen" name="eyes_alpha"/>
+ <texture_picker label="Oberkörper" name="upper-baked"/>
+ <texture_picker label="Oberkörperfarbe" name="upper_bodypaint"/>
+ <texture_picker label="Unterhemd" name="upper_undershirt"/>
+ <texture_picker label="Handschuhe" name="upper_gloves"/>
+ <texture_picker label="Hemd" name="upper_shirt"/>
+ <texture_picker label="Oberjacke" name="upper_jacket"/>
+ <texture_picker label="Alpha: Oben" name="upper_alpha"/>
+ <texture_picker label="Obere Tätowierung" name="upper_tattoo"/>
+ <texture_picker label="Unterkörper" name="lower-baked"/>
+ <texture_picker label="Unterkörperfarbe" name="lower_bodypaint"/>
+ <texture_picker label="Unterhose" name="lower_underpants"/>
+ <texture_picker label="Socken" name="lower_socks"/>
+ <texture_picker label="Schuhe" name="lower_shoes"/>
+ <texture_picker label="Hose" name="lower_pants"/>
+ <texture_picker label="Jacke" name="lower_jacket"/>
+ <texture_picker label="Alpha: Unten" name="lower_alpha"/>
+ <texture_picker label="Untere Tätowierung" name="lower_tattoo"/>
+ <texture_picker label="Rock" name="skirt-baked"/>
+ <texture_picker label="Rock" name="skirt"/>
+ </panel>
</panel>
</scroll_container>
</floater>
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 d3f0d6d78f..8f99fc933c 100644
--- a/indra/newview/skins/default/xui/de/floater_bulk_perms.xml
+++ b/indra/newview/skins/default/xui/de/floater_bulk_perms.xml
@@ -43,7 +43,7 @@
Jeder:
</text>
<check_box label="Kopieren" name="everyone_copy"/>
- <text name="NextOwnerLabel" top="160" left="10" width="200">
+ <text name="NextOwnerLabel">
Nächster Eigentümer:
</text>
<check_box label="Bearbeiten" name="next_owner_modify"/>
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 f978b24d0d..38321b7906 100644
--- a/indra/newview/skins/default/xui/de/floater_buy_currency.xml
+++ b/indra/newview/skins/default/xui/de/floater_buy_currency.xml
@@ -60,7 +60,7 @@
<button label="Jetzt kaufen" name="buy_btn"/>
<button label="Abbrechen" name="cancel_btn"/>
<text name="info_cannot_buy">
- Kauf nicht möglich
+ Kaufabbruch
</text>
<button label="Weiter zur Kontoseite" name="error_web"/>
</floater>
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
new file mode 100644
index 0000000000..38d3bdd77f
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/floater_buy_currency_html.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_buy_currency_html" title="WÄHRUNG KAUFEN"/>
diff --git a/indra/newview/skins/default/xui/de/floater_camera.xml b/indra/newview/skins/default/xui/de/floater_camera.xml
index 418e717bf6..d49c207f98 100644
--- a/indra/newview/skins/default/xui/de/floater_camera.xml
+++ b/indra/newview/skins/default/xui/de/floater_camera.xml
@@ -22,6 +22,35 @@
Objekt ansehen
</floater.string>
<panel name="controls">
+ <panel name="preset_views_list">
+ <panel_camera_item name="front_view">
+ <panel_camera_item.text name="front_view_text">
+ Vorderansicht
+ </panel_camera_item.text>
+ </panel_camera_item>
+ <panel_camera_item name="group_view">
+ <panel_camera_item.text name="side_view_text">
+ Seitenansicht
+ </panel_camera_item.text>
+ </panel_camera_item>
+ <panel_camera_item name="rear_view">
+ <panel_camera_item.text name="rear_view_text">
+ Hinteransicht
+ </panel_camera_item.text>
+ </panel_camera_item>
+ </panel>
+ <panel name="camera_modes_list">
+ <panel_camera_item name="object_view">
+ <panel_camera_item.text name="object_view_text">
+ Objektansicht
+ </panel_camera_item.text>
+ </panel_camera_item>
+ <panel_camera_item name="mouselook_view">
+ <panel_camera_item.text name="mouselook_view_text">
+ Mouselook
+ </panel_camera_item.text>
+ </panel_camera_item>
+ </panel>
<panel name="zoom" tool_tip="Kamera auf Fokus zoomen">
<joystick_rotate name="cam_rotate_stick" tool_tip="Kamera um Fokus kreisen"/>
<slider_bar name="zoom_slider" tool_tip="Kamera auf Fokus zoomen"/>
diff --git a/indra/newview/skins/default/xui/de/floater_customize.xml b/indra/newview/skins/default/xui/de/floater_customize.xml
deleted file mode 100644
index 3651577797..0000000000
--- a/indra/newview/skins/default/xui/de/floater_customize.xml
+++ /dev/null
@@ -1,529 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater customize" title="AUSSEHEN">
- <tab_container name="customize tab container">
- <text label="Körperteile" name="body_parts_placeholder">
- Körperteile
- </text>
- <panel label="Form" name="Shape">
- <button font="SansSerifSmall" label="Zurücksetzen" label_selected="Zurücksetzen" name="Revert"/>
- <button label="Körper" label_selected="Körper" name="Body"/>
- <button label="Kopf" label_selected="Kopf" name="Head"/>
- <button label="Augen" label_selected="Augen" name="Eyes"/>
- <button label="Ohren" label_selected="Ohren" name="Ears"/>
- <button label="Nase" label_selected="Nase" name="Nose"/>
- <button label="Mund" label_selected="Mund" name="Mouth"/>
- <button label="Kinn" label_selected="Kinn" name="Chin"/>
- <button label="Oberkörper" label_selected="Oberkörper" name="Torso"/>
- <button label="Beine" label_selected="Beine" name="Legs"/>
- <radio_group name="sex radio">
- <radio_item label="Weiblich" name="radio" value="0"/>
- <radio_item label="Männlich" name="radio2" value="1"/>
- </radio_group>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: bearbeiten nicht möglich
- </text>
- <text name="title_loading">
- [DESC]: wird geladen...
- </text>
- <text name="title_not_worn">
- [DESC]: nicht getragen
- </text>
- <text name="path">
- In [PATH]
- </text>
- <text name="not worn instructions">
- Ziehen Sie eine neue Form aus dem Inventar auf Ihren Avatar, um diese anzulegen. Sie können aber auch eine neue erstellen und diese anlegen.
- </text>
- <text name="no modify instructions">
- Sie sind nicht berechtigt, diese Kleidung zu bearbeiten.
- </text>
- <text name="Item Action Label">
- Form:
- </text>
- <button label="Neue Form/Gestalt" label_selected="Neue Form/Gestalt" name="Create New"/>
- <button font="SansSerifSmall" label="Speichern" label_selected="Speichern" name="Save"/>
- <button font="SansSerifSmall" label="Speichern unter..." label_selected="Speichern unter..." name="Save As"/>
- </panel>
- <panel label="Haut" name="Skin">
- <button label="Hautfarbe" label_selected="Hautfarbe" left="2" name="Skin Color" width="92"/>
- <button label="Gesichtsdetails" label_selected="Gesichtsdetails" left="2" name="Face Detail" width="92"/>
- <button label="Make-Up" label_selected="Make-Up" left="2" name="Makeup" width="92"/>
- <button label="Körperdetails" label_selected="Körperdetails" left="2" name="Body Detail" width="92"/>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: bearbeiten nicht möglich
- </text>
- <text name="title_loading">
- [DESC]: wird geladen...
- </text>
- <text name="title_not_worn">
- [DESC]: nicht getragen
- </text>
- <text name="path">
- In [PATH]
- </text>
- <text name="not worn instructions">
- Ziehen Sie eine neue Skin (Haut) aus dem Inventar auf Ihren Avatar, um diese anzulegen. Sie können aber auch eine neue erstellen und diese anlegen.
- </text>
- <text name="no modify instructions">
- Sie sind nicht berechtigt, diese Kleidung zu bearbeiten.
- </text>
- <text name="Item Action Label" right="100">
- Haut:
- </text>
- <texture_picker label="Kopftattoo" name="Head Tattoos" tool_tip="Klicken Sie hier, um ein Bild auszuwählen"/>
- <texture_picker label="Obere Tattoos" name="Upper Tattoos" tool_tip="Klicken Sie hier, um ein Bild auszuwählen"/>
- <texture_picker label="Untere Tattoos" name="Lower Tattoos" tool_tip="Klicken Sie hier, um ein Bild auszuwählen"/>
- <button label="Neue Haut" label_selected="Neue Haut" name="Create New"/>
- <button font="SansSerifSmall" label="Speichern" label_selected="Speichern" left="107" name="Save"/>
- <button font="SansSerifSmall" label="Speichern unter..." label_selected="Speichern unter..." name="Save As"/>
- <button font="SansSerifSmall" label="Zurücksetzen" label_selected="Zurücksetzen" name="Revert"/>
- </panel>
- <panel label="Haar" name="Hair">
- <button label="Farbe" label_selected="Farbe" name="Color"/>
- <button label="Stil" label_selected="Stil" name="Style"/>
- <button label="Augenbrauen" label_selected="Augenbrauen" name="Eyebrows"/>
- <button label="Gesichtshaar" label_selected="Gesichtshaar" name="Facial"/>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: bearbeiten nicht möglich
- </text>
- <text name="title_loading">
- [DESC]: wird geladen...
- </text>
- <text name="title_not_worn">
- [DESC]: nicht getragen
- </text>
- <text name="path">
- In [PATH]
- </text>
- <text name="not worn instructions">
- Ziehen Sie Haar aus dem Inventar auf Ihren Avatar, um dieses anzulegen. Sie können aber auch neues Haar erstellen und anlegen.
- </text>
- <text name="no modify instructions">
- Sie sind nicht berechtigt, diese Kleidung zu bearbeiten.
- </text>
- <text name="Item Action Label" right="100">
- Haare:
- </text>
- <texture_picker label="Textur" name="Texture" tool_tip="Klicken Sie hier, um ein Bild auszuwählen"/>
- <button label="Neue Haare" label_selected="Neue Haare" name="Create New"/>
- <button font="SansSerifSmall" label="Speichern" label_selected="Speichern" left="107" name="Save"/>
- <button font="SansSerifSmall" label="Speichern unter..." label_selected="Speichern unter..." name="Save As"/>
- <button font="SansSerifSmall" label="Zurücksetzen" label_selected="Zurücksetzen" name="Revert"/>
- </panel>
- <panel label="Augen" name="Eyes">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: bearbeiten nicht möglich
- </text>
- <text name="title_loading">
- [DESC]: wird geladen...
- </text>
- <text name="title_not_worn">
- [DESC]: nicht getragen
- </text>
- <text name="path">
- In [PATH]
- </text>
- <text name="not worn instructions">
- Ziehen Sie neue Augen aus dem Inventar auf Ihren Avatar, um diese anzulegen. Sie können aber auch neue Augen erstellen und diese anlegen.
- </text>
- <text name="no modify instructions">
- Sie sind nicht berechtigt, diese Kleidung zu bearbeiten.
- </text>
- <text name="Item Action Label" right="100">
- Augen:
- </text>
- <texture_picker label="Iris" name="Iris" tool_tip="Klicken Sie hier, um ein Bild auszuwählen"/>
- <button label="Neue Augen" label_selected="Neue Augen" name="Create New"/>
- <button font="SansSerifSmall" label="Speichern" label_selected="Speichern" left="107" name="Save"/>
- <button font="SansSerifSmall" label="Speichern unter..." label_selected="Speichern unter..." name="Save As"/>
- <button font="SansSerifSmall" label="Zurücksetzen" label_selected="Zurücksetzen" name="Revert"/>
- </panel>
- <text label="Kleidung" name="clothes_placeholder">
- Kleidung
- </text>
- <panel label="Hemd" name="Shirt">
- <texture_picker label="Stoff" name="Fabric" tool_tip="Klicken Sie hier, um ein Bild auszuwählen"/>
- <color_swatch label="Farbe/Ton" name="Color/Tint" tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen"/>
- <button font="SansSerifSmall" label="Ausziehen" label_selected="Ausziehen" name="Take Off"/>
- <button label="Neues Hemd" label_selected="Neues Hemd" name="Create New"/>
- <button font="SansSerifSmall" label="Speichern" label_selected="Speichern" left="107" name="Save"/>
- <button font="SansSerifSmall" label="Speichern unter..." label_selected="Speichern unter..." name="Save As"/>
- <button font="SansSerifSmall" label="Zurücksetzen" label_selected="Zurücksetzen" name="Revert"/>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: bearbeiten nicht möglich
- </text>
- <text name="title_loading">
- [DESC]: wird geladen...
- </text>
- <text name="title_not_worn">
- [DESC]: nicht getragen
- </text>
- <text name="path">
- In [PATH]
- </text>
- <text name="not worn instructions">
- Ziehen Sie ein neues Hemd aus dem Inventar auf Ihren Avatar, um dieses anzuziehen. Sie können aber auch ein neues Hemd erstellen und dieses anlegen.
- </text>
- <text name="no modify instructions">
- Sie sind nicht berechtigt, diese Kleidung zu bearbeiten.
- </text>
- <text name="Item Action Label" right="100">
- Hemd:
- </text>
- </panel>
- <panel label="Hose" name="Pants">
- <texture_picker label="Stoff" name="Fabric" tool_tip="Klicken Sie hier, um ein Bild auszuwählen"/>
- <color_swatch label="Farbe/Ton" name="Color/Tint" tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen"/>
- <button font="SansSerifSmall" label="Ausziehen" label_selected="Ausziehen" name="Take Off"/>
- <button label="Neue Hose" label_selected="Neue Hose" name="Create New"/>
- <button font="SansSerifSmall" label="Speichern" label_selected="Speichern" left="107" name="Save"/>
- <button font="SansSerifSmall" label="Speichern unter..." label_selected="Speichern unter..." name="Save As"/>
- <button font="SansSerifSmall" label="Zurücksetzen" label_selected="Zurücksetzen" name="Revert"/>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: bearbeiten nicht möglich
- </text>
- <text name="title_loading">
- [DESC]: wird geladen...
- </text>
- <text name="title_not_worn">
- [DESC]: nicht getragen
- </text>
- <text name="path">
- In [PATH]
- </text>
- <text name="not worn instructions">
- Ziehen Sie eine neue Hose aus dem Inventar auf Ihren Avatar, um diese anzuziehen. Sie können aber auch eine neue erstellen und diese anziehen.
- </text>
- <text name="no modify instructions">
- Sie sind nicht berechtigt, diese Kleidung zu bearbeiten.
- </text>
- <text name="Item Action Label" right="100">
- Hose:
- </text>
- </panel>
- <panel label="Schuhe" name="Shoes">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: bearbeiten nicht möglich
- </text>
- <text name="title_loading">
- [DESC]: wird geladen...
- </text>
- <text name="title_not_worn">
- [DESC]: nicht getragen
- </text>
- <text name="path">
- In [PATH]
- </text>
- <text name="not worn instructions">
- Ziehen Sie neue Schuhe aus dem Inventar auf Ihren Avatar, um diese anzuziehen. Sie können aber auch neue Schuhe erstellen und diese anlegen.
- </text>
- <button label="Neue Schuhe" label_selected="Neue Schuhe" name="Create New"/>
- <text name="no modify instructions">
- Sie sind nicht berechtigt, diese Kleidung zu bearbeiten.
- </text>
- <text name="Item Action Label" right="100">
- Schuhe:
- </text>
- <texture_picker label="Stoff" name="Fabric" tool_tip="Klicken Sie hier, um ein Bild auszuwählen"/>
- <color_swatch label="Farbe/Ton" name="Color/Tint" tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen"/>
- <button font="SansSerifSmall" label="Ausziehen" label_selected="Ausziehen" name="Take Off"/>
- <button font="SansSerifSmall" label="Speichern" label_selected="Speichern" left="107" name="Save"/>
- <button font="SansSerifSmall" label="Speichern unter..." label_selected="Speichern unter..." name="Save As"/>
- <button font="SansSerifSmall" label="Zurücksetzen" label_selected="Zurücksetzen" name="Revert"/>
- </panel>
- <panel label="Socken" name="Socks">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: bearbeiten nicht möglich
- </text>
- <text name="title_loading">
- [DESC]: wird geladen...
- </text>
- <text name="title_not_worn">
- [DESC]: nicht getragen
- </text>
- <text name="path">
- In [PATH]
- </text>
- <text name="not worn instructions">
- Ziehen Sie neue Socken aus dem Inventar auf Ihren Avatar, um diese anzuziehen. Sie können aber auch neue erstellen und diese anziehen.
- </text>
- <button label="Neue Socken" label_selected="Neue Socken" name="Create New"/>
- <text name="no modify instructions">
- Sie sind nicht berechtigt, diese Kleidung zu bearbeiten.
- </text>
- <text name="Item Action Label" right="100">
- Socken:
- </text>
- <texture_picker label="Stoff" name="Fabric" tool_tip="Klicken Sie hier, um ein Bild auszuwählen"/>
- <color_swatch label="Farbe/Ton" name="Color/Tint" tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen"/>
- <button font="SansSerifSmall" label="Ausziehen" label_selected="Ausziehen" name="Take Off"/>
- <button font="SansSerifSmall" label="Speichern" label_selected="Speichern" left="107" name="Save"/>
- <button font="SansSerifSmall" label="Speichern unter..." label_selected="Speichern unter..." name="Save As"/>
- <button font="SansSerifSmall" label="Zurücksetzen" label_selected="Zurücksetzen" name="Revert"/>
- </panel>
- <panel label="Jacke" name="Jacket">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: bearbeiten nicht möglich
- </text>
- <text name="title_loading">
- [DESC]: wird geladen...
- </text>
- <text name="title_not_worn">
- [DESC]: nicht getragen
- </text>
- <text name="path">
- In [PATH]
- </text>
- <text name="not worn instructions">
- Ziehen Sie eine neue Jacke aus dem Inventar auf Ihren Avatar, um diese anzuziehen. Sie können aber auch eine neue erstellen und diese anziehen.
- </text>
- <button label="Neue Jacke" label_selected="Neue Jacke" name="Create New"/>
- <text name="no modify instructions">
- Sie sind nicht berechtigt, diese Kleidung zu bearbeiten.
- </text>
- <text name="Item Action Label" right="100">
- Jacke:
- </text>
- <texture_picker label="Stoff: oben" name="Upper Fabric" tool_tip="Klicken Sie hier, um ein Bild auszuwählen"/>
- <texture_picker label="Stoff: unten" name="Lower Fabric" tool_tip="Klicken Sie hier, um ein Bild auszuwählen"/>
- <color_swatch label="Farbe/Ton" name="Color/Tint" tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen"/>
- <button font="SansSerifSmall" label="Ausziehen" label_selected="Ausziehen" name="Take Off"/>
- <button font="SansSerifSmall" label="Speichern" label_selected="Speichern" left="107" name="Save"/>
- <button font="SansSerifSmall" label="Speichern unter..." label_selected="Speichern unter..." name="Save As"/>
- <button font="SansSerifSmall" label="Zurücksetzen" label_selected="Zurücksetzen" name="Revert"/>
- </panel>
- <panel label="Handschuhe" name="Gloves">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: bearbeiten nicht möglich
- </text>
- <text name="title_loading">
- [DESC]: wird geladen...
- </text>
- <text name="title_not_worn">
- [DESC]: nicht getragen
- </text>
- <text name="path">
- In [PATH]
- </text>
- <text name="not worn instructions">
- Ziehen Sie neue Handschuhe aus dem Inventar auf Ihren Avatar, um diese anzuziehen. Sie können aber auch neue erstellen und diese anziehen.
- </text>
- <button label="Neue Handschuhe" label_selected="Neue Handschuhe" name="Create New"/>
- <text name="no modify instructions">
- Sie sind nicht berechtigt, diese Kleidung zu bearbeiten.
- </text>
- <text name="Item Action Label" right="100">
- Handschuhe:
- </text>
- <texture_picker label="Stoff" name="Fabric" tool_tip="Klicken Sie hier, um ein Bild auszuwählen"/>
- <color_swatch label="Farbe/Ton" name="Color/Tint" tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen"/>
- <button font="SansSerifSmall" label="Ausziehen" label_selected="Ausziehen" name="Take Off"/>
- <button font="SansSerifSmall" label="Speichern" label_selected="Speichern" left="107" name="Save"/>
- <button font="SansSerifSmall" label="Speichern unter..." label_selected="Speichern unter..." name="Save As"/>
- <button font="SansSerifSmall" label="Zurücksetzen" label_selected="Zurücksetzen" name="Revert"/>
- </panel>
- <panel label="Unterhemd" name="Undershirt">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: bearbeiten nicht möglich
- </text>
- <text name="title_loading">
- [DESC]: wird geladen...
- </text>
- <text name="title_not_worn">
- [DESC]: nicht getragen
- </text>
- <text name="path">
- In [PATH]
- </text>
- <text name="not worn instructions">
- Ziehen Sie ein neues Unterhemd aus dem Inventar auf Ihren Avatar, um dieses anzuziehen. Sie können aber auch ein neues Unterhemd erstellen und dieses anziehen.
- </text>
- <button label="Neues Unterhemd" label_selected="Neues Unterhemd" name="Create New"/>
- <text name="no modify instructions">
- Sie sind nicht berechtigt, diese Kleidung zu bearbeiten.
- </text>
- <text name="Item Action Label" right="100">
- Unterhemd:
- </text>
- <texture_picker label="Stoff" name="Fabric" tool_tip="Klicken Sie hier, um ein Bild auszuwählen"/>
- <color_swatch label="Farbe/Ton" name="Color/Tint" tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen"/>
- <button font="SansSerifSmall" label="Ausziehen" label_selected="Ausziehen" name="Take Off"/>
- <button font="SansSerifSmall" label="Speichern" label_selected="Speichern" left="107" name="Save"/>
- <button font="SansSerifSmall" label="Speichern unter..." label_selected="Speichern unter..." name="Save As"/>
- <button font="SansSerifSmall" label="Zurücksetzen" label_selected="Zurücksetzen" name="Revert"/>
- </panel>
- <panel label="Unterhose" name="Underpants">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: bearbeiten nicht möglich
- </text>
- <text name="title_loading">
- [DESC]: wird geladen...
- </text>
- <text name="title_not_worn">
- [DESC]: nicht getragen
- </text>
- <text name="path">
- In [PATH]
- </text>
- <text name="not worn instructions">
- Ziehen Sie eine neue Unterhose aus dem Inventar auf Ihren Avatar, um diese anzuziehen. Sie können aber auch eine neue erstellen und diese anziehen.
- </text>
- <button label="Neue Unterhose" label_selected="Neue Unterhose" name="Create New"/>
- <text name="no modify instructions">
- Sie sind nicht berechtigt, diese Kleidung zu bearbeiten.
- </text>
- <text name="Item Action Label" right="100">
- Unterhose:
- </text>
- <texture_picker label="Stoff" name="Fabric" tool_tip="Klicken Sie hier, um ein Bild auszuwählen"/>
- <color_swatch label="Farbe/Ton" name="Color/Tint" tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen"/>
- <button font="SansSerifSmall" label="Ausziehen" label_selected="Ausziehen" name="Take Off"/>
- <button font="SansSerifSmall" label="Speichern" label_selected="Speichern" left="107" name="Save"/>
- <button font="SansSerifSmall" label="Speichern unter..." label_selected="Speichern unter..." name="Save As"/>
- <button font="SansSerifSmall" label="Zurücksetzen" label_selected="Zurücksetzen" name="Revert"/>
- </panel>
- <panel label="Rock" name="Skirt">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: bearbeiten nicht möglich
- </text>
- <text name="title_loading">
- [DESC]: wird geladen...
- </text>
- <text name="title_not_worn">
- [DESC]: nicht getragen
- </text>
- <text name="path">
- In [PATH]
- </text>
- <text name="not worn instructions">
- Ziehen Sie einen neuen Rock aus dem Inventar auf Ihren Avatar, um diesen anzuziehen. Sie können aber auch einen neuen Rock erstellen und diesen anziehen.
- </text>
- <button label="Neuer Rock" label_selected="Neuer Rock" name="Create New"/>
- <text name="no modify instructions">
- Sie sind nicht berechtigt, diese Kleidung zu bearbeiten.
- </text>
- <text name="Item Action Label" right="100">
- Rock:
- </text>
- <texture_picker label="Stoff" name="Fabric" tool_tip="Klicken Sie hier, um ein Bild auszuwählen"/>
- <color_swatch label="Farbe/Ton" name="Color/Tint" tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen"/>
- <button font="SansSerifSmall" label="Ausziehen" label_selected="Ausziehen" name="Take Off"/>
- <button font="SansSerifSmall" label="Speichern" label_selected="Speichern" left="107" name="Save"/>
- <button font="SansSerifSmall" label="Speichern unter..." label_selected="Speichern unter..." name="Save As"/>
- <button font="SansSerifSmall" label="Zurücksetzen" label_selected="Zurücksetzen" name="Revert"/>
- </panel>
- <panel label="Tätowierung" name="Tattoo">
- <text name="title">
- Tätowierung
- </text>
- <text name="title_no_modify">
- [BESCHR]: bearbeiten nicht möglich
- </text>
- <text name="title_loading">
- [BESCHR]: wird geladen...
- </text>
- <text name="title_not_worn">
- [BESCHR]: nicht getragen
- </text>
- <text name="path">
- Befindet sich in [PATH]
- </text>
- <text name="not worn instructions">
- Ziehen Sie eine neue Tätowierung aus dem Inventar auf Ihren Avatar, um diese anzulegen. Sie können aber auch eine neue erstellen und diese anlegen.
- </text>
- <button label="Neue Tätowierung erstellen" label_selected="Neue Tätowierung erstellen" name="Create New"/>
- <text name="no modify instructions">
- Sie sind nicht berechtigt, diese Kleidung zu bearbeiten.
- </text>
- <text name="Item Action Label">
- Tätowierung:
- </text>
- <texture_picker label="Kopftattoo" name="Head Tattoo" tool_tip="Zum Auswählen eines Bildes hier klicken"/>
- <texture_picker label="Obere Tattoos" name="Upper Tattoo" tool_tip="Zum Auswählen eines Bildes hier klicken"/>
- <texture_picker label="Untere Tattoos" name="Lower Tattoo" tool_tip="Zum Auswählen eines Bildes hier klicken"/>
- <button label="Ausziehen" label_selected="Ausziehen" name="Take Off"/>
- <button label="Speichern" label_selected="Speichern" name="Save"/>
- <button label="Speichern unter..." label_selected="Speichern unter..." name="Save As"/>
- <button label="Zurücksetzen" label_selected="Zurücksetzen" name="Revert"/>
- </panel>
- <panel label="Alpha" name="Alpha">
- <text name="title">
- Alpha
- </text>
- <text name="title_no_modify">
- [BESCHR]: bearbeiten nicht möglich
- </text>
- <text name="title_loading">
- [BESCHR]: wird geladen...
- </text>
- <text name="title_not_worn">
- [BESCHR]: nicht getragen
- </text>
- <text name="path">
- Befindet sich in [PATH]
- </text>
- <text name="not worn instructions">
- Sie können eine neue Alpha-Maske anlegen, indem Sie eine von Ihrem Inventar auf Ihren Avatar ziehen. Sie können aber auch eine neue erstellen und diese anlegen.
- </text>
- <button label="Neue Alpha erstellen" label_selected="Neue Alpha erstellen" name="Create New"/>
- <text name="no modify instructions">
- Sie sind nicht berechtigt, diese Kleidung zu bearbeiten.
- </text>
- <text name="Item Action Label">
- Alpha:
- </text>
- <texture_picker label="Alpha: Unten" name="Lower Alpha" tool_tip="Zum Auswählen eines Bildes hier klicken"/>
- <texture_picker label="Alpha: Oben" name="Upper Alpha" tool_tip="Zum Auswählen eines Bildes hier klicken"/>
- <texture_picker label="Kopf: Alpha" name="Head Alpha" tool_tip="Zum Auswählen eines Bildes hier klicken"/>
- <texture_picker label="Alpha: Augen" name="Eye Alpha" tool_tip="Zum Auswählen eines Bildes hier klicken"/>
- <texture_picker label="Alpha: Haare" name="Hair Alpha" tool_tip="Zum Auswählen eines Bildes hier klicken"/>
- <button label="Ausziehen" label_selected="Ausziehen" name="Take Off"/>
- <button label="Speichern" label_selected="Speichern" name="Save"/>
- <button label="Speichern unter..." label_selected="Speichern unter..." name="Save As"/>
- <button label="Zurücksetzen" label_selected="Zurücksetzen" name="Revert"/>
- </panel>
- </tab_container>
- <button label="Skriptinfo" label_selected="Skriptinfo" name="script_info" tool_tip="Skripts, die an Ihren Avatar angehängt sind, anzeigen"/>
- <button label="Outfit erstellen" label_selected="Outfit erstellen" name="make_outfit_btn"/>
- <button label="Abbrechen" label_selected="Abbrechen" name="Cancel"/>
- <button label="OK" label_selected="OK" name="Ok"/>
-</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_device_settings.xml b/indra/newview/skins/default/xui/de/floater_device_settings.xml
deleted file mode 100644
index 3d7e9c96c1..0000000000
--- a/indra/newview/skins/default/xui/de/floater_device_settings.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_device_settings" title="EINSTELLUNGEN FÜR VOICE-CHAT"/>
diff --git a/indra/newview/skins/default/xui/de/floater_first_time_tip.xml b/indra/newview/skins/default/xui/de/floater_first_time_tip.xml
deleted file mode 100644
index 9546cc2c42..0000000000
--- a/indra/newview/skins/default/xui/de/floater_first_time_tip.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="set_name_in_the_cladd">
- <check_box label="Turn off Quick Tips" name="DontShowFirstTimeTip_checkbox"/>
-</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_im.xml b/indra/newview/skins/default/xui/de/floater_im.xml
deleted file mode 100644
index 8ae8f120cf..0000000000
--- a/indra/newview/skins/default/xui/de/floater_im.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<multi_floater name="im_floater" title="Instant Message">
- <string name="only_user_message">
- Sie sind der einzige Einwohner in dieser Sitzung.
- </string>
- <string name="offline_message">
- [FIRST] [LAST] ist offline.
- </string>
- <string name="invite_message">
- Klicken Sie auf [BUTTON NAME], um eine Verbindung zu diesem Voice-Chat herzustellen.
- </string>
- <string name="muted_message">
- Sie haben diesen Einwohner ignoriert. Wenn Sie eine Nachricht senden, wird dieser freigeschaltet.
- </string>
- <string name="generic_request_error">
- Fehler bei Anfrage, bitte versuchen Sie es später.
- </string>
- <string name="insufficient_perms_error">
- Sie sind dazu nicht berechtigt.
- </string>
- <string name="session_does_not_exist_error">
- Die Sitzung ist abgelaufen
- </string>
- <string name="no_ability_error">
- Sie besitzen diese Fähigkeit nicht.
- </string>
- <string name="not_a_mod_error">
- Sie sind kein Sitzungsmoderator.
- </string>
- <string name="muted_error">
- Ein Gruppenmoderator hat Ihren Text-Chat deaktiviert.
- </string>
- <!-- ALL of the event strings should have [RECIPIENT] in them -->
- <string name="add_session_event">
- Es konnten keine Einwohner zur Chat-Sitzung mit [RECIPIENT] hinzugefügt werden.
- </string>
- <string name="message_session_event">
- Ihre Nachricht konnte nicht an die Chat-Sitzung mit [RECIPIENT] gesendet werden.
- </string>
- <string name="removed_from_group">
- Sie wurden von der Gruppe ausgeschlossen.
- </string>
- <string name="close_on_no_ability">
- Sie haben nicht mehr die Berechtigung an der Chat-Sitzung teilzunehmen.
- </string>
-</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 c69bb600ea..abaf275651 100644
--- a/indra/newview/skins/default/xui/de/floater_im_session.xml
+++ b/indra/newview/skins/default/xui/de/floater_im_session.xml
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="panel_im">
<layout_stack name="im_panels">
- <layout_panel label="IM Steuerkonsole" name="panel_im_control_panel"/>
<layout_panel>
<line_editor label="An" name="chat_editor"/>
</layout_panel>
diff --git a/indra/newview/skins/default/xui/de/floater_map.xml b/indra/newview/skins/default/xui/de/floater_map.xml
index a9a3149177..d4358fa8e9 100644
--- a/indra/newview/skins/default/xui/de/floater_map.xml
+++ b/indra/newview/skins/default/xui/de/floater_map.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Map" title="Minikarte">
+<floater name="Map" title="">
<floater.string name="mini_map_north">
N
</floater.string>
@@ -27,6 +27,9 @@
<floater.string name="ToolTipMsg">
[AGENT][REGION](Karte mit Doppelklick öffnen)
</floater.string>
+ <floater.string name="mini_map_caption">
+ MINI-KARTE
+ </floater.string>
<text label="N" name="floater_map_north" text="N">
N
</text>
diff --git a/indra/newview/skins/default/xui/de/floater_moveview.xml b/indra/newview/skins/default/xui/de/floater_moveview.xml
index b978322cef..4333392582 100644
--- a/indra/newview/skins/default/xui/de/floater_moveview.xml
+++ b/indra/newview/skins/default/xui/de/floater_moveview.xml
@@ -6,18 +6,48 @@
<string name="walk_back_tooltip">
Rückwärts gehen (Nach-Unten-Pfeil oder S drücken)
</string>
+ <string name="walk_left_tooltip">
+ Nach links gehen (Umschalt + Links-Pfeil oder A drücken)
+ </string>
+ <string name="walk_right_tooltip">
+ Nach rechts gehen (Umschalt + Rechts-Pfeil oder D drücken)
+ </string>
<string name="run_forward_tooltip">
Vorwärts rennen (Nach-oben-Pfeil oder W drücken)
</string>
<string name="run_back_tooltip">
Rückwärts rennen (Nach-Unten-Pfeil oder S drücken)
</string>
+ <string name="run_left_tooltip">
+ Nach links drehen (Umschalt + Links-Pfeil oder A drücken)
+ </string>
+ <string name="run_right_tooltip">
+ Nach rechts rennen (Umschalt + Rechts-Pfeil oder D drücken)
+ </string>
<string name="fly_forward_tooltip">
Vorwärts fliegen (Nach-oben-Pfeil oder W drücken)
</string>
<string name="fly_back_tooltip">
Rückwärts fliegen (Nach-Unten-Pfeil oder S drücken)
</string>
+ <string name="fly_left_tooltip">
+ Nach links fliegen (Umschalt + Links-Pfeil oder A drücken)
+ </string>
+ <string name="fly_right_tooltip">
+ Nach rechts fliegen (Umschalt + Rechts-Pfeil oder D drücken)
+ </string>
+ <string name="fly_up_tooltip">
+ Nach oben fliegen, „E&quot; drücken
+ </string>
+ <string name="fly_down_tooltip">
+ Nach unten fliegen, „C&quot; drücken
+ </string>
+ <string name="jump_tooltip">
+ Hüpfen (E drücken)
+ </string>
+ <string name="crouch_tooltip">
+ Ducken (C drücken)
+ </string>
<string name="walk_title">
Gehen
</string>
@@ -28,10 +58,12 @@
Fliegen
</string>
<panel name="panel_actions">
- <button label="" label_selected="" name="turn left btn" tool_tip="Nach links (Links-Pfeil oder A drücken)"/>
- <button label="" label_selected="" name="turn right btn" tool_tip="Nach rechts (Rechts-Pfeil oder D drücken)"/>
<button label="" label_selected="" name="move up btn" tool_tip="Nach oben fliegen, „E&quot; drücken"/>
+ <button label="" label_selected="" name="turn left btn" tool_tip="Nach links (Links-Pfeil oder A drücken)"/>
+ <joystick_slide name="move left btn" tool_tip="Nach links gehen (Umschalt + Links-Pfeil oder A drücken)"/>
<button label="" label_selected="" name="move down btn" tool_tip="Nach unten fliegen, „C&quot; drücken"/>
+ <button label="" label_selected="" name="turn right btn" tool_tip="Nach rechts (Rechts-Pfeil oder D drücken)"/>
+ <joystick_slide name="move right btn" tool_tip="Nach rechts fliegen (Umschalt + Rechts-Pfeil oder D drücken)"/>
<joystick_turn name="forward btn" tool_tip="Vorwärts gehen (Nach-oben-Pfeil oder W drücken)"/>
<joystick_turn name="backward btn" tool_tip="Rückwärts gehen (Nach-Unten-Pfeil oder S drücken)"/>
</panel>
diff --git a/indra/newview/skins/default/xui/de/floater_my_friends.xml b/indra/newview/skins/default/xui/de/floater_my_friends.xml
deleted file mode 100644
index 61cb0d5c14..0000000000
--- a/indra/newview/skins/default/xui/de/floater_my_friends.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_my_friends" title="KONTAKTE">
- <tab_container name="friends_and_groups">
- <panel label="Freunde" name="friends_panel"/>
- <panel label="Gruppen" name="groups_panel"/>
- </tab_container>
-</floater>
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
deleted file mode 100644
index 8c110e5516..0000000000
--- a/indra/newview/skins/default/xui/de/floater_outfit_save_as.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="modal container" title="Outfit speichern">
- <button label="Speichern" label_selected="Speichern" name="Save"/>
- <button label="Abbrechen" label_selected="Abbrechen" name="Cancel"/>
- <text name="Save item as:">
- Meine aktuelle Kleidung
-als neues Outfit speichern:
- </text>
- <line_editor name="name ed">
- [DESC] (neu)
- </line_editor>
-</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_preview_classified.xml b/indra/newview/skins/default/xui/de/floater_preview_classified.xml
deleted file mode 100644
index 401758769d..0000000000
--- a/indra/newview/skins/default/xui/de/floater_preview_classified.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="classified_preview" title="INFORMATIONEN ÜBER ANZEIGE">
- <floater.string name="Title">
- Anzeige: [NAME]
- </floater.string>
-</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_preview_event.xml b/indra/newview/skins/default/xui/de/floater_preview_event.xml
deleted file mode 100644
index 7e46bbab54..0000000000
--- a/indra/newview/skins/default/xui/de/floater_preview_event.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="event_preview" title="EVENT-INFORMATION">
- <floater.string name="Title">
- Veranstaltung: [NAME]
- </floater.string>
-</floater>
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 48b1f1170c..6d3635fa8d 100644
--- a/indra/newview/skins/default/xui/de/floater_preview_gesture.xml
+++ b/indra/newview/skins/default/xui/de/floater_preview_gesture.xml
@@ -24,9 +24,6 @@
<floater.string name="Title">
Gesten: [NAME]
</floater.string>
- <text name="name_text">
- Name:
- </text>
<text name="desc_label">
Beschreibung:
</text>
@@ -36,7 +33,7 @@
<text name="replace_text" tool_tip="Ersetzt den Auslösertext mit diesem Text. Wenn Sie zum Beispiel den Auslöser „hallo“ durch „wie geht&apos;s“ ersetzen, erscheint im Chat anstelle von „Ich wollte nur hallo sagen“ der Text „Ich wollte nur wie geht&apos;s sagen“ und die zugehörige Geste wird abgespielt.">
Ersetzen mit:
</text>
- <line_editor name="replace_editor" tool_tip="Ersetzt den Auslösertext mit diesem Text. Wenn Sie zum Beispiel den Auslöser „hallo“ durch „wie geht&apos;s“ ersetzen, erscheint im Chat anstelle von „Ich wollte nur hallo sagen“ der Text „Ich wollte nur wie geht&apos;s sagen“ und die zugehörige Geste wird abgespielt." left_delta="94" width="160"/>
+ <line_editor left_delta="94" name="replace_editor" tool_tip="Ersetzt den Auslösertext mit diesem Text. Wenn Sie zum Beispiel den Auslöser „hallo“ durch „wie geht&apos;s“ ersetzen, erscheint im Chat anstelle von „Ich wollte nur hallo sagen“ der Text „Ich wollte nur wie geht&apos;s sagen“ und die zugehörige Geste wird abgespielt." width="160"/>
<text name="key_label">
Tastenkürzel:
</text>
@@ -45,20 +42,29 @@
<text name="library_label">
Bibliothek:
</text>
- <scroll_list name="library_list" width="166"/>
- <button label="Hinzufügen &gt;&gt;" name="add_btn" left_pad="6" width="94"/>
+ <scroll_list name="library_list" width="166">
+ <scroll_list.rows name="action_animation" value="Animation"/>
+ <scroll_list.rows name="action_sound" value="Sound"/>
+ <scroll_list.rows name="action_chat" value="Chat"/>
+ <scroll_list.rows name="action_wait" value="Warten"/>
+ </scroll_list>
+ <button label="Hinzufügen &gt;&gt;" left_pad="6" name="add_btn" width="94"/>
<text name="steps_label">
Schritte:
</text>
<button label="Nach oben" name="up_btn"/>
<button label="Nach unten" name="down_btn"/>
<button label="Entfernen" name="delete_btn"/>
+ <text name="options_text">
+ (Optionen)
+ </text>
<radio_group name="animation_trigger_type">
<radio_item label="Start" name="start"/>
<radio_item label="Stopp" name="stop"/>
</radio_group>
<check_box label="bis alle Animationen beendet sind" name="wait_anim_check"/>
- <check_box label="Zeit in Sekunden" name="wait_time_check"/>
+ <check_box label="Zeit in Sekunden:" name="wait_time_check"/>
+ <line_editor name="wait_time_editor"/>
<text name="help_label">
Alle Schritte werden gleichzeitig ausgeführt, wenn keine Pausen hinzugefügt wurden.
</text>
diff --git a/indra/newview/skins/default/xui/de/floater_preview_gesture_info.xml b/indra/newview/skins/default/xui/de/floater_preview_gesture_info.xml
deleted file mode 100644
index 0d0d28f96f..0000000000
--- a/indra/newview/skins/default/xui/de/floater_preview_gesture_info.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Gesture" title="GESTE - SCHNELLTASTE"/>
diff --git a/indra/newview/skins/default/xui/de/floater_preview_gesture_shortcut.xml b/indra/newview/skins/default/xui/de/floater_preview_gesture_shortcut.xml
deleted file mode 100644
index 0b5df13395..0000000000
--- a/indra/newview/skins/default/xui/de/floater_preview_gesture_shortcut.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Gesture" title="GESTE - SCHNELLTASTE">
- <text name="trigger_label">
- Chat:
- </text>
- <text name="key_label">
- Tastatur:
- </text>
- <combo_box label="Keiner" name="modifier_combo"/>
- <combo_box label="Keiner" name="key_combo"/>
- <text name="replace_text" tool_tip="Ersetzt den Auslösertext mit diesem Text. Wenn Sie zum Beispiel den Auslöser „hallo“ durch „wie geht&apos;s“ ersetzen, erscheint im Chat anstelle von „Ich wollte nur hallo sagen“ der Text „Ich wollte nur wie geht&apos;s sagen“ und die zugehörige Geste wird abgespielt.">
- Ersetzen:
- </text>
- <line_editor name="replace_editor" tool_tip="Ersetzt den Auslösertext mit diesem Text. Wenn Sie zum Beispiel den Auslöser „hallo“ durch „wie geht&apos;s“ ersetzen, erscheint im Chat anstelle von „Ich wollte nur hallo sagen“ der Text „Ich wollte nur wie geht&apos;s sagen“ und die zugehörige Geste wird abgespielt."/>
-</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_preview_gesture_steps.xml b/indra/newview/skins/default/xui/de/floater_preview_gesture_steps.xml
deleted file mode 100644
index 0d0d28f96f..0000000000
--- a/indra/newview/skins/default/xui/de/floater_preview_gesture_steps.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Gesture" title="GESTE - SCHNELLTASTE"/>
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 62f9e1e9e5..14e666fd22 100644
--- a/indra/newview/skins/default/xui/de/floater_preview_notecard.xml
+++ b/indra/newview/skins/default/xui/de/floater_preview_notecard.xml
@@ -9,9 +9,6 @@
<floater.string name="Title">
Notizkarte: [NAME]
</floater.string>
- <floater.string label="Speichern" label_selected="Speichern" name="Save">
- Speichern
- </floater.string>
<text name="desc txt">
Beschreibung:
</text>
@@ -19,4 +16,5 @@
Wird geladen...
</text_editor>
<button label="Speichern" label_selected="Speichern" name="Save"/>
+ <button label="Löschen" label_selected="Löschen" name="Delete"/>
</floater>
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 993382727b..d91535ebc3 100644
--- a/indra/newview/skins/default/xui/de/floater_publish_classified.xml
+++ b/indra/newview/skins/default/xui/de/floater_publish_classified.xml
@@ -5,7 +5,7 @@
Anzeigengebühren werden nicht zurückerstattet.
</text>
- <spinner label="Anzeigenpreis:" name="price_for_listing" tool_tip="Preis für Anzeige." value="50"/>
+ <spinner label="Preis: L$" name="price_for_listing" tool_tip="Preis für Anzeige." value="50"/>
<text name="l$_text" value="L$"/>
<text name="more_info_text">
Weitere Infos (Link zur Hilfe)
diff --git a/indra/newview/skins/default/xui/de/floater_snapshot.xml b/indra/newview/skins/default/xui/de/floater_snapshot.xml
index a656ffb894..c014b8e040 100644
--- a/indra/newview/skins/default/xui/de/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/de/floater_snapshot.xml
@@ -1,23 +1,75 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Snapshot" title="Foto">
+<floater name="Snapshot" title="FOTO-ANZEIGE">
<floater.string name="unknown">
unbekannt
</floater.string>
+ <radio_group label="Fototyp" name="snapshot_type_radio">
+ <radio_item label="Email" name="postcard"/>
+ <radio_item label="Mein Inventar ([AMOUNT] L$)" name="texture"/>
+ <radio_item label="Auf meinem Computer speichern" name="local"/>
+ </radio_group>
+ <text name="file_size_label">
+ [SIZE] KB
+ </text>
<button label="Foto aktualisieren" name="new_snapshot_btn"/>
- <line_editor label="Beschreibung" name="description"/>
- <panel name="panel_snapshot_main">
- <button label="Foto freigeben" name="share"/>
- <button label="Foto speichern" name="save"/>
- <button label="Als Profilbild festlegen" name="set_profile_pic"/>
- </panel>
- <panel name="panel_snapshot_share">
- <button label="Ins Internet stellen" name="share_to_web"/>
- <button label="Foto per E-Mail senden" name="share_to_email"/>
- <button label="Zurück" name="cancel_share"/>
- </panel>
- <panel name="panel_snapshot_save">
- <button label="Objekt in meinem Inventar speichern" name="save_to_inventory"/>
- <button label="Auf meinem Computer speichern" name="save_to_computer"/>
- <button label="Zurück" name="cancel_save"/>
- </panel>
+ <button label="Senden" name="send_btn"/>
+ <button label="Speichern ([AMOUNT] L$)" name="upload_btn"/>
+ <flyout_button label="Speichern" name="save_btn" tool_tip="Bild als Datei speichern">
+ <flyout_button.item label="Speichern" name="save_item"/>
+ <flyout_button.item label="Speichern unter..." name="saveas_item"/>
+ </flyout_button>
+ <button label="Mehr" name="more_btn" tool_tip="Erweiterte Optionen"/>
+ <button label="Weniger" name="less_btn" tool_tip="Erweiterte Optionen"/>
+ <button label="Abbrechen" name="discard_btn"/>
+ <text name="type_label2">
+ Größe
+ </text>
+ <text name="format_label">
+ Format
+ </text>
+ <combo_box label="Auflösung" name="postcard_size_combo">
+ <combo_box.item label="Aktuelles Fenster" name="CurrentWindow"/>
+ <combo_box.item label="640x480" name="640x480"/>
+ <combo_box.item label="800x600" name="800x600"/>
+ <combo_box.item label="1024x768" name="1024x768"/>
+ <combo_box.item label="Benutzerdefiniert" name="Custom"/>
+ </combo_box>
+ <combo_box label="Auflösung" name="texture_size_combo">
+ <combo_box.item label="Aktuelles Fenster" name="CurrentWindow"/>
+ <combo_box.item label="Klein (128x128)" name="Small(128x128)"/>
+ <combo_box.item label="Mittel (256x256)" name="Medium(256x256)"/>
+ <combo_box.item label="Groß (512x512)" name="Large(512x512)"/>
+ <combo_box.item label="Benutzerdefiniert" name="Custom"/>
+ </combo_box>
+ <combo_box label="Auflösung" name="local_size_combo">
+ <combo_box.item label="Aktuelles Fenster" name="CurrentWindow"/>
+ <combo_box.item label="320x240" name="320x240"/>
+ <combo_box.item label="640x480" name="640x480"/>
+ <combo_box.item label="800x600" name="800x600"/>
+ <combo_box.item label="1024x768" name="1024x768"/>
+ <combo_box.item label="1280x1024" name="1280x1024"/>
+ <combo_box.item label="1600x1200" name="1600x1200"/>
+ <combo_box.item label="Benutzerdefiniert" name="Custom"/>
+ </combo_box>
+ <combo_box label="Format" name="local_format_combo">
+ <combo_box.item label="PNG" name="PNG"/>
+ <combo_box.item label="JPEG" name="JPEG"/>
+ <combo_box.item label="BMP" name="BMP"/>
+ </combo_box>
+ <spinner label="Breite" name="snapshot_width"/>
+ <spinner label="Größe" name="snapshot_height"/>
+ <check_box label="Seitenverhältnis beibehalten" name="keep_aspect_check"/>
+ <slider label="Bildqualität" name="image_quality_slider"/>
+ <text name="layer_type_label">
+ Aufnehmen:
+ </text>
+ <combo_box label="Bildlayer" name="layer_types">
+ <combo_box.item label="Farben" name="Colors"/>
+ <combo_box.item label="Tiefe" name="Depth"/>
+ </combo_box>
+ <check_box label="Schnittstelle" name="ui_check"/>
+ <check_box label="HUDs" name="hud_check"/>
+ <check_box label="Nach dem Speichern offen lassen" name="keep_open_check"/>
+ <check_box label="Frame einfrieren (Vollbild)" name="freeze_frame_check"/>
+ <check_box label="Automatisch aktualisieren" name="auto_snapshot_check"/>
</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_statistics.xml b/indra/newview/skins/default/xui/de/floater_statistics.xml
deleted file mode 100644
index 72a87a9566..0000000000
--- a/indra/newview/skins/default/xui/de/floater_statistics.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="stats floater" title="STATISTIKEN"/>
diff --git a/indra/newview/skins/default/xui/de/floater_tools.xml b/indra/newview/skins/default/xui/de/floater_tools.xml
index c5c11faf93..3de3718f66 100644
--- a/indra/newview/skins/default/xui/de/floater_tools.xml
+++ b/indra/newview/skins/default/xui/de/floater_tools.xml
@@ -67,12 +67,12 @@
<text name="RenderingCost" tool_tip="Zeigt die errechneten Wiedergabekosten für dieses Objekt">
þ: [COUNT]
</text>
- <check_box name="checkbox uniform"/>
- <text name="checkbox uniform label">
+ <check_box label="" name="checkbox uniform"/>
+ <text label="Beide Seiten dehnen" name="checkbox uniform label">
Beide Seiten dehnen
</text>
- <check_box initial_value="true" label="Texturen dehnen" name="checkbox stretch textures"/>
- <check_box initial_value="true" label="An Raster ausrichten" name="checkbox snap to grid" top_pad="10"/>
+ <check_box initial_value="true" label="Texturen dehnen" name="checkbox stretch textures" top_pad="-5"/>
+ <check_box initial_value="true" label="An Raster ausrichten" name="checkbox snap to grid" top_pad="15"/>
<combo_box name="combobox grid mode" tool_tip="Wählen Sie ein Rasterlineal zum Positionieren des Objekts aus.">
<combo_box.item label="Globales Raster" name="World"/>
<combo_box.item label="Lokales Raster" name="Local"/>
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 07b7689cd0..22f2fd93ab 100644
--- a/indra/newview/skins/default/xui/de/floater_voice_controls.xml
+++ b/indra/newview/skins/default/xui/de/floater_voice_controls.xml
@@ -19,10 +19,12 @@
<layout_panel name="my_panel">
<text name="user_text" value="Mein Avatar:"/>
</layout_panel>
- <layout_stack name="voice_effect_and_leave_call_stack">
- <layout_panel name="leave_call_btn_panel">
- <button label="Anruf beenden" name="leave_call_btn"/>
- </layout_panel>
- </layout_stack>
+ <layout_panel name="leave_call_panel">
+ <layout_stack name="voice_effect_and_leave_call_stack">
+ <layout_panel name="leave_call_btn_panel">
+ <button label="Anruf beenden" name="leave_call_btn"/>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
</layout_stack>
</floater>
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 8de0133ead..21031cd556 100644
--- 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 AUSPROBIEREN">
+<floater label="Orte" name="voice_effects" title="VOICE MORPHING">
<string name="no_voice_effect">
(Kein Voice-Morphing)
</string>
@@ -12,18 +12,19 @@
<string name="new_voice_effect">
(Neu!)
</string>
+ <text name="preview_text">
+ Zur Vorschau
+ </text>
<text name="status_text">
- Um die Voice-Morph-Effekte auszuprobieren, einfach auf die Schaltfläche „Aufnahme“ klicken und kurz ins Mikrofon sprechen. Klicken Sie dann auf einen beliebigen Effekt in der Liste, um zu hören, wie der Effekt Ihre Stimme verändert.
-
-Schließen Sie dieses Fenster, um wieder mit dem Voice-Chat in der Nähe verbunden zu werden.
+ Stimme aufnehmen und auf einen Effekt klicken, um diesen auf Ihre Stimme anzuwenden.
</text>
- <button label="Aufnahme" name="record_btn" tool_tip="Nehmen Sie Ihre Stimme auf."/>
+ <button label="Aufnehmen" name="record_btn" tool_tip="Nehmen Sie Ihre Stimme auf."/>
<button label="Stopp" name="record_stop_btn"/>
<text name="voice_morphing_link">
- [[URL]Voice-Morphing abonnieren]
+ [[URL] Jetzt abonnieren]
</text>
<scroll_list name="voice_effect_list" tool_tip="Nehmen Sie Ihre Stimme auf und klicken Sie dann auf einen Effekt, um diesen auszuprobieren.">
- <scroll_list.columns label="Voice-Morphing" name="name"/>
+ <scroll_list.columns label="Bezeichnung" name="name"/>
<scroll_list.columns label="Gültig bis" name="expires"/>
</scroll_list>
</floater>
diff --git a/indra/newview/skins/default/xui/de/floater_wearable_save_as.xml b/indra/newview/skins/default/xui/de/floater_wearable_save_as.xml
deleted file mode 100644
index f9b3552e8b..0000000000
--- a/indra/newview/skins/default/xui/de/floater_wearable_save_as.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="modal container" title=" ">
- <button label="Speichern" label_selected="Speichern" name="Save"/>
- <button label="Abbrechen" label_selected="Abbrechen" name="Cancel"/>
- <text name="Save item as:">
- Objekt in meinem Inventar speichern als:
- </text>
- <line_editor name="name ed">
- Neu [DESC]
- </line_editor>
-</floater>
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 fb3a4ba9b5..befa46651a 100644
--- a/indra/newview/skins/default/xui/de/floater_world_map.xml
+++ b/indra/newview/skins/default/xui/de/floater_world_map.xml
@@ -22,12 +22,12 @@
<text name="land_sale_label">
Land-Verkauf
</text>
- <text name="by_owner_label">
- durch Besitzer
- </text>
<text name="auction_label">
Land-Auktion
</text>
+ <text name="by_owner_label">
+ durch Besitzer
+ </text>
<button label="Nach Hause" label_selected="Nach Hause" name="Go Home" tool_tip="Nach Hause teleportieren"/>
<text name="Home_label">
Zuhause
@@ -39,12 +39,12 @@
<text name="pg_label">
Generell
</text>
- <check_box label="Mature" name="event_mature_chk"/>
- <text name="mature_label">
+ <check_box initial_value="true" label="Mature" name="events_mature_chk"/>
+ <text name="events_mature_label">
Moderat
</text>
- <check_box label="Adult" name="event_adult_chk"/>
- <text name="adult_label">
+ <check_box label="Adult" name="events_adult_chk"/>
+ <text name="events_adult_label">
Adult
</text>
</panel>
@@ -67,6 +67,9 @@
<scroll_list.columns label="" name="icon"/>
<scroll_list.columns label="" name="sim_name"/>
</scroll_list>
+ <text name="events_label">
+ Standort:
+ </text>
<button label="Teleportieren" label_selected="Teleportieren" name="Teleport" tool_tip="Zu ausgewählter Position teleportieren"/>
<button font="SansSerifSmall" label="SLurl kopieren" name="copy_slurl" tool_tip="Kopiert die aktuelle Position als SLurl zur Verwendung im Web."/>
<button label="Auswahl anzeigen" label_selected="Ziel anzeigen" name="Show Destination" tool_tip="Karte auf ausgewählte Position zentrieren"/>
diff --git a/indra/newview/skins/default/xui/de/language_settings.xml b/indra/newview/skins/default/xui/de/language_settings.xml
index 3e357007ff..d54f548fe1 100644
--- a/indra/newview/skins/default/xui/de/language_settings.xml
+++ b/indra/newview/skins/default/xui/de/language_settings.xml
@@ -17,6 +17,7 @@
datetimeToCodes["month"] = "%B"; // August
datetimeToCodes["mthnum"] = "%m"; // 08
datetimeToCodes["day"] = "%d"; // 31
+ datetimeToCodes["sday"] = "%-d"; // 9
datetimeToCodes["hour24"] = "%H"; // 14
datetimeToCodes["hour"] = "%H"; // 14
datetimeToCodes["hour12"] = "%I"; // 02
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 3af69d2f31..a47c633d57 100644
--- a/indra/newview/skins/default/xui/de/menu_attachment_self.xml
+++ b/indra/newview/skins/default/xui/de/menu_attachment_self.xml
@@ -3,11 +3,13 @@
<menu_item_call label="Berühren" name="Attachment Object Touch"/>
<menu_item_call label="Bearbeiten" name="Edit..."/>
<menu_item_call label="Abnehmen" name="Detach"/>
- <menu_item_call label="Fallen lassen" name="Drop"/>
<menu_item_call label="Aufstehen" name="Stand Up"/>
- <menu_item_call label="Mein Aussehen" name="Appearance..."/>
+ <menu_item_call label="Outfit ändern" name="Change Outfit"/>
+ <menu_item_call label="Mein Outfit bearbeiten" name="Edit Outfit"/>
+ <menu_item_call label="Meine Form bearbeiten" name="Edit My Shape"/>
<menu_item_call label="Meine Freunde" name="Friends..."/>
<menu_item_call label="Meine Gruppen" name="Groups..."/>
<menu_item_call label="Mein Profil" name="Profile..."/>
<menu_item_call label="Fehler in Texturen beseitigen" name="Debug..."/>
+ <menu_item_call label="Fallen lassen" name="Drop"/>
</context_menu>
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 d310d10ea5..c74f646abb 100644
--- a/indra/newview/skins/default/xui/de/menu_avatar_self.xml
+++ b/indra/newview/skins/default/xui/de/menu_avatar_self.xml
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Self Pie">
<menu_item_call label="Aufstehen" name="Stand Up"/>
- <context_menu label="Ausziehen â–¶" name="Take Off &gt;">
- <context_menu label="Kleidung â–¶" name="Clothes &gt;">
+ <context_menu label="Ausziehen" name="Take Off &gt;">
+ <context_menu label="Kleidung" name="Clothes &gt;">
<menu_item_call label="Hemd" name="Shirt"/>
<menu_item_call label="Hose" name="Pants"/>
<menu_item_call label="Rock" name="Skirt"/>
@@ -16,11 +16,13 @@
<menu_item_call label="Alpha" name="Self Alpha"/>
<menu_item_call label="Alle Kleider" name="All Clothes"/>
</context_menu>
- <context_menu label="HUD â–¶" name="Object Detach HUD"/>
- <context_menu label="Abnehmen â–¶" name="Object Detach"/>
+ <context_menu label="HUD" name="Object Detach HUD"/>
+ <context_menu label="Abnehmen" name="Object Detach"/>
<menu_item_call label="Alles abnehmen" name="Detach All"/>
</context_menu>
- <menu_item_call label="Mein Aussehen" name="Appearance..."/>
+ <menu_item_call label="Outfit ändern" name="Chenge Outfit"/>
+ <menu_item_call label="Mein Outfit bearbeiten" name="Edit Outfit"/>
+ <menu_item_call label="Meine Form bearbeiten" name="Edit My Shape"/>
<menu_item_call label="Meine Freunde" name="Friends..."/>
<menu_item_call label="Meine Gruppen" name="Groups..."/>
<menu_item_call label="Mein Profil" name="Profile..."/>
diff --git a/indra/newview/skins/default/xui/de/menu_bottomtray.xml b/indra/newview/skins/default/xui/de/menu_bottomtray.xml
index 3f12906adc..6c4308286a 100644
--- a/indra/newview/skins/default/xui/de/menu_bottomtray.xml
+++ b/indra/newview/skins/default/xui/de/menu_bottomtray.xml
@@ -4,6 +4,11 @@
<menu_item_check label="Schaltfläche Bewegungssteuerung" name="ShowMoveButton"/>
<menu_item_check label="Schaltfläche Ansicht" name="ShowCameraButton"/>
<menu_item_check label="Schaltfläche Foto" name="ShowSnapshotButton"/>
+ <menu_item_check label="Schaltfläche „Seitenleiste“" name="ShowSidebarButton"/>
+ <menu_item_check label="Schaltfläche „Bauen“" name="ShowBuildButton"/>
+ <menu_item_check label="Schaltfläche „Suchen“" name="ShowSearchButton"/>
+ <menu_item_check label="Schaltfläche „Karte“" name="ShowWorldMapButton"/>
+ <menu_item_check label="Schaltfläche „Minikarte“" name="ShowMiniMapButton"/>
<menu_item_call label="Ausschneiden" name="NearbyChatBar_Cut"/>
<menu_item_call label="Kopieren" name="NearbyChatBar_Copy"/>
<menu_item_call label="Einfügen" name="NearbyChatBar_Paste"/>
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 5cf31791ba..7fced273a7 100644
--- a/indra/newview/skins/default/xui/de/menu_cof_clothing.xml
+++ b/indra/newview/skins/default/xui/de/menu_cof_clothing.xml
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="COF Clothing">
<menu_item_call label="Ausziehen" name="take_off"/>
+ <menu_item_call label="Ersetzen" name="replace"/>
<menu_item_call label="Eine Kategorie nach oben" name="move_up"/>
<menu_item_call label="Eine Kategorie nach unten" name="move_down"/>
<menu_item_call label="Bearbeiten" name="edit"/>
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 a74c41bb0c..b28e83c3e3 100644
--- a/indra/newview/skins/default/xui/de/menu_inspect_self_gear.xml
+++ b/indra/newview/skins/default/xui/de/menu_inspect_self_gear.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<menu name="Gear Menu">
<menu_item_call label="Aufstehen" name="stand_up"/>
- <menu_item_call label="Mein Aussehen" name="my_appearance"/>
+ <menu_item_call label="Outfit ändern" name="change_outfit"/>
<menu_item_call label="Mein Profil" name="my_profile"/>
<menu_item_call label="Meine Freunde" name="my_friends"/>
<menu_item_call label="Meine Gruppen" name="my_groups"/>
diff --git a/indra/newview/skins/default/xui/de/menu_inventory.xml b/indra/newview/skins/default/xui/de/menu_inventory.xml
index f6139a0ea0..43722e0dcf 100644
--- a/indra/newview/skins/default/xui/de/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/de/menu_inventory.xml
@@ -54,13 +54,14 @@
<menu_item_call label="Objekt löschen" name="Purge Item"/>
<menu_item_call label="Objekt wiederherstellen" name="Restore Item"/>
<menu_item_call label="Öffnen" name="Open"/>
+ <menu_item_call label="Original öffnen" name="Open Original"/>
<menu_item_call label="Eigenschaften" name="Properties"/>
<menu_item_call label="Umbenennen" name="Rename"/>
<menu_item_call label="Asset-UUID kopieren" name="Copy Asset UUID"/>
<menu_item_call label="Kopieren" name="Copy"/>
<menu_item_call label="Einfügen" name="Paste"/>
<menu_item_call label="Als Link einfügen" name="Paste As Link"/>
- <menu_item_call label="Link entfernen" name="Remove Link"/>
+ <menu_item_call label="Löschen" name="Remove Link"/>
<menu_item_call label="Löschen" name="Delete"/>
<menu_item_call label="Systemordner löschen" name="Delete System Folder"/>
<menu_item_call label="Konferenz-Chat starten" name="Conference Chat Folder"/>
@@ -75,11 +76,10 @@
<menu_item_call label="Deaktivieren" name="Deactivate"/>
<menu_item_call label="Speichern unter" name="Save As"/>
<menu_item_call label="Von Körper abnehmen" name="Detach From Yourself"/>
- <menu_item_call label="Anziehen" name="Object Wear"/>
+ <menu_item_call label="Anziehen" name="Wearable And Object Wear"/>
<menu label="Anhängen an" name="Attach To"/>
<menu label="An HUD hängen" name="Attach To HUD"/>
<menu_item_call label="Bearbeiten" name="Wearable Edit"/>
- <menu_item_call label="Anziehen" name="Wearable Wear"/>
<menu_item_call label="Hinzufügen" name="Wearable Add"/>
<menu_item_call label="Ausziehen" name="Take Off"/>
<menu_item_call label="--keine Optionen--" name="--no options--"/>
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 531edc02f1..dccee6712d 100644
--- a/indra/newview/skins/default/xui/de/menu_inventory_add.xml
+++ b/indra/newview/skins/default/xui/de/menu_inventory_add.xml
@@ -5,6 +5,7 @@
<menu_item_call label="Sound ([COST] L$)..." name="Upload Sound"/>
<menu_item_call label="Animation ([COST] L$)..." name="Upload Animation"/>
<menu_item_call label="Mehrfach-Upload ([COST] L$ pro Datei)..." name="Bulk Upload"/>
+ <menu_item_call label="Hochlade-Berechtigungen (Standard) festlegen" name="perm prefs"/>
</menu>
<menu_item_call label="Neuer Ordner" name="New Folder"/>
<menu_item_call label="Neues Skript" name="New Script"/>
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 e2b980c7b6..3fa68a27bd 100644
--- a/indra/newview/skins/default/xui/de/menu_inventory_gear_default.xml
+++ b/indra/newview/skins/default/xui/de/menu_inventory_gear_default.xml
@@ -6,9 +6,10 @@
<menu_item_call label="Filter anzeigen" name="show_filters"/>
<menu_item_call label="Filter zurücksetzen" name="reset_filters"/>
<menu_item_call label="Alle Ordner schließen" name="close_folders"/>
- <menu_item_call label="Papierkorb ausleeren" name="empty_trash"/>
<menu_item_call label="Fundbüro ausleeren" name="empty_lostnfound"/>
<menu_item_call label="Textur speichern als" name="Save Texture As"/>
+ <menu_item_call label="Teilen" name="Share"/>
<menu_item_call label="Original suchen" name="Find Original"/>
<menu_item_call label="Alle Links suchen" name="Find All Links"/>
+ <menu_item_call label="Papierkorb ausleeren" name="empty_trash"/>
</menu>
diff --git a/indra/newview/skins/default/xui/de/menu_object.xml b/indra/newview/skins/default/xui/de/menu_object.xml
index 8bb7b66482..5003939fb6 100644
--- a/indra/newview/skins/default/xui/de/menu_object.xml
+++ b/indra/newview/skins/default/xui/de/menu_object.xml
@@ -1,6 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Object Pie">
- <menu_item_call label="Berühren" name="Object Touch"/>
+ <menu_item_call label="Berühren" name="Object Touch">
+ <on_enable parameter="Berühren" name="EnableTouch"/>
+ </menu_item_call>
<menu_item_call label="Bearbeiten" name="Edit..."/>
<menu_item_call label="Bauen" name="Build"/>
<menu_item_call label="Öffnen" name="Open"/>
@@ -8,12 +10,12 @@
<menu_item_call label="Aufstehen" name="Object Stand Up"/>
<menu_item_call label="Objektprofil" name="Object Inspect"/>
<menu_item_call label="Hineinzoomen" name="Zoom In"/>
- <context_menu label="Anziehen â–¶" name="Put On">
+ <context_menu label="Anziehen" name="Put On">
<menu_item_call label="Anziehen" name="Wear"/>
- <context_menu label="Anhängen ▶" name="Object Attach"/>
- <context_menu label="HUD anhängen ▶" name="Object Attach HUD"/>
+ <context_menu label="Anhängen" name="Object Attach"/>
+ <context_menu label="HUD anhängen" name="Object Attach HUD"/>
</context_menu>
- <context_menu label="Entfernen â–¶" name="Remove">
+ <context_menu label="Entfernen" name="Remove">
<menu_item_call label="Missbrauch melden" name="Report Abuse..."/>
<menu_item_call label="Ignorieren" name="Object Mute"/>
<menu_item_call label="Zurückgeben" name="Return..."/>
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 411dfc42c0..897154ec56 100644
--- a/indra/newview/skins/default/xui/de/menu_outfit_gear.xml
+++ b/indra/newview/skins/default/xui/de/menu_outfit_gear.xml
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu name="Gear Outfit">
<menu_item_call label="Anziehen - Aktuelles Outfit ersetzen" name="wear"/>
+ <menu_item_call label="Anziehen - Aktuelles Outfit hinzufügen" name="wear_add"/>
<menu_item_call label="Ausziehen - Aus aktuellem Outfit entfernen" name="take_off"/>
<menu label="Neue Kleider" name="New Clothes">
<menu_item_call label="Neues Hemd" name="New Shirt"/>
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 605dee9b33..32a65c96fc 100644
--- a/indra/newview/skins/default/xui/de/menu_outfit_tab.xml
+++ b/indra/newview/skins/default/xui/de/menu_outfit_tab.xml
@@ -4,6 +4,6 @@
<menu_item_call label="Anziehen - Aktuelles Outfit hinzufügen" name="wear_add"/>
<menu_item_call label="Ausziehen - Aus aktuellem Outfit entfernen" name="take_off"/>
<menu_item_call label="Outfit bearbeiten" name="edit"/>
- <menu_item_call label="Umbenennen" name="rename"/>
+ <menu_item_call label="Outfit neu benennen" name="rename"/>
<menu_item_call label="Outfit löschen" name="delete"/>
</context_menu>
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 ca0d9f8c2d..160f2f97be 100644
--- a/indra/newview/skins/default/xui/de/menu_participant_list.xml
+++ b/indra/newview/skins/default/xui/de/menu_participant_list.xml
@@ -11,11 +11,11 @@
<menu_item_check label="Symbole für Personen anzeigen" name="View Icons"/>
<menu_item_check label="Voice ignorieren" name="Block/Unblock"/>
<menu_item_check label="Text ignorieren" name="MuteText"/>
- <context_menu label="Moderator-Optionen &gt;" name="Moderator Options">
+ <context_menu label="Moderator-Optionen" 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="Alle anderen stummschalten" name="ModerateVoiceMuteOthers"/>
<menu_item_call label="Stummschaltung für diesen Teilnehmer aufheben" name="ModerateVoiceUnMuteSelected"/>
- <menu_item_call label="Stummschaltung für alle anderen aufheben" name="ModerateVoiceUnMuteOthers"/>
+ <menu_item_call label="Alle stummschalten" name="ModerateVoiceMute"/>
+ <menu_item_call label="Alle freischalten" name="ModerateVoiceUnmute"/>
</context_menu>
</context_menu>
diff --git a/indra/newview/skins/default/xui/de/menu_topinfobar.xml b/indra/newview/skins/default/xui/de/menu_topinfobar.xml
new file mode 100644
index 0000000000..5b0a724244
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/menu_topinfobar.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="menu_topinfobar">
+ <menu_item_check label="Koordinaten anzeigen" name="Show Coordinates"/>
+ <menu_item_check label="Parzellen-Eigenschaften anzeigen" name="Show Parcel Properties"/>
+ <menu_item_call label="Landmarke" name="Landmark"/>
+ <menu_item_call label="Kopieren" name="Copy"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/de/menu_viewer.xml b/indra/newview/skins/default/xui/de/menu_viewer.xml
index 38ef1b0421..b9b6a8ed50 100644
--- a/indra/newview/skins/default/xui/de/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/de/menu_viewer.xml
@@ -7,6 +7,7 @@
</menu_item_call>
<menu_item_call label="L$ kaufen" name="Buy and Sell L$"/>
<menu_item_call label="Mein Profil" name="Profile"/>
+ <menu_item_call label="Outfit ändern" name="ChangeOutfit"/>
<menu_item_check label="Mein Inventar" name="Inventory"/>
<menu_item_check label="Mein Inventar" name="ShowSidetrayInventory"/>
<menu_item_check label="Meine Gesten" name="Gestures"/>
@@ -169,6 +170,7 @@
<menu_item_check label="Flexible Objekte" name="Flexible Objects"/>
</menu>
<menu_item_check label="Mehrere Threads ausführen" name="Run Multiple Threads"/>
+ <menu_item_check label="Plugin Read Thread verwenden" name="Use Plugin Read Thread"/>
<menu_item_call label="Gruppen-Cache löschen" name="ClearGroupCache"/>
<menu_item_check label="Weiche Mausbewegung" name="Mouse Smoothing"/>
<menu label="Tastaturkürzel" name="Shortcuts">
@@ -176,6 +178,7 @@
<menu_item_check label="Suchen" name="Search"/>
<menu_item_call label="Tasten freigeben" name="Release Keys"/>
<menu_item_call label="UI-Größe auf Standard setzen" name="Set UI Size to Default"/>
+ <menu_item_check label="Erweitert-Menü anzeigen - veraltetet" name="Show Advanced Menu - legacy shortcut"/>
<menu_item_check label="Immer rennen" name="Always Run"/>
<menu_item_check label="Fliegen" name="Fly"/>
<menu_item_call label="Fenster schließen" name="Close Window"/>
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 a4bf75a497..283e454a06 100644
--- a/indra/newview/skins/default/xui/de/menu_wearable_list_item.xml
+++ b/indra/newview/skins/default/xui/de/menu_wearable_list_item.xml
@@ -1,11 +1,12 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Outfit Wearable Context Menu">
- <menu_item_call label="Anziehen" name="wear"/>
+ <menu_item_call label="Ersetzen" name="wear_replace"/>
+ <menu_item_call label="Anziehen" name="wear_wear"/>
<menu_item_call label="Hinzufügen" name="wear_add"/>
<menu_item_call label="Ausziehen / Abnehmen" name="take_off_or_detach"/>
<menu_item_call label="Abnehmen" name="detach"/>
- <context_menu label="Anhängen an ▶" name="wearable_attach_to"/>
- <context_menu label="An HUD hängen ▶" name="wearable_attach_to_hud"/>
+ <context_menu label="Anhängen an" name="wearable_attach_to"/>
+ <context_menu label="An HUD hängen" name="wearable_attach_to_hud"/>
<menu_item_call label="Ausziehen" name="take_off"/>
<menu_item_call label="Bearbeiten" name="edit"/>
<menu_item_call label="Objektprofil" name="object_profile"/>
diff --git a/indra/newview/skins/default/xui/de/menu_wearing_gear.xml b/indra/newview/skins/default/xui/de/menu_wearing_gear.xml
new file mode 100644
index 0000000000..d994571f01
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/menu_wearing_gear.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="Gear Wearing">
+ <menu_item_call label="Outfit bearbeiten" name="edit"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/de/menu_wearing_tab.xml b/indra/newview/skins/default/xui/de/menu_wearing_tab.xml
new file mode 100644
index 0000000000..d690572c8e
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/menu_wearing_tab.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<context_menu name="Wearing">
+ <menu_item_call label="Outfit bearbeiten" name="edit"/>
+</context_menu>
diff --git a/indra/newview/skins/default/xui/de/notifications.xml b/indra/newview/skins/default/xui/de/notifications.xml
index 408ece9690..e5baf0f98f 100644
--- a/indra/newview/skins/default/xui/de/notifications.xml
+++ b/indra/newview/skins/default/xui/de/notifications.xml
@@ -333,6 +333,9 @@ Sie benötigen ein Benutzerkonto, um [SECOND_LIFE] betreten zu können. Möchten
</url>
<usetemplate name="okcancelbuttons" notext="Erneut versuchen" yestext="Neues Benutzerkonto anlegen"/>
</notification>
+ <notification name="InvalidCredentialFormat">
+ Sie müssen den Vor- und Nachnamen Ihres Avatars in das Feld Benutzername eingeben, und sich dann erneut anmelden.
+ </notification>
<notification name="AddClassified">
Anzeigen werden im Suchverzeichnis im Abschnitt „Anzeigen&quot; und auf [http://secondlife.com/community/classifieds secondlife.com] für eine Woche angezeigt.
Füllen Sie Ihre Anzeige aus und klicken Sie auf &apos;Veröffentlichen...&apos;, um sie zum Verzeichnis hinzuzufügen.
@@ -362,6 +365,10 @@ Sind Sie sicher, dass Sie fortfahren wollen?
Auswahl &lt;nolink&gt;[PICK]&lt;/nolink&gt; löschen?
<usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
</notification>
+ <notification name="DeleteOutfits">
+ Das/Die ausgewählte(n) Outfit(s) löschen?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
<notification name="PromptGoToEventsPage">
Zur [SECOND_LIFE] Events-Webseite?
<url name="url">
@@ -618,6 +625,10 @@ Erwartet wurde [VALIDS]
<notification name="CannotEncodeFile">
Datei konnte nicht kodiert werden: [FILE]
</notification>
+ <notification name="CorruptedProtectedDataStore">
+ Wir können Ihren Benutzernamen und Ihr Kennwort nicht automatisch ausfüllen. Dies kann passieren, wenn Sie die Netzwerkeinstellungen ändern.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
<notification name="CorruptResourceFile">
Ressourcendatei beschädigt: [FILE]
</notification>
@@ -1003,6 +1014,12 @@ auf ALLEN LÄNDERN in diesem Sim LÖSCHEN?
Geben sie einen höheren Betrag ein.
</notification>
+ <notification name="ConfirmItemDeleteHasLinks">
+ Mindestens eines Ihrer ausgewählten Objekte verfügt über verknüpfte Objekte. Wenn Sie dieses Objekt löschen, funktionieren die Verknüpfungen nicht mehr. Wir empfehlen Ihnen daher, diese Verknüpfungen zuerst zu löschen.
+
+Möchten Sie diese Objekte wirklich löschen?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="OK"/>
+ </notification>
<notification name="ConfirmObjectDeleteLock">
Mindestens ein ausgewähltes Objekt ist gesperrt.
@@ -1153,6 +1170,42 @@ Bitte wählen Sie einen männlichen oder weiblichen Avatar.
Sie können sich später noch umentscheiden.
<usetemplate name="okcancelbuttons" notext="Weiblich" yestext="Männlich"/>
</notification>
+ <notification name="CantTeleportToGrid">
+ Konnte nicht zu [SLURL] teleportieren, da dieser Standort sich auf einem anderen Grid ([GRID]) befindet. Sie befinden sich im Moment auf dem Grid ([CURRENT_GRID]). Bitte schließen Sie Ihren Viewer und versuchen Sie es erneut.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="GeneralCertificateError">
+ Eine Verbindung zum Server konnte nicht hergestellt werden.
+[REASON]
+
+SubjektName: [SUBJECT_NAME_STRING]
+Herausgeber: [ISSUER_NAME_STRING]
+Gültig ab: [VALID_FROM]
+Gültig bis: [VALID_TO]
+MD5 Fingerabdruck: [SHA1_DIGEST]
+SHA1 Fingerabdruck: [MD5_DIGEST]
+Verwendung: [KEYUSAGE]
+Erweiterte Verwendung: [EXTENDEDKEYUSAGE]
+Identifikation: [SUBJECTKEYIDENTIFIER]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="TrustCertificateError">
+ Die Zertifizierungsautorität für diesen Server ist unbekannt.
+
+Zertifikatsinformation:
+SubjektName: [SUBJECT_NAME_STRING]
+Herausgeber: [ISSUER_NAME_STRING]
+Gültig ab: [VALID_FROM]
+Gültig bis: [VALID_TO]
+MD5 Fingerabdruck: [SHA1_DIGEST]
+SHA1 Fingerabdruck: [MD5_DIGEST]
+Verwendung: [KEYUSAGE]
+Erweiterte Verwendung: [EXTENDEDKEYUSAGE]
+Identifikation: [SUBJECTKEYIDENTIFIER]
+
+Möchten Sie dieser Autorität vertrauen?
+ <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="Vertrauen"/>
+ </notification>
<notification name="NotEnoughCurrency">
[NAME] [PRICE] L$ Sie haben nicht genügend L$, um diese Aktion auszuführen.
</notification>
@@ -2002,11 +2055,6 @@ Von einer Webseite zu diesem Formular linken, um anderen leichten Zugang zu dies
In-Welt- und Website-Fotos werden hochgeladen...
(Dauert ca. 5 Minuten.)
</notification>
- <notification name="UploadConfirmation">
- Kosten für Hochladen: [AMOUNT] L$.
-Möchten Sie fortfahren?
- <usetemplate name="okcancelbuttons" notext="Abbrechen" yestext="Hochladen"/>
- </notification>
<notification name="UploadPayment">
Sie haben für das Hochladen [AMOUNT] L$ bezahlt.
</notification>
@@ -2429,9 +2477,6 @@ Von Objekt: [OBJECTNAME], Eigentümer: [NAME]?
<notification name="FailedToFindWearable">
[TYPE] namens [DESC] nicht in Datenbank.
</notification>
- <notification name="ShareToWebFailed">
- Bild aus Internet konnte nicht hochgeladen werden.
- </notification>
<notification name="InvalidWearable">
Dieser Artikel verwendet eine Funktion, die Ihr Viewer nicht unterstützt. Bitte aktualisieren Sie Ihre Version von [APP_NAME], um dieses Objekt anziehen zu können.
</notification>
@@ -2660,6 +2705,9 @@ Für folgende Einwohner:
<notification name="ItemsShared">
Objekte wurden erfolgreich freigegeben.
</notification>
+ <notification name="DeedToGroupFail">
+ Übertragung an Gruppe ist fehlgeschlagen.
+ </notification>
<notification name="AvatarRezNotification">
(Seit [EXISTENCE] Sekunden inworld )
Avatar &apos;[NAME]&apos; wurde in [TIME] Sekunden gerezzt.
@@ -2673,6 +2721,26 @@ Ihr Outfit wurde in [TIME] Sekunden gebacken.
Nach [TIME] Sekunden wurde eine Aktualisierung Ihres Aussehens gesendet.
[STATUS]
</notification>
+ <notification name="AvatarRezCloudNotification">
+ (Seit [EXISTENCE] Sekunden inworld )
+Avatar &apos;[NAME]&apos; wird als Wolke angezeigt.
+ </notification>
+ <notification name="AvatarRezArrivedNotification">
+ (Seit [EXISTENCE] Sekunden inworld )
+Avatar &apos;[NAME]&apos; wird angezeigt.
+ </notification>
+ <notification name="AvatarRezLeftCloudNotification">
+ (Seit [EXISTENCE] Sekunden inworld )
+Avatar &apos;[NAME]&apos; hat nach [TIME] Sekunden als Wolke die Welt verlassen.
+ </notification>
+ <notification name="AvatarRezEnteredAppearanceNotification">
+ (Seit [EXISTENCE] Sekunden inworld )
+Avatar &apos;[NAME]&apos; befindet sich im Modus „Aussehen bearbeiten&quot;.
+ </notification>
+ <notification name="AvatarRezLeftAppearanceNotification">
+ (Seit [EXISTENCE] Sekunden inworld )
+Avatar &apos;[NAME]&apos; hat Modus „Aussehen bearbeiten&quot; verlassen.
+ </notification>
<notification name="NoConnect">
Es gibt Probleme mit der Verbindung mit [PROTOCOL] [HOSTID].
Bitte überprüfen Sie Ihre Netzwerk- und Firewalleinstellungen.
@@ -2691,12 +2759,25 @@ Bitte überprüfen Sie Ihr Netzwerk- und Firewall-Setup.
<button name="OK" text="OK"/>
</form>
</notification>
+ <notification name="AvatarRezLeftNotification">
+ (Seit [EXISTENCE] Sekunden inworld )
+Avatar &apos;[NAME]&apos; hat als vollständig gerezzter Avatar die Welt verlassen.
+ </notification>
<notification name="AvatarRezSelfBakeNotification">
(Seit [EXISTENCE] Sekunden inworld )
-Die [RESOLUTION]-gebakene Textur für &apos;[BODYREGION]&apos; wurde in [TIME] Sekunden hochgeladen.
+Die [RESOLUTION]-gebakene Textur für &apos;[BODYREGION]&apos; wurde in [TIME] Sekunden [ACTION].
+ </notification>
+ <notification name="ConfirmLeaveCall">
+ Möchten Sie dieses Gespräch wirklich verlassen ?
+ <usetemplate ignoretext="Bestätigen, bevor ich den Anruf verlasse." name="okcancelignore" notext="Nein" yestext="Ja"/>
</notification>
<notification name="ConfirmMuteAll">
- <usetemplate ignoretext="Confirm before I mute all participants in a group call" name="okcancelignore" notext="Abbrechen" yestext="OK"/>
+ Die von Ihnen ausgewählten Einstellungen werden alle Teilnehmer eines Gruppengespräches stummschalten.
+Dies bedeutet, dass alle Einwohner, die später dem Gespräch beitreten,
+auch dann stummgeschaltet werden, wenn Sie den Anruf verlassen haben.
+
+Alle stummschalten?
+ <usetemplate ignoretext="Bestätigen, bevor alle Teilnehmer in einem Gruppengespräch stummgeschaltet werden." name="okcancelignore" notext="Abbrechen" yestext="OK"/>
</notification>
<global name="UnsupportedCPU">
- Ihre CPU-Geschwindigkeit entspricht nicht den Mindestanforderungen.
@@ -2722,4 +2803,7 @@ Sollte das Problem fortbestehen, finden Sie weitere Hilfestellung unter [SUPPORT
Wenn Sie ein Stück Land besitzen, können Sie dies als Ihr Zuhause festlegen.
Ansonsten können Sie auf der Karte nachsehen und dort Ort suchen, die als „Infohub“ gekennzeichnet sind.
</global>
+ <global name="You died and have been teleported to your home location">
+ Sie sind gestorben und wurden zu Ihrem Zuhause teleportiert.
+ </global>
</notifications>
diff --git a/indra/newview/skins/default/xui/de/panel_audio_device.xml b/indra/newview/skins/default/xui/de/panel_audio_device.xml
deleted file mode 100644
index 6ecd1f0241..0000000000
--- a/indra/newview/skins/default/xui/de/panel_audio_device.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<panel name="device_settings">
- <text name="Audio Devices">
- Audiogeräte
- </text>
- <text name="Output device (speakers):">
- Ausgabegerät (Lautsprecher):
- </text>
- <text name="Input device (microphone):">
- Eingabegerät (Mikro):
- </text>
- <text name="Input level:">
- Eingangslautstärke
- </text>
- <text_editor name="voice_intro_text1">
- Mit dem Regler steuern Sie, wie laut andere Einwohner Sie hören. Testen Sie die Eingangslautstärke, indem Sie in das Mikro sprechen.
- </text_editor>
- <volume_slider name="mic_volume_slider" tool_tip="Ändern Sie die Lautstärke mit dem Regler" />
- <text name="wait_text">
- Bitte warten
- </text>
- <text name="default_text">
- Standard
- </text>
-</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
new file mode 100644
index 0000000000..799586f021
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/panel_body_parts_list_item.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="wearable_item">
+ <text name="item_name" value="..."/>
+ <panel name="btn_lock" tool_tip="Ihnen fehlt die Berechtigung zum Bearbeiten."/>
+ <panel name="btn_edit_panel">
+ <button name="btn_edit" tool_tip="Diese Form bearbeiten"/>
+ </panel>
+</panel>
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
new file mode 100644
index 0000000000..4d7e65405a
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/panel_bodyparts_list_button_bar.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="clothing_list_button_bar_panel">
+ <button label="Austauschen" name="switch_btn"/>
+ <button label="Einkaufen &gt;" name="bodyparts_shop_btn"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_bottomtray.xml b/indra/newview/skins/default/xui/de/panel_bottomtray.xml
index 83f67344ca..ea15c88380 100644
--- a/indra/newview/skins/default/xui/de/panel_bottomtray.xml
+++ b/indra/newview/skins/default/xui/de/panel_bottomtray.xml
@@ -1,15 +1,11 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="bottom_tray">
- <string name="SpeakBtnToolTip">
- Schaltet Mikrofon ein/aus
- </string>
- <string name="VoiceControlBtnToolTip">
- Voice-Chat-Steuerung anzeigen/ausblenden
- </string>
+ <string name="SpeakBtnToolTip" value="Schaltet Mikrofon ein/aus"/>
+ <string name="VoiceControlBtnToolTip" value="Voice-Chat-Steuerung anzeigen/ausblenden"/>
<layout_stack name="toolbar_stack">
<layout_panel name="speak_panel">
<talk_button name="talk">
- <speak_button label="Sprechen" label_selected="Sprechen" name="speak_btn" />
+ <speak_button label="Sprechen" label_selected="Sprechen" name="speak_btn"/>
</talk_button>
</layout_panel>
<layout_panel name="gesture_panel">
@@ -24,6 +20,21 @@
<layout_panel name="snapshot_panel">
<button label="" name="snapshots" tool_tip="Foto machen"/>
</layout_panel>
+ <layout_panel name="sidebar_btn_panel">
+ <button label="Seitenleiste" name="sidebar_btn" tool_tip="Seitenleiste anzeigen/ausblenden"/>
+ </layout_panel>
+ <layout_panel name="build_btn_panel">
+ <button label="Bauen" name="build_btn" tool_tip="Bauwerkzeuge ein-/ausblenden"/>
+ </layout_panel>
+ <layout_panel name="search_btn_panel">
+ <button label="Suche" name="search_btn" tool_tip="Suche anzeigen/ausblenden"/>
+ </layout_panel>
+ <layout_panel name="world_map_btn_panel">
+ <button label="Karte" name="world_map_btn" tool_tip="Karte ein-/ausblenden"/>
+ </layout_panel>
+ <layout_panel name="mini_map_btn_panel">
+ <button label="Minikarte" name="mini_map_btn" tool_tip="Minikarte ein-/ausblenden"/>
+ </layout_panel>
<layout_panel name="im_well_panel">
<chiclet_im_well name="im_well">
<button name="Unread IM messages" tool_tip="IMs"/>
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
new file mode 100644
index 0000000000..fc45c9ce79
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/panel_clothing_list_button_bar.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="clothing_list_button_bar_panel">
+ <button label="Hinzufügen +" name="add_btn"/>
+ <button label="Einkaufen &gt;" name="clothing_shop_btn"/>
+</panel>
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
new file mode 100644
index 0000000000..945acb02d7
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/panel_clothing_list_item.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="wearable_item">
+ <button name="btn_delete" tool_tip="Von Outfit entfernen"/>
+ <text name="item_name" value="..."/>
+ <panel name="btn_lock" tool_tip="Ihnen fehlt die Berechtigung zum Bearbeiten."/>
+ <panel name="btn_edit_panel">
+ <button name="btn_edit" tool_tip="Dieses tragbare Objekt bearbeiten"/>
+ </panel>
+</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_cof_wearables.xml b/indra/newview/skins/default/xui/de/panel_cof_wearables.xml
new file mode 100644
index 0000000000..12294a43ce
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/panel_cof_wearables.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="cof_wearables">
+ <accordion name="cof_wearables_accordion">
+ <accordion_tab name="tab_attachments" title="Anhänge"/>
+ <accordion_tab name="tab_clothing" title="Kleidung"/>
+ <accordion_tab name="tab_body_parts" title="Körperteile"/>
+ </accordion>
+</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
new file mode 100644
index 0000000000..a27252e23e
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/panel_deletable_wearable_list_item.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="deletable_wearable_item">
+ <button name="btn_delete" tool_tip="Von Outfit entfernen"/>
+ <text name="item_name" value="..."/>
+</panel>
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
new file mode 100644
index 0000000000..b7ad1bdc1b
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/panel_dummy_clothing_list_item.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="dummy_clothing_item">
+ <text name="item_name" value="..."/>
+ <panel name="btn_add_panel">
+ <button name="btn_add" tool_tip="Weitere Artikel dieser Art hinzufügen"/>
+ </panel>
+</panel>
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 b6c53be778..4b48950341 100644
--- a/indra/newview/skins/default/xui/de/panel_edit_alpha.xml
+++ b/indra/newview/skins/default/xui/de/panel_edit_alpha.xml
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="edit_alpha_panel" width="320">
- <panel name="avatar_alpha_color_panel" width="300">
- <texture_picker label="Alpha: Unten" name="Lower Alpha" tool_tip="Zum Auswählen eines Bildes hier klicken" width="70"/>
- <texture_picker label="Alpha: Oben" name="Upper Alpha" tool_tip="Zum Auswählen eines Bildes hier klicken" width="66"/>
+<panel name="edit_alpha_panel">
+ <panel name="avatar_alpha_color_panel">
+ <texture_picker label="Alpha: Unten" name="Lower Alpha" tool_tip="Zum Auswählen eines Bildes hier klicken"/>
+ <texture_picker label="Alpha: Oben" name="Upper Alpha" tool_tip="Zum Auswählen eines Bildes hier klicken"/>
<texture_picker label="Kopf: Alpha" name="Head Alpha" tool_tip="Zum Auswählen eines Bildes hier klicken"/>
- <texture_picker label="Alpha: Augen" name="Eye Alpha" tool_tip="Zum Auswählen eines Bildes hier klicken" width="72"/>
- <texture_picker label="Alpha: Haare" name="Hair Alpha" tool_tip="Zum Auswählen eines Bildes hier klicken" width="70"/>
+ <texture_picker label="Alpha: Augen" name="Eye Alpha" tool_tip="Zum Auswählen eines Bildes hier klicken"/>
+ <texture_picker label="Alpha: Haare" name="Hair Alpha" tool_tip="Zum Auswählen eines Bildes hier klicken"/>
</panel>
</panel>
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 d04dba7a3b..80d3b29cad 100644
--- a/indra/newview/skins/default/xui/de/panel_edit_shape.xml
+++ b/indra/newview/skins/default/xui/de/panel_edit_shape.xml
@@ -9,6 +9,7 @@
<string name="height">
Höhe:
</string>
+ <text name="avatar_height"/>
<panel label="Hemd" name="accordion_panel">
<accordion name="wearable_accordion">
<accordion_tab name="shape_body_tab" title="Körper"/>
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 12649e9251..075a9d752a 100644
--- a/indra/newview/skins/default/xui/de/panel_edit_tattoo.xml
+++ b/indra/newview/skins/default/xui/de/panel_edit_tattoo.xml
@@ -1,8 +1,9 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="edit_tattoo_panel">
<panel name="avatar_tattoo_color_panel">
- <texture_picker label="Kopftattoo" name="Head Tattoo" tool_tip="Zum Auswählen eines Bildes hier klicken" width="80"/>
- <texture_picker label="Obere Tattoos" name="Upper Tattoo" tool_tip="Zum Auswählen eines Bildes hier klicken" width="80"/>
- <texture_picker label="Untere Tattoos" name="Lower Tattoo" tool_tip="Zum Auswählen eines Bildes hier klicken" width="80"/>
+ <texture_picker label="Kopftattoo" name="Head Tattoo" tool_tip="Zum Auswählen eines Bildes hier klicken"/>
+ <texture_picker label="Obere Tattoos" name="Upper Tattoo" tool_tip="Zum Auswählen eines Bildes hier klicken"/>
+ <texture_picker label="Untere Tattoos" name="Lower Tattoo" tool_tip="Zum Auswählen eines Bildes hier klicken"/>
+ <color_swatch label="Farbe/Ton" name="Color/Tint" tool_tip="Klicken Sie hier, um die Farbauswahl zu öffnen"/>
</panel>
</panel>
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 7294a0b34f..faeea3a5de 100644
--- a/indra/newview/skins/default/xui/de/panel_edit_wearable.xml
+++ b/indra/newview/skins/default/xui/de/panel_edit_wearable.xml
@@ -90,12 +90,19 @@
<string name="tattoo_desc_text">
Tätowierung:
</string>
+ <labeled_back_button label="Speichern" name="back_btn" tool_tip="Zurück zu Outfit bearbeiten"/>
<text name="edit_wearable_title" value="Form bearbeiten"/>
<panel label="Hemd" name="wearable_type_panel">
<text name="description_text" value="Form:"/>
+ <radio_group name="sex_radio">
+ <radio_item label="" name="sex_male" tool_tip="Männlich" value="1"/>
+ <radio_item label="" name="sex_female" tool_tip="Weiblich" value="0"/>
+ </radio_group>
+ <icon name="male_icon" tool_tip="Männlich"/>
+ <icon name="female_icon" tool_tip="Weiblich"/>
</panel>
<panel name="button_panel">
<button label="Speichern unter" name="save_as_button"/>
- <button label="Zurücksetzen" name="revert_button"/>
+ <button label="Änderungen rückgängig machen" name="revert_button"/>
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_friends.xml b/indra/newview/skins/default/xui/de/panel_friends.xml
deleted file mode 100644
index 50013a2b24..0000000000
--- a/indra/newview/skins/default/xui/de/panel_friends.xml
+++ /dev/null
@@ -1,31 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="friends">
- <string name="Multiple">
- Mehrere Freunde
- </string>
- <scroll_list name="friend_list" tool_tip="Halten Sie die Tasten „Umschalt“ oder „Strg“ gedrückt, um durch Klicken mehrere Freunde auszuwählen.">
- <column name="icon_online_status" tool_tip="Online-Status"/>
- <column label="Name" name="friend_name" tool_tip="Name"/>
- <column name="icon_visible_online" tool_tip="Freund kann sehen, wenn Sie online sind"/>
- <column name="icon_visible_map" tool_tip="Freund kann Sie auf der Karte finden"/>
- <column name="icon_edit_mine" tool_tip="Freunde können Objekte bearbeiten, löschen und an sich nehmen"/>
- <column name="icon_edit_theirs" tool_tip="Sie können die Objekte dieses Freunds bearbeiten"/>
- </scroll_list>
- <panel name="rights_container">
- <text name="friend_name_label">
- Wählen Sie den/die Freund(e) aus, dessen/deren Rechte Sie ändern möchten...
- </text>
- <check_box label="Kann meinen Online-Status sehen" name="online_status_cb" tool_tip="Festlegen, ob dieser Freund meinen Online-Status auf seiner Freundesliste oder Visitenkarte einsehen kann"/>
- <check_box label="Kann mich auf der Weltkarte sehen" name="map_status_cb" tool_tip="Festlegen, ob dieser Freund auf seiner Karte meinen Standort sehen kann"/>
- <check_box label="Kann meine Objekte verändern" name="modify_status_cb" tool_tip="Festlegen, ob dieser Freund meine Objekte verändern kann"/>
- <text name="process_rights_label">
- Rechte werden geändert...
- </text>
- </panel>
- <button label="IM/Anruf" name="im_btn" tool_tip="Beginnt eine Instant Message-Sitzung"/>
- <button label="Profil" name="profile_btn" tool_tip="Bilder, Gruppen und andere Informationen anzeigen"/>
- <button label="Teleportieren" name="offer_teleport_btn" tool_tip="Bieten Sie diesem Freund einen Teleport an Ihre Position an"/>
- <button label="Bezahlen" name="pay_btn" tool_tip="Diesem Freund Linden-Dollar (L$) geben"/>
- <button label="Entfernen" name="remove_btn" tool_tip="Diese Person von Ihrer Freundesliste entfernen"/>
- <button label="Hinzufügen" name="add_btn" tool_tip="Bieten Sie einem Einwohner die Freundschaft an"/>
-</panel>
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 0c89946987..125bf1436e 100644
--- a/indra/newview/skins/default/xui/de/panel_group_land_money.xml
+++ b/indra/newview/skins/default/xui/de/panel_group_land_money.xml
@@ -6,6 +6,9 @@
<panel.string name="cant_view_group_land_text">
Sie sind nicht berechtigt, Landeigentum der Gruppe anzuzeigen.
</panel.string>
+ <panel.string name="epmty_view_group_land_text">
+ Keine Einträge
+ </panel.string>
<panel.string name="cant_view_group_accounting_text">
Sie sind nicht berechtigt, die Finanzinformationen der Gruppe anzuzeigen.
</panel.string>
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 cc5664bd97..8c1df04ed8 100644
--- a/indra/newview/skins/default/xui/de/panel_group_notices.xml
+++ b/indra/newview/skins/default/xui/de/panel_group_notices.xml
@@ -21,7 +21,7 @@ Maximal 200 pro Gruppe täglich
<text name="notice_list_none_found">
Nicht gefunden.
</text>
- <button label="Neue Mitteilung erstellen" label_selected="Neue Mitteilung" name="create_new_notice" tool_tip="Neue Mitteilung erstellen"/>
+ <button label="Neue Mitteilung" label_selected="Neue Mitteilung" name="create_new_notice" tool_tip="Neue Mitteilung erstellen"/>
<button label="Aktualisieren" label_selected="Liste aktualisieren" name="refresh_notices" tool_tip="Mitteilungsliste aktualisieren"/>
<panel label="Neue Mitteilung" name="panel_create_new_notice">
<text name="lbl">
@@ -39,6 +39,7 @@ Maximal 200 pro Gruppe täglich
<text name="string">
Das Objekt hierhin ziehen und ablegen, um es anzuhängen:
</text>
+ <button label="Inventar" name="open_inventory" tool_tip="Inventar öffnen"/>
<button label="Entfernen" label_selected="Anhang entfernen" name="remove_attachment" tool_tip="Anhang von Ihrer Benachrichtigung entfernen"/>
<button label="Senden" label_selected="Senden" name="send_notice"/>
<group_drop_target name="drop_target" tool_tip="Ziehen Sie ein Objekt aus Ihrem Inventar auf dieses Feld, um es mit dieser Mitteilung zu versenden. Um das Objekt anhängen zu können, müssen Sie die Erlaubnis zum Kopieren und Übertragen besitzen."/>
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 db5186e081..f297d32a91 100644
--- a/indra/newview/skins/default/xui/de/panel_group_roles.xml
+++ b/indra/newview/skins/default/xui/de/panel_group_roles.xml
@@ -13,6 +13,9 @@
Drücken Sie die Strg-Taste und klicken Sie auf Namen,
um mehrere Mitglieder auszuwählen.
</panel.string>
+ <panel.string name="donation_area">
+ [AREA] m².
+ </panel.string>
<filter_editor label="Mitglieder filtern" name="filter_input"/>
<name_list name="member_list">
<name_list.columns label="Mitglied" name="name" relative_width="0.30"/>
diff --git a/indra/newview/skins/default/xui/de/panel_groups.xml b/indra/newview/skins/default/xui/de/panel_groups.xml
deleted file mode 100644
index f857a6c7ac..0000000000
--- a/indra/newview/skins/default/xui/de/panel_groups.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<panel name="groups">
- <text name="groupdesc" width="300">
- Die derzeit aktive Gruppe ist fett hervorgehoben.
- </text>
- <text name="groupcount" width="360">
- Sie sind Mitglied bei [COUNT] Gruppen (von max. [MAX]).
- </text>
- <button label="IM/Anruf" name="IM" tool_tip="Beginnt eine Instant Message-Sitzung" />
- <button label="Info" name="Info" />
- <button label="Aktivieren" name="Activate" />
- <button label="Verlassen" name="Leave" />
- <button label="Erstellen..." name="Create" />
- <button label="Suchen..." name="Search..." />
-</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_login.xml b/indra/newview/skins/default/xui/de/panel_login.xml
index 2a6ea42c73..b373be4382 100644
--- a/indra/newview/skins/default/xui/de/panel_login.xml
+++ b/indra/newview/skins/default/xui/de/panel_login.xml
@@ -8,27 +8,23 @@
</panel.string>
<layout_stack name="login_widgets">
<layout_panel name="login">
- <text name="first_name_text">
- Vorname:
+ <text name="username_text">
+ Benutzername:
</text>
- <line_editor label="Vorname" name="first_name_edit" tool_tip="[SECOND_LIFE] Vorname"/>
- <text name="last_name_text">
- Nachname:
- </text>
- <line_editor label="Nachname" name="last_name_edit" tool_tip="[SECOND_LIFE] Nachname"/>
+ <line_editor label="Benutzername" name="username_edit" tool_tip="[SECOND_LIFE]-Benutzername"/>
<text name="password_text">
Kennwort:
</text>
<check_box label="Kennwort merken" name="remember_check"/>
+ <button label="Anmelden" name="connect_btn"/>
<text name="start_location_text">
Hier anfangen:
</text>
- <combo_box name="start_location_combo" width="150">
+ <combo_box name="start_location_combo">
<combo_box.item label="Mein letzter Standort" name="MyLastLocation"/>
<combo_box.item label="Mein Zuhause" name="MyHome"/>
<combo_box.item label="&lt;Region eingeben&gt;" name="Typeregionname"/>
</combo_box>
- <button label="Anmelden" name="connect_btn"/>
</layout_panel>
<layout_panel name="links">
<text name="create_new_account_text">
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 d3eb9ae04c..2f00782ef0 100644
--- a/indra/newview/skins/default/xui/de/panel_main_inventory.xml
+++ b/indra/newview/skins/default/xui/de/panel_main_inventory.xml
@@ -9,62 +9,20 @@
<text name="ItemcountText">
Objekte:
</text>
- <menu_bar name="Inventory Menu">
- <menu label="Datei" name="File">
- <menu_item_call label="Öffnen" name="Open"/>
- <menu label="Hochladen" name="upload">
- <menu_item_call label="Bild ([COST] L$)..." name="Upload Image"/>
- <menu_item_call label="Sound ([COST] L$)..." name="Upload Sound"/>
- <menu_item_call label="Animation ([COST] L$)..." name="Upload Animation"/>
- <menu_item_call label="Mehrfach-Upload ([COST] L$ pro Datei)..." name="Bulk Upload"/>
- </menu>
- <menu_item_call label="Neues Fenster" name="New Window"/>
- <menu_item_call label="Filter anzeigen" name="Show Filters"/>
- <menu_item_call label="Filter zurücksetzen" name="Reset Current"/>
- <menu_item_call label="Alle Ordner schließen" name="Close All Folders"/>
- <menu_item_call label="Papierkorb ausleeren" name="Empty Trash"/>
- <menu_item_call label="Fundstücke ausleeren" name="Empty Lost And Found"/>
- </menu>
- <menu label="Erstellen" name="Create">
- <menu_item_call label="Neuer Ordner" name="New Folder"/>
- <menu_item_call label="Neues Skript" name="New Script"/>
- <menu_item_call label="Neue Notizkarte" name="New Note"/>
- <menu_item_call label="Neue Geste" name="New Gesture"/>
- <menu label="Neue Kleider" name="New Clothes">
- <menu_item_call label="Neues Hemd" name="New Shirt"/>
- <menu_item_call label="Neue Hose" name="New Pants"/>
- <menu_item_call label="Neue Schuhe" name="New Shoes"/>
- <menu_item_call label="Neue Socken" name="New Socks"/>
- <menu_item_call label="Neue Jacke" name="New Jacket"/>
- <menu_item_call label="Neuer Rock" name="New Skirt"/>
- <menu_item_call label="Neue Handschuhe" name="New Gloves"/>
- <menu_item_call label="Neues Unterhemd" name="New Undershirt"/>
- <menu_item_call label="Neue Unterhose" name="New Underpants"/>
- <menu_item_call label="Neues Alpha" name="New Alpha"/>
- <menu_item_call label="Neue Tätowierung" name="New Tattoo"/>
- </menu>
- <menu label="Neue Körperteile" name="New Body Parts">
- <menu_item_call label="Neue Form/Gestalt" name="New Shape"/>
- <menu_item_call label="Neue Haut" name="New Skin"/>
- <menu_item_call label="Neues Haar" name="New Hair"/>
- <menu_item_call label="Neue Augen" name="New Eyes"/>
- </menu>
- </menu>
- <menu label="Sortieren" name="Sort">
- <menu_item_check label="Nach Name" name="By Name"/>
- <menu_item_check label="Nach Datum" name="By Date"/>
- <menu_item_check label="Ordner immer nach Namen" name="Folders Always By Name"/>
- <menu_item_check label="Systemordner nach oben" name="System Folders To Top"/>
- </menu>
- </menu_bar>
<filter_editor label="Inventar filtern" name="inventory search editor"/>
<tab_container name="inventory filter tabs">
<inventory_panel label="MEIN INVENTAR" name="All Items"/>
- <inventory_panel label="AKTUELL" name="Recent Items"/>
+ <recent_inventory_panel label="AKTUELL" name="Recent Items"/>
</tab_container>
- <panel name="bottom_panel">
- <button name="options_gear_btn" tool_tip="Zusätzliche Optionen anzeigen"/>
- <button name="add_btn" tool_tip="Neues Objekt hinzufügen"/>
- <dnd_button name="trash_btn" tool_tip="Auswahl löschen"/>
- </panel>
+ <layout_stack name="bottom_panel">
+ <layout_panel name="options_gear_btn_panel">
+ <button name="options_gear_btn" tool_tip="Zusätzliche Optionen anzeigen"/>
+ </layout_panel>
+ <layout_panel name="add_btn_panel">
+ <button name="add_btn" tool_tip="Neues Objekt hinzufügen"/>
+ </layout_panel>
+ <layout_panel name="trash_btn_panel">
+ <dnd_button name="trash_btn" tool_tip="Auswahl löschen"/>
+ </layout_panel>
+ </layout_stack>
</panel>
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 99293edd0f..ee1a543aac 100644
--- a/indra/newview/skins/default/xui/de/panel_navigation_bar.xml
+++ b/indra/newview/skins/default/xui/de/panel_navigation_bar.xml
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="navigation_bar">
<panel name="navigation_panel">
- <pull_button name="back_btn" tool_tip="Zurück zum vorherigen Standort gehen"/>
- <pull_button name="forward_btn" tool_tip="Um einen Standort weiter gehen"/>
+ <pull_button name="back_btn" tool_tip="Zurück zum vorherigen Standort teleportieren"/>
+ <pull_button name="forward_btn" tool_tip="Um einen Standort weiter teleportieren"/>
<button name="home_btn" tool_tip="Zu meinem Zuhause teleportieren"/>
<location_input label="Standort" name="location_combo"/>
<search_combo_box label="Suche" name="search_combo_box" tool_tip="Suche">
diff --git a/indra/newview/skins/default/xui/de/panel_nearby_chat.xml b/indra/newview/skins/default/xui/de/panel_nearby_chat.xml
deleted file mode 100644
index 3f4f5a71b5..0000000000
--- a/indra/newview/skins/default/xui/de/panel_nearby_chat.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<!-- All our XML is utf-8 encoded. -->
-<panel name="nearby_chat">
- <panel name="chat_caption">
- <text name="sender_name" width="200">
- CHAT IN DER NÄHE
- </text>
- </panel>
-</panel>
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 e633ae1dde..ef66148902 100644
--- a/indra/newview/skins/default/xui/de/panel_nearby_media.xml
+++ b/indra/newview/skins/default/xui/de/panel_nearby_media.xml
@@ -23,6 +23,12 @@
<button label="Mehr &gt;&gt;" label_selected="Weniger &lt;&lt;" name="less_btn" tool_tip="Erweiterte Steuerung"/>
</panel>
<panel name="nearby_media_panel">
+ <text name="nearby_media_title">
+ Medien in der Nähe
+ </text>
+ <text name="show_text">
+ Anzeigen:
+ </text>
<combo_box name="show_combo">
<combo_box.item label="Alle" name="All"/>
<combo_box.item label="Auf dieser Parzelle" name="WithinParcel"/>
@@ -36,7 +42,7 @@
<scroll_list.columns label="Name" name="media_name"/>
<scroll_list.columns label="Fehler beseitigen" name="media_debug"/>
</scroll_list>
- <panel>
+ <panel name="media_controls_panel">
<layout_stack name="media_controls">
<layout_panel name="stop">
<button name="stop_btn" tool_tip="Ausgewählte Medien stoppen"/>
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 e2166f7baf..35bd76ce70 100644
--- a/indra/newview/skins/default/xui/de/panel_notifications_channel.xml
+++ b/indra/newview/skins/default/xui/de/panel_notifications_channel.xml
@@ -1,15 +1,19 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="notifications_panel">
<layout_stack name="stack1">
- <scroll_list name="notifications_list">
- <column label="Name" name="name"/>
- <column label="Inhalt" name="content"/>
- <column label="Datum" name="date"/>
- </scroll_list>
- <scroll_list name="notification_rejects_list">
- <column label="Name" name="name"/>
- <column label="Inhalt" name="content"/>
- <column label="Datum" name="date"/>
- </scroll_list>
+ <layout_panel name="notifications_list_panel" >
+ <scroll_list name="notifications_list">
+ <column label="Name" name="name"/>
+ <column label="Inhalt" name="content"/>
+ <column label="Datum" name="date"/>
+ </scroll_list>
+ </layout_panel>
+ <layout_panel name="rejects_list_panel" >
+ <scroll_list name="notification_rejects_list">
+ <column label="Name" name="name"/>
+ <column label="Inhalt" name="content"/>
+ <column label="Datum" name="date"/>
+ </scroll_list>
+ </layout_panel>
</layout_stack>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_online_status.xml b/indra/newview/skins/default/xui/de/panel_online_status.xml
deleted file mode 100644
index 7c7448c061..0000000000
--- a/indra/newview/skins/default/xui/de/panel_online_status.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="Freunde_online_Status" name="friend_online_status"/>
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 91ba94b3d6..b38e07f3e1 100644
--- a/indra/newview/skins/default/xui/de/panel_outfit_edit.xml
+++ b/indra/newview/skins/default/xui/de/panel_outfit_edit.xml
@@ -2,6 +2,8 @@
<!-- Side tray Outfit Edit panel -->
<panel label="Outfit bearbeiten" name="outfit_edit">
<string name="No Outfit" value="Kein Outfit"/>
+ <string name="unsaved_changes" value="Ungespeicherte Änderungen"/>
+ <string name="now_editing" value="Wird bearbeitet"/>
<panel.string name="not_available">
k.A.
</panel.string>
@@ -11,7 +13,9 @@
<string name="Filter.All" value="Alle"/>
<string name="Filter.Clothes/Body" value="Kleider/Körper"/>
<string name="Filter.Objects" value="Objekte"/>
- <string name="Filter.Custom" value="Benutzerspezifischer Filter"/>
+ <string name="Filter.Clothing" value="Kleidung"/>
+ <string name="Filter.Bodyparts" value="Körperteile"/>
+ <string name="replace_body_part" value="Klicken, um Ihre aktuelle Form zu ersetzen"/>
<text name="title" value="Outfit bearbeiten"/>
<panel label="bottom_panel" name="header_panel">
<panel label="bottom_panel" name="outfit_name_and_status">
@@ -23,17 +27,25 @@
<layout_panel label="IM Steuerkonsole" name="outfit_wearables_panel">
<layout_stack name="filter_panels">
<layout_panel name="add_button_and_combobox">
- <button label="Mehr hinzufügen" name="show_add_wearables_btn"/>
+ <button label="Mehr hinzufügen" name="show_add_wearables_btn" tool_tip="Öffnen/Schließen"/>
</layout_panel>
<layout_panel name="filter_panel">
<filter_editor label="Tragbare Inventarobjekte filtern" name="look_item_filter"/>
</layout_panel>
</layout_stack>
</layout_panel>
- <layout_panel name="add_wearables_panel"/>
+ <layout_panel name="add_wearables_panel">
+ <button label="Objekt anziehen" name="plus_btn"/>
+ </layout_panel>
</layout_stack>
+ <panel name="no_add_wearables_button_bar">
+ <button name="shop_btn_1" tool_tip="Besuchen Sie den Marktplatz. Sie können auch einen Teil Ihres Outfits auswählen, und dann hier klicken, um ähnliche Artikel anzuzeigen."/>
+ </panel>
+ <panel name="add_wearables_button_bar">
+ <button name="shop_btn_2" tool_tip="Besuchen Sie den Marktplatz. Sie können auch einen Teil Ihres Outfits auswählen, und dann hier klicken, um ähnliche Artikel anzuzeigen."/>
+ </panel>
<panel name="save_revert_button_bar">
<button label="Speichern" name="save_btn"/>
- <button label="Zurücksetzen" name="revert_btn"/>
+ <button label="Änderungen rückgängig machen" name="revert_btn" tool_tip="Zur zuletzt gespeicherten Version zurücksetzen"/>
</panel>
</panel>
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 8b04cecd68..e25d7d412b 100644
--- a/indra/newview/skins/default/xui/de/panel_outfits_inventory.xml
+++ b/indra/newview/skins/default/xui/de/panel_outfits_inventory.xml
@@ -1,12 +1,16 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Sonstiges" name="Outfits">
+ <panel.string name="wear_outfit_tooltip">
+ Ausgewähltes Outfit tragen
+ </panel.string>
+ <panel.string name="wear_items_tooltip">
+ Ausgewählte Objekte tragen
+ </panel.string>
<tab_container name="appearance_tabs">
<panel label="MEINE OUTFITS" name="outfitslist_tab"/>
- <inventory_panel label="AKTUELLES OUTFIT" name="cof_tab"/>
+ <panel label="AKTUELLES OUTFIT" name="cof_tab"/>
</tab_container>
<panel name="bottom_panel">
- <button name="options_gear_btn" tool_tip="Zusätzliche Optionen anzeigen"/>
- <dnd_button name="trash_btn" tool_tip="Auswahl löschen"/>
<button label="Speichern unter" name="save_btn"/>
<button label="Anziehen" name="wear_btn" tool_tip="Ausgewähltes Outfit tragen"/>
</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_outfits_list.xml b/indra/newview/skins/default/xui/de/panel_outfits_list.xml
new file mode 100644
index 0000000000..65a38ea342
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/panel_outfits_list.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="Outfits">
+ <panel name="bottom_panel">
+ <button name="options_gear_btn" tool_tip="Zusätzliche Optionen anzeigen"/>
+ <button name="trash_btn" tool_tip="Ausgewähltes Outfit löschen"/>
+ </panel>
+</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_outfits_wearing.xml b/indra/newview/skins/default/xui/de/panel_outfits_wearing.xml
new file mode 100644
index 0000000000..27141796a8
--- /dev/null
+++ b/indra/newview/skins/default/xui/de/panel_outfits_wearing.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="Wearing">
+ <panel name="bottom_panel">
+ <button name="options_gear_btn" tool_tip="Zusätzliche Optionen anzeigen"/>
+ </panel>
+</panel>
diff --git a/indra/newview/skins/default/xui/de/panel_people.xml b/indra/newview/skins/default/xui/de/panel_people.xml
index 59cc3a8b70..8acb680175 100644
--- a/indra/newview/skins/default/xui/de/panel_people.xml
+++ b/indra/newview/skins/default/xui/de/panel_people.xml
@@ -2,9 +2,9 @@
<!-- Side tray panel -->
<panel label="Leute" name="people_panel">
<string name="no_recent_people" value="Hier sind keine Leute. Sie suchen nach Leuten? Verwenden Sie die [secondlife:///app/search/people Suche] oder die [secondlife:///app/worldmap Karte]."/>
- <string name="no_filtered_recent_people" value="Sie haben nicht das Richtige gefunden? Versuchen Sie es mit der [secondlife:///app/search/people Suche]."/>
+ <string name="no_filtered_recent_people" value="Sie haben nicht das Richtige gefunden? Versuchen Sie es mit der [secondlife:///app/search/people/[SEARCH_TERM] Suche]."/>
<string name="no_one_near" value="Es ist niemand in der Nähe. Sie suchen nach Leuten? Verwenden Sie die [secondlife:///app/search/people Suche] oder die [secondlife:///app/worldmap Karte]."/>
- <string name="no_one_filtered_near" value="Sie haben nicht das Richtige gefunden? Versuchen Sie es mit der [secondlife:///app/search/people Suche]."/>
+ <string name="no_one_filtered_near" value="Sie haben nicht das Richtige gefunden? Versuchen Sie es mit der [secondlife:///app/search/people/[SEARCH_TERM] Suche]."/>
<string name="no_friends_online" value="Keine Freunde online"/>
<string name="no_friends" value="Keine Freunde"/>
<string name="no_friends_msg">
@@ -12,11 +12,11 @@
Sie suchen nach Leuten? Verwenden Sie die [secondlife:///app/worldmap Karte].
</string>
<string name="no_filtered_friends_msg">
- Sie haben nicht das Richtige gefunden? Versuchen Sie es mit der [secondlife:///app/search/people Suche].
+ 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 Suche]."/>
+ <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]."/>
<filter_editor label="Filter" name="filter_input"/>
<tab_container name="tabs">
@@ -55,8 +55,8 @@ Sie suchen nach Leuten? Verwenden Sie die [secondlife:///app/worldmap Karte].
<button label="Profil" name="view_profile_btn" tool_tip="Bilder, Gruppen und andere Einwohner-Informationen anzeigen"/>
<button label="IM" name="im_btn" tool_tip="Instant Messenger öffnen"/>
<button label="Anrufen" name="call_btn" tool_tip="Diesen Einwohner anrufen"/>
- <button label="Teilen" name="share_btn"/>
- <button label="Teleportieren" name="teleport_btn" tool_tip="Teleport anbieten"/>
+ <button label="Teilen" name="share_btn" tool_tip="Inventarobjekt teilen"/>
+ <button label="Teleport" name="teleport_btn" tool_tip="Teleport anbieten"/>
<button label="Gruppenprofil" name="group_info_btn" tool_tip="Gruppeninformationen anzeigen"/>
<button label="Gruppen-Chat" name="chat_btn" tool_tip="Chat öffnen"/>
<button label="Gruppe anrufen" name="group_call_btn" tool_tip="Diese Gruppe anrufen"/>
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 52e616a402..7b6918ae24 100644
--- a/indra/newview/skins/default/xui/de/panel_preferences_advanced.xml
+++ b/indra/newview/skins/default/xui/de/panel_preferences_advanced.xml
@@ -13,7 +13,7 @@
</text>
<check_box label="Bauen/Bearbeiten" name="edit_camera_movement" tool_tip="Automatische Kamerapositionierung bei Wechsel in und aus dem Bearbeitungsmodus verwenden"/>
<check_box label="Aussehen" name="appearance_camera_movement" tool_tip="Automatische Kamerapositionierung im Bearbeitenmodus verwenden"/>
- <check_box initial_value="true" label="Sidebar" name="appearance_sidebar_positioning" tool_tip="Use automatic camera positioning for sidebar"/>
+ <check_box initial_value="true" label="Seitenleiste" name="appearance_sidebar_positioning" tool_tip="Automatische Kameraposition für Seitenleiste verwenden"/>
<check_box label="Mich im Mouselook anzeigen" name="first_person_avatar_visible"/>
<check_box label="Mit Pfeiltasten bewegen" name="arrow_keys_move_avatar_check"/>
<check_box label="2-mal-drücken-halten, um zu rennen" name="tap_tap_hold_to_run"/>
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 bf150daf87..064eb3895b 100644
--- a/indra/newview/skins/default/xui/de/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/de/panel_preferences_chat.xml
@@ -45,7 +45,7 @@
</text>
<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 Text-Chatverlauf aktivieren" name="plain_text_chat_history"/>
+ <check_box label="Kompakten IM- und Text-Chatverlauf aktivieren" name="plain_text_chat_history"/>
<text name="show_ims_in_label">
IMs anzeigen in:
</text>
@@ -56,4 +56,27 @@
<radio_item label="Getrennte Fenster" name="radio" value="0"/>
<radio_item label="Registerkarten" name="radio2" value="1"/>
</radio_group>
+ <check_box label="Übersetzen Chat" name="translate_chat_checkbox" />
+ <text name="translate_language_text">
+ Chat-Sprache:
+ </text>
+ <combo_box name="translate_language_combobox" width="200">
+ <combo_box.item name="System Default Language" label="Betriebssystem-Einstellung" />
+ <combo_box.item name="English" label="English (Englisch)" />
+ <combo_box.item name="Danish" label="Danks (Dänisch)" />
+ <combo_box.item name="German" label="Deutsch" />
+ <combo_box.item name="Spanish" label="Español (Spanisch)" />
+ <combo_box.item name="French" label="Français (Französisch)" />
+ <combo_box.item name="Italian" label="Italiano (Italienisch)" />
+ <combo_box.item name="Hungarian" label="Magyar (Ungarisch)" />
+ <combo_box.item name="Dutch" label="Nederlands (Niederländisch)" />
+ <combo_box.item name="Polish" label="Polski (Polnisch)" />
+ <combo_box.item name="Portugese" label="Português (Portugiesisch)" />
+ <combo_box.item name="Russian" label="РуÑÑкий (Russian)" />
+ <combo_box.item name="Turkish" label="Türkçe (Türkisch)" />
+ <combo_box.item name="Ukrainian" label="УкраїнÑька (Ukrainisch)" />
+ <combo_box.item name="Chinese" label="中文 (简体) (Chinesisch)" />
+ <combo_box.item name="Japanese" label="日本語 (Japanisch)" />
+ <combo_box.item name="Korean" label="한국어 (Koreanisch)" />
+ </combo_box>
</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 16b4598486..7077534719 100644
--- a/indra/newview/skins/default/xui/de/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/de/panel_preferences_graphics1.xml
@@ -1,19 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Grafik" name="Display panel">
- <text name="WindowSizeLabel">
- Fenstergröße:
- </text>
- <check_box label="Vollbildmodus verwenden" name="windowed mode"/>
- <combo_box left="115" name="windowsize combo">
- <combo_box.item label="640x480" name="640x480"/>
- <combo_box.item label="800x600" name="800x600"/>
- <combo_box.item label="720x480 (NTSC)" name="720x480"/>
- <combo_box.item label="768x576 (PAL)" name="768x576"/>
- <combo_box.item label="1024x768" name="1024x768"/>
- </combo_box>
- <text name="UI Size:">
- UI-Größe:
- </text>
<text name="QualitySpeed">
Qualität und Geschwindigkeit:
</text>
@@ -63,6 +49,7 @@
m
</text>
<slider label="Max. Partikelzahl:" name="MaxParticleCount"/>
+ <slider label="Max. Anzahl an voll dargestellten Avataren:" name="MaxNumberAvatarDrawn"/>
<slider label="Post-Processing-Qualität:" name="RenderPostProcess"/>
<text name="MeshDetailText">
Gitterdetails:
@@ -98,8 +85,8 @@
Beleuchtungsdetails:
</text>
<radio_group name="LightingDetailRadio">
- <radio_item label="Nur Sonne und Mond" name="SunMoon"/>
- <radio_item label="Lokale Lichtquellen" name="LocalLights"/>
+ <radio_item label="Nur Sonne und Mond" name="SunMoon" value="0"/>
+ <radio_item label="Lokale Lichtquellen" name="LocalLights" value="1"/>
</radio_group>
<text name="TerrainDetailText">
Terraindetails:
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 44b2bd1f60..5c71b20fb0 100644
--- a/indra/newview/skins/default/xui/de/panel_preferences_sound.xml
+++ b/indra/newview/skins/default/xui/de/panel_preferences_sound.xml
@@ -11,8 +11,8 @@
<check_box label="Aktiviert" name="enable_media"/>
<slider label="Voice-Chat" name="Voice Volume"/>
<check_box label="Aktiviert" name="enable_voice_check"/>
- <check_box label="Automatische Wiedergabe zulassen" name="media_auto_play_btn" tool_tip="Hier aktivieren, um Medien automatisch wiederzugeben."/>
- <check_box label="Medien, die an andere Avatare angehängt sind, wiedergeben." name="media_show_on_others_btn" tool_tip="Diese Option deaktivieren, um Medien für andere Avataren, die sich in der Nähe befinden, auszublenden."/>
+ <check_box label="Automatische Wiedergabe zulassen" name="media_auto_play_btn" tool_tip="Hier aktivieren, um Medien automatisch wiederzugeben." value="true"/>
+ <check_box label="Medien, die an andere Avatare angehängt sind, wiedergeben." name="media_show_on_others_btn" tool_tip="Diese Option deaktivieren, um Medien für andere Avataren, die sich in der Nähe befinden, auszublenden." value="true"/>
<text name="voice_chat_settings">
Voice-Chat-Einstellungen
</text>
@@ -28,6 +28,12 @@
<panel.string name="default_text">
Standard
</panel.string>
+ <panel.string name="default system device">
+ Standardgerät
+ </panel.string>
+ <panel.string name="no device">
+ Kein Gerät
+ </panel.string>
<text name="Input">
Eingabe
</text>
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 0a19483f8b..c85f2762b1 100644
--- a/indra/newview/skins/default/xui/de/panel_prim_media_controls.xml
+++ b/indra/newview/skins/default/xui/de/panel_prim_media_controls.xml
@@ -7,9 +7,9 @@
0.2
</string>
<layout_stack name="progress_indicator_area">
- <panel name="media_progress_indicator">
+ <layout_panel name="media_progress_indicator">
<progress_bar name="media_progress_bar" tool_tip="Medien werden geladen"/>
- </panel>
+ </layout_panel>
</layout_stack>
<layout_stack name="media_controls">
<layout_panel name="back">
diff --git a/indra/newview/skins/default/xui/de/panel_region_general_layout.xml b/indra/newview/skins/default/xui/de/panel_region_general_layout.xml
deleted file mode 100644
index 09142ada6f..0000000000
--- a/indra/newview/skins/default/xui/de/panel_region_general_layout.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="Region" name="General">
- <text name="region_text_lbl">
- Region:
- </text>
- <text name="region_text">
- unbekannt
- </text>
- <text name="version_channel_text_lbl">
- Version:
- </text>
- <text name="version_channel_text">
- unbekannt
- </text>
- <text name="region_type_lbl">
- Typ:
- </text>
- <text name="region_type">
- unbekannt
- </text>
- <check_box label="Terraformen blockieren" name="block_terraform_check"/>
- <check_box label="Fliegen blockieren" name="block_fly_check"/>
- <check_box label="Schaden zulassen" name="allow_damage_check"/>
- <check_box label="Stoßen beschränken" name="restrict_pushobject"/>
- <check_box label="Landwiederverkauf zulassen" name="allow_land_resell_check"/>
- <check_box label="Zusammenlegen/Teilen von Land zulassen" name="allow_parcel_changes_check"/>
- <check_box label="Landanzeige in Suche blockieren" name="block_parcel_search_check" tool_tip="Diese Region und ihre Parzellen in Suchergebnissen anzeigen"/>
- <spinner label="Avatar-Limit" name="agent_limit_spin"/>
- <spinner label="Objektbonus" name="object_bonus_spin"/>
- <text label="Alterseinstufung" name="access_text">
- Einstufung:
- </text>
- <combo_box label="Moderat" name="access_combo">
- <combo_box.item label="Adult" name="Adult"/>
- <combo_box.item label="Moderat" name="Mature"/>
- <combo_box.item label="Allgemein" name="PG"/>
- </combo_box>
- <button label="Übernehmen" name="apply_btn"/>
- <button label="Einen Einwohner nach Hause teleportieren..." name="kick_btn"/>
- <button label="Alle Einwohner nach Hause teleportieren..." name="kick_all_btn"/>
- <button label="Nachricht an Region senden..." name="im_btn"/>
- <button label="Telehub verwalten..." name="manage_telehub_btn"/>
-</panel>
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 4efd83dfff..4d721f2af6 100644
--- a/indra/newview/skins/default/xui/de/panel_teleport_history.xml
+++ b/indra/newview/skins/default/xui/de/panel_teleport_history.xml
@@ -1,6 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="Teleport History">
<accordion name="history_accordion">
+ <no_matched_tabs_text name="no_matched_teleports_msg" value="Sie haben nicht das Richtige gefunden? Versuchen Sie es mit der [secondlife:///app/search/places/[SEARCH_TERM] Suche]."/>
+ <no_visible_tabs_text name="no_teleports_msg" value="Die Teleportliste ist leer. Versuchen Sie es mit der [secondlife:///app/search/all Suche]."/>
<accordion_tab name="today" title="Heute"/>
<accordion_tab name="yesterday" title="Gestern"/>
<accordion_tab name="2_days_ago" title="Vor 2 Tagen"/>
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 363ee013e3..533deb8597 100644
--- a/indra/newview/skins/default/xui/de/panel_voice_effect.xml
+++ b/indra/newview/skins/default/xui/de/panel_voice_effect.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="panel_voice_effect">
<string name="no_voice_effect">
- Kein Voice-Morphing
+ Voice-Morphing Aus
</string>
<string name="preview_voice_effects">
Voice-Morphing ausprobieren â–¶
@@ -10,6 +10,6 @@
Voice-Morphing abonnieren â–¶
</string>
<combo_box name="voice_effect" tool_tip="Wählen Sie einen Voice-Morph-Effekt aus, um Ihre Stimme zu verändern.">
- <combo_box.item label="Kein Voice-Morphing" name="no_voice_effect"/>
+ <combo_box.item label="Voice-Morphing Aus" name="no_voice_effect"/>
</combo_box>
</panel>
diff --git a/indra/newview/skins/default/xui/de/sidepanel_appearance.xml b/indra/newview/skins/default/xui/de/sidepanel_appearance.xml
index 7a280bd7ff..7fb9b34e0a 100644
--- a/indra/newview/skins/default/xui/de/sidepanel_appearance.xml
+++ b/indra/newview/skins/default/xui/de/sidepanel_appearance.xml
@@ -1,16 +1,19 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Outfits" name="appearance panel">
<string name="No Outfit" value="Kein Outfit"/>
+ <string name="Unsaved Changes" value="Ungespeicherte Änderungen"/>
+ <string name="Now Wearing" value="Aktuelles Outfit..."/>
+ <string name="Changing outfits" value="Outfits ändern"/>
<panel name="panel_currentlook">
- <button label="Bearbeiten" name="editappearance_btn"/>
- <text name="currentlook_title">
- (nicht gespeichert)
+ <button label="B" name="editappearance_btn"/>
+ <button label="Ö" name="openoutfit_btn"/>
+ <text name="currentlook_status">
+ (Status)
</text>
<text name="currentlook_name">
MyOutfit With a really Long Name like MOOSE
</text>
+ <button label="" name="edit_outfit_btn" tool_tip="Dieses Outfit bearbeiten"/>
</panel>
<filter_editor label="Outfits filtern" name="Filter"/>
- <button label="Anziehen" name="wear_btn"/>
- <button label="Neues Outfit" name="newlook_btn"/>
</panel>
diff --git a/indra/newview/skins/default/xui/de/sidepanel_inventory.xml b/indra/newview/skins/default/xui/de/sidepanel_inventory.xml
index 96dd181854..f9bf2fe081 100644
--- a/indra/newview/skins/default/xui/de/sidepanel_inventory.xml
+++ b/indra/newview/skins/default/xui/de/sidepanel_inventory.xml
@@ -4,7 +4,7 @@
<panel name="button_panel">
<button label="Profil" name="info_btn" tool_tip="Objektprofil anzeigen"/>
<button label="Teilen" name="share_btn" tool_tip="Inventarobjekt teilen"/>
- <button label="Shop" name="shop_btn" tool_tip="Marktplatz-Webseite öffnen"/>
+ <button label="Einkaufen" name="shop_btn" tool_tip="Marktplatz-Webseite öffnen"/>
<button label="Anziehen" name="wear_btn" tool_tip="Ausgewähltes Outfit tragen"/>
<button label="Wiedergeben" name="play_btn"/>
<button label="Teleportieren" name="teleport_btn" tool_tip="Zu ausgewähltem Standort teleportieren"/>
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 09935019ab..4ba187dbd6 100644
--- a/indra/newview/skins/default/xui/de/sidepanel_item_info.xml
+++ b/indra/newview/skins/default/xui/de/sidepanel_item_info.xml
@@ -15,9 +15,15 @@
<panel.string name="acquiredDate">
[wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local]
</panel.string>
+ <panel.string name="origin_inventory">
+ (Inventar)
+ </panel.string>
+ <panel.string name="origin_inworld">
+ (Inworld)
+ </panel.string>
<text name="title" value="Objektprofil"/>
- <text name="where" value="(Inventar)"/>
- <panel label="">
+ <text name="origin" value="(Inventar)"/>
+ <panel label="" name="item_profile">
<text name="LabelItemNameTitle">
Name:
</text>
@@ -27,30 +33,24 @@
<text name="LabelCreatorTitle">
Ersteller:
</text>
- <text name="LabelCreatorName">
- Nicole Linden
- </text>
+ <text name="LabelCreatorName"/>
<button label="Profil" name="BtnCreator"/>
<text name="LabelOwnerTitle">
Eigentümer:
</text>
- <text name="LabelOwnerName">
- Thrax Linden
- </text>
+ <text name="LabelOwnerName"/>
<button label="Profil" name="BtnOwner"/>
<text name="LabelAcquiredTitle">
Erworben:
</text>
- <text name="LabelAcquiredDate">
- Mittwoch, 24. Mai 2006, 12:50:46
- </text>
+ <text name="LabelAcquiredDate"/>
<panel name="perms_inv">
<text name="perm_modify">
Sie können:
</text>
<check_box label="Bearbeiten" name="CheckOwnerModify"/>
<check_box label="Kopieren" name="CheckOwnerCopy"/>
- <check_box label="Transferieren" name="CheckOwnerTransfer"/>
+ <check_box label="Übertragen" name="CheckOwnerTransfer"/>
<text name="AnyoneLabel">
Jeder:
</text>
@@ -58,13 +58,13 @@
<text name="GroupLabel">
Gruppe:
</text>
- <check_box label="Teilen" name="CheckShareWithGroup" tool_tip="Mit allen Mitgliedern der zugeordneten Gruppe, Ihre Berechtigungen dieses Objekt zu ändern teilen. Sie müssen Übereignen, um Rollenbeschränkungen zu aktivieren."/>
+ <check_box label="Teilen" name="CheckShareWithGroup" tool_tip="Mit allen Mitgliedern der zugeordneten Gruppe, Ihre Berechtigungen dieses Objekt zu ändern, teilen. Sie müssen Übereignen, um Rollenbeschränkungen zu aktivieren."/>
<text name="NextOwnerLabel">
Nächster Eigentümer:
</text>
<check_box label="Bearbeiten" name="CheckNextOwnerModify"/>
<check_box label="Kopieren" name="CheckNextOwnerCopy"/>
- <check_box label="Transferieren" name="CheckNextOwnerTransfer" tool_tip="Nächster Eigentümer kann dieses Objekt weitergeben oder -verkaufen"/>
+ <check_box label="Übertragen" name="CheckNextOwnerTransfer" tool_tip="Nächster Eigentümer kann dieses Objekt weitergeben oder -verkaufen"/>
</panel>
<check_box label="Zum Verkauf" name="CheckPurchase"/>
<combo_box name="combobox sale copy">
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 990543b725..6474576c0f 100644
--- a/indra/newview/skins/default/xui/de/sidepanel_task_info.xml
+++ b/indra/newview/skins/default/xui/de/sidepanel_task_info.xml
@@ -37,7 +37,7 @@
Mischverkauf
</panel.string>
<text name="title" value="Objektprofil"/>
- <text name="where" value="(inworld)"/>
+ <text name="where" value="(Inworld)"/>
<panel label="" name="properties_panel">
<text name="Name:">
Name:
diff --git a/indra/newview/skins/default/xui/de/strings.xml b/indra/newview/skins/default/xui/de/strings.xml
index bc4f20df26..1adc4e3db1 100644
--- a/indra/newview/skins/default/xui/de/strings.xml
+++ b/indra/newview/skins/default/xui/de/strings.xml
@@ -100,9 +100,21 @@
<string name="LoginDownloadingClothing">
Kleidung wird geladen...
</string>
+ <string name="InvalidCertificate">
+ Der Server hat ein ungültiges oder korruptes Zertifikate zurückgegeben. Bitte kontaktieren Sie den Grid-Administrator.
+ </string>
+ <string name="CertInvalidHostname">
+ Ein ungültiger Hostname wurde verwendet, um auf den Server zuzugreifen. Bitte überprüfen Sie Ihre SLURL oder den Grid-Hostnamen.
+ </string>
<string name="CertExpired">
Das vom Grid ausgegebene Zertifikate ist abgelaufen. Bitte überprüfen Sie Ihre Systemuhr oder kontaktieren Sie Ihren Grid-Administrator.
</string>
+ <string name="CertKeyUsage">
+ Das vom Server ausgegebene Zertifikat konnte nicht für SSL verwendet werden. Bitte kontaktieren Sie Ihren Grid-Administrator.
+ </string>
+ <string name="CertBasicConstraints">
+ In der Zertifikatskette des Servers befanden sich zu viele Zertifikate. Bitte kontaktieren Sie Ihren Grid-Administrator.
+ </string>
<string name="CertInvalidSignature">
Die Zertifikatsunterschrift des Gridservers konnte nicht bestätigt werden. Bitte kontaktieren Sie Ihren Grid-Administrator.
</string>
@@ -184,6 +196,7 @@
<string name="TooltipMustSingleDrop">
Sie können nur ein einzelnes Objekt hierher ziehen
</string>
+ <string name="TooltipPrice" value="[AMOUNT] L$"/>
<string name="TooltipHttpUrl">
Anklicken, um Webseite anzuzeigen
</string>
@@ -236,7 +249,6 @@
Anklicken, um Befehl secondlife:// auszuführen
</string>
<string name="CurrentURL" value=" CurrentURL: [CurrentURL]"/>
- <string name="TooltipPrice" value="[PRICE] L$"/>
<string name="SLurlLabelTeleport">
Teleportieren nach
</string>
@@ -297,6 +309,9 @@
<string name="ReleaseNotes">
Versionshinweise
</string>
+ <string name="RELEASE_NOTES_BASE_URL">
+ http://wiki.secondlife.com/wiki/Release_Notes/
+ </string>
<string name="LoadingData">
Wird geladen...
</string>
@@ -648,6 +663,9 @@
<string name="worldmap_offline">
Offline
</string>
+ <string name="worldmap_item_tooltip_format">
+ [PRICE] L$ für [AREA] m²
+ </string>
<string name="worldmap_results_none_found">
Nicht gefunden.
</string>
@@ -852,12 +870,96 @@
<string name="invalid">
ungültig
</string>
+ <string name="none">
+ keine
+ </string>
+ <string name="shirt_not_worn">
+ Hemd nicht getragen
+ </string>
+ <string name="pants_not_worn">
+ Hosen nicht getragen
+ </string>
+ <string name="shoes_not_worn">
+ Schuhe nicht getragen
+ </string>
+ <string name="socks_not_worn">
+ Socken nicht getragen
+ </string>
+ <string name="jacket_not_worn">
+ Jacke nicht getragen
+ </string>
+ <string name="gloves_not_worn">
+ Handschuhe nicht getragen
+ </string>
+ <string name="undershirt_not_worn">
+ Unterhemd nicht getragen
+ </string>
+ <string name="underpants_not_worn">
+ Unterhose nicht getragen
+ </string>
+ <string name="skirt_not_worn">
+ Rock nicht getragen
+ </string>
+ <string name="alpha_not_worn">
+ Alpha nicht getragen
+ </string>
+ <string name="tattoo_not_worn">
+ Tätowierung nicht getragen
+ </string>
+ <string name="invalid_not_worn">
+ ungültig
+ </string>
+ <string name="create_new_shape">
+ Neue Form/Gestalt erstellen
+ </string>
+ <string name="create_new_skin">
+ Neue Haut erstellen
+ </string>
+ <string name="create_new_hair">
+ Neue Haare erstellen
+ </string>
+ <string name="create_new_eyes">
+ Neue Augen erstellen
+ </string>
+ <string name="create_new_shirt">
+ Neues Hemd erstellen
+ </string>
+ <string name="create_new_pants">
+ Neue Hose erstellen
+ </string>
+ <string name="create_new_shoes">
+ Neue Schuhe erstellen
+ </string>
+ <string name="create_new_socks">
+ Neue Socken erstellen
+ </string>
+ <string name="create_new_jacket">
+ Neue Jacke erstellen
+ </string>
+ <string name="create_new_gloves">
+ Neue Handschuhe erstellen
+ </string>
+ <string name="create_new_undershirt">
+ Neues Unterhemd erstellen
+ </string>
+ <string name="create_new_underpants">
+ Neue Unterhose erstellen
+ </string>
+ <string name="create_new_skirt">
+ Neuer Rock erstellen
+ </string>
+ <string name="create_new_alpha">
+ Neue Alpha erstellen
+ </string>
+ <string name="create_new_tattoo">
+ Neue Tätowierung erstellen
+ </string>
+ <string name="create_new_invalid">
+ ungültig
+ </string>
<string name="NewWearable">
Neue/r/s [WEARABLE_ITEM]
</string>
- <string name="CreateNewWearable">
- [WEARABLE_TYPE] erstellen
- </string>
<string name="next">
Weiter
</string>
@@ -925,7 +1027,10 @@
ESC drücken, um zur Normalansicht zurückzukehren
</string>
<string name="InventoryNoMatchingItems">
- Sie haben nicht das Richtige gefunden? Versuchen Sie es mit der [secondlife:///app/search/all Suche].
+ Sie haben nicht das Richtige gefunden? Versuchen Sie es mit der [secondlife:///app/search/all/[SEARCH_TERM] Suche].
+ </string>
+ <string name="PlacesNoMatchingItems">
+ Sie haben nicht das Richtige gefunden? Versuchen Sie es mit der [secondlife:///app/search/places/[SEARCH_TERM] Suche].
</string>
<string name="FavoritesNoMatchingItems">
Landmarke hier hin ziehen, um diese hinzuzufügen.
@@ -959,8 +1064,10 @@
<string name="AnimFlagStop" value=" Animation stoppen:"/>
<string name="AnimFlagStart" value=" Animation starten:"/>
<string name="Wave" value=" Winken"/>
+ <string name="GestureActionNone" value="Keine"/>
<string name="HelloAvatar" value=" Hallo Avatar!"/>
<string name="ViewAllGestures" value=" Alle anzeigen &gt;&gt;"/>
+ <string name="GetMoreGestures" value="Mehr &gt;&gt;"/>
<string name="Animations" value=" Animationen,"/>
<string name="Calling Cards" value=" Visitenkarten,"/>
<string name="Clothing" value=" Kleidung,"/>
@@ -1037,12 +1144,18 @@
<string name="InvFolder Gestures">
Gesten
</string>
+ <string name="InvFolder Favorite">
+ Favoriten
+ </string>
<string name="InvFolder favorite">
Favoriten
</string>
<string name="InvFolder Current Outfit">
Aktuelles Outfit
</string>
+ <string name="InvFolder Initial Outfits">
+ Ursprüngliche Outfits
+ </string>
<string name="InvFolder My Outfits">
Meine Outfits
</string>
@@ -1362,6 +1475,7 @@
<string name="SummaryForTheWeek" value="Zusammenfassung für diese Woche, beginnend am "/>
<string name="NextStipendDay" value=". Der nächste Stipendium-Tag ist "/>
<string name="GroupIndividualShare" value=" Gruppenanteil Einzelanteil"/>
+ <string name="GroupColumn" value="Gruppe"/>
<string name="Balance">
Kontostand
</string>
@@ -1557,6 +1671,9 @@
<string name="ATTACH_HUD_BOTTOM_RIGHT">
HUD unten rechts
</string>
+ <string name="Bad attachment point">
+ Ungültige Stelle für Anhang
+ </string>
<string name="CursorPos">
Zeile [LINE], Spalte [COLUMN]
</string>
@@ -1569,17 +1686,23 @@
<string name="PanelDirEventsDateText">
[mthnum,datetime,slt]/[day,datetime,slt]
</string>
- <string name="PanelContentsNewScript">
- Neues Skript
- </string>
<string name="PanelContentsTooltip">
Objektinhalt
</string>
+ <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>
+ <string name="NoOutfits">
+ Sie haben noch keine Outfits. Versuchen Sie es mit der [secondlife:///app/search/all Suche].
+ </string>
+ <string name="NoOutfitsTabsMatched">
+ Sie haben nicht das Richtige gefunden? Versuchen Sie es mit der [secondlife:///app/search/all/[SEARCH_TERM] Suche].
+ </string>
<string name="MuteByName">
- (nach Namen)
+ (Nach Namen)
</string>
<string name="MuteAgent">
(Einwohner)
@@ -1590,6 +1713,9 @@
<string name="MuteGroup">
(Gruppe)
</string>
+ <string name="MuteExternal">
+ (Extern)
+ </string>
<string name="RegionNoCovenant">
Für diesen Grundbesitz liegt kein Vertrag vor.
</string>
@@ -3405,6 +3531,15 @@ Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich bitte an [SUPPORT_
<string name="answered_call">
Ihr Anruf wurde entgegengenommen
</string>
+ <string name="you_started_call">
+ Sie haben einen Voice-Anruf begonnen
+ </string>
+ <string name="you_joined_call">
+ Sie sind dem Gespräch beigetreten
+ </string>
+ <string name="name_started_call">
+ [NAME] hat einen Voice-Anruf begonnen
+ </string>
<string name="ringing-im">
Verbindung wird hergestellt...
</string>
@@ -3555,6 +3690,9 @@ Falls diese Meldung weiterhin angezeigt wird, wenden Sie sich bitte an [SUPPORT_
<string name="group_role_owners">
Eigentümer
</string>
+ <string name="group_member_status_online">
+ Online
+ </string>
<string name="uploading_abuse_report">
Bericht wird hochgeladen...
@@ -3608,15 +3746,81 @@ Missbrauchsbericht
<string name="Invalid Wearable">
Ungültiges Objekt
</string>
+ <string name="New Gesture">
+ Neue Geste
+ </string>
<string name="New Script">
Neues Skript
</string>
+ <string name="New Note">
+ Neue Notiz
+ </string>
<string name="New Folder">
Neuer Ordner
</string>
<string name="Contents">
Inhalt
</string>
+ <string name="Gesture">
+ Gesten
+ </string>
+ <string name="Male Gestures">
+ Männliche Gesten
+ </string>
+ <string name="Female Gestures">
+ Weibliche Gesten
+ </string>
+ <string name="Other Gestures">
+ Andere Gesten
+ </string>
+ <string name="Speech Gestures">
+ Sprachgesten
+ </string>
+ <string name="Common Gestures">
+ Häufig verwendete Gesten
+ </string>
+ <string name="Male - Excuse me">
+ Männlich - Excuse me
+ </string>
+ <string name="Male - Get lost">
+ Männlich - Get lost
+ </string>
+ <string name="Male - Blow kiss">
+ Männlich - Kusshand
+ </string>
+ <string name="Male - Boo">
+ Männlich - Buh
+ </string>
+ <string name="Male - Bored">
+ Männlich - Gelangweilt
+ </string>
+ <string name="Male - Hey">
+ Männlich - Hey
+ </string>
+ <string name="Male - Laugh">
+ Männlich - Lachen
+ </string>
+ <string name="Male - Repulsed">
+ Männlich - Angewidert
+ </string>
+ <string name="Male - Shrug">
+ Männlich - Achselzucken
+ </string>
+ <string name="Male - Stick tougue out">
+ Männlich - Zunge herausstrecken
+ </string>
+ <string name="Male - Wow">
+ Männlich - Wow
+ </string>
+ <string name="Female - Chuckle">
+ Weiblich - Kichern
+ </string>
+ <string name="Female - Cry">
+ Weiblich - Weinen
+ </string>
+ <string name="Female - Embarrassed">
+ Weiblich - Verlegen
+ </string>
<string name="Female - Excuse me">
Weiblich - Räuspern
</string>
@@ -3629,6 +3833,39 @@ Missbrauchsbericht
<string name="Female - Boo">
Weiblich - Buh
</string>
+ <string name="Female - Bored">
+ Weiblich - Gelangweilt
+ </string>
+ <string name="Female - Hey">
+ Weiblich - Hey
+ </string>
+ <string name="Female - Hey baby">
+ Weiblich - Hey Süße(r)
+ </string>
+ <string name="Female - Laugh">
+ Weiblich - Lachen
+ </string>
+ <string name="Female - Looking good">
+ Weiblich - Looking good
+ </string>
+ <string name="Female - Over here">
+ Weiblich - Over here
+ </string>
+ <string name="Female - Please">
+ Weiblich - Please
+ </string>
+ <string name="Female - Repulsed">
+ Weiblich - Angewidert
+ </string>
+ <string name="Female - Shrug">
+ Weiblich - Achselzucken
+ </string>
+ <string name="Female - Stick tougue out">
+ Weiblich - Zunge herausstrecken
+ </string>
+ <string name="Female - Wow">
+ Weiblich - Wow
+ </string>
<string name="AvatarBirthDateFormat">
[mthnum,datetime,slt]/[day,datetime,slt]/[year,datetime,slt]
</string>
@@ -3666,4 +3903,46 @@ Missbrauchsbericht
<string name="dateTimePM">
Uhr
</string>
+ <string name="LocalEstimateUSD">
+ [AMOUNT] US$
+ </string>
+ <string name="Membership">
+ Mitgliedschaft
+ </string>
+ <string name="Roles">
+ Rollen
+ </string>
+ <string name="Group Identity">
+ Gruppenidentität
+ </string>
+ <string name="Parcel Management">
+ Parzellenverwaltung
+ </string>
+ <string name="Parcel Identity">
+ Parzellenidentität
+ </string>
+ <string name="Parcel Settings">
+ Parzelleneinstellungen
+ </string>
+ <string name="Parcel Powers">
+ Parzellenfähigkeiten
+ </string>
+ <string name="Parcel Access">
+ Parzellenzugang
+ </string>
+ <string name="Parcel Content">
+ Parzelleninhalt
+ </string>
+ <string name="Object Management">
+ Objektmanagement
+ </string>
+ <string name="Accounting">
+ Kontoführung
+ </string>
+ <string name="Notices">
+ Mitteilungen
+ </string>
+ <string name="Chat">
+ Chat
+ </string>
</strings>
diff --git a/indra/newview/skins/default/xui/en/alert_button.xml b/indra/newview/skins/default/xui/en/alert_button.xml
index 632564d793..a60e9afab1 100644
--- a/indra/newview/skins/default/xui/en/alert_button.xml
+++ b/indra/newview/skins/default/xui/en/alert_button.xml
@@ -5,7 +5,7 @@
label_shadow="true"
auto_resize="false"
image_overlay_alignment="center"
- use_ellipses="flse"
+ use_ellipses="false"
pad_right="10"
pad_left="10"
is_toggle="false"
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 9f1bdb5193..5535a5dc2a 100644
--- a/indra/newview/skins/default/xui/en/alert_check_box.xml
+++ b/indra/newview/skins/default/xui/en/alert_check_box.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<check_box
- text_enabled_color="LabelTextColor"
- text_disabled_color="LabelDisabledColor"
+ label_text.text_color="LabelTextColor"
+ label_text.text_readonly_color="LabelDisabledColor"
font="SansSerif"
follows="left|top"
name="check"/> \ No newline at end of file
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 b365040c20..e7dd62eb64 100644
--- a/indra/newview/skins/default/xui/en/favorites_bar_button.xml
+++ b/indra/newview/skins/default/xui/en/favorites_bar_button.xml
@@ -22,6 +22,6 @@
pad_right="9"
scale_image="true"
tab_stop="false"
- top="0"
+ bottom="0"
use_ellipses="true"
width="140" />
diff --git a/indra/newview/skins/default/xui/en/floater_aaa.xml b/indra/newview/skins/default/xui/en/floater_aaa.xml
index b9bc45a10b..930bbaa8cb 100644
--- a/indra/newview/skins/default/xui/en/floater_aaa.xml
+++ b/indra/newview/skins/default/xui/en/floater_aaa.xml
@@ -20,8 +20,8 @@
<string name="nudge_parabuild" translate="false">Nudge 1</string>
<string name="test_the_vlt">This string CHANGE2 is extracted.</string>
<string name="testing_eli">Just a test. changes.</string>
- <chat_history
- allow_html="true"
+ <text_editor
+ parse_urls="true"
bg_readonly_color="ChatHistoryBgColor"
bg_writeable_color="ChatHistoryBgColor"
border_visible="false"
@@ -32,26 +32,51 @@
layout="topleft"
height="260"
name="chat_history"
+ max_length="200000"
parse_highlights="true"
text_color="ChatHistoryTextColor"
text_readonly_color="ChatHistoryTextColor"
translate="false"
+ track_end="true"
+ wrap="true"
width="320">
-Really long line that is long enough to wrap once with jyg descenders.
-Really long line that is long enough to wrap once with jyg descenders.
-Really long line that is long enough to wrap once with jyg descenders.
-Really long line that is long enough to wrap once with jyg descenders.
-Really long line that is long enough to wrap once with jyg descenders.
-Really long line that is long enough to wrap once with jyg descenders.
-Really long line that is long enough to wrap once with jyg descenders.
-Really long line that is long enough to wrap once with jyg descenders.
-Really long line that is long enough to wrap once with jyg descenders.
-Really long line that is long enough to wrap once with jyg descenders.
-Really long line that is long enough to wrap once with jyg descenders.
-Really long line that is long enough to wrap once with jyg descenders.
-Really long line that is long enough to wrap once with jyg descenders.
-Really long line that is long enough to wrap once with jyg descenders.
-Really long line that is long enough to wrap once with jyg descenders.
-Really long line that is long enough to wrap once with jyg descenders.
- </chat_history>
+ Really long line that is long enough to wrap once with jyg descenders.
+ Really long line that is long enough to wrap once with jyg descenders.
+ Really long line that is long enough to wrap once with jyg descenders.
+ Really long line that is long enough to wrap once with jyg descenders.
+ Really long line that is long enough to wrap once with jyg descenders.
+ Really long line that is long enough to wrap once with jyg descenders.
+ Really long line that is long enough to wrap once with jyg descenders.
+ Really long line that is long enough to wrap once with jyg descenders.
+ Really long line that is long enough to wrap once with jyg descenders.
+ Really long line that is long enough to wrap once with jyg descenders.
+ Really long line that is long enough to wrap once with jyg descenders.
+ Really long line that is long enough to wrap once with jyg descenders.
+ Really long line that is long enough to wrap once with jyg descenders.
+ Really long line that is long enough to wrap once with jyg descenders.
+ Really long line that is long enough to wrap once with jyg descenders.
+ Really long line that is long enough to wrap once with jyg descenders.
+ Really long line that is long enough to wrap once with jyg descenders.
+ Really long line that is long enough to wrap once with jyg descenders.
+ Really long line that is long enough to wrap once with jyg descenders.
+ Really long line that is long enough to wrap once with jyg descenders.
+ Really long line that is long enough to wrap once with jyg descenders.
+ Really long line that is long enough to wrap once with jyg descenders.
+ Really long line that is long enough to wrap once with jyg descenders.
+ Really long line that is long enough to wrap once with jyg descenders.
+ Really long line that is long enough to wrap once with jyg descenders.
+ Really long line that is long enough to wrap once with jyg descenders.
+ Really long line that is long enough to wrap once with jyg descenders.
+ Really long line that is long enough to wrap once with jyg descenders.
+ Really long line that is long enough to wrap once with jyg descenders.
+ Really long line that is long enough to wrap once with jyg descenders.
+ Really long line that is long enough to wrap once with jyg descenders.
+ Really long line that is long enough to wrap once with jyg descenders.
+ Really long line that is long enough to wrap once with jyg descenders.
+ Really long line that is long enough to wrap once with jyg descenders.
+ Really long line that is long enough to wrap once with jyg descenders.
+ Really long line that is long enough to wrap once with jyg descenders.
+ Really long line that is long enough to wrap once with jyg descenders.
+ Really long line that is long enough to wrap once with jyg descenders.
+ </text_editor>
</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_about.xml b/indra/newview/skins/default/xui/en/floater_about.xml
index b5be03346e..f4d65bdb3a 100644
--- a/indra/newview/skins/default/xui/en/floater_about.xml
+++ b/indra/newview/skins/default/xui/en/floater_about.xml
@@ -73,7 +73,7 @@ Packets Lost: [PACKETS_LOST,number,0]/[PACKETS_IN,number,0] ([PACKETS_PCT,number
help_topic="about_support_tab"
name="support_panel">
<text_editor
- allow_html="true"
+ parse_urls="true"
follows="top|left"
font="SansSerif"
height="343"
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 b9489895ae..e6f11cac60 100644
--- a/indra/newview/skins/default/xui/en/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/en/floater_about_land.xml
@@ -191,9 +191,10 @@
type="string"
length="1"
follows="left|top"
- height="16"
+ height="20"
layout="topleft"
left_pad="2"
+ valign="center"
name="ContentRatingText"
top_delta="0"
width="250">
@@ -207,7 +208,7 @@
layout="topleft"
left="10"
name="Owner:"
- top_pad="5"
+ top_pad="1"
width="100">
Owner:
</text>
@@ -729,8 +730,10 @@ Leyla Linden </text>
height="16"
layout="topleft"
left_pad="10"
+ top_delta="-3"
mouse_opaque="false"
name="region_maturity_text"
+ valign="center"
width="150">
Adult
</text>
@@ -743,6 +746,7 @@ Leyla Linden </text>
left="10"
mouse_opaque="false"
name="resellable_lbl"
+ top_pad="9"
width="100">
Resale:
</text>
@@ -1040,7 +1044,7 @@ Leyla Linden </text>
left="28"
name="Selected / sat upon:"
top_pad="5"
- width="176">
+ width="230">
Selected / sat upon:
</text>
<text
@@ -1049,7 +1053,7 @@ Leyla Linden </text>
follows="left|top"
height="23"
layout="topleft"
- left_delta="172"
+ left_delta="220"
name="selected_objects_text"
top_delta="0"
width="48">
@@ -1139,11 +1143,11 @@ Leyla Linden </text>
<name_list.columns
label="Count"
name="count"
- width="60" />
+ width="67" />
<name_list.columns
label="Most Recent"
name="mostrecent"
- width="170" />
+ width="163" />
</name_list>
</panel>
<panel
@@ -1468,8 +1472,10 @@ Only large parcels can be listed in search.
left="14"
name="MatureCheck"
top="177"
+ label_text.valign="center"
+ label_text.v_pad="-5"
tool_tip=" "
- width="107" />
+ width="200" />
<text
type="string"
length="1"
@@ -1489,6 +1495,7 @@ Only large parcels can be listed in search.
layout="topleft"
left="14"
name="snapshot_ctrl"
+ fallback_image="default_land_picture.j2c"
tool_tip="Click to choose a picture"
width="195" />
<text
@@ -1923,6 +1930,8 @@ Only large parcels can be listed in search.
left_delta="0"
name="public_access"
top_pad="5"
+ label_text.valign="center"
+ label_text.v_pad="-7"
width="278" />
<text
type="string"
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 d007ceff98..457142f11c 100644
--- a/indra/newview/skins/default/xui/en/floater_bulk_perms.xml
+++ b/indra/newview/skins/default/xui/en/floater_bulk_perms.xml
@@ -7,7 +7,7 @@
name="floaterbulkperms"
help_topic="floaterbulkperms"
title="EDIT CONTENT PERMISSIONS"
- width="270">
+ width="300">
<floater.string
name="nothing_to_modify_text">
Selection contains no editable contents.
@@ -164,7 +164,7 @@
label="√ All"
left="180"
top="26"
- width="70">
+ width="115">
<button.commit_callback
function="BulkPermission.CheckAll" />
</button>
@@ -176,7 +176,7 @@
layout="topleft"
top_pad="8"
name="check_none"
- width="70" >
+ width="115" >
<button.commit_callback
function="BulkPermission.UncheckAll"/>
</button>
@@ -199,10 +199,11 @@
length="1"
follows="left|top"
layout="topleft"
- height="16"
+ height="28"
left="10"
name="GroupLabel"
- width="88">
+ width="92"
+ word_wrap="true">
Group:
</text>
<check_box
@@ -212,17 +213,18 @@
layout="topleft"
top_pad="0"
name="share_with_group"
- width="88" />
+ width="92" />
<text
type="string"
length="1"
follows="left|top"
- height="16"
+ height="28"
layout="topleft"
name="AnyoneLabel"
- left="100"
+ left="104"
top="110"
- width="88">
+ width="92"
+ word_wrap="true">
Anyone:
</text>
<check_box
@@ -232,17 +234,18 @@
layout="topleft"
top_pad="0"
name="everyone_copy"
- width="88" />
+ width="92" />
<text
type="string"
length="1"
follows="left|top"
- height="16"
+ height="28"
layout="topleft"
name="NextOwnerLabel"
top="110"
- left="185"
- width="88">
+ left="189"
+ width="92"
+ word_wrap="true">
Next owner:
</text>
<check_box
@@ -252,7 +255,7 @@
layout="topleft"
name="next_owner_modify"
top_pad="0"
- width="83" />
+ width="92" />
<check_box
control_name="BulkChangeNextOwnerCopy"
height="16"
@@ -260,7 +263,7 @@
layout="topleft"
top_pad="0"
name="next_owner_copy"
- width="88">
+ width="92">
<check_box.commit_callback
function="BulkPermission.CommitCopy"/>
</check_box>
@@ -274,7 +277,7 @@
layout="topleft"
name="next_owner_transfer"
tool_tip="Next owner can give away or resell this object"
- width="106" />
+ width="92" />
<scroll_list
enabled="false"
follows="all"
@@ -289,7 +292,7 @@
height="23"
label="OK"
layout="topleft"
- left="65"
+ left="95"
name="apply"
top_pad="10"
width="90">
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 4b990fa566..b9c415633f 100644
--- a/indra/newview/skins/default/xui/en/floater_buy_currency_html.xml
+++ b/indra/newview/skins/default/xui/en/floater_buy_currency_html.xml
@@ -16,6 +16,7 @@
https://quick-buy.secondlife.com/[LANGUAGE]/display/?sa=[SPECIFIC_AMOUNT]&amp;sum=[SUM]&amp;msg=[MSG]&amp;bal=[BAL]
</floater.string>
<web_browser
+ trusted_content="true"
follows="all"
layout="topleft"
left="1"
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 acaa508792..c88de878f4 100644
--- a/indra/newview/skins/default/xui/en/floater_buy_land.xml
+++ b/indra/newview/skins/default/xui/en/floater_buy_land.xml
@@ -380,6 +380,7 @@ supports [AMOUNT2] objects
width="275" />
<texture_picker
enabled="false"
+ fallback_image="default_land_picture.j2c"
follows="top|left"
height="135"
layout="topleft"
@@ -528,13 +529,14 @@ sold with objects
length="1"
follows="top|left"
font="SansSerifBig"
- height="16"
+ height="32"
layout="topleft"
left="72"
name="account_action"
right="438"
top="200"
- width="218">
+ width="218"
+ wrap="true">
Upgrade you to premium membership.
</text>
<text
@@ -576,19 +578,21 @@ sold with objects
layout="topleft"
left="0"
name="step_2"
+ top_pad="-10"
width="64" />
<text
type="string"
length="1"
follows="top|left"
font="SansSerifBig"
- height="16"
+ height="32"
layout="topleft"
left="72"
name="land_use_action"
right="438"
top="284"
- width="218">
+ width="218"
+ wrap="true">
Increase your monthly land use fees to US$ 40/month.
</text>
<text
@@ -619,14 +623,15 @@ This parcel is 512 m² of land.
<text
type="string"
length="1"
- bottom_delta="-38"
+ bottom_delta="-22"
follows="top|left"
font="SansSerifBig"
- height="16"
+ height="32"
layout="topleft"
left="72"
name="purchase_action"
- right="438">
+ right="438"
+ wrap="true">
Pay Joe Resident L$ 4000 for the land
</text>
<text
@@ -664,7 +669,7 @@ This parcel is 512 m² of land.
layout="topleft"
left="170"
name="currency_amt"
- top="408"
+ top="424"
width="80">
1000
</line_editor>
@@ -680,7 +685,7 @@ This parcel is 512 m² of land.
layout="topleft"
left="260"
name="currency_est"
- top="409"
+ top="425"
width="178">
for approx. [LOCAL_AMOUNT]
</text>
@@ -712,7 +717,7 @@ This parcel is 512 m² of land.
layout="topleft"
left="70"
name="buy_btn"
- top="448"
+ top="460"
width="100" />
<button
follows="bottom|right"
diff --git a/indra/newview/skins/default/xui/en/floater_camera.xml b/indra/newview/skins/default/xui/en/floater_camera.xml
index 8c3aa2c9a4..da2be18db6 100644
--- a/indra/newview/skins/default/xui/en/floater_camera.xml
+++ b/indra/newview/skins/default/xui/en/floater_camera.xml
@@ -71,7 +71,8 @@
image_name="Cam_Preset_Front_Off" />
<panel_camera_item.selected_picture
image_name="Cam_Preset_Front_On" />
- <panel_camera_item.text>
+ <panel_camera_item.text
+ name="front_view_text">
Front View
</panel_camera_item.text>
</panel_camera_item>
@@ -85,7 +86,8 @@
image_name="Cam_Preset_Side_Off" />
<panel_camera_item.selected_picture
image_name="Cam_Preset_Side_On" />
- <panel_camera_item.text>
+ <panel_camera_item.text
+ name="side_view_text">
Side View
</panel_camera_item.text>
</panel_camera_item>
@@ -100,7 +102,8 @@
image_name="Cam_Preset_Back_Off" />
<panel_camera_item.selected_picture
image_name="Cam_Preset_Back_On" />
- <panel_camera_item.text>
+ <panel_camera_item.text
+ name="rear_view_text">
Rear View
</panel_camera_item.text>
</panel_camera_item>
@@ -122,7 +125,8 @@
<panel_camera_item.mousedown_callback
function="CameraPresets.ChangeView"
parameter="object_view" />
- <panel_camera_item.text>
+ <panel_camera_item.text
+ name="object_view_text">
Object View
</panel_camera_item.text>
<panel_camera_item.picture
@@ -136,7 +140,8 @@
<panel_camera_item.mousedown_callback
function="CameraPresets.ChangeView"
parameter="mouselook_view" />
- <panel_camera_item.text>
+ <panel_camera_item.text
+ name="mouselook_view_text">
Mouselook View
</panel_camera_item.text>
<panel_camera_item.picture
diff --git a/indra/newview/skins/default/xui/en/floater_customize.xml b/indra/newview/skins/default/xui/en/floater_customize.xml
deleted file mode 100644
index 01bced81d0..0000000000
--- a/indra/newview/skins/default/xui/en/floater_customize.xml
+++ /dev/null
@@ -1,3389 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<floater
- legacy_header_height="18"
- can_minimize="false"
- follows="left|top"
- height="583"
- layout="topleft"
- left_delta="-3"
- name="floater customize"
- help_topic="floater_customize"
- save_rect="true"
- title="APPEARANCE"
- top_delta="-185"
- width="600">
- <tab_container
- height="517"
- layout="topleft"
- left="10"
- name="customize tab container"
- tab_min_width="96"
- tab_position="left"
- tab_height="50"
- top="26"
- width="580">
- <text
- type="string"
- length="1"
- follows="left|top"
- height="16"
- layout="topleft"
- left="5"
- name="body_parts_placeholder"
- font="SansSerifSmallBold"
- top="10"
- width="100">
- Body Parts
- </text>
- <placeholder />
- <panel
- border="false"
- background_visible="true"
- bg_alpha_color="DkGray2"
- follows="left|top|right|bottom"
- height="508"
- label="Shape"
- layout="topleft"
- name="Shape"
- help_topic="customize_shape_tab"
- width="400">
- <icon
- follows="top|right"
- height="18"
- image_name="Lock"
- layout="topleft"
- left="315"
- mouse_opaque="true"
- name="square"
- top="4"
- width="18" />
- <icon
- height="16"
- top="10"
- left="10"
- layout="topleft"
- mouse_opaque="true"
- width="16" />
- <button
- follows="left|top"
- height="23"
- label="Create New Shape"
- label_selected="Create New Shape"
- layout="topleft"
- left="10"
- name="Create New"
- top="104"
- width="160" />
- <button
- follows="left|top"
- height="23"
- label="Body"
- label_selected="Body"
- layout="topleft"
- left="10"
- name="Body"
- top="63"
- width="82" />
- <button
- follows="left|top"
- height="23"
- label="Head"
- label_selected="Head"
- layout="topleft"
- left_delta="0"
- name="Head"
- top_pad="4"
- width="82" />
- <button
- follows="left|top"
- height="23"
- label="Eyes"
- label_selected="Eyes"
- layout="topleft"
- left_delta="0"
- name="Eyes"
- top_pad="4"
- width="82" />
- <button
- follows="left|top"
- height="23"
- label="Ears"
- label_selected="Ears"
- layout="topleft"
- left_delta="0"
- name="Ears"
- top_pad="4"
- width="82" />
- <button
- follows="left|top"
- height="23"
- label="Nose"
- label_selected="Nose"
- layout="topleft"
- left_delta="0"
- name="Nose"
- top_pad="4"
- width="82" />
- <button
- follows="left|top"
- height="23"
- label="Mouth"
- label_selected="Mouth"
- layout="topleft"
- left_delta="0"
- name="Mouth"
- top_pad="4"
- width="82" />
- <button
- follows="left|top"
- height="23"
- label="Chin"
- label_selected="Chin"
- layout="topleft"
- left_delta="0"
- name="Chin"
- top_pad="4"
- width="82" />
- <button
- follows="left|top"
- height="23"
- label="Torso"
- label_selected="Torso"
- layout="topleft"
- left_delta="0"
- name="Torso"
- top_pad="4"
- width="82" />
- <button
- follows="left|top"
- height="23"
- label="Legs"
- label_selected="Legs"
- layout="topleft"
- left_delta="0"
- name="Legs"
- top_pad="4"
- width="82" />
- <radio_group
- control_name="AvatarSex"
- height="34"
- layout="topleft"
- name="sex radio"
- top_pad="10"
- width="82">
- <radio_item
- height="16"
- label="Female"
- layout="topleft"
- name="radio"
- value="0"
- width="82" />
- <radio_item
- height="16"
- label="Male"
- layout="topleft"
- name="radio2"
- value="1"
- width="82" />
- </radio_group>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title"
- top="10"
- width="355">
- [DESC]
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title_no_modify"
- top="10"
- width="355">
- [DESC]: cannot modify
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title_loading"
- top="10"
- width="355">
- [DESC]: loading...
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title_not_worn"
- top="10"
- width="355">
- [DESC]: not worn
- </text>
- <text
- type="string"
- length="1"
- follows="left|top"
- height="16"
- layout="topleft"
- left="10"
- name="path"
- top="36"
- width="373">
- Located in [PATH]
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- height="28"
- layout="topleft"
- left="10"
- name="not worn instructions"
- top="31"
- word_wrap="true"
- width="373">
- Put on a new shape by dragging one from your inventory to your avatar. Alternately, you create a new one from scratch and wear it.
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- height="28"
- layout="topleft"
- left="10"
- name="no modify instructions"
- top="31"
- word_wrap="true"
- width="373">
- You do not have permission to modify this wearable.
- </text>
- <text
- type="string"
- length="1"
- top="488"
- follows="left|top"
- font="SansSerif"
- halign="right"
- height="23"
- layout="topleft"
- left="10"
- name="Item Action Label"
- width="130">
- Shape:
- </text>
- <button
- follows="left|bottom"
- height="23"
- label="Save"
- label_selected="Save"
- layout="topleft"
- name="Save"
- left_pad="2"
- top="477"
- width="82" />
- <button
- follows="left|bottom"
- height="23"
- label="Save As..."
- label_selected="Save As..."
- layout="topleft"
- name="Save As"
- top="477"
- left_pad="3"
- width="115" />
- <button
- follows="left|bottom"
- height="23"
- label="Revert"
- label_selected="Revert"
- layout="topleft"
- left_pad="3"
- name="Revert"
- top="477"
- width="120" />
- </panel>
- <panel
- border="false"
- background_visible="true"
- bg_alpha_color="DkGray2"
- follows="left|top|right|bottom"
- height="508"
- label="Skin"
- layout="topleft"
- name="Skin"
- help_topic="customize_skin_tab"
- width="400">
- <icon
- follows="top|right"
- height="18"
- image_name="Lock"
- layout="topleft"
- left="315"
- mouse_opaque="true"
- name="square"
- top="4"
- width="18" />
- <icon
- height="16"
- top="10"
- left="10"
- layout="topleft"
- mouse_opaque="true"
- width="16" />
- <button
- follows="left|top"
- height="23"
- label="Create New Skin"
- label_selected="Create New Skin"
- layout="topleft"
- left_delta="0"
- name="Create New"
- top_delta="-249"
- width="160" />
- <button
- follows="left|top"
- height="23"
- label="Skin Color"
- label_selected="Skin Color"
- layout="topleft"
- left="10"
- name="Skin Color"
- top="63"
- width="82" />
- <button
- follows="left|top"
- height="23"
- label="Face Detail"
- label_selected="Face Detail"
- layout="topleft"
- left_delta="0"
- name="Face Detail"
- top_pad="4"
- width="82" />
- <button
- follows="left|top"
- height="23"
- label="Makeup"
- label_selected="Makeup"
- layout="topleft"
- left_delta="0"
- name="Makeup"
- top_pad="4"
- width="82" />
- <button
- follows="left|top"
- height="23"
- label="Body Detail"
- label_selected="Body Detail"
- layout="topleft"
- left_delta="0"
- name="Body Detail"
- top_pad="4"
- width="82" />
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title"
- top="10"
- width="355">
- [DESC]
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title_no_modify"
- top="10"
- width="355">
- [DESC]: cannot modify
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title_loading"
- top="10"
- width="355">
- [DESC]: loading...
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title_not_worn"
- top="10"
- width="355">
- [DESC]: not worn
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- height="14"
- layout="topleft"
- left="10"
- name="path"
- top="36"
- width="373">
- Located in [PATH]
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- height="28"
- layout="topleft"
- left="10"
- name="not worn instructions"
- top="31"
- word_wrap="true"
- width="373">
- Put on a new skin by dragging one from your inventory to your avatar. Alternately, you create a new one from scratch and wear it.
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- height="28"
- layout="topleft"
- left="10"
- name="no modify instructions"
- top="31"
- word_wrap="true"
- width="373">
- You do not have permission to modify this wearable.
- </text>
- <texture_picker
- allow_no_texture="true"
- can_apply_immediately="true"
- default_image_name="Default"
- follows="left|top"
- height="108"
- label="Head Tattoos"
- layout="topleft"
- left="10"
- name="Head Tattoos"
- tool_tip="Click to choose a picture"
- top="176"
- width="82" />
- <texture_picker
- allow_no_texture="true"
- can_apply_immediately="true"
- default_image_name="Default"
- follows="left|top"
- height="108"
- label="Upper Tattoos"
- layout="topleft"
- left_delta="0"
- name="Upper Tattoos"
- tool_tip="Click to choose a picture"
- top_delta="102"
- width="82" />
- <texture_picker
- allow_no_texture="true"
- can_apply_immediately="true"
- default_image_name="Default"
- follows="left|top"
- height="108"
- label="Lower Tattoos"
- layout="topleft"
- left_delta="0"
- name="Lower Tattoos"
- tool_tip="Click to choose a picture"
- top_delta="102"
- width="82" />
- <text
- type="string"
- length="1"
- top="488"
- follows="left|top"
- font="SansSerif"
- halign="right"
- height="23"
- layout="topleft"
- left="10"
- name="Item Action Label"
- width="130">
- Skin:
- </text>
- <button
- follows="left|bottom"
- height="23"
- label="Save"
- label_selected="Save"
- layout="topleft"
- left_pad="2"
- name="Save"
- top="477"
- width="82" />
- <button
- follows="left|bottom"
- height="23"
- label="Save As..."
- label_selected="Save As..."
- layout="topleft"
- left_pad="3"
- name="Save As"
- top="477"
- width="115" />
- <button
- follows="left|bottom"
- height="23"
- label="Revert"
- label_selected="Revert"
- layout="topleft"
- left_pad="3"
- name="Revert"
- top="477"
- width="120" />
- </panel>
- <panel
- border="false"
- background_visible="true"
- bg_alpha_color="DkGray2"
- follows="left|top|right|bottom"
- height="508"
- label="Hair"
- layout="topleft"
- name="Hair"
- help_topic="customize_hair_tab"
- width="400">
- <icon
- follows="top|right"
- height="18"
- image_name="Lock"
- layout="topleft"
- left="315"
- mouse_opaque="true"
- name="square"
- top="4"
- width="18" />
- <icon
- height="16"
- top="10"
- left="10"
- layout="topleft"
- mouse_opaque="true"
- width="16" />
- <button
- follows="left|top"
- height="23"
- label="Color"
- label_selected="Color"
- layout="topleft"
- left="10"
- name="Color"
- top="63"
- width="82" />
- <button
- follows="left|top"
- height="23"
- label="Style"
- label_selected="Style"
- layout="topleft"
- left_delta="0"
- name="Style"
- top_pad="4"
- width="82" />
- <button
- follows="left|top"
- height="23"
- label="Eyebrows"
- label_selected="Eyebrows"
- layout="topleft"
- name="Eyebrows"
- top_pad="4"
- width="82" />
- <button
- follows="left|top"
- height="23"
- label="Facial"
- label_selected="Facial"
- layout="topleft"
- name="Facial"
- top_pad="4"
- width="82" />
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title"
- top="10"
- width="355">
- [DESC]
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title_no_modify"
- top="10"
- width="355">
- [DESC]: cannot modify
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title_loading"
- top="10"
- width="355">
- [DESC]: loading...
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title_not_worn"
- top="10"
- width="355">
- [DESC]: not worn
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- height="14"
- layout="topleft"
- left="10"
- name="path"
- top="36"
- width="373">
- Located in [PATH]
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- height="28"
- layout="topleft"
- left="10"
- name="not worn instructions"
- top="31"
- word_wrap="true"
- width="373">
- Put on a new hair by dragging one from your inventory to your avatar. Alternately, you create a new one from scratch and wear it.
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- height="28"
- layout="topleft"
- left="10"
- name="no modify instructions"
- top="31"
- word_wrap="true"
- width="373">
- You do not have permission to modify this wearable.
- </text>
- <texture_picker
- can_apply_immediately="true"
- default_image_name="Default"
- follows="left|top"
- height="108"
- label="Texture"
- layout="topleft"
- left="10"
- name="Texture"
- tool_tip="Click to choose a picture"
- top="176"
- width="82" />
- <button
- follows="left|top"
- height="23"
- label="Create New Hair"
- label_selected="Create New Hair"
- layout="topleft"
- left_delta="0"
- name="Create New"
- top_delta="-89"
- width="160" />
- <text
- type="string"
- length="1"
- top="488"
- follows="left|top"
- font="SansSerif"
- halign="right"
- height="23"
- layout="topleft"
- name="Item Action Label"
- left="10"
- width="130">
- Hair:
- </text>
- <button
- follows="left|bottom"
- height="23"
- label="Save"
- label_selected="Save"
- layout="topleft"
- left_pad="2"
- name="Save"
- top="477"
- width="82" />
- <button
- follows="left|bottom"
- height="23"
- label="Save As..."
- label_selected="Save As..."
- layout="topleft"
- left_pad="3"
- name="Save As"
- top="477"
- width="115" />
- <button
- follows="left|bottom"
- height="23"
- label="Revert"
- label_selected="Revert"
- layout="topleft"
- left_pad="3"
- name="Revert"
- top="477"
- width="120" />
- </panel>
- <panel
- border="false"
- background_visible="true"
- bg_alpha_color="DkGray2"
- follows="left|top|right|bottom"
- height="508"
- label="Eyes"
- layout="topleft"
- name="Eyes"
- help_topic="customize_eyes_tab"
- width="400">
- <icon
- follows="top|right"
- height="18"
- image_name="Lock"
- layout="topleft"
- left="315"
- mouse_opaque="true"
- name="square"
- top="4"
- width="18" />
- <icon
- height="16"
- top="10"
- left="10"
- layout="topleft"
- mouse_opaque="true"
- width="16" />
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title"
- top="10"
- width="355">
- [DESC]
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title_no_modify"
- top="10"
- width="355">
- [DESC]: cannot modify
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title_loading"
- top="10"
- width="355">
- [DESC]: loading...
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title_not_worn"
- top="10"
- width="355">
- [DESC]: not worn
- </text>
- <text
- type="string"
- length="1"
- follows="left|top"
- height="16"
- layout="topleft"
- left="10"
- name="path"
- top="36"
- width="373">
- Located in [PATH]
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- height="28"
- layout="topleft"
- left="10"
- name="not worn instructions"
- top="31"
- word_wrap="true"
- width="373">
- Put on a new set of eyes by dragging one from your inventory to your avatar. Alternately, you create a new one from scratch and wear it.
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- height="28"
- layout="topleft"
- left="10"
- name="no modify instructions"
- top="31"
- word_wrap="true"
- width="373">
- You do not have permission to modify this wearable.
- </text>
- <texture_picker
- can_apply_immediately="true"
- default_image_name="Default"
- follows="left|top"
- height="108"
- label="Iris"
- layout="topleft"
- left="10"
- name="Iris"
- tool_tip="Click to choose a picture"
- top="66"
- width="82" />
- <button
- follows="left|top"
- height="23"
- label="Create New Eyes"
- label_selected="Create New Eyes"
- layout="topleft"
- name="Create New"
- top="66"
- width="160" />
- <text
- type="string"
- length="1"
- bottom="4"
- follows="left|bottom"
- font="SansSerif"
- halign="right"
- height="23"
- layout="bottomleft"
- name="Item Action Label"
- left="10"
- width="130">
- Eyes:
- </text>
- <button
- follows="left|bottom"
- height="23"
- label="Save"
- label_selected="Save"
- layout="topleft"
- left_pad="2"
- name="Save"
- top="477"
- width="82" />
- <button
- follows="left|bottom"
- height="23"
- label="Save As..."
- label_selected="Save As..."
- layout="topleft"
- left_pad="3"
- name="Save As"
- top="477"
- width="115" />
- <button
- follows="left|bottom"
- height="23"
- label="Revert"
- label_selected="Revert"
- layout="topleft"
- left_pad="3"
- name="Revert"
- top="477"
- width="120" />
- </panel>
- <text
- type="string"
- length="1"
- follows="left|top"
- height="16"
- layout="topleft"
- left="5"
- name="clothes_placeholder"
- font="SansSerifSmallBold"
- top="125"
- width="100">
- Clothes
- </text>
- <placeholder />
- <panel
- border="false"
- background_visible="true"
- bg_alpha_color="DkGray2"
- follows="left|top|right|bottom"
- height="508"
- label="Shirt"
- layout="topleft"
- name="Shirt"
- help_topic="customize_shirt_tab"
- top_delta="0"
- width="400">
- <icon
- follows="top|left"
- height="18"
- image_name="Lock"
- layout="topleft"
- left="10"
- mouse_opaque="true"
- name="square"
- top="10"
- width="18" />
- <icon
- height="16"
- top="10"
- left="10"
- layout="topleft"
- mouse_opaque="true"
- width="16" />
- <texture_picker
- can_apply_immediately="true"
- default_image_name="Default"
- follows="left|top"
- height="108"
- label="Fabric"
- layout="topleft"
- left="10"
- name="Fabric"
- tool_tip="Click to choose a picture"
- top="66"
- width="82" />
- <color_swatch
- can_apply_immediately="true"
- follows="left|top"
- height="108"
- label="Color/Tint"
- layout="topleft"
- name="Color/Tint"
- tool_tip="Click to open color picker"
- top_delta="102"
- width="82" />
- <button
- follows="left|top"
- height="23"
- label="Take Off"
- label_selected="Take Off"
- layout="topleft"
- name="Take Off"
- top_pad="4"
- width="82" />
- <button
- follows="left|top"
- height="23"
- label="Create New Shirt"
- label_selected="Create New Shirt"
- layout="topleft"
- name="Create New"
- top="66"
- width="160" />
- <text
- type="string"
- length="1"
- bottom="4"
- follows="left|bottom"
- font="SansSerif"
- halign="right"
- height="23"
- layout="bottomleft"
- name="Item Action Label"
- left="10"
- width="130">
- Shirt:
- </text>
- <button
- follows="left|bottom"
- height="23"
- label="Save"
- label_selected="Save"
- layout="topleft"
- left_pad="2"
- name="Save"
- top="477"
- width="82" />
- <button
- follows="left|bottom"
- height="23"
- label="Save As..."
- label_selected="Save As..."
- layout="topleft"
- left_pad="3"
- name="Save As"
- top="477"
- width="115" />
- <button
- follows="left|bottom"
- height="23"
- label="Revert"
- label_selected="Revert"
- layout="topleft"
- left_pad="3"
- name="Revert"
- top="477"
- width="120" />
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title"
- top="10"
- width="355">
- [DESC]
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title_no_modify"
- top="10"
- width="355">
- [DESC]: cannot modify
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title_loading"
- top="10"
- width="355">
- [DESC]: loading...
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title_not_worn"
- top="10"
- width="355">
- [DESC]: not worn
- </text>
- <text
- type="string"
- length="1"
- follows="left|top"
- height="16"
- layout="topleft"
- left="10"
- name="path"
- top="36"
- width="373">
- Located in [PATH]
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- height="28"
- layout="topleft"
- left="10"
- name="not worn instructions"
- top="31"
- word_wrap="true"
- width="373">
- Put on a new shirt by dragging one from your inventory to your avatar. Alternately, you create a new one from scratch and wear it.
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- height="28"
- layout="topleft"
- left="10"
- name="no modify instructions"
- top="31"
- word_wrap="true"
- width="373">
- You do not have permission to modify this wearable.
- </text>
- </panel>
- <panel
- border="false"
- background_visible="true"
- bg_alpha_color="DkGray2"
- follows="left|top|right|bottom"
- height="508"
- label="Pants"
- layout="topleft"
- name="Pants"
- help_topic="customize_pants_tab"
- width="400">
- <icon
- follows="top|left"
- height="18"
- image_name="Lock"
- layout="topleft"
- left="10"
- mouse_opaque="true"
- name="square"
- top="10"
- width="18" />
- <icon
- height="16"
- layout="topleft"
- left="10"
- mouse_opaque="true"
- top="10"
- width="16" />
- <texture_picker
- can_apply_immediately="true"
- default_image_name="Default"
- follows="left|top"
- height="108"
- label="Fabric"
- layout="topleft"
- left="10"
- name="Fabric"
- tool_tip="Click to choose a picture"
- top="66"
- width="82" />
- <color_swatch
- can_apply_immediately="true"
- follows="left|top"
- height="108"
- label="Color/Tint"
- layout="topleft"
- name="Color/Tint"
- tool_tip="Click to open color picker"
- top_delta="102"
- width="82" />
- <button
- follows="left|top"
- height="23"
- label="Take Off"
- label_selected="Take Off"
- layout="topleft"
- name="Take Off"
- top_pad="4"
- width="82" />
- <button
- follows="left|top"
- height="23"
- label="Create New Pants"
- label_selected="Create New Pants"
- layout="topleft"
- name="Create New"
- top="66"
- width="160" />
- <text
- type="string"
- length="1"
- bottom="4"
- follows="left|bottom"
- font="SansSerif"
- halign="right"
- height="23"
- layout="bottomleft"
- name="Item Action Label"
- left="10"
- width="130">
- Pants:
- </text>
- <button
- follows="left|bottom"
- height="23"
- label="Save"
- label_selected="Save"
- layout="topleft"
- left_pad="2"
- name="Save"
- top="477"
- width="82" />
- <button
- follows="left|bottom"
- height="23"
- label="Save As..."
- label_selected="Save As..."
- layout="topleft"
- left_pad="3"
- name="Save As"
- top="477"
- width="115" />
- <button
- follows="left|bottom"
- height="23"
- label="Revert"
- label_selected="Revert"
- layout="topleft"
- left_pad="3"
- name="Revert"
- top="477"
- width="120" />
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title"
- top="10"
- width="355">
- [DESC]
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title_no_modify"
- top="10"
- width="355">
- [DESC]: cannot modify
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title_loading"
- top="10"
- width="355">
- [DESC]: loading...
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title_not_worn"
- top="10"
- width="355">
- [DESC]: not worn
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- height="14"
- layout="topleft"
- left="10"
- name="path"
- top="36"
- width="373">
- Located in [PATH]
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- height="28"
- layout="topleft"
- left="10"
- name="not worn instructions"
- top="31"
- word_wrap="true"
- width="373">
- Put on new pants by dragging one from your inventory to your avatar. Alternately, you create a new one from scratch and wear it.
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- height="28"
- layout="topleft"
- left="10"
- name="no modify instructions"
- top="31"
- word_wrap="true"
- width="373">
- You do not have permission to modify this wearable.
- </text>
- </panel>
- <panel
- border="false"
- background_visible="true"
- bg_alpha_color="DkGray2"
- follows="left|top|right|bottom"
- height="508"
- label="Shoes"
- layout="topleft"
- name="Shoes"
- help_topic="customize_shoes_tab"
- width="400">
- <icon
- follows="top|left"
- height="18"
- image_name="Lock"
- layout="topleft"
- left="10"
- mouse_opaque="true"
- name="square"
- top="10"
- width="18" />
- <icon
- height="16"
- layout="topleft"
- left="10"
- mouse_opaque="true"
- top="10"
- width="16" />
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title"
- top="10"
- width="355">
- [DESC]
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title_no_modify"
- top="10"
- width="355">
- [DESC]: cannot modify
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title_loading"
- top="10"
- width="355">
- [DESC]: loading...
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title_not_worn"
- top="10"
- width="355">
- [DESC]: not worn
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- height="14"
- layout="topleft"
- left="10"
- name="path"
- top="36"
- width="373">
- Located in [PATH]
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- height="28"
- layout="topleft"
- left="10"
- name="not worn instructions"
- top="31"
- word_wrap="true"
- width="373">
- Put on a new pair of shoes by dragging one from your inventory to your avatar. Alternately, you create a new one from scratch and wear it.
- </text>
- <button
- follows="left|top"
- height="23"
- label="Create New Shoes"
- label_selected="Create New Shoes"
- layout="topleft"
- name="Create New"
- top_pad="18"
- width="160" />
- <text
- type="string"
- length="1"
- follows="left|top|right"
- height="28"
- layout="topleft"
- left="10"
- name="no modify instructions"
- top="31"
- word_wrap="true"
- width="373">
- You do not have permission to modify this wearable.
- </text>
- <texture_picker
- can_apply_immediately="true"
- default_image_name="Default"
- follows="left|top"
- height="108"
- label="Fabric"
- layout="topleft"
- left="10"
- name="Fabric"
- tool_tip="Click to choose a picture"
- top="66"
- width="82" />
- <color_swatch
- can_apply_immediately="true"
- follows="left|top"
- height="108"
- label="Color/Tint"
- layout="topleft"
- name="Color/Tint"
- tool_tip="Click to open color picker"
- top_delta="102"
- width="82" />
- <button
- follows="left|top"
- height="23"
- label="Take Off"
- label_selected="Take Off"
- layout="topleft"
- name="Take Off"
- top_pad="4"
- width="82" />
- <text
- type="string"
- length="1"
- bottom="4"
- follows="left|bottom"
- font="SansSerif"
- halign="right"
- height="23"
- layout="bottomleft"
- left="10"
- name="Item Action Label"
- width="130">
- Shoes:
- </text>
- <button
- follows="left|bottom"
- height="23"
- label="Save"
- label_selected="Save"
- layout="topleft"
- left_pad="2"
- name="Save"
- top="477"
- width="82" />
- <button
- follows="left|bottom"
- height="23"
- label="Save As..."
- label_selected="Save As..."
- layout="topleft"
- left_pad="3"
- name="Save As"
- top="477"
- width="115" />
- <button
- follows="left|bottom"
- height="23"
- label="Revert"
- label_selected="Revert"
- layout="topleft"
- left_pad="3"
- name="Revert"
- top="477"
- width="120" />
- </panel>
- <panel
- border="false"
- background_visible="true"
- bg_alpha_color="DkGray2"
- follows="left|top|right|bottom"
- height="508"
- label="Socks"
- layout="topleft"
- name="Socks"
- help_topic="customize_socks_tab"
- width="400">
- <icon
- follows="top|left"
- height="18"
- image_name="Lock"
- layout="topleft"
- left="10"
- mouse_opaque="true"
- name="square"
- top="10"
- width="18" />
- <icon
- height="16"
- layout="topleft"
- left="10"
- mouse_opaque="true"
- top="10"
- width="16" />
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title"
- top="10"
- width="355">
- [DESC]
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title_no_modify"
- top="10"
- width="355">
- [DESC]: cannot modify
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title_loading"
- top="10"
- width="355">
- [DESC]: loading...
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title_not_worn"
- top="10"
- width="355">
- [DESC]: not worn
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- height="14"
- layout="topleft"
- left="10"
- name="path"
- top="36"
- width="373">
- Located in [PATH]
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- height="28"
- layout="topleft"
- left="10"
- name="not worn instructions"
- top="31"
- word_wrap="true"
- width="373">
- Put on new socks by dragging one from your inventory to your avatar. Alternately, you create a new one from scratch and wear it.
- </text>
- <button
- follows="left|top"
- height="23"
- label="Create New Socks"
- label_selected="Create New Socks"
- layout="topleft"
- name="Create New"
- top_pad="7"
- width="160" />
- <text
- type="string"
- length="1"
- follows="left|top|right"
- height="28"
- layout="topleft"
- left="10"
- name="no modify instructions"
- top="31"
- word_wrap="true"
- width="373">
- You do not have permission to modify this wearable.
- </text>
- <texture_picker
- can_apply_immediately="true"
- default_image_name="Default"
- follows="left|top"
- height="108"
- label="Fabric"
- layout="topleft"
- left="10"
- name="Fabric"
- tool_tip="Click to choose a picture"
- top="66"
- width="82" />
- <color_swatch
- can_apply_immediately="true"
- follows="left|top"
- height="108"
- label="Color/Tint"
- layout="topleft"
- name="Color/Tint"
- tool_tip="Click to open color picker"
- top_delta="102"
- width="82" />
- <button
- follows="left|top"
- height="23"
- label="Take Off"
- label_selected="Take Off"
- layout="topleft"
- name="Take Off"
- top_pad="4"
- width="82" />
- <text
- type="string"
- length="1"
- bottom="4"
- follows="left|bottom"
- font="SansSerif"
- halign="right"
- height="23"
- layout="bottomleft"
- left="10"
- name="Item Action Label"
- width="130">
- Socks:
- </text>
- <button
- follows="left|bottom"
- height="23"
- label="Save"
- label_selected="Save"
- layout="topleft"
- left_pad="2"
- name="Save"
- top="477"
- width="82" />
- <button
- follows="left|bottom"
- height="23"
- label="Save As..."
- label_selected="Save As..."
- layout="topleft"
- left_pad="3"
- name="Save As"
- top="477"
- width="115" />
- <button
- follows="left|bottom"
- height="23"
- label="Revert"
- label_selected="Revert"
- layout="topleft"
- left_pad="3"
- name="Revert"
- top="477"
- width="120" />
- </panel>
- <panel
- border="false"
- background_visible="true"
- bg_alpha_color="DkGray2"
- follows="left|top|right|bottom"
- height="508"
- label="Jacket"
- layout="topleft"
- name="Jacket"
- help_topic="customize_jacket_tab"
- width="400">
- <icon
- follows="top|left"
- height="18"
- image_name="Lock"
- layout="topleft"
- left="10"
- mouse_opaque="true"
- name="square"
- top="10"
- width="18" />
- <icon
- height="16"
- layout="topleft"
- left="10"
- mouse_opaque="true"
- top="10"
- width="16" />
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title"
- top="10"
- width="355">
- [DESC]
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title_no_modify"
- top="10"
- width="355">
- [DESC]: cannot modify
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title_loading"
- top="10"
- width="355">
- [DESC]: loading...
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title_not_worn"
- top="10"
- width="355">
- [DESC]: not worn
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- height="14"
- layout="topleft"
- left="10"
- name="path"
- top="36"
- width="373">
- Located in [PATH]
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- height="28"
- layout="topleft"
- left="10"
- name="not worn instructions"
- top="31"
- word_wrap="true"
- width="373">
- Put on a new jacket by dragging one from your inventory to your avatar. Alternately, you create a new one from scratch and wear it.
- </text>
- <button
- follows="left|top"
- height="23"
- label="Create New Jacket"
- label_selected="Create New Jacket"
- layout="topleft"
- name="Create New"
- top_pad="7"
- width="160" />
- <text
- type="string"
- length="1"
- follows="left|top|right"
- height="28"
- layout="topleft"
- left="10"
- name="no modify instructions"
- top="31"
- word_wrap="true"
- width="373">
- You do not have permission to modify this wearable.
- </text>
- <texture_picker
- can_apply_immediately="true"
- default_image_name="Default"
- follows="left|top"
- height="108"
- label="Upper Fabric"
- layout="topleft"
- left="10"
- name="Upper Fabric"
- tool_tip="Click to choose a picture"
- top="66"
- width="82" />
- <texture_picker
- can_apply_immediately="true"
- default_image_name="Default"
- follows="left|top"
- height="108"
- label="Lower Fabric"
- layout="topleft"
- name="Lower Fabric"
- tool_tip="Click to choose a picture"
- top_delta="102"
- width="82" />
- <color_swatch
- can_apply_immediately="true"
- follows="left|top"
- height="108"
- label="Color/Tint"
- layout="topleft"
- name="Color/Tint"
- tool_tip="Click to open color picker"
- top_delta="102"
- width="82" />
- <button
- follows="left|top"
- height="23"
- label="Take Off"
- label_selected="Take Off"
- layout="topleft"
- name="Take Off"
- top_pad="4"
- width="82" />
- <text
- type="string"
- length="1"
- bottom="4"
- follows="left|bottom"
- font="SansSerif"
- halign="right"
- height="23"
- layout="bottomleft"
- left="10"
- name="Item Action Label"
- width="130">
- Jacket:
- </text>
- <button
- follows="left|bottom"
- height="23"
- label="Save"
- label_selected="Save"
- layout="topleft"
- left_pad="2"
- name="Save"
- top="477"
- width="82" />
- <button
- follows="left|bottom"
- height="23"
- label="Save As..."
- label_selected="Save As..."
- layout="topleft"
- left_pad="3"
- name="Save As"
- top="477"
- width="115" />
- <button
- follows="left|bottom"
- height="23"
- label="Revert"
- label_selected="Revert"
- layout="topleft"
- left_pad="3"
- name="Revert"
- top="477"
- width="120" />
- </panel>
- <panel
- border="false"
- background_visible="true"
- bg_alpha_color="DkGray2"
- follows="left|top|right|bottom"
- height="508"
- label="Gloves"
- layout="topleft"
- name="Gloves"
- help_topic="customize_gloves_tab"
- width="400">
- <icon
- follows="top|left"
- height="18"
- image_name="Lock"
- layout="topleft"
- left="10"
- mouse_opaque="true"
- name="square"
- top="10"
- width="18" />
- <icon
- height="16"
- layout="topleft"
- left="10"
- mouse_opaque="true"
- top="10"
- width="16" />
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title"
- top="10"
- width="355">
- [DESC]
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title_no_modify"
- top="10"
- width="355">
- [DESC]: cannot modify
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title_loading"
- top="10"
- width="355">
- [DESC]: loading...
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title_not_worn"
- top="10"
- width="355">
- [DESC]: not worn
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- height="14"
- layout="topleft"
- left="10"
- name="path"
- top="36"
- width="373">
- Located in [PATH]
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- height="28"
- layout="topleft"
- left="10"
- name="not worn instructions"
- top="31"
- word_wrap="true"
- width="373">
- Put on new gloves by dragging one from your inventory to your avatar. Alternately, you create a new one from scratch and wear it.
- </text>
- <button
- follows="left|top"
- height="23"
- label="Create New Gloves"
- label_selected="Create New Gloves"
- layout="topleft"
- name="Create New"
- top_pad="7"
- width="160" />
- <text
- type="string"
- length="1"
- follows="left|top|right"
- height="28"
- layout="topleft"
- left="10"
- name="no modify instructions"
- top="31"
- word_wrap="true"
- width="373">
- You do not have permission to modify this wearable.
- </text>
- <texture_picker
- can_apply_immediately="true"
- default_image_name="Default"
- follows="left|top"
- height="108"
- label="Fabric"
- layout="topleft"
- left="10"
- name="Fabric"
- tool_tip="Click to choose a picture"
- top="66"
- width="82" />
- <color_swatch
- can_apply_immediately="true"
- follows="left|top"
- height="108"
- label="Color/Tint"
- layout="topleft"
- name="Color/Tint"
- tool_tip="Click to open color picker"
- top_delta="102"
- width="82" />
- <button
- follows="left|top"
- height="23"
- label="Take Off"
- label_selected="Take Off"
- layout="topleft"
- name="Take Off"
- top_pad="4"
- width="82" />
- <text
- type="string"
- length="1"
- bottom="4"
- follows="left|bottom"
- font="SansSerif"
- halign="right"
- height="23"
- layout="bottomleft"
- left="10"
- name="Item Action Label"
- width="130">
- Gloves:
- </text>
- <button
- follows="left|bottom"
- height="23"
- label="Save"
- label_selected="Save"
- layout="topleft"
- left_pad="2"
- name="Save"
- top="477"
- width="82" />
- <button
- follows="left|bottom"
- height="23"
- label="Save As..."
- label_selected="Save As..."
- layout="topleft"
- left_pad="3"
- name="Save As"
- top="477"
- width="115" />
- <button
- follows="left|bottom"
- height="23"
- label="Revert"
- label_selected="Revert"
- layout="topleft"
- left_pad="3"
- name="Revert"
- top="477"
- width="120" />
- </panel>
- <panel
- border="false"
- background_visible="true"
- bg_alpha_color="DkGray2"
- follows="left|top|right|bottom"
- height="508"
- label="Undershirt"
- layout="topleft"
- name="Undershirt"
- help_topic="customize_undershirt_tab"
- width="400">
- <icon
- follows="top|left"
- height="18"
- image_name="Lock"
- layout="topleft"
- left="10"
- mouse_opaque="true"
- name="square"
- top="10"
- width="18" />
- <icon
- height="16"
- layout="topleft"
- left="10"
- mouse_opaque="true"
- top="10"
- width="16" />
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title"
- top="10"
- width="355">
- [DESC]
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title_no_modify"
- top="10"
- width="355">
- [DESC]: cannot modify
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title_loading"
- top="10"
- width="355">
- [DESC]: loading...
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title_not_worn"
- top="10"
- width="355">
- [DESC]: not worn
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- height="14"
- layout="topleft"
- left="10"
- name="path"
- top="36"
- width="373">
- Located in [PATH]
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- height="28"
- layout="topleft"
- left="10"
- name="not worn instructions"
- top="31"
- word_wrap="true"
- width="373">
- Put on a new undershirt by dragging one from your inventory to your avatar. Alternately, you create a new one from scratch and wear it.
- </text>
- <button
- follows="left|top"
- height="23"
- label="Create New Undershirt"
- label_selected="Create New Undershirt"
- layout="topleft"
- name="Create New"
- top_pad="7"
- width="160" />
- <text
- type="string"
- length="1"
- follows="left|top|right"
- height="28"
- layout="topleft"
- left="10"
- name="no modify instructions"
- top="31"
- word_wrap="true"
- width="373">
- You do not have permission to modify this wearable.
- </text>
- <texture_picker
- can_apply_immediately="true"
- default_image_name="Default"
- follows="left|top"
- height="108"
- label="Fabric"
- layout="topleft"
- left="10"
- name="Fabric"
- tool_tip="Click to choose a picture"
- top="66"
- width="82" />
- <color_swatch
- can_apply_immediately="true"
- follows="left|top"
- height="108"
- label="Color/Tint"
- layout="topleft"
- name="Color/Tint"
- tool_tip="Click to open color picker"
- top_delta="102"
- width="82" />
- <button
- follows="left|top"
- height="23"
- label="Take Off"
- label_selected="Take Off"
- layout="topleft"
- name="Take Off"
- top_pad="4"
- width="82" />
- <text
- type="string"
- length="1"
- bottom="4"
- follows="left|bottom"
- font="SansSerif"
- halign="right"
- height="23"
- layout="bottomleft"
- left="10"
- name="Item Action Label"
- width="130">
- Undershirt:
- </text>
- <button
- follows="left|bottom"
- height="23"
- label="Save"
- label_selected="Save"
- layout="topleft"
- left_pad="2"
- name="Save"
- top="477"
- width="82" />
- <button
- follows="left|bottom"
- height="23"
- label="Save As..."
- label_selected="Save As..."
- layout="topleft"
- left_pad="3"
- name="Save As"
- top="477"
- width="115" />
- <button
- follows="left|bottom"
- height="23"
- label="Revert"
- label_selected="Revert"
- layout="topleft"
- left_pad="3"
- name="Revert"
- top="477"
- width="120" />
- </panel>
- <panel
- border="false"
- background_visible="true"
- bg_alpha_color="DkGray2"
- follows="left|top|right|bottom"
- height="508"
- label="Underpants"
- layout="topleft"
- name="Underpants"
- help_topic="customize_underpants_tab"
- width="400">
- <icon
- follows="top|left"
- height="18"
- image_name="Lock"
- layout="topleft"
- left="10"
- mouse_opaque="true"
- name="square"
- top="10"
- width="18" />
- <icon
- height="16"
- layout="topleft"
- left="10"
- mouse_opaque="true"
- top="10"
- width="16" />
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title"
- top="10"
- width="355">
- [DESC]
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title_no_modify"
- top="10"
- width="355">
- [DESC]: cannot modify
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title_loading"
- top="10"
- width="355">
- [DESC]: loading...
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title_not_worn"
- top="10"
- width="355">
- [DESC]: not worn
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- height="14"
- layout="topleft"
- left="10"
- name="path"
- top="36"
- width="373">
- Located in [PATH]
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- height="28"
- layout="topleft"
- left="10"
- name="not worn instructions"
- top="31"
- word_wrap="true"
- width="373">
- Put on new underpants by dragging one from your inventory to your avatar. Alternately, you create a new one from scratch and wear it.
- </text>
- <button
- follows="left|top"
- height="23"
- label="Create New Underpants"
- label_selected="Create New Underpants"
- layout="topleft"
- name="Create New"
- top_pad="7"
- width="160" />
- <text
- type="string"
- length="1"
- follows="left|top|right"
- height="28"
- layout="topleft"
- left="10"
- name="no modify instructions"
- top="31"
- word_wrap="true"
- width="373">
- You do not have permission to modify this wearable.
- </text>
- <texture_picker
- can_apply_immediately="true"
- default_image_name="Default"
- follows="left|top"
- height="108"
- label="Fabric"
- layout="topleft"
- left="10"
- name="Fabric"
- tool_tip="Click to choose a picture"
- top="66"
- width="82" />
- <color_swatch
- can_apply_immediately="true"
- follows="left|top"
- height="108"
- label="Color/Tint"
- layout="topleft"
- name="Color/Tint"
- tool_tip="Click to open color picker"
- top_delta="102"
- width="82" />
- <button
- follows="left|top"
- height="23"
- label="Take Off"
- label_selected="Take Off"
- layout="topleft"
- name="Take Off"
- top_pad="4"
- width="82" />
- <text
- type="string"
- length="1"
- bottom="4"
- follows="left|bottom"
- font="SansSerif"
- halign="right"
- height="23"
- layout="bottomleft"
- left="10"
- name="Item Action Label"
- width="130">
- Underpants:
- </text>
- <button
- follows="left|bottom"
- height="23"
- label="Save"
- label_selected="Save"
- layout="topleft"
- left_pad="2"
- name="Save"
- top="477"
- width="82" />
- <button
- follows="left|bottom"
- height="23"
- label="Save As..."
- label_selected="Save As..."
- layout="topleft"
- left_pad="3"
- name="Save As"
- top="477"
- width="115" />
- <button
- follows="left|bottom"
- height="23"
- label="Revert"
- label_selected="Revert"
- layout="topleft"
- left_pad="3"
- name="Revert"
- top="477"
- width="120" />
- </panel>
- <panel
- border="false"
- background_visible="true"
- bg_alpha_color="DkGray2"
- follows="left|top|right|bottom"
- height="508"
- label="Skirt"
- layout="topleft"
- name="Skirt"
- help_topic="customize_skirt_tab"
- width="400">
- <icon
- follows="top|left"
- height="18"
- image_name="Lock"
- layout="topleft"
- left="10"
- mouse_opaque="true"
- name="square"
- top="10"
- width="18" />
- <icon
- height="16"
- layout="topleft"
- left="10"
- mouse_opaque="true"
- top="10"
- width="16" />
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title"
- top="10"
- width="355">
- [DESC]
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title_no_modify"
- top="10"
- width="355">
- [DESC]: cannot modify
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title_loading"
- top="10"
- width="355">
- [DESC]: loading...
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title_not_worn"
- top="10"
- width="355">
- [DESC]: not worn
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- height="14"
- layout="topleft"
- left="10"
- name="path"
- top="36"
- width="373">
- Located in [PATH]
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- height="28"
- layout="topleft"
- left="10"
- name="not worn instructions"
- top="31"
- word_wrap="true"
- width="373">
- Put on a new skirt by dragging one from your inventory to your avatar. Alternately, you create a new one from scratch and wear it.
- </text>
- <button
- follows="left|top"
- height="23"
- label="Create New Skirt"
- label_selected="Create New Skirt"
- layout="topleft"
- name="Create New"
- top_pad="7"
- width="160" />
- <text
- type="string"
- length="1"
- follows="left|top|right"
- height="28"
- layout="topleft"
- left="10"
- name="no modify instructions"
- top="31"
- word_wrap="true"
- width="373">
- You do not have permission to modify this wearable.
- </text>
- <texture_picker
- can_apply_immediately="true"
- default_image_name="Default"
- follows="left|top"
- height="108"
- label="Fabric"
- layout="topleft"
- left="10"
- name="Fabric"
- tool_tip="Click to choose a picture"
- top="66"
- width="82" />
- <color_swatch
- can_apply_immediately="true"
- follows="left|top"
- height="108"
- label="Color/Tint"
- layout="topleft"
- name="Color/Tint"
- tool_tip="Click to open color picker"
- top_delta="102"
- width="82" />
- <button
- follows="left|top"
- height="23"
- label="Take Off"
- label_selected="Take Off"
- layout="topleft"
- name="Take Off"
- top_pad="4"
- width="82" />
- <text
- type="string"
- length="1"
- bottom="4"
- follows="left|bottom"
- font="SansSerif"
- halign="right"
- height="23"
- layout="bottomleft"
- left="10"
- name="Item Action Label"
- width="130">
- Skirt:
- </text>
- <button
- follows="left|bottom"
- height="23"
- label="Save"
- label_selected="Save"
- layout="topleft"
- left_pad="2"
- name="Save"
- top="477"
- width="82" />
- <button
- follows="left|bottom"
- height="23"
- label="Save As..."
- label_selected="Save As..."
- layout="topleft"
- left_pad="3"
- name="Save As"
- top="477"
- width="115" />
- <button
- follows="left|bottom"
- height="23"
- label="Revert"
- label_selected="Revert"
- layout="topleft"
- left_pad="3"
- name="Revert"
- top="477"
- width="120" />
- </panel>
- <panel
- border="false"
- background_visible="true"
- bg_alpha_color="DkGray2"
- follows="left|top|right|bottom"
- height="508"
- label="Tattoo"
- layout="topleft"
- name="Tattoo"
- help_topic="customize_tattoo_tab"
- width="400">
- <icon
- follows="top|left"
- height="18"
- image_name="Lock"
- layout="topleft"
- left="10"
- mouse_opaque="true"
- name="square"
- top="10"
- width="18" />
- <icon
- height="16"
- layout="topleft"
- left="10"
- mouse_opaque="true"
- top="10"
- width="16" />
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title"
- top="10"
- width="355">
- [DESC]
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title_no_modify"
- top="10"
- width="355">
- [DESC]: cannot modify
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title_loading"
- top="10"
- width="355">
- [DESC]: loading...
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title_not_worn"
- top="10"
- width="355">
- [DESC]: not worn
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- height="14"
- layout="topleft"
- left="10"
- name="path"
- top="36"
- width="373">
- Located in [PATH]
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- height="28"
- layout="topleft"
- left="10"
- name="not worn instructions"
- top="31"
- word_wrap="true"
- width="373">
- Put on a new tattoo by dragging one from your inventory to your avatar. Alternately, you create a new one from scratch and wear it.
- </text>
- <button
- follows="left|top"
- height="23"
- label="Create New Tattoo"
- label_selected="Create New Tattoo"
- layout="topleft"
- name="Create New"
- top_pad="7"
- width="160" />
- <text
- type="string"
- length="1"
- follows="left|top|right"
- height="28"
- layout="topleft"
- left="10"
- name="no modify instructions"
- top="31"
- word_wrap="true"
- width="373">
- You do not have permission to modify this wearable.
- </text>
- <texture_picker
- can_apply_immediately="true"
- default_image_name="Default"
- follows="left|top"
- height="108"
- label="Head Tattoo"
- layout="topleft"
- left="10"
- name="Head Tattoo"
- tool_tip="Click to choose a picture"
- top="66"
- width="82" />
- <texture_picker
- can_apply_immediately="true"
- default_image_name="Default"
- follows="left|top"
- height="108"
- label="Upper Tattoo"
- layout="topleft"
- name="Upper Tattoo"
- tool_tip="Click to choose a picture"
- left_delta="90"
- width="82" />
- <texture_picker
- can_apply_immediately="true"
- default_image_name="Default"
- follows="left|top"
- height="108"
- label="Lower Tattoo"
- layout="topleft"
- name="Lower Tattoo"
- tool_tip="Click to choose a picture"
- left_delta="90"
- width="82" />
- <button
- follows="left|top"
- height="23"
- label="Take Off"
- label_selected="Take Off"
- layout="topleft"
- name="Take Off"
- top_pad="4"
- left="10"
- width="82" />
- <text
- type="string"
- length="1"
- bottom="4"
- follows="left|bottom"
- font="SansSerif"
- halign="right"
- height="23"
- layout="bottomleft"
- left="10"
- name="Item Action Label"
- width="130">
- Tattoo:
- </text>
- <button
- follows="left|bottom"
- height="23"
- label="Save"
- label_selected="Save"
- layout="topleft"
- left_pad="2"
- name="Save"
- top="477"
- width="82" />
- <button
- follows="left|bottom"
- height="23"
- label="Save As..."
- label_selected="Save As..."
- layout="topleft"
- left_pad="3"
- name="Save As"
- top="477"
- width="115" />
- <button
- follows="left|bottom"
- height="23"
- label="Revert"
- label_selected="Revert"
- layout="topleft"
- left_pad="3"
- name="Revert"
- top="477"
- width="120" />
- </panel>
- <panel
- border="false"
- background_visible="true"
- bg_alpha_color="DkGray2"
- follows="left|top|right|bottom"
- height="508"
- label="Alpha"
- layout="topleft"
- name="Alpha"
- help_topic="customize_alpha_tab"
- width="400">
- <icon
- follows="top|left"
- height="18"
- image_name="Lock"
- layout="topleft"
- left="10"
- mouse_opaque="true"
- name="square"
- top="10"
- width="18" />
- <icon
- height="16"
- layout="topleft"
- left="10"
- mouse_opaque="true"
- top="10"
- width="16" />
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title"
- top="10"
- width="355">
- [DESC]
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title_no_modify"
- top="10"
- width="355">
- [DESC]: cannot modify
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title_loading"
- top="10"
- width="355">
- [DESC]: loading...
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- font="SansSerif"
- height="16"
- layout="topleft"
- left="31"
- name="title_not_worn"
- top="10"
- width="355">
- [DESC]: not worn
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- height="14"
- layout="topleft"
- left="10"
- name="path"
- top="36"
- width="373">
- Located in [PATH]
- </text>
- <text
- type="string"
- length="1"
- follows="left|top|right"
- height="28"
- layout="topleft"
- left="10"
- name="not worn instructions"
- top="31"
- word_wrap="true"
- width="373">
- Put on a new alpha mask by dragging one from your inventory to your avatar. Alternately, you create a new one from scratch and wear it.
- </text>
- <button
- follows="left|top"
- height="23"
- label="Create New Alpha"
- label_selected="Create New Alpha"
- layout="topleft"
- name="Create New"
- top_pad="18"
- width="160" />
- <text
- type="string"
- length="1"
- follows="left|top|right"
- height="28"
- layout="topleft"
- left="10"
- name="no modify instructions"
- top="31"
- word_wrap="true"
- width="373">
- You do not have permission to modify this wearable.
- </text>
- <texture_picker
- can_apply_immediately="true"
- default_image_name="Default"
- follows="left|top"
- height="108"
- label="Lower Alpha"
- layout="topleft"
- left="10"
- name="Lower Alpha"
- tool_tip="Click to choose a picture"
- top="66"
- width="82" />
- <texture_picker
- can_apply_immediately="true"
- default_image_name="Default"
- follows="left|top"
- height="108"
- label="Upper Alpha"
- layout="topleft"
- name="Upper Alpha"
- tool_tip="Click to choose a picture"
- left_delta="90"
- width="82" />
- <texture_picker
- can_apply_immediately="true"
- default_image_name="Default"
- follows="left|top"
- height="108"
- label="Head Alpha"
- layout="topleft"
- name="Head Alpha"
- tool_tip="Click to choose a picture"
- left_delta="90"
- width="82" />
- <check_box
- control_name="LowerAlphaTextureInvisible"
- follows="left"
- height="16"
- layout="topleft"
- left="43"
- name="lower alpha texture invisible"
- top_delta="96"
- width="16" />
- <check_box
- control_name="UpperAlphaTextureInvisible"
- follows="left"
- height="16"
- layout="topleft"
- left_pad="72"
- name="upper alpha texture invisible"
- width="16" />
- <check_box
- control_name="HeadAlphaTextureInvisible"
- follows="left"
- height="16"
- layout="topleft"
- left_pad="72"
- name="head alpha texture invisible"
- width="16" />
- <texture_picker
- can_apply_immediately="true"
- default_image_name="Default"
- follows="left|top"
- height="108"
- label="Eye Alpha"
- layout="topleft"
- name="Eye Alpha"
- tool_tip="Click to choose a picture"
- left="10"
- top_pad="20"
- width="82" />
- <texture_picker
- can_apply_immediately="true"
- default_image_name="Default"
- follows="left|top"
- height="108"
- label="Hair Alpha"
- layout="topleft"
- name="Hair Alpha"
- left_delta="90"
- tool_tip="Click to choose a picture"
- width="82" />
- <check_box
- control_name="Eye AlphaTextureInvisible"
- follows="left"
- height="16"
- layout="topleft"
- left="43"
- name="eye alpha texture invisible"
- top_delta="96"
- width="16" />
- <check_box
- control_name="HairAlphaTextureInvisible"
- follows="left"
- height="16"
- layout="topleft"
- left_pad="72"
- name="hair alpha texture invisible"
- width="16" />
- <button
- follows="left|top"
- height="23"
- label="Take Off"
- label_selected="Take Off"
- layout="topleft"
- name="Take Off"
- left="10"
- top_pad="20"
- width="82" />
- <text
- type="string"
- length="1"
- bottom="4"
- follows="left|bottom"
- font="SansSerif"
- halign="right"
- height="23"
- layout="bottomleft"
- left="10"
- name="Item Action Label"
- width="130">
- Alpha:
- </text>
- <button
- follows="left|bottom"
- height="23"
- label="Save"
- label_selected="Save"
- layout="topleft"
- left_pad="2"
- name="Save"
- top="477"
- width="82" />
- <button
- follows="left|bottom"
- height="23"
- label="Save As..."
- label_selected="Save As..."
- layout="topleft"
- left_pad="3"
- name="Save As"
- top="477"
- width="115" />
- <button
- follows="left|bottom"
- height="23"
- label="Revert"
- label_selected="Revert"
- layout="topleft"
- left_pad="3"
- name="Revert"
- top="477"
- width="120" />
- </panel>
- </tab_container>
- <scroll_container
- follows="left|top|right|bottom"
- height="409"
- layout="topleft"
- left="247"
- mouse_opaque="false"
- name="panel_container"
- top="92"
- width="330">
- <scrolling_panel_list
- follows="left|bottom"
- layout="topleft"
- name="panel_list" />
- </scroll_container>
- <button
- bottom="460"
- follows="right|left"
- height="23"
- label="Script Info"
- label_selected="Script Info"
- layout="topleft"
- name="script_info"
- tool_tip="Show scripts attached to your avatar"
- left="13"
- width="90" ></button>
- <button
- bottom="574"
- follows="right|bottom"
- height="23"
- label="Make Outfit"
- label_selected="Make Outfit"
- layout="topleft"
- name="make_outfit_btn"
- right="-218"
- width="120" />
- <button
- bottom="574"
- follows="right|bottom"
- height="23"
- label="Cancel"
- label_selected="Cancel"
- layout="topleft"
- name="Cancel"
- right="-10"
- width="100" />
- <button
- bottom="574"
- follows="right|bottom"
- height="23"
- label="OK"
- label_selected="OK"
- layout="topleft"
- name="Ok"
- right="-114"
- width="100" />
-</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_day_cycle_options.xml b/indra/newview/skins/default/xui/en/floater_day_cycle_options.xml
index 42a9ff551e..65e2462ef8 100644
--- a/indra/newview/skins/default/xui/en/floater_day_cycle_options.xml
+++ b/indra/newview/skins/default/xui/en/floater_day_cycle_options.xml
@@ -359,9 +359,9 @@
increment="1"
initial_value="0"
label="Hour"
- label_width="30"
+ label_width="35"
layout="topleft"
- left_delta="25"
+ left_delta="20"
max_val="100"
name="WLCurKeyHour"
top_pad="4"
@@ -374,13 +374,13 @@
increment="5"
initial_value="0"
label="Min"
- label_width="20"
+ label_width="45"
layout="topleft"
left_pad="5"
max_val="55"
name="WLCurKeyMin"
top_delta="0"
- width="60" />
+ width="85" />
<text
type="string"
length="1"
@@ -456,9 +456,9 @@
increment="1"
initial_value="0"
label="Hour"
- label_width="30"
+ label_width="33"
layout="topleft"
- left_delta="0"
+ left_delta="-3"
max_val="100"
name="WLLengthOfDayHour"
top_pad="4"
@@ -471,13 +471,13 @@
increment="1"
initial_value="0"
label="Min"
- label_width="20"
+ label_width="25"
layout="topleft"
- left_pad="5"
+ left_pad="2"
max_val="59"
name="WLLengthOfDayMin"
top_delta="0"
- width="60" />
+ width="65" />
<spinner
control_name="WLLengthOfDaySec"
decimal_digits="0"
@@ -486,13 +486,13 @@
increment="1"
initial_value="24"
label="Sec"
- label_width="20"
+ label_width="25"
layout="topleft"
- left_pad="5"
+ left_pad="2"
max_val="59"
name="WLLengthOfDaySec"
top_delta="0"
- width="60"/>
+ width="65"/>
<text
type="string"
halign="right"
diff --git a/indra/newview/skins/default/xui/en/floater_device_settings.xml b/indra/newview/skins/default/xui/en/floater_device_settings.xml
deleted file mode 100644
index 91a7a678da..0000000000
--- a/indra/newview/skins/default/xui/en/floater_device_settings.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<floater
- legacy_header_height="18"
- height="260"
- layout="topleft"
- name="floater_device_settings"
- help_topic="floater_device_settings"
- title="VOICE CHAT DEVICE SETTINGS"
- width="405">
- <panel
- bottom="260"
- filename="panel_audio_device.xml"
- layout="topleft"
- left="2"
- name="device_settings"
- right="-5"
- top="20" />
-</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_event.xml b/indra/newview/skins/default/xui/en/floater_event.xml
index d9c9d63c72..9864083442 100644
--- a/indra/newview/skins/default/xui/en/floater_event.xml
+++ b/indra/newview/skins/default/xui/en/floater_event.xml
@@ -244,7 +244,6 @@
layout="topleft"
left="6"
name="event_desc"
- textbox.label="More"
width="322">
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</expandable_text>
</layout_panel>
@@ -266,7 +265,6 @@
layout="topleft"
left="6"
name="create_event_btn"
- picture_style="true"
tool_tip="Create Event"
width="18" />
<button
@@ -280,7 +278,6 @@
left="6"
top_pad="-7"
name="god_delete_event_btn"
- picture_style="true"
tool_tip="Delete Event"
width="18" />
<button
diff --git a/indra/newview/skins/default/xui/en/floater_first_time_tip.xml b/indra/newview/skins/default/xui/en/floater_first_time_tip.xml
deleted file mode 100644
index e4ac8fed77..0000000000
--- a/indra/newview/skins/default/xui/en/floater_first_time_tip.xml
+++ /dev/null
@@ -1,22 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<floater
- legacy_header_height="18"
- can_close="true"
- can_minimize="false"
- height="250"
- layout="topleft"
- name="set_name_in_the_cladd"
- help_topic="set_name_in_the_cladd"
- save_rect="true"
- width="300">
- <check_box
- height="20"
- follows="left|bottom|right"
- label="Turn off Quick Tips"
- layout="topleft"
- left="5"
- name="DontShowFirstTimeTip_checkbox"
- text_enabled_color="white"
- top="225"
- width="200" />
-</floater>
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 214fb6ce54..837923bcf6 100644
--- a/indra/newview/skins/default/xui/en/floater_help_browser.xml
+++ b/indra/newview/skins/default/xui/en/floater_help_browser.xml
@@ -24,6 +24,7 @@
follows="left|right|top|bottom"
layout="topleft"
left="5"
+ orientation="vertical"
name="stack1"
top="20"
width="640">
@@ -35,7 +36,8 @@
user_resize="false"
width="620">
<web_browser
- bottom="-11"
+ trusted_content="true"
+ bottom="-25"
follows="left|right|top|bottom"
layout="topleft"
left="0"
diff --git a/indra/newview/skins/default/xui/en/floater_im.xml b/indra/newview/skins/default/xui/en/floater_im.xml
deleted file mode 100644
index 55efe83820..0000000000
--- a/indra/newview/skins/default/xui/en/floater_im.xml
+++ /dev/null
@@ -1,80 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<multi_floater
- legacy_header_height="18"
- can_resize="true"
- follows="left|bottom"
- height="422"
- layout="topleft"
- min_height="130"
- min_width="350"
- name="im_floater"
- help_topic="im_floater"
- save_rect="true"
- title="Instant Message"
- width="419">
- <multi_floater.string
- name="only_user_message">
- You are the only Resident in this session.
- </multi_floater.string>
- <multi_floater.string
- name="offline_message">
- [FIRST] [LAST] is offline.
- </multi_floater.string>
- <multi_floater.string
- name="invite_message">
- Click the [BUTTON NAME] button to accept/connect to this voice chat.
- </multi_floater.string>
- <multi_floater.string
- name="muted_message">
- You have blocked this Resident. Sending a message will automatically unblock them.
- </multi_floater.string>
- <multi_floater.string
- name="generic_request_error">
- Error making request, please try again later.
- </multi_floater.string>
- <multi_floater.string
- name="insufficient_perms_error">
- You do not have sufficient permissions.
- </multi_floater.string>
- <multi_floater.string
- name="session_does_not_exist_error">
- The session no longer exists
- </multi_floater.string>
- <multi_floater.string
- name="no_ability_error">
- You do not have that ability.
- </multi_floater.string>
- <multi_floater.string
- name="not_a_mod_error">
- You are not a session moderator.
- </multi_floater.string>
- <multi_floater.string
- name="muted_error">
- A group moderator disabled your text chat.
- </multi_floater.string>
- <multi_floater.string
- name="add_session_event">
- Unable to add Residents to chat session with [RECIPIENT].
- </multi_floater.string>
- <multi_floater.string
- name="message_session_event">
- Unable to send your message to the chat session with [RECIPIENT].
- </multi_floater.string>
- <multi_floater.string
- name="removed_from_group">
- You have been removed from the group.
- </multi_floater.string>
- <multi_floater.string
- name="close_on_no_ability">
- You no longer have the ability to be in the chat session.
- </multi_floater.string>
- <tab_container
- follows="left|top|right|bottom"
- height="406"
- layout="topleft"
- left="1"
- name="Preview Tabs"
- tab_position="bottom"
- top="16"
- width="417" />
-</multi_floater>
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 c9b013099b..a371e98322 100644
--- a/indra/newview/skins/default/xui/en/floater_im_session.xml
+++ b/indra/newview/skins/default/xui/en/floater_im_session.xml
@@ -30,12 +30,19 @@
top="20"
left="0">
<layout_panel
- name="panel_im_control_panel"
- layout="topleft"
- follows="left"
- min_width="115"
+ name="im_control_panel_holder"
+ min_width="115"
+ width="150"
+ height="320"
auto_resize="false"
- user_resize="true" />
+ user_resize="false">
+ <panel
+ name="panel_im_control_panel"
+ layout="topleft"
+ height="320"
+ width="150"
+ follows="all"/>
+ </layout_panel>
<layout_panel
default_tab_group="3"
left="0"
@@ -67,7 +74,7 @@
height="150"
name="chat_history"
parse_highlights="true"
- allow_html="true"
+ parse_urls="true"
left="1"
width="249">
</chat_history>
diff --git a/indra/newview/skins/default/xui/en/floater_map.xml b/indra/newview/skins/default/xui/en/floater_map.xml
index a0e28f7a42..6370ff9243 100644
--- a/indra/newview/skins/default/xui/en/floater_map.xml
+++ b/indra/newview/skins/default/xui/en/floater_map.xml
@@ -7,8 +7,8 @@
follows="top|right"
height="174"
layout="topleft"
- min_height="174"
- min_width="174"
+ min_height="128"
+ min_width="128"
name="Map"
title=""
help_topic="map"
@@ -19,40 +19,11 @@
top="0"
width="200">
<floater.string
- name="mini_map_north">
- N
- </floater.string>
- <floater.string
- name="mini_map_east">
- E
- </floater.string>
- <floater.string
- name="mini_map_west">
- W
- </floater.string>
- <floater.string
- name="mini_map_south">
- S
- </floater.string>
- <floater.string
- name="mini_map_southeast">
- SE
- </floater.string>
- <floater.string
- name="mini_map_northeast">
- NE
- </floater.string>
- <floater.string
- name="mini_map_southwest">
- SW
- </floater.string>
- <floater.string
- name="mini_map_northwest">
- NW
- </floater.string>
- <floater.string
name="ToolTipMsg">
- [AGENT][REGION](Double-click to open Map)
+ [REGION](Double-click to open Map, shift-drag to pan)
+ </floater.string>
+ <floater.string name="mini_map_caption">
+ MINIMAP
</floater.string>
<net_map
bg_color="NetMapBackgroundColor"
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 c02d607586..4701d7eca8 100644
--- a/indra/newview/skins/default/xui/en/floater_media_browser.xml
+++ b/indra/newview/skins/default/xui/en/floater_media_browser.xml
@@ -9,7 +9,7 @@
name="floater_about"
help_topic="floater_about"
save_rect="true"
- single_instance="true"
+ auto_tile="true"
title="MEDIA BROWSER"
width="820">
<floater.string
@@ -26,10 +26,12 @@
layout="topleft"
left="10"
name="stack1"
+ orientation="vertical"
top="20"
width="800">
<layout_panel
auto_resize="false"
+ default_tab_group="1"
height="20"
layout="topleft"
left="0"
@@ -77,11 +79,13 @@
<combo_box
allow_text_entry="true"
follows="left|top|right"
+ tab_group="1"
height="20"
layout="topleft"
left_pad="5"
max_chars="1024"
name="address"
+ combo_editor.select_on_focus="true"
top_delta="0"
width="540">
<combo_box.commit_callback
@@ -189,9 +193,9 @@
top_delta="0"
user_resize="false"
width="540">
- <web_browser
+ <web_browser
bottom="-30"
- follows="left|right|top|bottom"
+ follows="all"
layout="topleft"
left="0"
name="browser"
diff --git a/indra/newview/skins/default/xui/en/floater_my_friends.xml b/indra/newview/skins/default/xui/en/floater_my_friends.xml
deleted file mode 100644
index e7efcc7844..0000000000
--- a/indra/newview/skins/default/xui/en/floater_my_friends.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<floater
- legacy_header_height="18"
- can_close="false"
- can_resize="true"
- height="390"
- layout="topleft"
- min_height="240"
- min_width="365"
- name="floater_my_friends"
- help_topic="floater_my_friends"
- save_rect="true"
- single_instance="true"
- title="CONTACTS"
- width="395">
- <tab_container
- follows="all"
- height="364"
- layout="topleft"
- left="4"
- name="friends_and_groups"
- tab_position="top"
- tab_width="80"
- top="20"
- width="383">
- <panel
- bottom="364"
- filename="panel_friends.xml"
- label="Friends"
- layout="topleft"
- left="0"
- help_topic="my_friends_friends_tab"
- name="friends_panel"
- width="370" />
- <panel
- bottom="364"
- filename="panel_groups.xml"
- label="Groups"
- layout="topleft"
- left="0"
- help_topic="my_friends_groups_tab"
- name="groups_panel"
- width="370" />
- </tab_container>
-</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_nearby_chat.xml b/indra/newview/skins/default/xui/en/floater_nearby_chat.xml
index 28616d503b..4c5113aa55 100644
--- a/indra/newview/skins/default/xui/en/floater_nearby_chat.xml
+++ b/indra/newview/skins/default/xui/en/floater_nearby_chat.xml
@@ -1,8 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater
border_visible="false"
- border_drop_shadow_visible="false"
- drop_shadow_visible="false"
border="false"
bg_opaque_image="Window_Foreground"
bg_alpha_image="Window_Background"
@@ -16,7 +14,7 @@
can_dock="true"
bevel_style="in"
height="300"
- min_width="150"
+ min_width="235"
layout="topleft"
name="nearby_chat"
help_topic="nearby_chat"
@@ -26,20 +24,30 @@
save_visibility="true"
single_instance="true"
width="320">
- <chat_history
- allow_html="true"
- bg_readonly_color="ChatHistoryBgColor"
- bg_writeable_color="ChatHistoryBgColor"
- follows="all"
- left="5"
- top="20"
+ <check_box
+ bottom_delta="36"
+ control_name="TranslateChat"
+ enabled="true"
+ height="16"
+ label="Translate chat (powered by Google)"
layout="topleft"
- height="275"
- name="chat_history"
- parse_highlights="true"
- text_color="ChatHistoryTextColor"
- text_readonly_color="ChatHistoryTextColor"
- right_widget_pad="5"
- left_widget_pad="0"
- width="315" />
+ left="5"
+ name="translate_chat_checkbox"
+ width="230" />
+ <chat_history
+ parse_urls="true"
+ bg_readonly_color="ChatHistoryBgColor"
+ bg_writeable_color="ChatHistoryBgColor"
+ follows="all"
+ left="5"
+ top_delta="17"
+ layout="topleft"
+ height="260"
+ name="chat_history"
+ parse_highlights="true"
+ text_color="ChatHistoryTextColor"
+ text_readonly_color="ChatHistoryTextColor"
+ right_widget_pad="5"
+ left_widget_pad="0"
+ width="315" />
</floater>
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 ca81b9bcf0..e243ccd2f9 100644
--- a/indra/newview/skins/default/xui/en/floater_notifications_console.xml
+++ b/indra/newview/skins/default/xui/en/floater_notifications_console.xml
@@ -36,6 +36,7 @@
follows="left|right|top|bottom"
layout="topleft"
left="5"
+ orientation="vertical"
name="notification_channels"
right="-5"
top="42" />
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
deleted file mode 100644
index 1d73d516d0..0000000000
--- a/indra/newview/skins/default/xui/en/floater_outfit_save_as.xml
+++ /dev/null
@@ -1,58 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<floater
- can_close="false"
- can_minimize="false"
- height="100"
- layout="topleft"
- title="Save Outfit"
- name="modal container"
- width="240">
- <button
- height="23"
- label="Save"
- label_selected="Save"
- layout="topleft"
- left="20"
- name="Save"
- top="70"
- width="82" />
- <button
- height="23"
- label="Cancel"
- label_selected="Cancel"
- layout="topleft"
- left_pad="36"
- name="Cancel"
- top_delta="0"
- width="82" />
- <text
- type="string"
- length="1"
- follows="left|top"
- height="30"
- layout="topleft"
- left="20"
- word_wrap="true"
- name="Save item as:"
- top="10"
- width="200">
- Save what I'm wearing
-as a new Outfit:
- </text>
- <line_editor
- type="string"
- length="1"
- border_style="line"
- border_thickness="1"
- follows="left|top"
- height="23"
- layout="topleft"
- left_delta="0"
- show_text_as_tentative="false"
- top_pad="0"
- max_length="63"
- name="name ed"
- width="200">
- [DESC] (new)
- </line_editor>
-</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_preview_classified.xml b/indra/newview/skins/default/xui/en/floater_preview_classified.xml
deleted file mode 100644
index 2017cf2bd1..0000000000
--- a/indra/newview/skins/default/xui/en/floater_preview_classified.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<floater
- legacy_header_height="18"
- auto_tile="true"
- height="510"
- layout="topleft"
- name="classified_preview"
- help_topic="classified_preview"
- save_rect="true"
- title="CLASSIFIED INFORMATION"
- width="440">
- <floater.string
- name="Title">
- Classified: [NAME]
- </floater.string>
- <panel
- follows="bottom|left"
- height="470"
- layout="topleft"
- left="0"
- name="classified_details_panel"
- top="20"
- width="440" />
-</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_preview_event.xml b/indra/newview/skins/default/xui/en/floater_preview_event.xml
deleted file mode 100644
index a4066b34c5..0000000000
--- a/indra/newview/skins/default/xui/en/floater_preview_event.xml
+++ /dev/null
@@ -1,24 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<floater
- legacy_header_height="18"
- auto_tile="true"
- height="510"
- layout="topleft"
- name="event_preview"
- help_topic="event_preview"
- save_rect="true"
- title="EVENT INFORMATION"
- width="440">
- <floater.string
- name="Title">
- Event: [NAME]
- </floater.string>
- <panel
- follows="bottom|left"
- height="470"
- layout="topleft"
- left="0"
- name="event_details_panel"
- top="20"
- width="440" />
-</floater>
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 6281bc5272..1903401988 100644
--- a/indra/newview/skins/default/xui/en/floater_preview_gesture.xml
+++ b/indra/newview/skins/default/xui/en/floater_preview_gesture.xml
@@ -96,19 +96,19 @@
name="replace_text"
tool_tip="Replace the trigger word(s) with these words. For example, trigger &apos;hello&apos; replace with &apos;howdy&apos; will turn the chat &apos;I wanted to say hello&apos; into &apos;I wanted to say howdy&apos; as well as playing the gesture!"
top_pad="10"
- width="200">
+ width="210">
Replace with:
</text>
<line_editor
follows="left|top"
height="20"
layout="topleft"
- left_delta="89"
+ left_delta="99"
max_length="31"
name="replace_editor"
tool_tip="Replace the trigger word(s) with these words. For example, trigger &apos;hello&apos; replace with &apos;howdy&apos; will turn the chat &apos;I wanted to say hello&apos; into &apos;I wanted to say howdy&apos; as well as playing the gesture"
top_delta="-4"
- width="175" />
+ width="165" />
<text
type="string"
length="1"
@@ -120,25 +120,25 @@
font.style="BOLD"
name="key_label"
top_pad="10"
- width="100">
+ width="150">
Shortcut Key:
</text>
<combo_box
height="20"
label="None"
layout="topleft"
- left_delta="89"
+ left_delta="154"
name="modifier_combo"
top_delta="-4"
- width="75" />
+ width="55" />
<combo_box
height="20"
label="None"
layout="topleft"
- left_pad="10"
+ left_pad="4"
name="key_combo"
top_delta="0"
- width="75" />
+ width="50" />
<text
type="string"
length="1"
@@ -162,12 +162,16 @@
top_delta="15"
width="180">
<scroll_list.rows
+ name="action_animation"
value="Animation" />
<scroll_list.rows
+ name="action_sound"
value="Sound" />
<scroll_list.rows
+ name="action_chat"
value="Chat" />
<scroll_list.rows
+ name="action_wait"
value="Wait" />
</scroll_list>
<button
@@ -306,7 +310,7 @@
left_delta="0"
name="wait_time_check"
top_delta="20"
- width="100" />
+ width="115" />
<line_editor
follows="top|left"
height="20"
diff --git a/indra/newview/skins/default/xui/en/floater_preview_gesture_info.xml b/indra/newview/skins/default/xui/en/floater_preview_gesture_info.xml
deleted file mode 100644
index 66408a5057..0000000000
--- a/indra/newview/skins/default/xui/en/floater_preview_gesture_info.xml
+++ /dev/null
@@ -1,57 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<floater
- legacy_header_height="18"
- can_minimize="false"
- follows="left|top"
- height="155"
- layout="topleft"
- name="Gesture"
- help_topic="gesture"
- save_rect="true"
- title="GESTURE SHORTCUT"
- width="260">
- <scroll_list
- follows="top|left"
- height="110"
- layout="topleft"
- left="10"
- name="library_list"
- top="10"
- width="240">
- <scroll_list.rows
- value="Animation" />
- <scroll_list.rows
- value="Sound" />
- <scroll_list.rows
- value="Chat" />
- <scroll_list.rows
- value="Wait" />
- </scroll_list>
- <!--button
- follows="top|left"
- height="20"
- label="Preview"
- layout="topleft"
- left="20"
- name="preview_btn"
- top_pad="50"
- width="80" />
- <button
- follows="top|left"
- height="20"
- label="Save"
- layout="topleft"
- left_pad="5"
- name="save_btn"
- top_delta="0"
- width="80" />
- <button
- follows="top|left"
- height="20"
- label="Cancel (not working)"
- layout="topleft"
- left_pad="5"
- name="save_btn"
- top_delta="0"
- width="80" /-->
-</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_preview_gesture_shortcut.xml b/indra/newview/skins/default/xui/en/floater_preview_gesture_shortcut.xml
deleted file mode 100644
index 26252a7a16..0000000000
--- a/indra/newview/skins/default/xui/en/floater_preview_gesture_shortcut.xml
+++ /dev/null
@@ -1,88 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<floater
- legacy_header_height="18"
- can_minimize="false"
- follows="left|top"
- height="90"
- layout="topleft"
- name="Gesture"
- help_topic="gesture"
- save_rect="true"
- title="GESTURE SHORTCUT"
- width="260">
- <text
- type="string"
- length="1"
- follows="top|left"
- font="SansSerifSmall"
- height="10"
- layout="topleft"
- left="10"
- name="trigger_label"
- top_pad="10"
- width="100">
- Chat:
- </text>
- <line_editor
- follows="left|top"
- height="20"
- layout="topleft"
- left_pad="5"
- max_length="31"
- name="trigger_editor"
- top_delta="-4"
- width="135" />
- <text
- type="string"
- length="1"
- follows="top|left"
- font="SansSerifSmall"
- height="10"
- layout="topleft"
- left="10"
- name="key_label"
- top_pad="10"
- width="100">
- Keyboard:
- </text>
- <combo_box
- height="20"
- label="None"
- layout="topleft"
- left_pad="13"
- name="modifier_combo"
- top_delta="-4"
- width="50" />
- <combo_box
- height="20"
- label="None"
- layout="topleft"
- left_pad="5"
- name="key_combo"
- top_delta="0"
- width="45" />
- <text
- type="string"
- length="1"
- follows="top|left"
- font="SansSerifSmall"
- height="10"
- layout="topleft"
- left="10"
- name="replace_text"
- tool_tip="Replace the trigger word(s) with these words. For example, trigger &apos;hello&apos; replace with &apos;howdy&apos; will turn the chat &apos;I wanted to say hello&apos; into &apos;I wanted to say howdy&apos; as well as playing the gesture!"
- top_pad="10"
- width="100">
- Replace:
- </text>
- <line_editor
- follows="left|top"
- height="20"
- layout="topleft"
- left_pad="5"
- max_length="31"
- name="replace_editor"
- tool_tip="Replace the trigger word(s) with these words. For example, trigger &apos;hello&apos; replace with &apos;howdy&apos; will turn the chat &apos;I wanted to say hello&apos; into &apos;I wanted to say howdy&apos; as well as playing the gesture"
- top_delta="-4"
- width="135" />
-</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_preview_gesture_steps.xml b/indra/newview/skins/default/xui/en/floater_preview_gesture_steps.xml
deleted file mode 100644
index 34f707cd2a..0000000000
--- a/indra/newview/skins/default/xui/en/floater_preview_gesture_steps.xml
+++ /dev/null
@@ -1,242 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<floater
- legacy_header_height="18"
- can_minimize="false"
- follows="left|top"
- height="155"
- layout="topleft"
- name="Gesture"
- help_topic="gesture"
- save_rect="true"
- title="GESTURE SHORTCUT"
- width="260">
- <scroll_list
- follows="top|left"
- height="110"
- layout="topleft"
- left="10"
- name="step_list"
- top_pad="10"
- width="240" />
- <!--text
- type="string"
- length="1"
- follows="top|left"
- font="SansSerifSmall"
- height="60"
- layout="topleft"
- left="10"
- name="help_label"
- top_pad="10"
- width="200">
- All steps happen simultaneously,
-unless you add wait steps.
- </text-->
- <!--text
- follows="top|left"
- height="60"
- layout="topleft"
- left="10"
- name="options_text"
- top_pad="10"
- width="205" /-->
- <!--combo_box
- follows="top|left"
- height="20"
- layout="topleft"
- left_delta="10"
- name="animation_list"
- top_pad="10"
- width="100" />
- <combo_box
- follows="top|left"
- height="20"
- layout="topleft"
- left_delta="0"
- name="sound_list"
- top_delta="10"
- width="100" />
- <line_editor
- follows="top|left"
- height="20"
- layout="topleft"
- left_delta="0"
- max_length="127"
- name="chat_editor"
- top_pad="10"
- width="100" />
- <radio_group
- draw_border="false"
- follows="top|left"
- height="40"
- layout="topleft"
- left_pad="8"
- name="animation_trigger_type"
- top_pad="10"
- width="80">
- <radio_item
- height="16"
- label="Start"
- layout="topleft"
- left="3"
- name="start"
- top="-11"
- width="80" />
- <radio_item
- height="16"
- label="Stop"
- layout="topleft"
- left_delta="0"
- name="stop"
- top_pad="10"
- width="80" />
- </radio_group>
- <check_box
- follows="top|left"
- height="20"
- label="until animations are done"
- layout="topleft"
- left="16"
- name="wait_anim_check"
- top_pad="10"
- width="100" />
- <check_box
- follows="top|left"
- height="20"
- label="time in seconds"
- layout="topleft"
- left_delta="0"
- name="wait_time_check"
- top_pad="10"
- width="100" />
- <line_editor
- follows="top|left"
- height="20"
- layout="topleft"
- left_pad="5"
- max_length="15"
- name="wait_time_editor"
- top_pad="10"
- width="50" /-->
-
-
-
- <!--For pop out floater-->
- <!--scroll_list
- follows="top|left"
- height="110"
- layout="topleft"
- left="10"
- name="library_list"
- top_pad="10"
- width="260">
- <scroll_list.rows
- value="Animation" />
- <scroll_list.rows
- value="Sound" />
- <scroll_list.rows
- value="Chat" />
- <scroll_list.rows
- value="Wait" />
- </scroll_list>
- <text
- type="string"
- length="1"
- follows="top|left"
- font="SansSerifSmall"
- height="60"
- layout="topleft"
- left="10"
- name="help_label"
- top_pad="10"
- width="200">
- All steps happen simultaneously,
-unless you add wait steps.
- </text>
- <text
- follows="top|left"
- height="60"
- layout="topleft"
- left="10"
- name="options_text"
- top_pad="10"
- width="205" />
- <combo_box
- follows="top|left"
- height="20"
- layout="topleft"
- left_delta="10"
- name="animation_list"
- top_pad="10"
- width="100" />
- <combo_box
- follows="top|left"
- height="20"
- layout="topleft"
- left_delta="0"
- name="sound_list"
- top_delta="0"
- width="100" />
- <line_editor
- follows="top|left"
- height="20"
- layout="topleft"
- left_delta="0"
- max_length="127"
- name="chat_editor"
- top_delta="0"
- width="100" />
- <radio_group
- draw_border="false"
- follows="top|left"
- height="40"
- layout="topleft"
- left_pad="8"
- name="animation_trigger_type"
- top="445"
- width="80">
- <radio_item
- height="16"
- label="Start"
- layout="topleft"
- left="3"
- name="start"
- top="-11"
- width="80" />
- <radio_item
- height="16"
- label="Stop"
- layout="topleft"
- left_delta="0"
- name="stop"
- top_pad="10"
- width="80" />
- </radio_group>
- <check_box
- follows="top|left"
- height="20"
- label="until animations are done"
- layout="topleft"
- left="16"
- name="wait_anim_check"
- top="430"
- width="100" />
- <check_box
- follows="top|left"
- height="20"
- label="time in seconds"
- layout="topleft"
- left_delta="0"
- name="wait_time_check"
- top_delta="20"
- width="100" />
- <line_editor
- follows="top|left"
- height="20"
- layout="topleft"
- left_pad="5"
- max_length="15"
- name="wait_time_editor"
- top_delta="0"
- width="50" /-->
-</floater>
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 0e8eef2a21..e5a5fab9b9 100644
--- a/indra/newview/skins/default/xui/en/floater_preview_notecard.xml
+++ b/indra/newview/skins/default/xui/en/floater_preview_notecard.xml
@@ -71,7 +71,7 @@
left="4"
max_length="65536"
name="Notecard Editor"
- allow_html="false"
+ parse_urls="false"
tab_group="1"
top="46"
width="392"
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 3225843d09..6ce9ed6e77 100644
--- a/indra/newview/skins/default/xui/en/floater_publish_classified.xml
+++ b/indra/newview/skins/default/xui/en/floater_publish_classified.xml
@@ -5,7 +5,6 @@
height="200"
layout="topleft"
name="publish_classified"
- help_topic="price_for_listing"
title="Publishing Classified"
width="320">
<text
@@ -26,11 +25,12 @@ Remember, Classified fees are non-refundable.
<spinner
decimal_digits="0"
follows="left|top"
+ font="SansSerif"
halign="left"
height="23"
increment="1"
- label_width="70"
- label="Price for Ad: "
+ label_width="50"
+ label="Price: L$ "
v_pad="10"
layout="topleft"
left="15"
@@ -41,27 +41,6 @@ Remember, Classified fees are non-refundable.
top_pad="10"
tool_tip="Price for listing."
width="150" />
- <text
- follows="top|left"
- font="SansSerif"
- height="60"
- layout="topleft"
- left_pad="5"
- top_delta="0"
- word_wrap="true"
- value="L$"
- name="l$_text" />
- <text
- follows="top|right"
- font="SansSerif"
- height="20"
- layout="topleft"
- left="15"
- name="more_info_text"
- top_pad="-20"
- width="300">
-More info (link to classified help)
- </text>
<button
follows="top|left"
height="22"
diff --git a/indra/newview/skins/default/xui/en/floater_search.xml b/indra/newview/skins/default/xui/en/floater_search.xml
index 49b3b58113..8770ede7e9 100644
--- a/indra/newview/skins/default/xui/en/floater_search.xml
+++ b/indra/newview/skins/default/xui/en/floater_search.xml
@@ -22,7 +22,7 @@
Done
</floater.string>
<layout_stack
- bottom="595"
+ height="580"
follows="left|right|top|bottom"
layout="topleft"
left="10"
@@ -30,6 +30,7 @@
top="20"
width="630">
<layout_panel
+ height="570"
layout="topleft"
left_delta="0"
top_delta="0"
@@ -37,13 +38,13 @@
user_resize="false"
width="630">
<web_browser
- bottom="-10"
+ trusted_content="true"
follows="left|right|top|bottom"
layout="topleft"
left="0"
name="browser"
top="0"
- height="555"
+ height="540"
width="630" />
<text
follows="bottom|left"
@@ -51,7 +52,7 @@
layout="topleft"
left_delta="0"
name="status_text"
- top_pad="7"
+ top_pad="10"
width="150" />
<text
visible="false"
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
new file mode 100644
index 0000000000..9f14e9ae0a
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/floater_side_bar_tab.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<floater
+ can_close="false"
+ can_resize="true"
+ min_width="333"
+ min_height="440"
+ save_rect="true"
+ save_visibility="true"
+ >
+</floater>
diff --git a/indra/newview/skins/default/xui/en/floater_snapshot.xml b/indra/newview/skins/default/xui/en/floater_snapshot.xml
index 452b2ac664..857932e51a 100644
--- a/indra/newview/skins/default/xui/en/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/en/floater_snapshot.xml
@@ -4,48 +4,52 @@
can_minimize="false"
can_close="true"
follows="left|top"
- height="516"
+ height="520"
layout="topleft"
name="Snapshot"
help_topic="snapshot"
save_rect="true"
save_visibility="true"
title="SNAPSHOT PREVIEW"
- width="215">
- <floater.string
- name="share_to_web_url" translate="false">
-http://pdp36.lindenlab.com:12777/
- </floater.string>
+ width="215">
<floater.string
name="unknown">
unknown
</floater.string>
<radio_group
- height="58"
+ height="70"
label="Snapshot type"
layout="topleft"
left="10"
name="snapshot_type_radio"
- top="25"
+ top="20"
width="205">
+<!--
<radio_item
- bottom="19"
+ height="16"
+ label="Share to Web"
+ layout="topleft"
+ name="share_to_web"
+ top_pad="0" />
+-->
+ <radio_item
height="16"
label="Email"
layout="topleft"
- name="postcard" />
+ name="postcard"
+ top_pad="2" />
<radio_item
- bottom="38"
height="16"
label="My inventory (L$[AMOUNT])"
layout="topleft"
- name="texture" />
+ name="texture"
+ top_pad="2" />
<radio_item
- bottom="57"
height="16"
label="Save to my computer"
layout="topleft"
- name="local" />
+ name="local"
+ top_pad="2" />
</radio_group>
<ui_ctrl
height="90"
@@ -67,7 +71,7 @@ http://pdp36.lindenlab.com:12777/
left_delta="0"
halign="right"
name="file_size_label"
- top_pad="10"
+ top_pad="8"
width="195">
[SIZE] KB
</text>
diff --git a/indra/newview/skins/default/xui/en/floater_statistics.xml b/indra/newview/skins/default/xui/en/floater_statistics.xml
deleted file mode 100644
index 3a4e845141..0000000000
--- a/indra/newview/skins/default/xui/en/floater_statistics.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<floater
- legacy_header_height="18"
- can_resize="true"
- follows="right|top"
- height="392"
- layout="topleft"
- mouse_opaque="false"
- name="stats floater"
- help_topic="stats_floater"
- title="STATISTICS"
- width="250" />
diff --git a/indra/newview/skins/default/xui/en/floater_stats.xml b/indra/newview/skins/default/xui/en/floater_stats.xml
index f9dacf0207..b87cb9a433 100644
--- a/indra/newview/skins/default/xui/en/floater_stats.xml
+++ b/indra/newview/skins/default/xui/en/floater_stats.xml
@@ -361,8 +361,7 @@
<stat_view
name="physicsdetail"
label="Physics Details"
- show_label="true"
- display_children="false">
+ show_label="true">
<stat_bar
name="physicspinnedtasks"
label="Pinned Objects"
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 1935edfcc1..95aaadfcf3 100644
--- a/indra/newview/skins/default/xui/en/floater_test_checkbox.xml
+++ b/indra/newview/skins/default/xui/en/floater_test_checkbox.xml
@@ -41,7 +41,7 @@
layout="topleft"
left_delta="0"
name="text_enabled_color_checkbox"
- text_enabled_color="EmphasisColor"
+ label_text.text_color="EmphasisColor"
top_pad="14"
width="150" />
<check_box
@@ -51,7 +51,7 @@
layout="topleft"
left_delta="0"
name="text_disabled_color_checkbox"
- text_disabled_color="EmphasisColor_35"
+ label_text.text_readonly_color="EmphasisColor_35"
top_pad="14"
width="150" />
<check_box
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 fb583114c0..13c850c86c 100644
--- a/indra/newview/skins/default/xui/en/floater_test_widgets.xml
+++ b/indra/newview/skins/default/xui/en/floater_test_widgets.xml
@@ -79,7 +79,7 @@
follows="top|left"
left="10"
height="16">
- For widget list see https://wiki.lindenlab.com/wiki/Viewer:UI/Widgets
+ For widget list see http://wiki.secondlife.com/wiki/XUI_Reference
</text>
<!-- First column -->
diff --git a/indra/newview/skins/default/xui/en/floater_tools.xml b/indra/newview/skins/default/xui/en/floater_tools.xml
index efc1a66d95..cea2ba2c7f 100644
--- a/indra/newview/skins/default/xui/en/floater_tools.xml
+++ b/indra/newview/skins/default/xui/en/floater_tools.xml
@@ -255,7 +255,7 @@
label="Edit linked"
layout="topleft"
name="checkbox edit linked parts"
- top_pad="0">
+ top_pad="2">
<check_box.commit_callback
function="BuildTool.selectComponent"/>
</check_box>
@@ -267,7 +267,7 @@
left="13"
name="RenderingCost"
tool_tip="Shows the rendering cost calculated for this object"
- top_pad="2"
+ top_pad="0"
type="string"
width="100">
þ: [COUNT]
@@ -335,7 +335,6 @@
</combo_box>
<button
left_pad="0"
- image_disabled="ForwardArrow_Disabled"
image_selected="ForwardArrow_Press"
image_unselected="ForwardArrow_Off"
layout="topleft"
@@ -733,7 +732,7 @@
layout="topleft"
right="-10"
name="obj_count"
- top_pad="5"
+ top_pad="7"
width="143">
Objects: [COUNT]
</text>
@@ -759,7 +758,7 @@
tab_min_width="40"
tab_position="top"
tab_height="25"
- top="170"
+ top="173"
width="295">
<panel
border="false"
@@ -824,7 +823,7 @@
height="10"
left="10"
name="Name:"
- top="0"
+ top="5"
width="90">
Name:
</text>
@@ -911,29 +910,34 @@
width="75">
Group:
</text>
+ <name_box
+ follows="left|top"
+ height="18"
+ initial_value="Loading..."
+ layout="topleft"
+ left_pad="23"
+ name="Group Name Proxy"
+ width="142" />
<button
follows="top|left"
- height="10"
- image_disabled="Activate_Checkmark"
- image_selected="Activate_Checkmark"
- image_unselected="Activate_Checkmark"
- image_color="White_50"
+ height="23"
+ image_overlay="Edit_Wrench"
layout="topleft"
- left_pad="0"
- top_delta="0"
+ left_pad="3"
name="button set group"
tab_stop="false"
tool_tip="Choose a group to share this object's permissions"
- width="10" />
- <name_box
+ width="23" />
+ <check_box
+ height="19"
follows="left|top"
- height="18"
- initial_value="Loading..."
+ label="Share"
layout="topleft"
- left_pad="5"
- top_delta="-1"
- name="Group Name Proxy"
- width="150" />
+ name="checkbox share with group"
+ tool_tip="Allow all members of the set group to share your modify permissions for this object. You must Deed to enable role restrictions."
+ top_pad="10"
+ left="106"
+ width="87" />
<button
follows="top|left"
height="23"
@@ -941,26 +945,16 @@
label_selected="Deed"
layout="topleft"
name="button deed"
- top_pad="0"
- left="108"
+ left_pad="3"
tool_tip="Deeding gives this item away with next owner permissions. Group shared objects can be deeded by a group officer."
width="80" />
- <check_box
- height="19"
- follows="left|top"
- label="Share"
- layout="topleft"
- name="checkbox share with group"
- tool_tip="Allow all members of the set group to share your modify permissions for this object. You must Deed to enable role restrictions."
- left_pad="3"
- width="100" />
<text
type="string"
length="1"
follows="left|top"
height="16"
layout="topleft"
- top_pad="15"
+ top_pad="10"
left="10"
name="label click action"
width="98">
@@ -1012,7 +1006,7 @@
follows="left|top"
allow_text_entry="false"
height="23"
- intial_value="2"
+ initial_value="2"
max_chars="20"
mouse_opaque="true"
name="sale type"
@@ -2028,12 +2022,13 @@ even though the user gets a free copy.
type="string"
length="1"
follows="left|top"
- height="10"
+ height="20"
layout="topleft"
left="10"
name="select_single"
top="5"
- width="252">
+ width="252"
+ word_wrap="true">
Select only one primitive to edit features.
</text>
<text
@@ -2055,7 +2050,7 @@ even though the user gets a free copy.
left="10"
name="Flexible1D Checkbox Ctrl"
tool_tip="Allows object to flex about the Z axis (Client-side only)"
- top_pad="10"
+ top_pad="20"
width="121" />
<spinner
follows="left|top"
@@ -2176,8 +2171,6 @@ even though the user gets a free copy.
width="60" />
<color_swatch
can_apply_immediately="true"
- bevel_style="none"
- border_style="line"
color="0.5 0.5 0.5 1"
border.border_thickness="0"
follows="left|top"
@@ -2212,43 +2205,71 @@ even though the user gets a free copy.
name="Light Intensity"
top_pad="3"
width="128" />
- <spinner bottom_delta="0" decimal_digits="3" follows="left|top" height="16"
- increment="0.1" initial_val="0.5" label="FOV" label_width="55"
- left="144" max_val="3" min_val="0" mouse_opaque="true"
- name="Light FOV" width="120" />
- <spinner
- follows="left|top"
- height="19"
- initial_value="5"
- label="Radius"
- label_width="70"
- layout="topleft"
- left="10"
- max_val="20"
- name="Light Radius"
- top_pad="3"
- width="128" />
- <spinner bottom_delta="0" decimal_digits="3" follows="left|top" height="16"
- increment="0.5" initial_val="0.5" label="Focus" label_width="55"
- left="144" max_val="20" min_val="-20" mouse_opaque="true"
- name="Light Focus" width="120" />
- <spinner
- follows="left|top"
- height="19"
- increment="0.25"
- initial_value="1"
- label="Falloff"
- label_width="70"
- layout="topleft"
- left="10"
- max_val="2"
- name="Light Falloff"
- top_pad="3"
- width="128" />
- <spinner bottom_delta="0" decimal_digits="3" follows="left|top" height="16"
- increment="0.05" initial_val="1" label="Ambiance" label_width="55"
- left="144" max_val="1" min_val="0" mouse_opaque="true"
- name="Light Ambiance" width="120" />
+ <spinner bottom_delta="0"
+ decimal_digits="3"
+ follows="left|top"
+ height="16"
+ increment="0.1"
+ initial_value="0.5"
+ label="FOV"
+ label_width="55"
+ left="144"
+ max_val="3"
+ min_val="0"
+ mouse_opaque="true"
+ name="Light FOV"
+ width="120" />
+ <spinner follows="left|top"
+ height="19"
+ initial_value="5"
+ label="Radius"
+ label_width="70"
+ layout="topleft"
+ left="10"
+ max_val="20"
+ name="Light Radius"
+ top_pad="3"
+ width="128" />
+ <spinner bottom_delta="0"
+ decimal_digits="3"
+ follows="left|top"
+ height="16"
+ increment="0.5"
+ initial_value="0.5"
+ label="Focus"
+ label_width="55"
+ left="144"
+ max_val="20"
+ min_val="-20"
+ mouse_opaque="true"
+ name="Light Focus"
+ width="120" />
+ <spinner follows="left|top"
+ height="19"
+ increment="0.25"
+ initial_value="1"
+ label="Falloff"
+ label_width="70"
+ layout="topleft"
+ left="10"
+ max_val="2"
+ name="Light Falloff"
+ top_pad="3"
+ width="128" />
+ <spinner bottom_delta="0"
+ decimal_digits="3"
+ follows="left|top"
+ height="16"
+ increment="0.05"
+ initial_value="1"
+ label="Ambiance"
+ label_width="55"
+ left="144"
+ max_val="1"
+ min_val="0"
+ mouse_opaque="true"
+ name="Light Ambiance"
+ width="120" />
</panel>
<panel
border="false"
@@ -2273,6 +2294,7 @@ even though the user gets a free copy.
<texture_picker
can_apply_immediately="true"
default_image_name="Default"
+ fallback_image="locked_image.j2c"
follows="left|top"
height="80"
label="Texture"
@@ -2301,6 +2323,7 @@ even though the user gets a free copy.
layout="topleft"
left_pad="15"
name="color trans"
+ text_readonly_color="LabelDisabledColor"
top="6"
width="110">
Transparency %
@@ -2325,6 +2348,7 @@ even though the user gets a free copy.
layout="topleft"
left_delta="0"
name="glow label"
+ text_readonly_color="LabelDisabledColor"
top_pad="8"
width="80">
Glow
@@ -2355,6 +2379,7 @@ even though the user gets a free copy.
layout="topleft"
left="10"
name="tex gen"
+ text_readonly_color="LabelDisabledColor"
top_pad="5"
width="90">
Mapping
@@ -2383,7 +2408,8 @@ even though the user gets a free copy.
layout="topleft"
name="label shininess"
left_pad="4"
- top_pad="-36"
+ text_readonly_color="LabelDisabledColor"
+ top_pad="-37"
width="90">
Shininess
</text>
@@ -2419,7 +2445,8 @@ even though the user gets a free copy.
layout="topleft"
left_pad="4"
name="label bumpiness"
- top_pad="-36"
+ text_readonly_color="LabelDisabledColor"
+ top_pad="-37"
width="90">
Bumpiness
</text>
@@ -2537,6 +2564,17 @@ even though the user gets a free copy.
top_delta="-4"
width="120" />
-->
+ <check_box
+ follows="top|left"
+ height="16"
+ initial_value="false"
+ label="Align planar faces"
+ layout="topleft"
+ left="17"
+ name="checkbox planar align"
+ tool_tip="Align textures on all selected faces with the last selected face. Requires Planar texture mapping."
+ top_delta="26"
+ width="140" />
<text
type="string"
length="1"
@@ -2544,9 +2582,10 @@ even though the user gets a free copy.
height="10"
layout="topleft"
left="10"
- name="tex scale"
- top_pad="4"
- width="200">
+ name="rpt"
+ text_readonly_color="LabelDisabledColor"
+ top_pad="2"
+ width="140">
Repeats / Face
</text>
<spinner
@@ -2559,7 +2598,7 @@ even though the user gets a free copy.
left="20"
max_val="100"
name="TexScaleU"
- top_pad="6"
+ top_pad="5"
width="185" />
<check_box
height="19"
@@ -2633,6 +2672,7 @@ even though the user gets a free copy.
layout="topleft"
left="10"
name="tex offset"
+ text_readonly_color="LabelDisabledColor"
width="200">
Texture Offset
</text>
@@ -2668,7 +2708,7 @@ even though the user gets a free copy.
bg_alpha_color="DkGray"
name="Add_Media"
left="0"
- height="63"
+ height="47"
width="290">
<text
type="string"
@@ -2716,9 +2756,9 @@ even though the user gets a free copy.
follows="top|left"
tool_tip="Edit this Media"
height="12"
- image_disabled="Icon_Gear_Foreground"
- image_selected="Icon_Gear_Background"
- image_unselected="Icon_Gear_Press"
+ image_disabled="Icon_Gear_Background"
+ image_selected="Icon_Gear_Press"
+ image_unselected="Icon_Gear_Foreground"
layout="topleft"
left_pad="10"
name="edit_media"
@@ -2754,8 +2794,9 @@ even though the user gets a free copy.
label="Align"
label_selected="Align Media"
layout="topleft"
- right="-10"
+ right="-16"
name="button align"
+ top_delta="-4"
tool_tip="Align media texture (must load first)"
width="80" />
</panel>
diff --git a/indra/newview/skins/default/xui/en/floater_tos.xml b/indra/newview/skins/default/xui/en/floater_tos.xml
index cbfaac958b..af1617eb39 100644
--- a/indra/newview/skins/default/xui/en/floater_tos.xml
+++ b/indra/newview/skins/default/xui/en/floater_tos.xml
@@ -58,6 +58,7 @@
Please read the following Terms of Service and Privacy Policy carefully. To continue logging in to [SECOND_LIFE], you must accept the agreement.
</text>
<web_browser
+ trusted_content="true"
follows="left|top"
height="340"
layout="topleft"
diff --git a/indra/newview/skins/default/xui/en/floater_voice_controls.xml b/indra/newview/skins/default/xui/en/floater_voice_controls.xml
index bf5bd87ad6..1432099590 100644
--- a/indra/newview/skins/default/xui/en/floater_voice_controls.xml
+++ b/indra/newview/skins/default/xui/en/floater_voice_controls.xml
@@ -86,6 +86,7 @@
visible="true"
width="20" />
</layout_panel>
+ <layout_panel name="leave_call_panel" height="26" auto_resize="false">
<layout_stack
clip="true"
auto_resize="false"
@@ -96,11 +97,15 @@
name="voice_effect_and_leave_call_stack"
orientation="horizontal"
width="262">
- <panel
- class="panel_voice_effect"
- name="panel_voice_effect"
- visiblity_control="VoiceMorphingEnabled"
- filename="panel_voice_effect.xml" />
+ <layout_panel
+ height="26"
+ width="200">
+ <panel
+ class="panel_voice_effect"
+ name="panel_voice_effect"
+ visiblity_control="VoiceMorphingEnabled"
+ filename="panel_voice_effect.xml" />
+ </layout_panel>
<layout_panel
auto_resize="false"
user_resize="false"
@@ -118,6 +123,7 @@
width="100" />
</layout_panel>
</layout_stack>
+ </layout_panel>
<layout_panel
follows="all"
layout="topleft"
diff --git a/indra/newview/skins/default/xui/en/floater_wearable_save_as.xml b/indra/newview/skins/default/xui/en/floater_wearable_save_as.xml
deleted file mode 100644
index 71812bd1a6..0000000000
--- a/indra/newview/skins/default/xui/en/floater_wearable_save_as.xml
+++ /dev/null
@@ -1,56 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<floater
- legacy_header_height="0"
- can_close="false"
- can_minimize="false"
- height="100"
- layout="topleft"
- name="modal container"
- width="240">
- <button
- height="23"
- label="Save"
- label_selected="Save"
- layout="topleft"
- left="20"
- name="Save"
- top="70"
- width="82" />
- <button
- height="23"
- label="Cancel"
- label_selected="Cancel"
- layout="topleft"
- left_pad="36"
- name="Cancel"
- top_delta="0"
- width="82" />
- <text
- type="string"
- length="1"
- follows="left|top"
- height="30"
- layout="topleft"
- word_wrap="true"
- left="20"
- name="Save item as:"
- top="10"
- width="200">
- Save item to my inventory as:
- </text>
- <line_editor
- type="string"
- length="1"
- border_style="line"
- border_thickness="1"
- follows="left|top"
- height="23"
- layout="topleft"
- left_delta="0"
- max_length="63"
- name="name ed"
- top_pad="0"
- width="200">
- New [DESC]
- </line_editor>
-</floater>
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 ece406f9b1..20629018e2 100644
--- a/indra/newview/skins/default/xui/en/floater_world_map.xml
+++ b/indra/newview/skins/default/xui/en/floater_world_map.xml
@@ -306,7 +306,7 @@
initial_value="true"
layout="topleft"
left="135"
- name="event_mature_chk"
+ name="events_mature_chk"
top_pad="3"
width="22" />
<icon
@@ -328,7 +328,7 @@
top_delta="2"
left_pad="3"
layout="topleft"
- name="mature_label"
+ name="events_mature_label"
width="66">
Moderate
</text>
@@ -339,7 +339,7 @@
height="16"
layout="topleft"
left="135"
- name="event_adult_chk"
+ name="events_adult_chk"
top_pad="3"
width="22" />
<icon
@@ -361,7 +361,7 @@
top_delta="2"
left_pad="3"
layout="topleft"
- name="adult_label"
+ name="events_adult_label"
width="66">
Adult
</text>
@@ -395,7 +395,7 @@
<panel
follows="right|top|bottom"
- height="310"
+ height="330"
top_pad="0"
width="238"
name="layout_panel_4">
@@ -534,7 +534,66 @@
<scroll_list.commit_callback
function="WMap.SearchResult" />
</scroll_list>
- <button
+ <text
+ type="string"
+ length="1"
+ follows="right|bottom"
+ halign="right"
+ height="16"
+ layout="topleft"
+ left="25"
+ name="events_label"
+ top_pad="16"
+ width="70">
+ Location:
+ </text>
+ <spinner
+ control_name="Teleport_Coordinate_X"
+ decimal_digits="0"
+ follows="right|bottom"
+ height="23"
+ increment="1"
+ initial_value="128"
+ layout="topleft"
+ left_delta="74"
+ max_val="255"
+ min_val="0"
+ name="teleport_coordinate_x"
+ width="44" >
+ <spinner.commit_callback
+ function="WMap.Coordinates" />
+ </spinner>
+ <spinner
+ control_name="Teleport_Coordinate_Y"
+ decimal_digits="0"
+ follows="right|bottom"
+ height="23"
+ increment="1"
+ initial_value="128"
+ layout="topleft"
+ left_delta="47"
+ max_val="255"
+ min_val="0"
+ name="teleport_coordinate_y" >
+ <spinner.commit_callback
+ function="WMap.Coordinates" />
+ </spinner>
+ <spinner
+ control_name="Teleport_Coordinate_Z"
+ decimal_digits="0"
+ follows="right|bottom"
+ height="23"
+ increment="1"
+ initial_value="128"
+ layout="topleft"
+ left_delta="47"
+ max_val="255"
+ min_val="0"
+ name="teleport_coordinate_z">
+ <spinner.commit_callback
+ function="WMap.Coordinates" />
+ </spinner>
+ <button
follows="right|bottom"
height="23"
image_unselected="PushButton_On"
@@ -574,66 +633,6 @@
<button.commit_callback
function="WMap.ShowTarget" />
</button>
-
-<!-- <text
- type="string"
- length="1"
- follows="bottom|right"
- halign="left"
- height="16"
- top_pad="4"
- left="25"
- layout="topleft"
- name="land_sale_label"
- width="250">
- Location:
- </text>
- <spinner
- decimal_digits="0"
- follows="bottom|right"
- increment="1"
- initial_value="128"
- layout="topleft"
- top_pad="0"
- left="25"
- max_val="255"
- name="spin x"
- tool_tip="X coordinate of location to show on map"
- width="48">
- <spinner.commit_callback
- function="WMap.CommitLocation" />
- </spinner>
- <spinner
- decimal_digits="0"
- follows="bottom|right"
- height="16"
- increment="1"
- initial_value="128"
- layout="topleft"
- left_pad="2"
- max_val="255"
- name="spin y"
- tool_tip="Y coordinate of location to show on map"
- top_delta="0"
- width="48" >
- <spinner.commit_callback
- function="WMap.CommitLocation" />
- </spinner>
- <spinner
- decimal_digits="0"
- follows="bottom|right"
- increment="1"
- initial_value="0"
- layout="topleft"
- left_pad="2"
- max_val="4096"
- name="spin z"
- tool_tip="Z coordinate of location to show on map"
- top_delta="0"
- width="48">
- <spinner.commit_callback
- function="WMap.CommitLocation" />
- </spinner>-->
</panel>
<panel
follows="right|bottom"
diff --git a/indra/newview/skins/default/xui/en/inspect_object.xml b/indra/newview/skins/default/xui/en/inspect_object.xml
index 8aeec46ba3..eb2e7ea788 100644
--- a/indra/newview/skins/default/xui/en/inspect_object.xml
+++ b/indra/newview/skins/default/xui/en/inspect_object.xml
@@ -26,7 +26,7 @@ Owner [OWNER]
<string name="Touch">Touch</string>
<string name="Sit">Sit</string>
<text
- allow_html="false"
+ parse_urls="false"
follows="all"
font="SansSerifLarge"
height="30"
diff --git a/indra/newview/skins/default/xui/en/language_settings.xml b/indra/newview/skins/default/xui/en/language_settings.xml
index c523185034..c8a06fe401 100644
--- a/indra/newview/skins/default/xui/en/language_settings.xml
+++ b/indra/newview/skins/default/xui/en/language_settings.xml
@@ -23,6 +23,7 @@
datetimeToCodes["month"] = "%B"; // August
datetimeToCodes["mthnum"] = "%m"; // 08
datetimeToCodes["day"] = "%d"; // 31
+ datetimeToCodes["sday"] = "%-d"; // 9
datetimeToCodes["hour24"] = "%H"; // 14
datetimeToCodes["hour"] = "%H"; // 14
datetimeToCodes["hour12"] = "%I"; // 02
diff --git a/indra/newview/skins/default/xui/en/main_view.xml b/indra/newview/skins/default/xui/en/main_view.xml
index 72ab6195bc..8d9ebf6e06 100644
--- a/indra/newview/skins/default/xui/en/main_view.xml
+++ b/indra/newview/skins/default/xui/en/main_view.xml
@@ -20,6 +20,7 @@
mouse_opaque="false"
name="nav_bar_container"
tab_stop="false"
+ min_height="10"
width="1024"
user_resize="false"
visible="false">
@@ -65,25 +66,24 @@
mouse_opaque="false"
name="world_stack"
orientation="vertical">
- <panel auto_resize="true"
- follows="all"
- height="500"
- layout="topleft"
- tab_stop="false"
- mouse_opaque="false"
- name="hud container"
- width="500">
- <panel auto_resize="false"
- follows="left|top"
- height="19"
- left="0"
- mouse_opaque="false"
- name="topinfo_bar_container"
- tab_stop="false"
- top="0"
- user_resize="false"
- visible="false"
- width="1024"/>
+ <layout_panel auto_resize="true"
+ follows="all"
+ height="500"
+ layout="topleft"
+ tab_stop="false"
+ mouse_opaque="false"
+ user_resize="false"
+ name="hud container"
+ width="500">
+ <panel follows="left|top"
+ height="19"
+ left="0"
+ mouse_opaque="false"
+ name="topinfo_bar_container"
+ tab_stop="false"
+ top="0"
+ visible="false"
+ width="1024"/>
<panel follows="right|top|bottom"
height="500"
mouse_opaque="false"
@@ -101,10 +101,10 @@
name="stand_stop_flying_container"
visible="false"
width="500"/>
- </panel>
+ </layout_panel>
<layout_panel auto_resize="false"
- follows="all"
min_height="33"
+ height="33"
mouse_opaque="false"
name="bottom_tray_container"
visible="false"/>
@@ -112,7 +112,7 @@
</layout_panel>
<!-- side tray -->
<layout_panel auto_resize="false"
- follows="all"
+ follows="top|bottom"
height="500"
min_width="333"
mouse_opaque="false"
@@ -187,19 +187,34 @@
<panel top="0"
follows="all"
height="768"
+ mouse_opaque="false"
+ name="popup_holder"
+ class="popup_holder"
+ width="1024">
+ <icon follows="right|bottom"
+ image_name="Resize_Corner"
+ right="-1"
+ name="resize_corner"
+ width="11"
+ bottom="-1"
+ height="11" />
+ </panel>
+ <view top="0"
+ left="0"
+ width="1024"
+ height="768"
+ name="hint_holder"
+ mouse_opaque="false"
+ follows="all"/>
+ <panel top="0"
+ follows="all"
+ height="768"
mouse_opaque="true"
name="progress_view"
filename="panel_progress.xml"
class="progress_view"
width="1024"
visible="false"/>
- <panel top="0"
- follows="all"
- height="768"
- mouse_opaque="false"
- name="popup_holder"
- class="popup_holder"
- width="1024"/>
<menu_holder top="0"
follows="all"
height="768"
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
new file mode 100644
index 0000000000..1925d3396f
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/menu_add_wearable_gear.xml
@@ -0,0 +1,41 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<menu
+ layout="topleft"
+ name="Add Wearable Gear Menu">
+ <menu_item_check
+ label="Sort by Most Recent"
+ layout="topleft"
+ name="sort_by_most_recent">
+ <on_check
+ function="AddWearable.Gear.Check"
+ parameter="by_most_recent" />
+ <on_click
+ function="AddWearable.Gear.Sort"
+ parameter="by_most_recent" />
+ </menu_item_check>
+ <menu_item_check
+ label="Sort by Name"
+ layout="topleft"
+ name="sort_by_name">
+ <on_check
+ function="AddWearable.Gear.Check"
+ parameter="by_name" />
+ <on_click
+ function="AddWearable.Gear.Sort"
+ parameter="by_name" />
+ </menu_item_check>
+ <menu_item_check
+ label="Sort by Type"
+ layout="topleft"
+ name="sort_by_type">
+ <on_check
+ function="AddWearable.Gear.Check"
+ parameter="by_type" />
+ <on_click
+ function="AddWearable.Gear.Sort"
+ parameter="by_type" />
+ <on_visible
+ function="AddWearable.Gear.Visible"
+ parameter="by_type" />
+ </menu_item_check>
+</menu>
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 7239b13466..84e81397be 100644
--- a/indra/newview/skins/default/xui/en/menu_attachment_self.xml
+++ b/indra/newview/skins/default/xui/en/menu_attachment_self.xml
@@ -11,8 +11,7 @@
function="Object.Touch" />
<menu_item_call.on_enable
function="Object.EnableTouch"
- name="EnableTouch"
- parameter="Touch" />
+ name="EnableTouch"/>
</menu_item_call>
<!--menu_item_call
label="Stand Up"
@@ -24,7 +23,7 @@
<menu_item_call.on_enable
function="Self.EnableStandUp" />
</menu_item_call-->
- <menu_item_call
+ <menu_item_call
enabled="false"
label="Edit"
layout="topleft"
@@ -47,6 +46,17 @@
<menu_item_separator
layout="topleft" />
+ <menu_item_call
+ label="Sit Down"
+ layout="topleft"
+ name="Sit Down Here">
+ <menu_item_call.on_click
+ function="Self.SitDown"
+ parameter="" />
+ <menu_item_call.on_enable
+ function="Self.EnableSitDown" />
+ </menu_item_call>
+
<menu_item_call
label="Stand Up"
layout="topleft"
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 d5b993152a..2afa29ec10 100644
--- a/indra/newview/skins/default/xui/en/menu_avatar_self.xml
+++ b/indra/newview/skins/default/xui/en/menu_avatar_self.xml
@@ -2,7 +2,17 @@
<context_menu
layout="topleft"
name="Self Pie">
- <menu_item_call
+ <menu_item_call
+ label="Sit Down"
+ layout="topleft"
+ name="Sit Down Here">
+ <menu_item_call.on_click
+ function="Self.SitDown"
+ parameter="" />
+ <menu_item_call.on_enable
+ function="Self.EnableSitDown" />
+ </menu_item_call>
+ <menu_item_call
label="Stand Up"
layout="topleft"
name="Stand Up">
@@ -13,11 +23,11 @@
function="Self.EnableStandUp" />
</menu_item_call>
<context_menu
- label="Take Off â–¶"
+ label="Take Off"
layout="topleft"
name="Take Off &gt;">
<context_menu
- label="Clothes â–¶"
+ label="Clothes"
layout="topleft"
name="Clothes &gt;">
<menu_item_call
@@ -164,11 +174,11 @@
</menu_item_call>
</context_menu>
<context_menu
- label="HUD â–¶"
+ label="HUD"
layout="topleft"
name="Object Detach HUD" />
<context_menu
- label="Detach â–¶"
+ label="Detach"
layout="topleft"
name="Object Detach" />
<menu_item_call
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 12ee9b045b..206d49e8c7 100644
--- a/indra/newview/skins/default/xui/en/menu_cof_clothing.xml
+++ b/indra/newview/skins/default/xui/en/menu_cof_clothing.xml
@@ -13,34 +13,24 @@
parameter="take_off" />
</menu_item_call>
<menu_item_call
- label="Move Up a Layer"
- layout="topleft"
- name="move_up">
- <on_click
- function="Clothing.MoveUp" />
- <on_enable
- function="Clothing.OnEnable"
- parameter="move_up" />
- </menu_item_call>
- <menu_item_call
- label="Move Down a Layer"
+ label="Edit"
layout="topleft"
- name="move_down">
+ name="edit">
<on_click
- function="Clothing.MoveDown" />
+ function="Clothing.Edit" />
<on_enable
function="Clothing.OnEnable"
- parameter="move_down" />
+ parameter="edit" />
</menu_item_call>
<menu_item_call
- label="Edit"
+ label="Replace"
layout="topleft"
- name="edit">
+ name="replace">
<on_click
- function="Clothing.Edit" />
+ function="Clothing.Replace" />
<on_enable
function="Clothing.OnEnable"
- parameter="edit" />
+ parameter="replace" />
</menu_item_call>
<menu_item_call
label="Create New"
diff --git a/indra/newview/skins/default/xui/en/menu_edit.xml b/indra/newview/skins/default/xui/en/menu_edit.xml
index 68f3cb532c..fab76c497c 100644
--- a/indra/newview/skins/default/xui/en/menu_edit.xml
+++ b/indra/newview/skins/default/xui/en/menu_edit.xml
@@ -52,6 +52,7 @@
<menu_item_call
label="Delete"
name="Delete"
+ allow_key_repeat="true"
shortcut="Del">
<menu_item_call.on_click
function="Edit.Delete" />
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 22df02cd7e..76f68c6d4b 100644
--- a/indra/newview/skins/default/xui/en/menu_inspect_object_gear.xml
+++ b/indra/newview/skins/default/xui/en/menu_inspect_object_gear.xml
@@ -22,7 +22,7 @@
<menu_item_call.on_click
function="InspectObject.Sit"/>
<menu_item_call.on_visible
- function="Object.EnableSit" />
+ function="Object.EnableSit"/>
</menu_item_call>
<menu_item_call
label="Pay"
@@ -89,6 +89,15 @@
function="Object.EnableWear" />
</menu_item_call>
<menu_item_call
+ label="Add"
+ layout="topleft"
+ name="add">
+ <menu_item_call.on_click
+ function="Object.AttachAddToAvatar" />
+ <menu_item_call.on_visible
+ function="Object.EnableWear" />
+ </menu_item_call>
+ <menu_item_call
label="Report"
layout="topleft"
name="report">
diff --git a/indra/newview/skins/default/xui/en/menu_inspect_self_gear.xml b/indra/newview/skins/default/xui/en/menu_inspect_self_gear.xml
index ea18e02ca1..30c2cde552 100644
--- a/indra/newview/skins/default/xui/en/menu_inspect_self_gear.xml
+++ b/indra/newview/skins/default/xui/en/menu_inspect_self_gear.xml
@@ -6,6 +6,16 @@
visible="false"
name="Gear Menu">
<menu_item_call
+ label="Sit Down"
+ enabled="true"
+ name="sit_down_here">
+ <menu_item_call.on_click
+ function="Self.SitDown"
+ parameter="" />
+ <menu_item_call.on_visible
+ function="Self.EnableSitDown" />
+ </menu_item_call>
+ <menu_item_call
label="Stand Up"
enabled="true"
name="stand_up">
diff --git a/indra/newview/skins/default/xui/en/menu_inventory.xml b/indra/newview/skins/default/xui/en/menu_inventory.xml
index 221457ac1f..c0046d8e28 100644
--- a/indra/newview/skins/default/xui/en/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/en/menu_inventory.xml
@@ -472,7 +472,7 @@
layout="topleft"
name="Paste Separator" />
<menu_item_call
- label="Remove Link"
+ label="Delete"
layout="topleft"
name="Remove Link">
<menu_item_call.on_click
@@ -606,7 +606,7 @@
</menu_item_call>
<menu_item_separator
layout="topleft"
- name="Attach Separator"/>
+ name="Wearable And Object Separator"/>
<menu_item_call
label="Detach From Yourself"
layout="topleft"
@@ -629,10 +629,10 @@
<menu_item_call
label="Wear"
layout="topleft"
- name="Object Wear">
+ name="Wearable And Object Wear">
<menu_item_call.on_click
function="Inventory.DoToSelected"
- parameter="attach" />
+ parameter="wear" />
</menu_item_call>
<menu
label="Attach To"
@@ -642,9 +642,6 @@
label="Attach To HUD"
layout="topleft"
name="Attach To HUD" />
- <menu_item_separator
- layout="topleft"
- name="Wearable Separator"/>
<menu_item_call
label="Edit"
layout="topleft"
@@ -654,14 +651,6 @@
parameter="edit" />
</menu_item_call>
<menu_item_call
- label="Wear"
- layout="topleft"
- name="Wearable Wear">
- <menu_item_call.on_click
- function="Inventory.DoToSelected"
- parameter="wear" />
- </menu_item_call>
- <menu_item_call
label="Add"
layout="topleft"
name="Wearable Add">
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 5ad099e2d9..ae98abf4fb 100644
--- a/indra/newview/skins/default/xui/en/menu_inventory_add.xml
+++ b/indra/newview/skins/default/xui/en/menu_inventory_add.xml
@@ -50,8 +50,13 @@
function="File.UploadBulk"
parameter="" />
</menu_item_call>
- <menu_item_separator
- layout="topleft" />
+ <menu_item_call
+ label="Set Default Upload Permissions"
+ name="perm prefs">
+ <menu_item_call.on_click
+ function="Floater.Toggle"
+ parameter="perm_prefs" />
+ </menu_item_call>
</menu>
<menu_item_call
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 62365f7cc2..c394700081 100644
--- a/indra/newview/skins/default/xui/en/menu_inventory_gear_default.xml
+++ b/indra/newview/skins/default/xui/en/menu_inventory_gear_default.xml
@@ -81,6 +81,17 @@
function="Inventory.GearDefault.Enable"
parameter="save_texture" />
</menu_item_call>
+ <menu_item_call
+ label="Share"
+ layout="topleft"
+ name="Share"
+ visible="true">
+ <on_click
+ function="Inventory.Share" />
+ <on_enable
+ function="Inventory.GearDefault.Enable"
+ parameter="share" />
+ </menu_item_call>
<menu_item_call
label="Find Original"
layout="topleft"
diff --git a/indra/newview/skins/default/xui/en/menu_login.xml b/indra/newview/skins/default/xui/en/menu_login.xml
index 9fac296e26..4f982cc8e9 100644
--- a/indra/newview/skins/default/xui/en/menu_login.xml
+++ b/indra/newview/skins/default/xui/en/menu_login.xml
@@ -64,8 +64,8 @@
parameter="UseDebugMenus" />
</menu_item_check>
<menu
- visible="false"
create_jump_keys="true"
+ visible="false"
label="Debug"
name="Debug"
tear_off="true">
@@ -102,6 +102,7 @@
</menu_item_call>
-->
<menu
+ create_jump_keys="true"
label="UI Tests"
name="UI Tests"
tear_off="true">
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 f5ea3e735b..8fe89d3934 100644
--- a/indra/newview/skins/default/xui/en/menu_mini_map.xml
+++ b/indra/newview/skins/default/xui/en/menu_mini_map.xml
@@ -29,6 +29,7 @@
function="Minimap.Zoom"
parameter="far" />
</menu_item_call>
+ <menu_item_separator />
<menu_item_check
label="Rotate Map"
name="Rotate Map">
@@ -38,6 +39,15 @@
function="ToggleControl"
parameter="MiniMapRotate" />
</menu_item_check>
+ <menu_item_check
+ label="Auto Center"
+ name="Auto Center">
+ <menu_item_check.on_check
+ control="MiniMapAutoCenter" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="MiniMapAutoCenter" />
+ </menu_item_check>
<menu_item_separator />
<menu_item_call
label="Stop Tracking"
diff --git a/indra/newview/skins/default/xui/en/menu_object.xml b/indra/newview/skins/default/xui/en/menu_object.xml
index 6ca8766e3f..c751aa4e0c 100644
--- a/indra/newview/skins/default/xui/en/menu_object.xml
+++ b/indra/newview/skins/default/xui/en/menu_object.xml
@@ -18,7 +18,7 @@
name="Edit...">
<menu_item_call.on_click
function="Object.Edit" />
- <menu_item_call.on_visible
+ <menu_item_call.on_enable
function="EnableEdit"/>
</menu_item_call>
<menu_item_call
@@ -26,7 +26,7 @@
name="Build">
<menu_item_call.on_click
function="Object.Build" />
- <menu_item_call.on_visible
+ <menu_item_call.on_enable
function="EnableEdit"/>
</menu_item_call>
<menu_item_call
@@ -44,11 +44,8 @@
name="Object Sit">
<menu_item_call.on_click
function="Object.SitOrStand" />
- <menu_item_call.on_visible
- function="Object.SitVisible" />
<menu_item_call.on_enable
- function="Object.EnableSitOrStand"
- name="EnableSitOrStand" />
+ function="Object.EnableSit" />
</menu_item_call>
<menu_item_call
enabled="false"
@@ -56,11 +53,8 @@
name="Object Stand Up">
<menu_item_call.on_click
function="Object.SitOrStand" />
- <menu_item_call.on_visible
- function="Object.StandUpVisible" />
<menu_item_call.on_enable
- function="Object.EnableSitOrStand"
- name="EnableSitOrStand" />
+ function="Object.EnableStandUp" />
</menu_item_call>
<menu_item_call
label="Object Profile"
@@ -78,7 +72,7 @@
</menu_item_call>
<menu_item_separator layout="topleft" />
<context_menu
- label="Put On â–¶"
+ label="Put On"
name="Put On" >
<menu_item_call
enabled="false"
@@ -89,15 +83,24 @@
<menu_item_call.on_enable
function="Object.EnableWear" />
</menu_item_call>
+ <menu_item_call
+ enabled="false"
+ label="Add"
+ name="Add">
+ <menu_item_call.on_click
+ function="Object.AttachAddToAvatar" />
+ <menu_item_call.on_enable
+ function="Object.EnableWear" />
+ </menu_item_call>
<context_menu
- label="Attach â–¶"
+ label="Attach"
name="Object Attach" />
<context_menu
- label="Attach HUD â–¶"
+ label="Attach HUD"
name="Object Attach HUD" />
</context_menu>
<context_menu
- label="Remove â–¶"
+ label="Remove"
name="Remove">
<menu_item_call
enabled="false"
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 16b33eff89..732b8a788d 100644
--- a/indra/newview/skins/default/xui/en/menu_outfit_gear.xml
+++ b/indra/newview/skins/default/xui/en/menu_outfit_gear.xml
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<menu
layout="topleft"
+ visible="false"
name="Gear Outfit">
<menu_item_call
label="Wear - Replace Current Outfit"
@@ -16,6 +17,16 @@
parameter="wear" />
</menu_item_call>
<menu_item_call
+ label="Wear - Add to Current Outfit"
+ layout="topleft"
+ name="wear_add">
+ <on_click
+ function="Gear.WearAdd" />
+ <on_enable
+ function="Gear.OnEnable"
+ parameter="wear_add" />
+ </menu_item_call>
+ <menu_item_call
label="Take Off - Remove from Current Outfit"
layout="topleft"
name="take_off">
@@ -176,6 +187,19 @@
<menu_item_separator name="sepatator2" />
<menu_item_call
+ label="Rename Outfit"
+ layout="topleft"
+ name="rename">
+ <on_click
+ function="Gear.Rename" />
+ <on_enable
+ function="Gear.OnEnable"
+ parameter="rename" />
+ <on_visible
+ function="Gear.OnVisible"
+ parameter="rename" />
+ </menu_item_call>
+ <menu_item_call
label="Delete Outfit"
layout="topleft"
name="delete_outfit">
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 9c3151fe07..8c8bb29baf 100644
--- a/indra/newview/skins/default/xui/en/menu_outfit_tab.xml
+++ b/indra/newview/skins/default/xui/en/menu_outfit_tab.xml
@@ -8,6 +8,9 @@
name="wear_replace">
<on_click
function="Outfit.WearReplace" />
+ <on_enable
+ function="Outfit.OnEnable"
+ parameter="wear_replace" />
<on_visible
function="Outfit.OnVisible"
parameter="wear_replace" />
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 4ed5807808..2c32d9d303 100644
--- a/indra/newview/skins/default/xui/en/menu_participant_list.xml
+++ b/indra/newview/skins/default/xui/en/menu_participant_list.xml
@@ -130,7 +130,7 @@
layout="topleft"
name="Moderator Options Separator"/>
<context_menu
- label="Moderator Options &gt;"
+ label="Moderator Options"
layout="topleft"
name="Moderator Options">
<menu_item_check
diff --git a/indra/newview/skins/default/xui/en/menu_people_friends_view_sort.xml b/indra/newview/skins/default/xui/en/menu_people_friends_view_sort.xml
index 92752a0fee..22796f7b68 100644
--- a/indra/newview/skins/default/xui/en/menu_people_friends_view_sort.xml
+++ b/indra/newview/skins/default/xui/en/menu_people_friends_view_sort.xml
@@ -31,6 +31,14 @@
function="CheckControl"
parameter="FriendsListShowIcons" />
</menu_item_check>
+ <menu_item_check name="view_permissions" label="View Permissions Granted">
+ <menu_item_check.on_click
+ function="People.Friends.ViewSort.Action"
+ parameter="view_permissions" />
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="FriendsListShowPermissions" />
+ </menu_item_check>
<menu_item_separator layout="topleft" />
<menu_item_call name="show_blocked_list" label="Show Blocked Residents &amp; Objects">
<menu_item_call.on_click function="SideTray.ShowPanel" parameter="panel_block_list_sidetray" />
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 588342595e..5d58a9d289 100644
--- a/indra/newview/skins/default/xui/en/menu_people_nearby_multiselect.xml
+++ b/indra/newview/skins/default/xui/en/menu_people_nearby_multiselect.xml
@@ -57,4 +57,13 @@
<on_click
function="Avatar.Pay" />
</menu_item_call>
+ <menu_item_call
+ label="Offer Teleport"
+ name="teleport">
+ <menu_item_call.on_click
+ function="Avatar.OfferTeleport"/>
+ <menu_item_call.on_enable
+ function="Avatar.EnableItem"
+ parameter="can_offer_teleport"/>
+ </menu_item_call>
</context_menu>
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 3e38503e43..77cc3910fd 100644
--- a/indra/newview/skins/default/xui/en/menu_places_gear_folder.xml
+++ b/indra/newview/skins/default/xui/en/menu_places_gear_folder.xml
@@ -94,6 +94,9 @@
<on_enable
function="Places.LandmarksGear.Enable"
parameter="expand" />
+ <on_visible
+ function="Places.LandmarksGear.Enable"
+ parameter="expand" />
</menu_item_call>
<menu_item_call
label="Collapse"
@@ -105,6 +108,9 @@
<on_enable
function="Places.LandmarksGear.Enable"
parameter="collapse" />
+ <on_visible
+ function="Places.LandmarksGear.Enable"
+ parameter="collapse" />
</menu_item_call>
<menu_item_call
label="Expand all folders"
diff --git a/indra/newview/skins/default/xui/en/menu_viewer.xml b/indra/newview/skins/default/xui/en/menu_viewer.xml
index 3557318705..af241862b6 100644
--- a/indra/newview/skins/default/xui/en/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/en/menu_viewer.xml
@@ -4,6 +4,7 @@
follows="left|top|right"
name="Main Menu">
<menu
+ create_jump_keys="true"
label="Me"
name="Me"
tear_off="true">
@@ -29,7 +30,9 @@
<menu_item_call.on_click
function="BuyCurrency" />
</menu_item_call>
+
<menu_item_separator/>
+
<menu_item_call
label="My Profile"
name="Profile">
@@ -92,6 +95,7 @@
parameter="voice_effect" />
</menu_item_check>
<menu
+ create_jump_keys="true"
label="My Status"
name="Status"
tear_off="true">
@@ -124,7 +128,9 @@
<menu_item_call.on_click
function="Advanced.LeaveAdminStatus" />
</menu_item_call>
+
<menu_item_separator/>
+
<menu_item_call
label="Exit [APP_NAME]"
name="Quit"
@@ -134,6 +140,7 @@
</menu_item_call>
</menu>
<menu
+ create_jump_keys="true"
label="Communicate"
name="Communicate"
tear_off="true">
@@ -153,7 +160,9 @@
function="SideTray.PanelPeopleTab"
parameter="groups_panel" />
</menu_item_call>
+
<menu_item_separator/>
+
<!--menu_item_call
label="Chat"
name="Chat">
@@ -182,6 +191,7 @@
</menu_item_call>
</menu>
<menu
+ create_jump_keys="true"
label="World"
name="World"
tear_off="true">
@@ -251,7 +261,9 @@
parameter="region_info" />
</menu_item_call>
</menu>
+
<menu_item_separator/>
+
<menu_item_call
label="Buy This Land"
name="Buy Land">
@@ -348,7 +360,9 @@
control="NavBarShowParcelProperties" />
</menu_item_check>
</menu>
+
<menu_item_separator/>
+
<menu_item_call
label="Teleport Home"
name="Teleport Home"
@@ -387,7 +401,9 @@
parameter="ShowNavbarFavoritesPanel" />
</menu_item_check>
<menu_item_separator/>-->
+
<menu_item_separator/>
+
<menu
create_jump_keys="true"
label="Sun"
@@ -430,7 +446,9 @@
function="World.EnvSettings"
parameter="default" />
</menu_item_call>
+
<menu_item_separator/>
+
<menu_item_call
label="Environment Editor"
name="Environment Editor">
@@ -579,6 +597,7 @@
</menu_item_call>
</menu>
<menu_item_separator/>
+
<menu_item_call
label="Focus on Selection"
name="Focus on Selection"
@@ -599,7 +618,9 @@
<menu_item_call.on_enable
function="Tools.SomethingSelectedNoHUD" />
</menu_item_call>
+
<menu_item_separator/>
+
<menu
create_jump_keys="true"
label="Object"
@@ -649,6 +670,14 @@
<menu_item_call.on_enable
function="Tools.EnableSaveToObjectInventory" />
</menu_item_call>
+ <menu_item_call
+ label="Return Object"
+ name="Return Object back to Owner">
+ <menu_item_call.on_click
+ function="Object.Return" />
+ <menu_item_call.on_enable
+ function="Object.EnableReturn" />
+ </menu_item_call>
</menu>
<menu
create_jump_keys="true"
@@ -701,19 +730,14 @@
function="EditableSelected" />
</menu_item_call>
</menu>
+
<menu_item_separator/>
+
<menu
create_jump_keys="true"
label="Options"
name="Options"
tear_off="true">
- <menu_item_call
- label="Set Default Upload Permissions"
- name="perm prefs">
- <menu_item_call.on_click
- function="Floater.Toggle"
- parameter="perm_prefs" />
- </menu_item_call>
<menu_item_check
label="Show Advanced Permissions"
name="DebugPermissions">
@@ -724,7 +748,9 @@
function="ToggleControl"
parameter="DebugPermissions" />
</menu_item_check>
+
<menu_item_separator/>
+
<menu_item_check
label="Select Only My Objects"
name="Select Only My Objects">
@@ -751,7 +777,19 @@
<menu_item_check.on_click
function="Tools.SelectBySurrounding" />
</menu_item_check>
+
<menu_item_separator/>
+
+ <menu_item_check
+ label="Show Selection Outlines"
+ name="Show Selection Outlines">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="RenderHighlightSelections" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="RenderHighlightSelections" />
+ </menu_item_check>
<menu_item_check
label="Show Hidden Selection"
name="Show Hidden Selection">
@@ -777,7 +815,9 @@
function="ToggleControl"
parameter="ShowSelectionBeam" />
</menu_item_check>
+
<menu_item_separator/>
+
<menu_item_check
label="Snap to Grid"
name="Snap to Grid"
@@ -873,11 +913,17 @@
function="File.UploadBulk"
parameter="" />
</menu_item_call>
- <menu_item_separator
- layout="topleft" />
+ <menu_item_call
+ label="Set Default Upload Permissions"
+ name="perm prefs">
+ <menu_item_call.on_click
+ function="Floater.Toggle"
+ parameter="perm_prefs" />
+ </menu_item_call>
</menu>
</menu>
<menu
+ create_jump_keys="true"
label="Help"
name="Help"
tear_off="true">
@@ -896,7 +942,9 @@
function="Floater.Show"
parameter="hud" />
</menu_item_call>-->
+
<menu_item_separator/>
+
<menu_item_call
label="Report Abuse"
name="Report Abuse">
@@ -910,7 +958,9 @@
function="ShowHelp"
parameter="report_bug" />
</menu_item_call>
+
<menu_item_separator/>
+
<menu_item_call
label="About [APP_NAME]"
name="About Second Life">
@@ -918,23 +968,21 @@
function="Floater.Show"
parameter="sl_about" />
</menu_item_call>
+ <menu_item_check
+ label="Enable Hints"
+ name="Enable Hints">
+ <on_check
+ control="EnableUIHints"/>
+ <on_click
+ function="ToggleUIHints"/>
+ </menu_item_check>
</menu>
<menu
+ create_jump_keys="true"
label="Advanced"
name="Advanced"
tear_off="true"
visible="false">
- <menu_item_check
- label="Show Advanced Menu"
- name="Show Advanced Menu"
- shortcut="control|alt|shift|D">
- <on_check
- function="CheckControl"
- parameter="UseDebugMenus" />
- <on_click
- function="ToggleControl"
- parameter="UseDebugMenus" />
- </menu_item_check>
<menu_item_call
label="Stop Animating Me"
name="Stop Animating My Avatar">
@@ -961,7 +1009,9 @@
function="Floater.Show"
parameter="window_size" />
</menu_item_call>
+
<menu_item_separator/>
+
<menu_item_check
label="Limit Select Distance"
name="Limit Select Distance">
@@ -982,7 +1032,9 @@
function="ToggleControl"
parameter="DisableCameraConstraints" />
</menu_item_check>
+
<menu_item_separator/>
+
<menu_item_check
label="High-res Snapshot"
name="HighResSnapshot">
@@ -1013,7 +1065,9 @@
function="ToggleControl"
parameter="CompressSnapshotsToDisk" />
</menu_item_check>
+
<menu_item_separator/>
+
<menu
create_jump_keys="true"
label="Performance Tools"
@@ -1126,7 +1180,9 @@
<menu_item_check.on_click
function="View.ShowHoverTips" />
</menu_item_check>
+
<menu_item_separator/>
+
<menu_item_check
label="Show Land Tooltips"
name="Land Tips">
@@ -1395,17 +1451,7 @@
function="Advanced.ToggleFeature"
parameter="flexible" />
</menu_item_check>
- </menu>
- <menu_item_check
- label="Run Multiple Threads"
- name="Run Multiple Threads">
- <menu_item_check.on_check
- function="CheckControl"
- parameter="RunMultipleThreads" />
- <menu_item_check.on_click
- function="ToggleControl"
- parameter="RunMultipleThreads" />
- </menu_item_check>
+ </menu>
<menu_item_check
label="Use Plugin Read Thread"
name="Use Plugin Read Thread">
@@ -1433,8 +1479,11 @@
function="ToggleControl"
parameter="MouseSmooth" />
</menu_item_check>
+
<menu_item_separator/>
+
<menu
+ create_jump_keys="true"
label="Shortcuts"
name="Shortcuts"
tear_off="true"
@@ -1477,19 +1526,9 @@
<menu_item_call.on_click
function="View.DefaultUISize" />
</menu_item_call>
- <!-- This second, alternative shortcut for Show Advanced Menu is for backward compatibility. The main shortcut has been changed so it's Linux-friendly, where the old shortcut is typically eaten by the window manager. -->
- <menu_item_check
- label="Show Advanced Menu - legacy shortcut"
- name="Show Advanced Menu - legacy shortcut"
- shortcut="control|alt|D">
- <on_check
- function="CheckControl"
- parameter="UseDebugMenus" />
- <on_click
- function="ToggleControl"
- parameter="UseDebugMenus" />
- </menu_item_check>
+
<menu_item_separator/>
+
<menu_item_check
label="Always Run"
name="Always Run"
@@ -1510,7 +1549,9 @@
<menu_item_check.on_enable
function="Agent.enableFlying" />
</menu_item_check>
+
<menu_item_separator/>
+
<menu_item_call
label="Close Window"
name="Close Window"
@@ -1529,7 +1570,9 @@
<menu_item_call.on_enable
function="File.EnableCloseAllWindows" />
</menu_item_call>
+
<menu_item_separator/>
+
<menu_item_call
label="Snapshot to Disk"
name="Snapshot to Disk"
@@ -1538,7 +1581,9 @@
<menu_item_call.on_click
function="File.TakeSnapshotToDisk" />
</menu_item_call>
+
<menu_item_separator/>
+
<menu_item_call
label="Mouselook"
name="Mouselook"
@@ -1575,7 +1620,9 @@
<menu_item_call.on_enable
function="View.EnableLastChatter" />
</menu_item_call>
+
<menu_item_separator/>
+
<menu
create_jump_keys="true"
label="Select Build Tool"
@@ -1622,7 +1669,9 @@
parameter="land" />
</menu_item_call>
</menu>
+
<menu_item_separator/>
+
<menu_item_call
label="Zoom In"
name="Zoom In"
@@ -1644,8 +1693,27 @@
<menu_item_call.on_click
function="View.ZoomOut" />
</menu_item_call>
- </menu>
+ <menu_item_separator
+ visible="false"/>
+ <!-- Made invisible to avoid a dissonance: menu item toggles the menu where it is located. EXT-8069.
+ Can't be removed, to keep shortcut workable.
+ -->
+ <menu_item_check
+ label="Show Advanced Menu"
+ name="Show Advanced Menu"
+ shortcut="control|alt|D"
+ visible="false">
+ <on_check
+ function="CheckControl"
+ parameter="UseDebugMenus" />
+ <on_click
+ function="ToggleControl"
+ parameter="UseDebugMenus" />
+ </menu_item_check>
+ </menu> <!--Shortcuts-->
+
<menu_item_separator/>
+
<menu_item_call
label="Show Debug Settings"
name="Debug Settings">
@@ -1664,6 +1732,7 @@
function="ToggleControl"
parameter="QAMode" />
</menu_item_check>
+
</menu>
<menu
create_jump_keys="true"
@@ -1754,7 +1823,9 @@
function="Advanced.ToggleConsole"
parameter="memory view" />
</menu_item_check>
+
<menu_item_separator/>
+
<menu_item_call
label="Region Info to Debug Console"
name="Region Info to Debug Console">
@@ -1776,7 +1847,9 @@
function="Advanced.DumpInfoToConsole"
parameter="capabilities" />
</menu_item_call>
+
<menu_item_separator/>
+
<menu_item_check
label="Camera"
name="Camera">
@@ -1864,7 +1937,9 @@
function="ToggleControl"
parameter="DebugShowColor" />
</menu_item_check>
+
<menu_item_separator/>
+
<menu_item_check
label="Show Updates to Objects"
name="Show Updates"
@@ -1876,7 +1951,9 @@
function="Advanced.ToggleShowObjectUpdates" />
</menu_item_check>
</menu>
+
<menu_item_separator/>
+
<menu
create_jump_keys="true"
label="Force an Error"
@@ -2170,9 +2247,12 @@
<menu_item_check.on_enable
function="Advanced.EnableRenderFBO" />
</menu_item_check>
+
+ <menu_item_separator />
+
<menu_item_check
- label="Deferred Rendering"
- name="Deferred Rendering">
+ label="Lighting and Shadows"
+ name="Lighting and Shadows">
<menu_item_check.on_check
function="CheckControl"
parameter="RenderDeferred" />
@@ -2183,7 +2263,31 @@
function="Advanced.EnableRenderDeferred" />
</menu_item_check>
<menu_item_check
- label="Global Illumination"
+ label=" Shadows from Sun/Moon/Projectors"
+ name="Shadows from Sun/Moon/Projectors">
+ <menu_item_check.on_check
+ function="Advanced.CheckRenderShadowOption"
+ parameter="RenderShadowDetail" />
+ <menu_item_check.on_click
+ function="Advanced.ClickRenderShadowOption"
+ parameter="RenderShadowDetail" />
+ <menu_item_check.on_enable
+ function="Advanced.EnableRenderDeferredOptions" />
+ </menu_item_check>
+ <menu_item_check
+ label=" SSAO and Shadow Smoothing"
+ name="SSAO and Shadow Smoothing">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="RenderDeferredSSAO" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="RenderDeferredSSAO" />
+ <menu_item_check.on_enable
+ function="Advanced.EnableRenderDeferredOptions" />
+ </menu_item_check>
+ <menu_item_check
+ label=" Global Illumination (experimental)"
name="Global Illumination">
<menu_item_check.on_check
function="CheckControl"
@@ -2192,9 +2296,11 @@
function="ToggleControl"
parameter="RenderDeferredGI" />
<menu_item_check.on_enable
- function="Advanced.EnableRenderDeferredGI" />
+ function="Advanced.EnableRenderDeferredOptions" />
</menu_item_check>
+
<menu_item_separator />
+
<menu_item_check
label="Debug GL"
name="Debug GL">
@@ -2216,14 +2322,24 @@
parameter="RenderDebugPipeline" />
</menu_item_check>
<menu_item_check
- label="Fast Alpha"
- name="Fast Alpha">
+ label="Automatic Alpha Masks (deferred)"
+ name="Automatic Alpha Masks (deferred)">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="RenderAutoMaskAlphaDeferred" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="RenderAutoMaskAlphaDeferred" />
+ </menu_item_check>
+ <menu_item_check
+ label="Automatic Alpha Masks (non-deferred)"
+ name="Automatic Alpha Masks (non-deferred)">
<menu_item_check.on_check
function="CheckControl"
- parameter="RenderFastAlpha" />
+ parameter="RenderAutoMaskAlphaNonDeferred" />
<menu_item_check.on_click
function="ToggleControl"
- parameter="RenderFastAlpha" />
+ parameter="RenderAutoMaskAlphaNonDeferred" />
</menu_item_check>
<menu_item_check
label="Animation Textures"
@@ -2266,7 +2382,7 @@
parameter="AuditTexture" />
</menu_item_check>
<menu_item_check
- label="Texture Atlas"
+ label="Texture Atlas (experimental)"
name="Texture Atlas">
<menu_item_check.on_check
function="CheckControl"
@@ -2322,7 +2438,9 @@
function="ToggleControl"
parameter="AgentPause" />
</menu_item_check>
+
<menu_item_separator/>
+
<menu_item_call
label="Enable Message Log"
name="Enable Message Log">
@@ -2335,7 +2453,9 @@
<menu_item_call.on_click
function="Advanced.DisableMessageLog" />
</menu_item_call>
+
<menu_item_separator/>
+
<menu_item_check
label="Velocity Interpolate Objects"
name="Velocity Interpolate Objects">
@@ -2356,7 +2476,9 @@
function="ToggleControl"
parameter="PingInterpolate" />
</menu_item_check>
+
<menu_item_separator/>
+
<menu_item_call
label="Drop a Packet"
name="Drop a Packet"
@@ -2542,8 +2664,19 @@
function="ToggleControl"
parameter="DoubleClickAutoPilot" />
</menu_item_check>
+ <menu_item_check
+ label="Double-Click Teleport"
+ name="DoubleClick Teleport">
+ <menu_item_check.on_check
+ function="CheckControl"
+ parameter="DoubleClickTeleport" />
+ <menu_item_check.on_click
+ function="ToggleControl"
+ parameter="DoubleClickTeleport" />
+ </menu_item_check>
<menu_item_separator />
+
<menu_item_check
label="Debug SelectMgr"
name="Debug SelectMgr">
@@ -2889,7 +3022,9 @@
function="Advanced.DumpAvatarLocalTextures" />
</menu_item_call>
</menu>
+
<menu_item_separator/>
+
<menu_item_check
label="HTTP Textures"
name="HTTP Textures">
@@ -2926,7 +3061,9 @@
function="ToggleControl"
parameter="ShowConsoleWindow" />
</menu_item_check>
+
<menu_item_separator/>
+
<menu_item_check
label="Show Admin Menu"
name="View Admin Options">
@@ -3261,7 +3398,9 @@
name="PublicIssueTrackerHelp_url"
parameter="WebLaunchPublicIssueHelp,http://wiki.secondlife.com/wiki/Issue_tracker" />
</menu_item_call>
+
<menu_item_separator/>
+
<menu_item_call
label="Bug Reporting 101"
name="Bug Reporing 101">
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 efea2ae3e8..aa56b4ba63 100644
--- a/indra/newview/skins/default/xui/en/menu_wearable_list_item.xml
+++ b/indra/newview/skins/default/xui/en/menu_wearable_list_item.xml
@@ -4,7 +4,14 @@
<menu_item_call
label="Replace"
layout="topleft"
- name="wear">
+ name="wear_replace">
+ <on_click
+ function="Wearable.Wear" />
+ </menu_item_call>
+ <menu_item_call
+ label="Wear"
+ layout="topleft"
+ name="wear_wear">
<on_click
function="Wearable.Wear" />
</menu_item_call>
@@ -30,11 +37,11 @@
function="Attachment.Detach" />
</menu_item_call>
<context_menu
- label="Attach to â–¶"
+ label="Attach to"
layout="topleft"
name="wearable_attach_to" />
<context_menu
- label="Attach to HUD â–¶"
+ label="Attach to HUD"
layout="topleft"
name="wearable_attach_to_hud" />
<menu_item_call
@@ -52,7 +59,7 @@
function="Wearable.Edit" />
</menu_item_call>
<menu_item_call
- label="Object Profile"
+ label="Item Profile"
layout="topleft"
name="object_profile">
<on_click
@@ -73,4 +80,10 @@
<on_click
function="Wearable.CreateNew" />
</menu_item_call>
+ <menu_item_call
+ label="--no options--"
+ layout="topleft"
+ name="--no options--"
+ translate="false">
+ </menu_item_call>
</context_menu>
diff --git a/indra/newview/skins/default/xui/en/menu_wearing_gear.xml b/indra/newview/skins/default/xui/en/menu_wearing_gear.xml
new file mode 100644
index 0000000000..84ab16c709
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/menu_wearing_gear.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<menu
+ layout="topleft"
+ visible="false"
+ name="Gear Wearing">
+ <menu_item_call
+ label="Edit Outfit"
+ layout="topleft"
+ name="edit">
+ <on_click
+ function="Gear.Edit" />
+ </menu_item_call>
+ <menu_item_call
+ label="Take Off"
+ layout="topleft"
+ name="takeoff">
+ <on_click
+ function="Gear.TakeOff" />
+ <on_enable
+ function="Gear.OnEnable"
+ parameter="take_off" />
+ </menu_item_call>
+</menu>
diff --git a/indra/newview/skins/default/xui/en/menu_wearing_tab.xml b/indra/newview/skins/default/xui/en/menu_wearing_tab.xml
new file mode 100644
index 0000000000..2d54e69601
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/menu_wearing_tab.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<context_menu
+ layout="topleft"
+ name="Wearing">
+ <menu_item_call
+ label="Take Off"
+ layout="topleft"
+ name="take_off">
+ <on_click
+ function="Wearing.TakeOff" />
+ </menu_item_call>
+ <menu_item_call
+ label="Detach"
+ layout="topleft"
+ name="detach">
+ <on_click
+ function="Wearing.Detach"
+ parameter="detach"/>
+ </menu_item_call>
+ <menu_item_separator
+ layout="topleft"
+ name="edit_outfit_separator" />
+ <menu_item_call
+ label="Edit Outfit"
+ layout="topleft"
+ name="edit">
+ <on_click
+ function="Wearing.Edit" />
+ </menu_item_call>
+</context_menu>
diff --git a/indra/newview/skins/default/xui/en/notifications.xml b/indra/newview/skins/default/xui/en/notifications.xml
index 88732fee7d..e1aecda151 100644
--- a/indra/newview/skins/default/xui/en/notifications.xml
+++ b/indra/newview/skins/default/xui/en/notifications.xml
@@ -1,6 +1,5 @@
<?xml version="1.0" ?><notifications>
-
- <global name="skipnexttime">
+ <global name="skipnexttime">
Don&apos;t show me this again
</global>
@@ -97,7 +96,7 @@
</template>
<notification
- functor="GenericAcknowledge"
+ functor="GenericAcknowledge"
icon="alertmodal.tga"
name="MissingAlert"
label="Unknown Notification Message"
@@ -723,7 +722,7 @@ You need an account to enter [SECOND_LIFE]. Would you like to create one now?
<url
option="0"
name="url"
- openexternally = "1">
+ target = "_external">
http://join.secondlife.com/
</url>
@@ -817,6 +816,17 @@ Delete pick &lt;nolink&gt;[PICK]&lt;/nolink&gt;?
<notification
icon="alertmodal.tga"
+ name="DeleteOutfits"
+ type="alertmodal">
+ Delete the selected outfit?
+ <usetemplate
+ name="okcancelbuttons"
+ notext="Cancel"
+ yestext="OK"/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
name="PromptGoToEventsPage"
type="alertmodal">
Go to the [SECOND_LIFE] events web page?
@@ -2022,8 +2032,8 @@ Offer friendship to [NAME]?
</notification>
<notification
- icon="alertmodal.tga"
- label="Add Friend"
+ icon="alertmodal.tga"
+ label="Add Friend"
name="AddFriendWithMessage"
type="alertmodal">
Friends can give permissions to track each other on the map and receive online status updates.
@@ -2049,7 +2059,8 @@ Would you be my friend?
icon="alertmodal.tga"
label="Save Outfit"
name="SaveOutfitAs"
- type="alertmodal">
+ type="alertmodal"
+ unique="true">
Save what I'm wearing as a new Outfit:
<form name="form">
<input name="message" type="text">
@@ -2065,7 +2076,6 @@ Would you be my friend?
name="Cancel"
text="Cancel"/>
</form>
- <unique/>
</notification>
<notification
@@ -4000,24 +4010,37 @@ Go to your [http://secondlife.com/account/ Dashboard] to see your account histor
<notification
icon="alertmodal.tga"
name="ConfirmQuit"
- type="alertmodal">
+ type="alertmodal"
+ unique="true">
Are you sure you want to quit?
<usetemplate
ignoretext="Confirm before I quit"
name="okcancelignore"
notext="Don&apos;t Quit"
yestext="Quit"/>
- <unique/>
+ </notification>
+
+ <notification
+ icon="alertmodal.tga"
+ name="DeleteItems"
+ type="alertmodal"
+ unique="true">
+ [QUESTION]
+ <usetemplate
+ ignoretext="Confirm before deleting items"
+ name="okcancelignore"
+ notext="Cancel"
+ yestext="OK"/>
</notification>
<notification
icon="alertmodal.tga"
name="HelpReportAbuseEmailLL"
- type="alert">
+ type="alert"
+ unique="true">
Use this tool to report violations of the [http://secondlife.com/corporate/tos.php Terms of Service] and [http://secondlife.com/corporate/cs.php Community Standards].
All reported abuses are investigated and resolved.
- <unique/>
</notification>
<notification
@@ -4886,6 +4909,10 @@ If you want to view streaming media on parcels that support it you should go to
persist="true"
type="notify">
No Media Plugin was found to handle the "[MIME_TYPE]" mime type. Media of this type will be unavailable.
+ <unique>
+ <context key="[MIME_TYPE]"/>
+ </unique>
+
</notification>
<notification
icon="alertmodal.tga"
@@ -4955,47 +4982,47 @@ Message from [NAME]:
icon="notify.tga"
name="NotSafe"
persist="true"
- type="notify">
+ type="notify"
+ unique="true">
This land has damage enabled.
You can be hurt here. If you die, you will be teleported to your home location.
- <unique/>
</notification>
<notification
icon="notify.tga"
name="NoFly"
persist="true"
- type="notify">
+ type="notify"
+ unique="true">
This area has flying disabled.
You can&apos;t fly here.
- <unique/>
</notification>
<notification
icon="notify.tga"
name="PushRestricted"
persist="true"
- type="notify">
+ type="notify"
+ unique="true">
This area does not allow pushing. You can&apos;t push others here unless you own the land.
- <unique/>
</notification>
<notification
icon="notify.tga"
name="NoVoice"
persist="true"
- type="notify">
+ type="notify"
+ unique="true">
This area has voice chat disabled. You won&apos;t be able to hear anyone talking.
- <unique/>
</notification>
<notification
icon="notify.tga"
name="NoBuild"
persist="true"
- type="notify">
+ type="notify"
+ unique="true">
This area has building disabled. You can&apos;t build or rez objects here.
- <unique/>
</notification>
<notification
@@ -5478,7 +5505,6 @@ If you stay in this region you will be logged out.
<notification
icon="notify.tga"
name="LoadWebPage"
- persist="true"
type="notify">
Load web page [URL]?
@@ -5578,7 +5604,6 @@ Grant this request?
<notification
icon="notify.tga"
name="ScriptDialog"
- persist="true"
type="notify">
[FIRST] [LAST]&apos;s &apos;[TITLE]&apos;
[MESSAGE]
@@ -5593,7 +5618,6 @@ Grant this request?
<notification
icon="notify.tga"
name="ScriptDialogGroup"
- persist="true"
type="notify">
[GROUPNAME]&apos;s &apos;[TITLE]&apos;
[MESSAGE]
@@ -5919,9 +5943,9 @@ The voice call you are trying to join, [VOICE_CHANNEL_NAME], has reached maximum
<notification
icon="notifytip.tga"
name="ProximalVoiceChannelFull"
- type="notifytip">
+ type="notifytip"
+ unique="true">
We&apos;re sorry. This area has reached maximum capacity for voice conversations. Please try to use voice in another area.
- <unique/>
</notification>
<notification
@@ -5978,9 +6002,9 @@ Failed to connect to [VOICE_CHANNEL_NAME], please try again later. You will now
duration="10"
icon="notifytip.tga"
name="VoiceLoginRetry"
- type="notifytip">
+ type="notifytip"
+ unique="true">
We are creating a voice channel for you. This may take up to one minute.
- <unique/>
</notification>
<notification
@@ -5988,10 +6012,10 @@ We are creating a voice channel for you. This may take up to one minute.
name="VoiceEffectsExpired"
sound="UISndAlert"
persist="true"
- type="notify">
+ type="notify"
+ unique="true">
One or more of your subscribed Voice Morphs has expired.
[[URL] Click here] to renew your subscription.
- <unique/>
</notification>
<notification
@@ -5999,10 +6023,10 @@ One or more of your subscribed Voice Morphs has expired.
name="VoiceEffectsExpiredInUse"
sound="UISndAlert"
persist="true"
- type="notify">
+ type="notify"
+ unique="true">
The active Voice Morph has expired, your normal voice settings have been applied.
[[URL] Click here] to renew your subscription.
- <unique/>
</notification>
<notification
@@ -6010,21 +6034,20 @@ The active Voice Morph has expired, your normal voice settings have been applied
name="VoiceEffectsWillExpire"
sound="UISndAlert"
persist="true"
- type="notify">
+ type="notify"
+ unique="true">
One or more of your Voice Morphs will expire in less than [INTERVAL] days.
[[URL] Click here] to renew your subscription.
- <unique/>
</notification>
- LLNotificationsUtil::add("VoiceEffectsNew");
<notification
icon="notify.tga"
name="VoiceEffectsNew"
sound="UISndAlert"
persist="true"
- type="notify">
+ type="notify"
+ unique="true">
New Voice Morphs are available!
- <unique/>
</notification>
<notification
@@ -6328,13 +6351,21 @@ Avatar '[NAME]' left as fully loaded.
<notification
icon="notifytip.tga"
- name="AvatarRezSelfBakeNotification"
+ name="AvatarRezSelfBakedTextureUploadNotification"
type="notifytip">
( [EXISTENCE] seconds alive )
You uploaded a [RESOLUTION] baked texture for '[BODYREGION]' after [TIME] seconds.
</notification>
<notification
+ icon="notifytip.tga"
+ name="AvatarRezSelfBakedTextureUpdateNotification"
+ type="notifytip">
+( [EXISTENCE] seconds alive )
+You locally updated a [RESOLUTION] baked texture for '[BODYREGION]' after [TIME] seconds.
+ </notification>
+
+ <notification
icon="alertmodal.tga"
name="ConfirmLeaveCall"
type="alert">
@@ -6343,8 +6374,8 @@ Are you sure you want to leave this call?
ignoretext="Confirm before I leave call"
name="okcancelignore"
notext="No"
- yestext="Yes"/>
- <unique/>
+ yestext="Yes"
+ unique="true"/>
</notification>
<notification
@@ -6360,10 +6391,84 @@ Mute everyone?
ignoretext="Confirm before I mute all participants in a group call"
name="okcancelignore"
yestext="Ok"
- notext="Cancel"/>
- <unique/>
+ notext="Cancel"
+ unique="true"/>
</notification>
+ <notification
+ name="HintChat"
+ label="Chat"
+ type="hint"
+ unique="true">
+ To join the conversation, type into the chat field below.
+ </notification>
+
+ <notification
+ name="HintSit"
+ label="Stand"
+ type="hint"
+ unique="true">
+ To stand up and exit the sitting position, click the Stand button.
+ </notification>
+
+ <notification
+ name="HintDestinationGuide"
+ label="Explore the World"
+ type="hint"
+ unique="true">
+ The Destination Guide contains thousands of new places to discover. Select a location and choose Teleport to start exploring.
+ </notification>
+
+ <notification
+ name="HintSidePanel"
+ label="Side Panel"
+ type="hint"
+ unique="true">
+ Get quick access to your inventory, outfits, profiles and more in the side panel.
+ </notification>
+
+ <notification
+ name="HintMove"
+ label="Move"
+ type="hint"
+ unique="true">
+ To walk or run, open the Move Panel and use the directional arrows to navigate. You can also use the directional keys on your keyboard.
+ </notification>
+
+ <notification
+ name="HintInventory"
+ label="Inventory"
+ type="hint"
+ unique="true">
+ Check your inventory to find items. Newest items can be easily found in the Recent tab.
+ </notification>
+
+ <notification
+ name="HintLindenDollar"
+ label="You've got Linden Dollars!"
+ type="hint"
+ unique="true">
+ Here's your current balance of L$. Click Buy L$ to purchase more Linden Dollars.
+ </notification>
+
+ <notification
+ name="PopupAttempt"
+ icon="Popup_Caution"
+ type="browser">
+ A pop-up was prevented from opening.
+ <form name="form">
+ <ignore name="ignore"
+ control="MediaEnablePopups"
+ invert_control="false"
+ text="Enable all pop-ups"/>
+ <button default="true"
+ index="0"
+ name="open"
+ text="Open pop-up window"/>
+ </form>
+ </notification>
+
+
<global name="UnsupportedCPU">
- Your CPU speed does not meet the minimum requirements.
</global>
@@ -6390,11 +6495,14 @@ If you continue to have problems, please visit the [SUPPORT_SITE].
- Your system memory does not meet the minimum requirements.
</global>
-<!-- this is alert string from server. the name needs to match entire the server string, and needs to be changed
+<!-- these are alert strings from server. the name needs to match entire the server string, and needs to be changed
whenever the server string changes -->
<global name="You can only set your 'Home Location' on your land or at a mainland Infohub.">
If you own a piece of land, you can make it your home location.
Otherwise, you can look at the Map and find places marked &quot;Infohub&quot;.
</global>
+ <global name="You died and have been teleported to your home location">
+You died and have been teleported to your home location.
+ </global>
</notifications>
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 bdfa928b1d..20ff492c0f 100644
--- a/indra/newview/skins/default/xui/en/outfit_accordion_tab.xml
+++ b/indra/newview/skins/default/xui/en/outfit_accordion_tab.xml
@@ -3,12 +3,13 @@
<!-- All accordion tabs in the My Appearance/My Outfits panel will be created from this one at runtime-->
<!-- Non of string values of controls below are visible to user. They are not need to be translated. -->
<accordion_tab
- display_children="false"
+ expanded="false"
follows="all"
height="45"
layout="topleft"
name="Mockup Tab"
selection_enabled="true"
+ tab_stop="false"
title="Mockup Tab"
translate="false"
width="0">
diff --git a/indra/newview/skins/default/xui/en/panel_audio_device.xml b/indra/newview/skins/default/xui/en/panel_audio_device.xml
deleted file mode 100644
index 546f46205f..0000000000
--- a/indra/newview/skins/default/xui/en/panel_audio_device.xml
+++ /dev/null
@@ -1,152 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<panel
- height="240"
- layout="topleft"
- left="8"
- name="device_settings"
- top="240"
- width="404">
- <panel.string
- name="default_text">
- Default
- </panel.string>
- <text
- type="string"
- length="1"
- follows="left|top"
- height="16"
- layout="topleft"
- left="6"
- name="Audio Devices"
- width="200">
- Audio Devices
- </text>
- <text
- type="string"
- length="1"
- follows="left|top"
- height="16"
- layout="topleft"
- left="20"
- name="Input device (microphone):"
- top="26"
- width="200">
- Input device (microphone):
- </text>
- <combo_box
- height="18"
- layout="topleft"
- left_delta="0"
- max_chars="128"
- name="voice_input_device"
- top_pad="2"
- width="225" />
- <text
- type="string"
- length="1"
- follows="left|top"
- height="16"
- layout="topleft"
- left_delta="0"
- name="Output device (speakers):"
- top_pad="9"
- width="200">
- Output device (speakers):
- </text>
- <combo_box
- height="18"
- layout="topleft"
- left_delta="0"
- max_chars="128"
- name="voice_output_device"
- top_pad="2"
- width="225" />
- <text
- type="string"
- length="1"
- follows="left|top"
- height="16"
- layout="topleft"
- left="6"
- name="Input level:"
- top="121"
- width="200">
- Input Level
- </text>
- <text_editor
- type="string"
- length="1"
- top="135"
- bg_readonly_color="0 0 0 0"
- enabled="false"
- height="60"
- border_visible="false"
- layout="topleft"
- left_delta="10"
- max_length="65535"
- name="voice_intro_text1"
- tab_stop="false"
- width="380"
- word_wrap="true">
- Adjust the slider to control how loud you sound to other Residents. To test the input level, simply speak into your microphone.
- </text_editor>
- <slider_bar
- follows="left|top"
- height="17"
- increment="0.05"
- initial_value="1.0"
- layout="topleft"
- left_delta="5"
- max_val="2"
- name="mic_volume_slider"
- tool_tip="Change the volume using this slider"
- top="202"
- width="90" />
- <text
- type="string"
- length="1"
- follows="left|top"
- height="20"
- layout="topleft"
- left_pad="5"
- name="wait_text"
- top_delta="1"
- width="200">
- Please wait
- </text>
- <locate
- height="20"
- layout="topleft"
- left_delta="0"
- name="bar0"
- top_delta="5"
- width="20" />
- <locate
- height="20"
- layout="topleft"
- left_pad="2"
- name="bar1"
- top_delta="0"
- width="20" />
- <locate
- height="20"
- layout="topleft"
- left_pad="2"
- name="bar2"
- top_delta="0"
- width="20" />
- <locate
- height="20"
- layout="topleft"
- left_pad="2"
- name="bar3"
- top_delta="0"
- width="20" />
- <locate
- height="20"
- layout="topleft"
- left_pad="2"
- name="bar4"
- top_delta="0"
- width="20" />
-</panel>
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 876ff9961b..6f3629cc8f 100644
--- a/indra/newview/skins/default/xui/en/panel_avatar_list_item.xml
+++ b/indra/newview/skins/default/xui/en/panel_avatar_list_item.xml
@@ -19,6 +19,11 @@
<string name="FormatMonths">[COUNT]mon</string>
<string name="FormatYears">[COUNT]y</string>
+ <!--
+ *NOTE: llavatarlistitem.cpp lays these controls out depending on which
+ ones are visible. Trying to change their order here will break it
+ ... which kinda sucks.
+ -->
<icon
follows="top|right|left"
height="24"
@@ -65,11 +70,55 @@
height="15"
layout="topleft"
left_pad="5"
- right="-72"
+ right="-164"
name="last_interaction"
text_color="LtGray_50"
value="0s"
width="35" />
+ <icon
+ height="16"
+ follows="right"
+ image_name="Permission_Edit_Objects_Theirs"
+ layout="topleft"
+ left_pad="3"
+ right="-129"
+ name="permission_edit_theirs_icon"
+ tool_tip="You can edit this friend&apos;s objects"
+ top="4"
+ width="16" />
+ <icon
+ height="16"
+ follows="right"
+ image_name="Permission_Edit_Objects_Mine"
+ layout="topleft"
+ left_pad="3"
+ right="-110"
+ name="permission_edit_mine_icon"
+ tool_tip="This friend can edit, delete or take your objects"
+ top_delta="0"
+ width="16" />
+ <icon
+ height="16"
+ follows="right"
+ image_name="Permission_Visible_Map"
+ layout="topleft"
+ left_pad="3"
+ tool_tip="This friend can locate you on the map"
+ right="-91"
+ name="permission_map_icon"
+ top_delta="0"
+ width="16" />
+ <icon
+ height="16"
+ follows="right"
+ image_name="Permission_Visible_Online"
+ layout="topleft"
+ left_pad="3"
+ right="-72"
+ name="permission_online_icon"
+ tool_tip="This friend can see when you&apos;re online"
+ top_delta="0"
+ width="16" />
<button
follows="right"
height="16"
@@ -79,7 +128,8 @@
left_pad="3"
right="-53"
name="info_btn"
- top_delta="-2"
+ tab_stop="false"
+ top_delta="0"
width="16" />
<button
follows="right"
@@ -89,6 +139,7 @@
left_pad="5"
right="-28"
name="profile_btn"
+ tab_stop="false"
tool_tip="View profile"
top_delta="-2"
width="20" />
diff --git a/indra/newview/skins/default/xui/en/panel_bars.xml b/indra/newview/skins/default/xui/en/panel_bars.xml
deleted file mode 100644
index 96722ce278..0000000000
--- a/indra/newview/skins/default/xui/en/panel_bars.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<panel
- follows="left|right|top|bottom"
- height="768"
- layout="topleft"
- left="0"
- mouse_opaque="false"
- name="screen"
- width="1024">
- <layout_stack name="menu_stack" orientation="vertical" height="768" border_size="0">
- <panel auto_resize="false" width="1024" name="status_bar" filename="panel_status_bar.xml"/>
- <panel auto_resize="false" width="1024" height="60" name="navigation bar" filename="panel_navigation_bar.xml"/>
- <layout_stack name="hud_stack" orientation="horizontal" auto_resize="true" width="1024" height="500" follows="all">
- <panel auto_resize="true" name="floater_view" height="500"/>
- <panel auto_resize="false" filename="panel_side_tray.xml" height="500" width="333"/>
- </layout_stack>
- </layout_stack>
-</panel>
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 4f989a6f6f..216a265164 100644
--- 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
@@ -41,7 +41,7 @@
height="16"
layout="topleft"
left_pad="5"
- allow_html="false"
+ parse_urls="false"
use_ellipses="true"
name="item_name"
text_color="white"
diff --git a/indra/newview/skins/default/xui/en/panel_bottomtray.xml b/indra/newview/skins/default/xui/en/panel_bottomtray.xml
index 4eff5bc48a..63068a069f 100644
--- a/indra/newview/skins/default/xui/en/panel_bottomtray.xml
+++ b/indra/newview/skins/default/xui/en/panel_bottomtray.xml
@@ -12,6 +12,9 @@
top="28"
width="1310">
<string
+ name="DragIndicationImageName"
+ value="Accordion_ArrowOpened_Off" />
+ <string
name="SpeakBtnToolTip"
value="Turns microphone on/off" />
<string
@@ -29,31 +32,32 @@
orientation="horizontal"
top="0"
width="1310">
- <icon
+ <layout_panel
auto_resize="false"
- follows="left|right"
- height="10"
- image_name="spacer24.tga"
- layout="topleft"
- left="0"
+ user_resize="false"
min_width="2"
- top="0"
width="2" />
<layout_panel
auto_resize="false"
- filename="panel_nearby_chat_bar.xml"
- follows="left|right"
- height="28"
layout="topleft"
- left="0"
max_width="320"
- min_height="23"
min_width="214"
+ height="28"
mouse_opaque="false"
- name="chat_bar"
- top="4"
+ name="chat_bar_layout_panel"
user_resize="true"
- width="308" />
+ width="308" >
+ <panel
+ name="chat_bar"
+ filename="panel_nearby_chat_bar.xml"
+ left="0"
+ height="28"
+ width="308"
+ top="0"
+ mouse_opaque="false"
+ follows="left|right"
+ />
+ </layout_panel>
<!--
There is resize bar between chatbar and Speak button. It has 2px width (is is set as 2*UIResizeBarOverlap)
-->
@@ -135,7 +139,7 @@
name="movement_panel"
user_resize="false"
width="83">
- <button
+ <bottomtray_button
follows="left|right"
height="23"
image_pressed="PushButton_Press"
@@ -152,7 +156,8 @@
<init_callback
function="Button.SetDockableFloaterToggle"
parameter="moveview" />
- </button>
+ </bottomtray_button>
+
</layout_panel>
<layout_panel
auto_resize="false"
@@ -165,7 +170,7 @@
name="cam_panel"
user_resize="false"
width="83">
- <button
+ <bottomtray_button
follows="left|right"
height="23"
image_pressed="PushButton_Press"
@@ -183,7 +188,7 @@
<init_callback
function="Button.SetDockableFloaterToggle"
parameter="camera" />
- </button>
+ </bottomtray_button>
</layout_panel>
<layout_panel
auto_resize="false"
@@ -195,7 +200,7 @@
name="snapshot_panel"
user_resize="false"
width="39">
- <button
+ <bottomtray_button
follows="left|right"
height="23"
image_overlay="Snapshot_Off"
@@ -212,7 +217,7 @@
<init_callback
function="Button.SetFloaterToggle"
parameter="snapshot" />
- </button>
+ </bottomtray_button>
</layout_panel>
<layout_panel
auto_resize="false"
@@ -228,7 +233,7 @@
<!--*FIX: Build Floater is not opened with default registration. Will be fixed soon.
Disabled for now.
-->
- <button
+ <bottomtray_button
follows="left|right"
height="23"
image_pressed="PushButton_Press"
@@ -246,7 +251,7 @@ Disabled for now.
<commit_callback
function="Build.Toggle"
parameter="build" />
- </button>
+ </bottomtray_button>
</layout_panel>
<layout_panel
auto_resize="false"
@@ -259,7 +264,7 @@ Disabled for now.
name="search_btn_panel"
user_resize="false"
width="83">
- <button
+ <bottomtray_button
follows="left|right"
height="23"
image_pressed="PushButton_Press"
@@ -277,7 +282,7 @@ Disabled for now.
<init_callback
function="Button.SetFloaterToggle"
parameter="search" />
- </button>
+ </bottomtray_button>
</layout_panel>
<layout_panel
auto_resize="false"
@@ -290,7 +295,7 @@ Disabled for now.
name="world_map_btn_panel"
user_resize="false"
width="83">
- <button
+ <bottomtray_button
follows="left|right"
height="23"
image_pressed="PushButton_Press"
@@ -308,7 +313,7 @@ Disabled for now.
<init_callback
function="Button.SetFloaterToggle"
parameter="world_map" />
- </button>
+ </bottomtray_button>
</layout_panel>
<layout_panel
auto_resize="false"
@@ -321,7 +326,7 @@ Disabled for now.
name="mini_map_btn_panel"
user_resize="false"
width="83">
- <button
+ <bottomtray_button
follows="left|right"
height="23"
image_pressed="PushButton_Press"
@@ -339,7 +344,7 @@ Disabled for now.
<init_callback
function="Button.SetFloaterToggle"
parameter="mini_map" />
- </button>
+ </bottomtray_button>
</layout_panel>
<layout_panel
follows="left|right"
@@ -400,18 +405,10 @@ as for parent layout_panel (chiclet_list_panel) to resize bottom tray properly.
width="7" />
</chiclet_panel>
</layout_panel>
- <icon
- auto_resize="false"
- color="0 0 0 0"
- follows="left|right"
- height="10"
- image_name="spacer24.tga"
- layout="topleft"
- left="0"
- min_width="4"
- name="DUMMY"
- top="0"
- width="4" />
+ <layout_panel auto_resize="false"
+ user_resize="false"
+ width="4"
+ min_width="4"/>
<layout_panel
auto_resize="false"
follows="right"
@@ -503,5 +500,11 @@ image_pressed_selected "Lit" + "Selected" - there are new messages and the Well
</button>
</chiclet_notification>
</layout_panel>
+ <layout_panel
+ auto_resize="false"
+ user_resize="false"
+ min_width="4"
+ name="DUMMY2"
+ width="8" />
</layout_stack>
</panel>
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 6e9476f814..efb1da4c05 100644
--- a/indra/newview/skins/default/xui/en/panel_bottomtray_lite.xml
+++ b/indra/newview/skins/default/xui/en/panel_bottomtray_lite.xml
@@ -28,30 +28,28 @@
orientation="horizontal"
top="0"
width="1000">
- <icon
+ <layout_panel
auto_resize="false"
- follows="left|right"
- height="10"
- image_name="spacer24.tga"
- layout="topleft"
+ user_resize="false"
min_width="2"
- left="0"
- top="0"
width="2" />
<layout_panel
mouse_opaque="false"
auto_resize="true"
- follows="left|right"
height="28"
layout="topleft"
- left="0"
- min_height="23"
width="310"
- top="4"
min_width="188"
- name="chat_bar"
- user_resize="false"
- filename="panel_nearby_chat_bar.xml" />
+ user_resize="false">
+ <panel
+ left="0"
+ filename="panel_nearby_chat_bar.xml"
+ follows="left|right"
+ top="4"
+ width="310"
+ name="chat_bar"
+ mouse_opaque="false"/>
+ </layout_panel>
<layout_panel
mouse_opaque="false"
auto_resize="false"
@@ -79,17 +77,11 @@
use_ellipses="true" />
</gesture_combo_list>
</layout_panel>
- <icon
+ <layout_panel
auto_resize="false"
- color="0 0 0 0"
- follows="left|right"
- height="10"
- image_name="spacer24.tga"
- layout="topleft"
- left="0"
+ user_resize="false"
min_width="3"
name="after_gesture_panel"
- top="0"
width="3"/>
</layout_stack>
</panel>
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 9124ad528d..17e8d4d2df 100644
--- a/indra/newview/skins/default/xui/en/panel_chat_header.xml
+++ b/indra/newview/skins/default/xui/en/panel_chat_header.xml
@@ -21,7 +21,7 @@
top="3"
width="18" />
<text
- allow_html="false"
+ parse_urls="false"
allow_scroll="false"
v_pad = "7"
read_only = "true"
@@ -38,16 +38,17 @@
use_ellipses="true"
valign="bottom"
value="Ericag Vader" />
- <text
- font="SansSerifSmall"
- follows="right"
- halign="right"
- height="13"
- layout="topleft"
- left_pad="5"
- name="time_box"
- right="-5"
- top="8"
- value="23:30"
- width="110" />
+ <text
+ allow_scroll="false"
+ font="SansSerifSmall"
+ follows="right"
+ halign="right"
+ height="13"
+ layout="topleft"
+ left_pad="5"
+ name="time_box"
+ right="-5"
+ top="8"
+ value="23:30"
+ width="110" />
</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_classified.xml b/indra/newview/skins/default/xui/en/panel_classified.xml
deleted file mode 100644
index c8293d3663..0000000000
--- a/indra/newview/skins/default/xui/en/panel_classified.xml
+++ /dev/null
@@ -1,138 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<panel
- follows="bottom|left"
- height="490"
- label="Classified"
- layout="topleft"
- left="330"
- name="Classified"
- top="490"
- width="450">
- <panel.string
- name="ad_placed_paid">
- Ad placed: [DATE], Paid L$[AMT] for listing.
- </panel.string>
- <panel.string
- name="update_txt">
- Update
- </panel.string>
- <panel.string
- name="publish_txt">
- Publish...
- </panel.string>
- <panel.string
- name="dateStr">
- [mthnum,datetime,slt]/[day,datetime,slt]/[year,datetime,slt]
- </panel.string>
- <texture_picker
- follows="left|top"
- height="300"
- layout="topleft"
- left="20"
- name="snapshot_ctrl"
- top="15"
- width="400" />
- <line_editor
- enabled="false"
- follows="left|top"
- font="SansSerif"
- height="20"
- layout="topleft"
- left_delta="0"
- name="given_name_editor"
- tool_tip="Name must begin with a letter or number, not punctuation"
- top_delta="288"
- width="400" />
- <text_editor
- enabled="false"
- follows="left|top"
- height="90"
- layout="topleft"
- left="20"
- max_length="1023"
- name="desc_editor"
- width="400"
- word_wrap="true" />
- <line_editor
- enabled="false"
- follows="left|top"
- font="SansSerif"
- height="20"
- layout="topleft"
- left="20"
- name="location_editor"
- tool_tip="Set the location for this classified to your current position"
- width="400" />
- <button
- follows="left|top"
- height="20"
- label="Set"
- layout="topleft"
- left_delta="360"
- name="set_location_btn"
- top_delta="0"
- width="60" />
- <button
- follows="left|top"
- height="20"
- label="Teleport"
- layout="topleft"
- left="20"
- name="classified_teleport_btn"
- top="449"
- width="100" />
- <button
- follows="left|top"
- height="20"
- label="Map"
- layout="topleft"
- left_pad="5"
- name="classified_map_btn"
- top_delta="0"
- width="100" />
- <button
- follows="left|top"
- height="20"
- label="Profile"
- layout="topleft"
- left_pad="5"
- name="classified_profile_btn"
- top_delta="0"
- width="100" />
- <combo_box
- height="20"
- layout="topleft"
- left="30"
- name="classified_mature_check"
- top="48"
- width="130">
- <combo_box.item
- label="- Select one -"
- name="select_mature"
- value="Select" />
- <combo_box.item
- label="Moderate Content"
- name="mature"
- value="Mature" />
- <combo_box.item
- label="General Content"
- name="pg"
- value="PG" />
- </combo_box>
- <combo_box
- bottom="45"
- height="18"
- layout="topleft"
- left="20"
- name="classified_category_combo"
- right="150" />
- <button
- follows="left|top"
- height="20"
- label="Update"
- layout="topleft"
- left="30"
- name="classified_update_btn"
- top="70"
- width="70" />
-</panel>
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 976f6d6cd0..0fb7691ee7 100644
--- a/indra/newview/skins/default/xui/en/panel_classified_info.xml
+++ b/indra/newview/skins/default/xui/en/panel_classified_info.xml
@@ -39,14 +39,13 @@
Disabled
</panel.string>
<button
- follows="top|right"
+ follows="top|left"
height="24"
image_hover_unselected="BackButton_Over"
image_pressed="BackButton_Press"
image_unselected="BackButton_Off"
layout="topleft"
name="back_btn"
- picture_style="true"
left="10"
tab_stop="false"
top="2"
@@ -94,6 +93,7 @@
width="275"
>
<texture_picker
+ fallback_image="default_land_picture.j2c"
enabled="false"
follows="left|top|right"
height="197"
@@ -202,7 +202,7 @@
value="Category:"
width="140" />
<text_editor
- allow_html="true"
+ parse_urls="true"
allow_scroll="false"
bg_visible="false"
follows="left|top|right"
@@ -371,7 +371,7 @@
value="Description:"
width="250" />
<text_editor
- allow_html="true"
+ parse_urls="true"
allow_scroll="true"
bg_visible="false"
follows="all"
@@ -398,30 +398,74 @@
top_pad="5"
left="9"
name="buttons">
- <button
- follows="bottom|left"
- height="23"
- label="Teleport"
- layout="topleft"
- left="0"
- name="teleport_btn"
- top="0"
- width="101" />
- <button
- follows="bottom|left"
- height="23"
- label="Map"
- layout="topleft"
- left_pad="3"
- name="show_on_map_btn"
- width="100" />
- <button
- follows="bottom|left"
- height="23"
- label="Edit"
- layout="topleft"
- name="edit_btn"
- left_pad="3"
- width="101" />
+
+ <layout_stack
+ follows="bottom|left|right"
+ height="23"
+ layout="topleft"
+ name="layout_stack1"
+ left="0"
+ orientation="horizontal"
+ top_pad="0"
+ width="309">
+
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left="0"
+ name="layout_panel1"
+ user_resize="false"
+ auto_resize="true"
+ width="101">
+ <button
+ follows="bottom|left|right"
+ height="23"
+ label="Teleport"
+ layout="topleft"
+ left="0"
+ name="teleport_btn"
+ top="0"
+ width="101" />
+ </layout_panel>
+
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left_pad="3"
+ name="show_on_map_btn_lp"
+ user_resize="false"
+ auto_resize="true"
+ width="100">
+ <button
+ follows="bottom|left|right"
+ height="23"
+ label="Map"
+ layout="topleft"
+ name="show_on_map_btn"
+ top="0"
+ width="100" />
+ </layout_panel>
+
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left_pad="3"
+ name="edit_btn_lp"
+ user_resize="false"
+ auto_resize="true"
+ width="101">
+ <button
+ follows="bottom|left|right"
+ height="23"
+ label="Edit"
+ layout="topleft"
+ name="edit_btn"
+ top="0"
+ width="101" />
+ </layout_panel>
+ </layout_stack>
</panel>
</panel>
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 af3315ebfe..27c653bc35 100644
--- a/indra/newview/skins/default/xui/en/panel_classifieds_list_item.xml
+++ b/indra/newview/skins/default/xui/en/panel_classifieds_list_item.xml
@@ -33,7 +33,7 @@
<texture_picker
allow_no_texture="true"
border_enabled="true"
- default_image_name="TabIcon_Places_Large"
+ fallback_image="default_land_picture.j2c"
enabled="false"
follows="left|top"
height="80"
@@ -65,7 +65,6 @@
left="103"
name="description"
textbox.max_length="1024"
- textbox.label="More"
textbox.show_context_menu="false"
top_pad="0"
width="178"
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 93d7720c57..cc0541e65c 100644
--- a/indra/newview/skins/default/xui/en/panel_clothing_list_item.xml
+++ b/indra/newview/skins/default/xui/en/panel_clothing_list_item.xml
@@ -53,7 +53,7 @@
height="16"
layout="topleft"
left_pad="5"
- allow_html="false"
+ parse_urls="false"
use_ellipses="true"
name="item_name"
text_color="white"
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 f016c27b0a..f438e3d42d 100644
--- a/indra/newview/skins/default/xui/en/panel_cof_wearables.xml
+++ b/indra/newview/skins/default/xui/en/panel_cof_wearables.xml
@@ -22,24 +22,25 @@
width="311">
<accordion_tab
layout="topleft"
- name="tab_attachments"
- title="Attachments">
+ name="tab_clothing"
+ title="Clothing">
<flat_list_view
allow_select="true"
follows="all"
height="10"
item_pad="3"
+ keep_selection_visible_on_reshape="true"
layout="topleft"
left="0"
multi_select="true"
- name="list_attachments"
+ name="list_clothing"
top="0"
width="311" />
</accordion_tab>
<accordion_tab
layout="topleft"
- name="tab_clothing"
- title="Clothing">
+ name="tab_attachments"
+ title="Attachments">
<flat_list_view
allow_select="true"
follows="all"
@@ -47,10 +48,14 @@
item_pad="3"
layout="topleft"
left="0"
+ keep_selection_visible_on_reshape="true"
multi_select="true"
- name="list_clothing"
+ name="list_attachments"
top="0"
- width="311" />
+ width="311">
+ <flat_list_view.no_items_text
+ value="No attachments worn" />
+ </flat_list_view>
</accordion_tab>
<accordion_tab
layout="topleft"
@@ -61,6 +66,7 @@
follows="all"
height="10"
item_pad="3"
+ keep_selection_visible_on_reshape="true"
layout="topleft"
left="0"
multi_select="true"
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 75b5fd1532..de2ff0afc9 100644
--- 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
@@ -53,7 +53,7 @@
height="16"
layout="topleft"
left_pad="5"
- allow_html="false"
+ parse_urls="false"
use_ellipses="true"
name="item_name"
text_color="white"
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 a5dd34bd22..df459b4083 100644
--- 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
@@ -42,7 +42,7 @@
height="16"
layout="topleft"
left_pad="5"
- allow_html="false"
+ parse_urls="false"
use_ellipses="true"
name="item_name"
text_color="LtGray_50"
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 6744a7b9c2..5934956559 100644
--- a/indra/newview/skins/default/xui/en/panel_edit_classified.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_classified.xml
@@ -23,14 +23,13 @@
Save
</string>
<button
- follows="top|right"
+ follows="top|left"
height="24"
image_hover_unselected="BackButton_Over"
image_pressed="BackButton_Press"
image_unselected="BackButton_Off"
layout="topleft"
name="back_btn"
- picture_style="true"
left="10"
tab_stop="false"
top="2"
@@ -79,6 +78,7 @@
top="10"
width="272">
<texture_picker
+ fallback_image="default_land_picture.j2c"
follows="left|top|right"
height="197"
width="272"
@@ -119,7 +119,7 @@
layout="topleft"
left="10"
top_pad="2"
- max_length="63"
+ max_length="30"
name="classified_name"
prevalidate_callback="ascii"
text_color="black"
@@ -147,7 +147,7 @@
layout="topleft"
left="10"
top_pad="2"
- max_length="1023"
+ max_length="64"
name="classified_desc"
text_color="black"
word_wrap="true" />
@@ -254,9 +254,16 @@
width="20"/>
</icons_combo_box.item>
</icons_combo_box>
+ <check_box
+ height="16"
+ label="Auto renew each week"
+ layout="topleft"
+ left="10"
+ name="auto_renew"
+ top_pad="15"
+ width="250" />
<text
follows="left|top"
- font.style="BOLD"
height="10"
layout="topleft"
left="10"
@@ -283,14 +290,6 @@
top_pad="5"
tool_tip="Price for listing."
width="105" />
- <check_box
- height="16"
- label="Auto renew each week"
- layout="topleft"
- left="10"
- name="auto_renew"
- top_pad="15"
- width="250" />
</panel>
</scroll_container>
<panel
@@ -302,22 +301,56 @@
name="bottom_panel"
top_pad="5"
width="303">
- <button
- follows="bottom|left"
- height="23"
- label="[LABEL]"
- layout="topleft"
- name="save_changes_btn"
- left="0"
- top="0"
- width="152" />
- <button
- follows="bottom|left"
- height="23"
- label="Cancel"
- layout="topleft"
- name="cancel_btn"
- left_pad="3"
- width="153" />
+
+ <layout_stack
+ follows="bottom|left|right"
+ height="23"
+ layout="topleft"
+ name="bottom_panel_ls"
+ left="1"
+ orientation="horizontal"
+ top_pad="0"
+ width="309">
+
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left="0"
+ name="save_changes_btn_lp"
+ user_resize="false"
+ auto_resize="true"
+ width="156">
+ <button
+ follows="bottom|left|right"
+ height="23"
+ label="[LABEL]"
+ layout="topleft"
+ name="save_changes_btn"
+ left="1"
+ top="0"
+ width="155" />
+ </layout_panel>
+
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left_pad="3"
+ name="show_on_map_btn_lp"
+ user_resize="false"
+ auto_resize="true"
+ width="157">
+ <button
+ follows="bottom|left|right"
+ height="23"
+ label="Cancel"
+ layout="topleft"
+ name="cancel_btn"
+ left="1"
+ top="0"
+ width="156" />
+ </layout_panel>
+ </layout_stack>
</panel>
</panel>
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 dc83b334b5..c4b831b71c 100644
--- a/indra/newview/skins/default/xui/en/panel_edit_pick.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_pick.xml
@@ -17,7 +17,7 @@
(will update after save)
</panel.string>
<button
- follows="top|right"
+ follows="top|left"
height="24"
image_hover_unselected="BackButton_Over"
image_pressed="BackButton_Press"
@@ -63,6 +63,7 @@
left="0"
width="285">
<texture_picker
+ fallback_image="default_land_picture.j2c"
follows="left|top|right"
height="197"
width="272"
@@ -182,22 +183,57 @@
name="bottom_panel"
top_pad="5"
width="303">
- <button
- follows="bottom|left"
- height="23"
- label="Save Pick"
- layout="topleft"
- name="save_changes_btn"
- left="0"
- top="0"
- width="152" />
- <button
- follows="bottom|left"
- height="23"
- label="Cancel"
- layout="topleft"
- name="cancel_btn"
- left_pad="3"
- width="153" />
+
+ <layout_stack
+ follows="bottom|left|right"
+ height="23"
+ layout="topleft"
+ name="layout_stack1"
+ left="2"
+ orientation="horizontal"
+ top_pad="0"
+ width="303">
+
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="topleft"
+ left="0"
+ name="layout_panel1"
+ user_resize="false"
+ auto_resize="true"
+ width="150">
+ <button
+ follows="bottom|left|right"
+ height="23"
+ label="Save Pick"
+ layout="topleft"
+ name="save_changes_btn"
+ top="0"
+ left="1"
+ width="149" />
+ </layout_panel>
+
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="topleft"
+ left_pad="4"
+ name="layout_panel1"
+ user_resize="false"
+ auto_resize="true"
+ width="150">
+ <button
+ follows="bottom|left|right"
+ height="23"
+ label="Cancel"
+ layout="topleft"
+ name="cancel_btn"
+ top="0"
+ left="1"
+ width="149" />
+ </layout_panel>
+ </layout_stack>
+
</panel>
</panel>
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 dff2b9a214..6781a76120 100644
--- a/indra/newview/skins/default/xui/en/panel_edit_profile.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_profile.xml
@@ -118,6 +118,7 @@
allow_no_texture="true"
default_image_name="None"
enabled="false"
+ fallback_image="default_profile_picture.j2c"
follows="top|left"
height="124"
layout="topleft"
@@ -174,6 +175,7 @@
allow_no_texture="true"
default_image_name="None"
enabled="false"
+ fallback_image="Generic_Person_Large"
follows="top|left"
height="124"
layout="topleft"
@@ -240,7 +242,7 @@
left="8"
name="show_in_search_checkbox"
height="15"
- text_enabled_color="white"
+ label_text.text_color="white"
top_pad="12"
width="100" />
<text
@@ -318,33 +320,68 @@
left="10"
name="partner_edit_link"
value="[[URL] Edit]"
- width="50" />
+ width="70" />
</panel>
</panel>
</scroll_container>
<panel
- follows="bottom|left"
+ follows="bottom|left|right"
height="28"
left="0"
name="profile_me_buttons_panel"
top_pad="0"
width="313">
+
+ <layout_stack
+ follows="bottom|left|right"
+ height="28"
+ layout="topleft"
+ name="bottom_panel_ls"
+ left="7"
+ orientation="horizontal"
+ top_pad="0"
+ width="295">
+
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ name="save_changes_btn_lp"
+ top="0"
+ user_resize="false"
+ auto_resize="true"
+ width="153">
<button
- follows="bottom|left"
+ follows="bottom|left|right"
height="23"
label="Save Changes"
layout="topleft"
- left="8"
+ left="1"
name="save_btn"
- top="5"
+ top="0"
width="152" />
+ </layout_panel>
+
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left_pad="3"
+ name="show_on_map_btn_lp"
+ top="0"
+ user_resize="false"
+ auto_resize="true"
+ width="154">
<button
- follows="bottom|left"
+ follows="bottom|left|right"
height="23"
label="Cancel"
layout="topleft"
- left_pad="3"
+ left="1"
name="cancel_btn"
+ top="0"
width="153" />
+ </layout_panel>
+ </layout_stack>
</panel>
</panel>
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 3106ed34ff..95c1c822b8 100644
--- a/indra/newview/skins/default/xui/en/panel_edit_wearable.xml
+++ b/indra/newview/skins/default/xui/en/panel_edit_wearable.xml
@@ -1,428 +1,472 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel
background_visible="true"
- bevel_style="in"
+ bevel_style="in"
follows="all"
height="570"
+ help_topic="edit_wearable"
label="Wearable"
layout="topleft"
-left="0"
- help_topic="edit_wearable"
+ left="0"
name="panel_edit_wearable"
- top="0"
+ top="0"
width="333">
- <string
- name="edit_shape_title">
- Editing Shape
- </string>
- <string
- name="edit_skin_title">
- Editing Skin
- </string>
- <string
- name="edit_hair_title">
- Editing Hair
- </string>
- <string
- name="edit_eyes_title">
- Editing Eyes
- </string>
- <string
- name="edit_shirt_title">
- Editing Shirt
- </string>
- <string
- name="edit_pants_title">
- Editing Pants
- </string>
- <string
- name="edit_shoes_title">
- Editing Shoes
- </string>
- <string
- name="edit_socks_title">
- Editing Socks
- </string>
- <string
- name="edit_jacket_title">
- Editing Jacket
- </string>
- <string
- name="edit_skirt_title">
- Editing Skirt
- </string>
- <string
- name="edit_gloves_title">
- Editing Gloves
- </string>
- <string
- name="edit_undershirt_title">
- Editing Undershirt
- </string>
- <string
- name="edit_underpants_title">
- Editing Underpants
- </string>
- <string
- name="edit_alpha_title">
- Editing Alpha Mask
- </string>
- <string
- name="edit_tattoo_title">
- Editing Tattoo
- </string>
- <string
- name="shape_desc_text">
- Shape:
- </string>
- <string
- name="skin_desc_text">
- Skin:
- </string>
- <string
- name="hair_desc_text">
- Hair:
- </string>
- <string
- name="eyes_desc_text">
- Eyes:
- </string>
- <string
- name="shirt_desc_text">
- Shirt:
- </string>
- <string
- name="pants_desc_text">
- Pants:
- </string>
- <string
- name="shoes_desc_text">
- Shoes:
- </string>
- <string
- name="socks_desc_text">
- Socks:
- </string>
- <string
- name="jacket_desc_text">
- Jacket:
- </string>
- <string
- name="skirt_desc_text">
- Skirt:
- </string>
- <string
- name="gloves_desc_text">
- Gloves:
- </string>
- <string
- name="undershirt_desc_text">
- Undershirt:
- </string>
- <string
- name="underpants_desc_text">
- Underpants:
- </string>
- <string
- name="alpha_desc_text">
- Alpha Mask:
- </string>
- <string
- name="tattoo_desc_text">
- Tattoo:
- </string>
- <button
+ <string
+ name="edit_shape_title">
+ Editing Shape
+ </string>
+ <string
+ name="edit_skin_title">
+ Editing Skin
+ </string>
+ <string
+ name="edit_hair_title">
+ Editing Hair
+ </string>
+ <string
+ name="edit_eyes_title">
+ Editing Eyes
+ </string>
+ <string
+ name="edit_shirt_title">
+ Editing Shirt
+ </string>
+ <string
+ name="edit_pants_title">
+ Editing Pants
+ </string>
+ <string
+ name="edit_shoes_title">
+ Editing Shoes
+ </string>
+ <string
+ name="edit_socks_title">
+ Editing Socks
+ </string>
+ <string
+ name="edit_jacket_title">
+ Editing Jacket
+ </string>
+ <string
+ name="edit_skirt_title">
+ Editing Skirt
+ </string>
+ <string
+ name="edit_gloves_title">
+ Editing Gloves
+ </string>
+ <string
+ name="edit_undershirt_title">
+ Editing Undershirt
+ </string>
+ <string
+ name="edit_underpants_title">
+ Editing Underpants
+ </string>
+ <string
+ name="edit_alpha_title">
+ Editing Alpha Mask
+ </string>
+ <string
+ name="edit_tattoo_title">
+ Editing Tattoo
+ </string>
+ <string
+ name="shape_desc_text">
+ Shape:
+ </string>
+ <string
+ name="skin_desc_text">
+ Skin:
+ </string>
+ <string
+ name="hair_desc_text">
+ Hair:
+ </string>
+ <string
+ name="eyes_desc_text">
+ Eyes:
+ </string>
+ <string
+ name="shirt_desc_text">
+ Shirt:
+ </string>
+ <string
+ name="pants_desc_text">
+ Pants:
+ </string>
+ <string
+ name="shoes_desc_text">
+ Shoes:
+ </string>
+ <string
+ name="socks_desc_text">
+ Socks:
+ </string>
+ <string
+ name="jacket_desc_text">
+ Jacket:
+ </string>
+ <string
+ name="skirt_desc_text">
+ Skirt:
+ </string>
+ <string
+ name="gloves_desc_text">
+ Gloves:
+ </string>
+ <string
+ name="undershirt_desc_text">
+ Undershirt:
+ </string>
+ <string
+ name="underpants_desc_text">
+ Underpants:
+ </string>
+ <string
+ name="alpha_desc_text">
+ Alpha Mask:
+ </string>
+ <string
+ name="tattoo_desc_text">
+ Tattoo:
+ </string>
+ <!-- Default width of the button should be to show it without label.
+ Button will be extedned in code to show whole label when wearable is being changed.
+ -->
+ <labeled_back_button
follows="top|left"
height="24"
- width="30"
image_hover_unselected="BackButton_Over"
image_pressed="BackButton_Press"
image_unselected="BackButton_Off"
layout="topleft"
- name="back_btn"
+ label="Save"
left="11"
- top="3" />
- <text
- follows="top|left"
- font="SansSerifHugeBold"
- height="22"
- layout="topleft"
- left_pad="8"
- name="edit_wearable_title"
- text_color="white"
- top="3"
- value="Editing Shape"
- width="270" />
- <panel
- border="false"
- bg_alpha_color="DkGray2"
- bg_opaque_color="DkGray2"
- background_visible="true"
- background_opaque="true"
+ name="back_btn"
+ pad_left="24"
+ tool_tip="Return to Edit Outfit"
+ top="3"
+ width="30" />
+ <text
+ follows="top|left|right"
+ font="SansSerifHugeBold"
+ height="22"
+ layout="topleft"
+ left_pad="8"
+ name="edit_wearable_title"
+ text_color="white"
+ top="3"
+ value="Editing Shape"
+ use_ellipses="true"
+ width="274" />
+ <panel
+ background_opaque="true"
+ background_visible="true"
+ bg_alpha_color="DkGray2"
+ bg_opaque_color="DkGray2"
+ border="false"
+ follows="top|left|right"
+ height="60"
+ label="Shirt"
+ layout="topleft"
+ left="10"
+ name="wearable_type_panel"
+ top_pad="10"
+ width="313">
+ <text
follows="top|left|right"
- height="60"
- label="Shirt"
+ font="SansSerifSmallBold"
+ height="16"
+ layout="topleft"
+ left="10"
+ name="description_text"
+ text_color="white"
+ top="10"
+ value="Shape:"
+ width="150" />
+ <radio_group
+ control_name="AvatarSex"
+ follows="top|right"
+ height="20"
layout="topleft"
- left="10"
- name="wearable_type_panel"
- top_pad="10"
- width="313">
- <text
- follows="top|left|right"
- font="SansSerifSmallBold"
- height="16"
- layout="topleft"
- left="10"
- name="description_text"
- text_color="white"
- top="10"
- value="Shape:"
- width="150" />
- <radio_group
- control_name="AvatarSex"
- follows="left|top|right"
- left="210"
- height="20"
- layout="topleft"
- name="sex_radio"
- top="5"
- width="110">
- <radio_item
- follows="all"
- height="16"
- label=""
- layout="topleft"
- left="0"
- name="sex_male"
- tool_tip="Male"
- value="1"
- width="40" />
- <radio_item
- follows="all"
- height="16"
- label=""
- layout="topleft"
- left_pad="10"
- name="sex_female"
- tool_tip="Female"
- value="0"
- width="40" />
- </radio_group>
- <!-- graphical labels for the radio buttons above -->
- <icon
- height="16"
- image_name="icons/Male.png"
- left="230"
- name="male_icon"
- tool_tip="Male"
- top="7"
- width="16" />
- <icon
- height="16"
- image_name="icons/Female.png"
- name="female_icon"
- left="280"
- tool_tip="Female"
- top="7"
- width="16" />
- <line_editor
+ left="210"
+ name="sex_radio"
+ top="5"
+ width="110">
+ <radio_item
follows="all"
- height="23"
+ height="16"
+ label=""
layout="topleft"
- left="10"
- max_length="300"
- name="description"
- prevalidate_callback="ascii"
- text_color="black"
- top_pad="3"
- width="290" />
- </panel>
- <panel
- follows="all"
- height="433"
- layout="topleft"
- left="0"
- name="edit_subpanel_container"
- top_pad="2"
- width="333">
- <!-- the shape editing panel is taller than the others
+ left="0"
+ name="sex_male"
+ tool_tip="Male"
+ value="1"
+ width="40" />
+ <radio_item
+ follows="all"
+ height="16"
+ label=""
+ layout="topleft"
+ left_pad="10"
+ name="sex_female"
+ tool_tip="Female"
+ value="0"
+ width="40"/>
+ </radio_group>
+ <!-- graphical labels for the radio buttons above -->
+ <icon
+ follows="top|right"
+ height="16"
+ image_name="icons/Male.png"
+ layout="topleft"
+ left="230"
+ name="male_icon"
+ tool_tip="Male"
+ top="7"
+ width="16" />
+ <icon
+ follows="top|right"
+ height="16"
+ image_name="icons/Female.png"
+ layout="topleft"
+ left="280"
+ name="female_icon"
+ tool_tip="Female"
+ top="7"
+ width="16" />
+ <line_editor
+ follows="all"
+ height="23"
+ layout="topleft"
+ left="10"
+ max_length="63"
+ name="description"
+ prevalidate_callback="ascii"
+ select_on_focus="true"
+ text_color="black"
+ top_pad="3"
+ width="290" />
+ </panel>
+ <panel
+ follows="all"
+ height="433"
+ layout="topleft"
+ left="0"
+ name="edit_subpanel_container"
+ top_pad="2"
+ width="333">
+ <!-- the shape editing panel is taller than the others
because it also displays avatar height -->
- <panel
- filename="panel_edit_shape.xml"
- follows="all"
- height="433"
- layout="topleft"
- left="0"
- name="edit_shape_panel"
- top="0"
- visible="false"
- width="333" />
- <panel
- filename="panel_edit_skin.xml"
- follows="all"
- height="425"
- layout="topleft"
- left="0"
- name="edit_skin_panel"
- top="8"
- visible="false"
- width="333" />
- <panel
- filename="panel_edit_hair.xml"
- follows="all"
- height="425"
- layout="topleft"
- left="0"
- name="edit_hair_panel"
- top="8"
- visible="false"
- width="333" />
- <panel
- filename="panel_edit_eyes.xml"
- follows="all"
- height="425"
- layout="topleft"
- left="0"
- name="edit_eyes_panel"
- top="8"
- visible="false"
- width="333" />
- <panel
- filename="panel_edit_shirt.xml"
- follows="all"
- height="425"
- layout="topleft"
- left="0"
- name="edit_shirt_panel"
- top="8"
- visible="false"
- width="333" />
- <panel
- filename="panel_edit_pants.xml"
- follows="all"
- height="425"
- layout="topleft"
- left="0"
- name="edit_pants_panel"
- top="8"
- visible="false"
- width="333" />
- <panel
- filename="panel_edit_shoes.xml"
- follows="all"
- height="425"
- layout="topleft"
- left="0"
- name="edit_shoes_panel"
- top="8"
- visible="false"
- width="333" />
- <panel
- filename="panel_edit_socks.xml"
- follows="all"
- height="425"
- layout="topleft"
- left="0"
- name="edit_socks_panel"
- top="8"
- visible="false"
- width="333" />
- <panel
- filename="panel_edit_jacket.xml"
- follows="all"
- height="425"
- layout="topleft"
- left="0"
- name="edit_jacket_panel"
- top="8"
- visible="false"
- width="333" />
- <panel
- filename="panel_edit_skirt.xml"
- follows="all"
- height="425"
- layout="topleft"
- left="0"
- name="edit_skirt_panel"
- top="8"
- visible="false"
- width="333" />
- <panel
- filename="panel_edit_gloves.xml"
- follows="all"
- height="425"
- layout="topleft"
- left="0"
- name="edit_gloves_panel"
- top="8"
- visible="false"
- width="333" />
- <panel
- filename="panel_edit_undershirt.xml"
- follows="all"
- height="425"
- layout="topleft"
- left="0"
- name="edit_undershirt_panel"
- top="8"
- visible="false"
- width="333" />
- <panel
- filename="panel_edit_underpants.xml"
- follows="all"
- height="425"
- layout="topleft"
- left="0"
- name="edit_underpants_panel"
- top="8"
- visible="false"
- width="333" />
- <panel
- filename="panel_edit_alpha.xml"
- follows="all"
- height="425"
- layout="topleft"
- left="0"
- name="edit_alpha_panel"
- top="8"
- visible="false"
- width="333" />
- <panel
- filename="panel_edit_tattoo.xml"
- follows="all"
- height="425"
- layout="topleft"
- left="0"
- name="edit_tattoo_panel"
- top="8"
- visible="false"
- width="333" />
- </panel>
-
- <panel
- follows="bottom|left|right"
- height="23"
- layout="topleft"
- left="2"
- name="button_panel"
- top_pad="6"
- width="333" >
- <button
- follows="bottomleft"
- layout="topleft"
- height="23"
- label="Save As"
- left="8"
- name="save_as_button"
- top="0"
- width="153" />
- <button
- follows="bottomleft"
- layout="topleft"
- height="23"
- label="Revert"
- left_pad="7"
- name="revert_button"
- width="152" />
- </panel>
+ <panel
+ filename="panel_edit_shape.xml"
+ follows="all"
+ height="433"
+ layout="topleft"
+ left="0"
+ name="edit_shape_panel"
+ top="0"
+ visible="false"
+ width="333" />
+ <panel
+ filename="panel_edit_skin.xml"
+ follows="all"
+ height="425"
+ layout="topleft"
+ left="0"
+ name="edit_skin_panel"
+ top="8"
+ visible="false"
+ width="333" />
+ <panel
+ filename="panel_edit_hair.xml"
+ follows="all"
+ height="425"
+ layout="topleft"
+ left="0"
+ name="edit_hair_panel"
+ top="8"
+ visible="false"
+ width="333" />
+ <panel
+ filename="panel_edit_eyes.xml"
+ follows="all"
+ height="425"
+ layout="topleft"
+ left="0"
+ name="edit_eyes_panel"
+ top="8"
+ visible="false"
+ width="333" />
+ <panel
+ filename="panel_edit_shirt.xml"
+ follows="all"
+ height="425"
+ layout="topleft"
+ left="0"
+ name="edit_shirt_panel"
+ top="8"
+ visible="false"
+ width="333" />
+ <panel
+ filename="panel_edit_pants.xml"
+ follows="all"
+ height="425"
+ layout="topleft"
+ left="0"
+ name="edit_pants_panel"
+ top="8"
+ visible="false"
+ width="333" />
+ <panel
+ filename="panel_edit_shoes.xml"
+ follows="all"
+ height="425"
+ layout="topleft"
+ left="0"
+ name="edit_shoes_panel"
+ top="8"
+ visible="false"
+ width="333" />
+ <panel
+ filename="panel_edit_socks.xml"
+ follows="all"
+ height="425"
+ layout="topleft"
+ left="0"
+ name="edit_socks_panel"
+ top="8"
+ visible="false"
+ width="333" />
+ <panel
+ filename="panel_edit_jacket.xml"
+ follows="all"
+ height="425"
+ layout="topleft"
+ left="0"
+ name="edit_jacket_panel"
+ top="8"
+ visible="false"
+ width="333" />
+ <panel
+ filename="panel_edit_skirt.xml"
+ follows="all"
+ height="425"
+ layout="topleft"
+ left="0"
+ name="edit_skirt_panel"
+ top="8"
+ visible="false"
+ width="333" />
+ <panel
+ filename="panel_edit_gloves.xml"
+ follows="all"
+ height="425"
+ layout="topleft"
+ left="0"
+ name="edit_gloves_panel"
+ top="8"
+ visible="false"
+ width="333" />
+ <panel
+ filename="panel_edit_undershirt.xml"
+ follows="all"
+ height="425"
+ layout="topleft"
+ left="0"
+ name="edit_undershirt_panel"
+ top="8"
+ visible="false"
+ width="333" />
+ <panel
+ filename="panel_edit_underpants.xml"
+ follows="all"
+ height="425"
+ layout="topleft"
+ left="0"
+ name="edit_underpants_panel"
+ top="8"
+ visible="false"
+ width="333" />
+ <panel
+ filename="panel_edit_alpha.xml"
+ follows="all"
+ height="425"
+ layout="topleft"
+ left="0"
+ name="edit_alpha_panel"
+ top="8"
+ visible="false"
+ width="333" />
+ <panel
+ filename="panel_edit_tattoo.xml"
+ follows="all"
+ height="425"
+ layout="topleft"
+ left="0"
+ name="edit_tattoo_panel"
+ top="8"
+ visible="false"
+ width="333" />
+ </panel>
+ <panel
+ follows="bottom|left|right"
+ height="23"
+ layout="topleft"
+ left="2"
+ name="button_panel"
+ top_pad="6"
+ width="333">
+ <layout_stack
+ follows="bottom|left|right"
+ height="23"
+ layout="topleft"
+ mouse_opaque="false"
+ name="button_panel_ls"
+ left="0"
+ orientation="horizontal"
+ top="0"
+ width="333">
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left="0"
+ mouse_opaque="false"
+ name="save_as_btn_lp"
+ user_resize="false"
+ auto_resize="true"
+ width="154">
+ <button
+ follows="bottom|left|right"
+ height="23"
+ label="Save As"
+ layout="topleft"
+ left="1"
+ name="save_as_button"
+ top="0"
+ width="153" />
+ </layout_panel>
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left_pad="3"
+ mouse_opaque="false"
+ name="revert_btn_lp"
+ user_resize="false"
+ auto_resize="true"
+ width="152">
+ <button
+ follows="bottom|left|right"
+ height="23"
+ label="Undo Changes"
+ layout="topleft"
+ left_pad="7"
+ name="revert_button"
+ width="152" />
+ </layout_panel>
+ </layout_stack>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_friends.xml b/indra/newview/skins/default/xui/en/panel_friends.xml
deleted file mode 100644
index c315adb33e..0000000000
--- a/indra/newview/skins/default/xui/en/panel_friends.xml
+++ /dev/null
@@ -1,124 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<panel
- border="true"
- follows="all"
- height="347"
- layout="topleft"
- name="friends"
- width="100">
- <panel.string
- name="Multiple">
- Multiple friends
- </panel.string>
- <scroll_list
- bottom="337"
- column_padding="0"
- draw_heading="true"
- follows="left|top|bottom|right"
- layout="topleft"
- left="10"
- multi_select="true"
- name="friend_list"
- right="-100"
- search_column="1"
- tool_tip="Hold shift or control while clicking to select multiple friends"
- top="10">
- <scroll_list.columns
- image="ff_online_status_button.tga"
- name="icon_online_status"
- tool_tip="Online status"
- width="20" />
- <scroll_list.columns
- dynamic_width="true"
- label="Name"
- name="friend_name"
- tool_tip="Name" />
- <scroll_list.columns
- image="ff_visible_online_button.tga"
- name="icon_visible_online"
- tool_tip="Friend can see when you&apos;re online"
- width="20" />
- <scroll_list.columns
- image="ff_visible_map_button.tga"
- name="icon_visible_map"
- tool_tip="Friend can locate you on the map"
- width="20" />
- <scroll_list.columns
- image="ff_edit_mine_button.tga"
- name="icon_edit_mine"
- tool_tip="Friend can edit, delete or take objects"
- width="20" />
- <scroll_list.columns
- image="ff_edit_theirs_button.tga"
- name="icon_edit_theirs"
- tool_tip="You can edit this friend&apos;s objects"
- width="20" />
- <scroll_list.columns
- name="friend_last_update_generation"
- width="0" />
- </scroll_list>
- <locate
- bottom="7"
- layout="topleft"
- left="-90" />
- <button
- follows="top|right"
- height="22"
- label="IM/Call"
- layout="topleft"
- left_pad="10"
- name="im_btn"
- tool_tip="Open Instant Message session"
- top_pad="3"
- width="80" />
- <button
- follows="top|right"
- height="22"
- label="Profile"
- layout="topleft"
- left_delta="0"
- name="profile_btn"
- tool_tip="Show picture, groups, and other information"
- top_pad="3"
- width="80" />
- <button
- follows="top|right"
- height="22"
- label="Teleport"
- layout="topleft"
- left_delta="0"
- name="offer_teleport_btn"
- tool_tip="Offer this friend a teleport to your current location"
- top_pad="3"
- width="80" />
- <button
- follows="top|right"
- height="22"
- label="Pay"
- layout="topleft"
- left_delta="0"
- name="pay_btn"
- tool_tip="Give Linden dollars (L$) to this friend"
- top_pad="3"
- width="80" />
- <button
- follows="top|right"
- height="22"
- label="Remove"
- layout="topleft"
- left_delta="0"
- name="remove_btn"
- tool_tip="Remove this person from your friends list"
- top_pad="3"
- width="80" />
- <button
- follows="top|right"
- height="22"
- label="Add"
- layout="topleft"
- left_delta="0"
- name="add_btn"
- tool_tip="Offer friendship to a Resident"
- top_pad="13"
- width="80" />
-</panel>
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 e894fc8fb8..3ded5c6678 100644
--- a/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml
+++ b/indra/newview/skins/default/xui/en/panel_group_info_sidetray.xml
@@ -84,7 +84,7 @@ background_visible="true"
follows="all"
left="8"
top_pad="0"
- height="536"
+ height="506"
width="292"
border_size="0">
<layout_panel
@@ -96,6 +96,7 @@ background_visible="true"
follows="all"
layout="topleft"
auto_resize="true"
+ height="513"
width="313">
<accordion
left="0"
@@ -105,6 +106,7 @@ background_visible="true"
follows="all"
layout="topleft"
name="groups_accordion"
+ height="513"
width="313">
<accordion_tab
expanded="true"
@@ -174,66 +176,108 @@ background_visible="true"
</accordion_tab>
</accordion>
</layout_panel>
- <layout_panel
- height="30"
- layout="topleft"
- auto_resize="false"
- left="0"
- top_pad="0"
- name="button_row"
- follows="bottom|left"
- width="313">
- <button
- follows="bottom|left"
- height="23"
- image_overlay="Refresh_Off"
- layout="topleft"
- left="0"
- top="5"
- name="btn_refresh"
- width="23" />
- <button
- follows="bottom|left"
- label="Chat"
- name="btn_chat"
- left_pad="3"
- height="23"
- width="82" />
- <button
- follows="bottom|left"
- left_pad="3"
- height="23"
- name="btn_call"
- label="Group Call"
- layout="topleft"
- tool_tip="Call this group"
- width="112" />
- <button
- follows="bottom|left"
- height="23"
- label="Save"
- label_selected="Save"
- name="btn_apply"
- left_pad="3"
- width="82" />
- <button
- follows="bottom|left"
- height="23"
- layout="topleft"
- left="0"
- label="Create Group"
- name="btn_create"
- visible="true"
- tool_tip="Create a new Group"
- width="103" />
- <!--<button
- left_pad="3"
- height="23"
- label="Cancel"
- label_selected="Cancel"
- name="btn_cancel"
- visible="false"
- width="65" />-->
- </layout_panel>
</layout_stack>
+
+ <layout_stack
+ follows="bottom|left|right"
+ height="25"
+ layout="topleft"
+ name="button_row_ls"
+ left="6"
+ orientation="horizontal"
+ top_pad="5"
+ width="297">
+
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left="0"
+ name="btn_refresh_lp"
+ user_resize="false"
+ auto_resize="false"
+ width="24">
+ <button
+ follows="bottom|left|right"
+ height="23"
+ image_overlay="Refresh_Off"
+ layout="topleft"
+ left="1"
+ top="0"
+ name="btn_refresh"
+ width="23" />
+ </layout_panel>
+
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left_pad="3"
+ name="btn_chat_lp"
+ user_resize="false"
+ auto_resize="true"
+ width="91">
+ <button
+ follows="bottom|left|right"
+ label="Chat"
+ name="btn_chat"
+ left="1"
+ height="23"
+ top="0"
+ width="90" />
+ </layout_panel>
+
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left_pad="3"
+ name="call_btn_lp"
+ user_resize="false"
+ auto_resize="true"
+ width="91">
+ <button
+ follows="bottom|left|right"
+ left="1"
+ height="23"
+ name="btn_call"
+ label="Group Call"
+ layout="topleft"
+ tool_tip="Call this group"
+ top="0"
+ width="90" />
+ </layout_panel>
+
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left_pad="3"
+ name="btn_apply_lp"
+ user_resize="false"
+ auto_resize="true"
+ width="91">
+ <button
+ follows="bottom|left|right"
+ height="23"
+ label="Save"
+ label_selected="Save"
+ name="btn_apply"
+ left="1"
+ top="0"
+ width="90" />
+ <button
+ follows="bottom|left|right"
+ height="23"
+ layout="topleft"
+ left="1"
+ top="0"
+ label="Create Group"
+ name="btn_create"
+ visible="true"
+ tool_tip="Create a new Group"
+ width="90" />
+ </layout_panel>
+ </layout_stack>
+
</panel>
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 76f7484c68..1e1d2d18ca 100644
--- a/indra/newview/skins/default/xui/en/panel_group_land_money.xml
+++ b/indra/newview/skins/default/xui/en/panel_group_land_money.xml
@@ -60,6 +60,8 @@
left="0"
right="-1"
top="0"
+ sort_column="0"
+ sort_ascending="true"
name="group_parcel_list"
width="313">
<scroll_list.columns
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 b674b39d9b..0b84ac03c5 100644
--- a/indra/newview/skins/default/xui/en/panel_group_list_item.xml
+++ b/indra/newview/skins/default/xui/en/panel_group_list_item.xml
@@ -36,7 +36,7 @@
top="2"
width="20" />
<text
- allow_html="false"
+ parse_urls="false"
follows="left|right"
font="SansSerifSmall"
height="15"
@@ -55,6 +55,7 @@
left_pad="3"
right="-31"
name="info_btn"
+ tab_stop="false"
top_delta="-2"
width="16" />
<!--*TODO: Should only appear on rollover-->
@@ -66,6 +67,7 @@
left_pad="5"
right="-3"
name="profile_btn"
+ tab_stop="false"
tool_tip="View profile"
top_delta="-2"
width="20" />
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 6523b0d491..41f2b28004 100644
--- a/indra/newview/skins/default/xui/en/panel_group_notices.xml
+++ b/indra/newview/skins/default/xui/en/panel_group_notices.xml
@@ -76,19 +76,22 @@ Maximum 200 per group daily
follows="top|left"
height="23"
image_overlay="AddItem_Off"
+ image_overlay_alignment="left"
+ imgoverlay_label_space="-10"
+ label="New Notice"
layout="topleft"
left="5"
name="create_new_notice"
tool_tip="Create a new notice"
- top_delta="-3"
- width="23" />
+ top_delta="0"
+ width="93" />
<button
follows="top|left"
height="23"
image_overlay="Refresh_Off"
layout="topleft"
name="refresh_notices"
- left_pad="230"
+ left="260"
tool_tip="Refresh list of notices"
top_delta="0"
width="23" />
@@ -113,7 +116,7 @@ Maximum 200 per group daily
mouse_opaque="false"
name="lbl"
text_color="EmphasisColor"
- top="0"
+ top="5"
width="200">
Create a Notice
</text>
@@ -270,7 +273,7 @@ Maximum 200 per group daily
mouse_opaque="false"
name="lbl"
text_color="EmphasisColor"
- top_pad="0"
+ top_pad="5"
width="265">
Archived Notice
</text>
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 65b2e81d50..6f271a757c 100644
--- a/indra/newview/skins/default/xui/en/panel_group_notify.xml
+++ b/indra/newview/skins/default/xui/en/panel_group_notify.xml
@@ -50,7 +50,7 @@
width="230" />
</panel>
<text_editor
- allow_html="true"
+ parse_urls="true"
enabled="true"
follows="all"
height="0"
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 0eb5c47f85..4af4774304 100644
--- a/indra/newview/skins/default/xui/en/panel_group_roles.xml
+++ b/indra/newview/skins/default/xui/en/panel_group_roles.xml
@@ -50,6 +50,10 @@ Select multiple Members by holding the Ctrl key and
clicking on their names.
</panel.string>
<panel.string
+ name="donation_area">
+ [AREA] m²
+ </panel.string>
+ <panel.string
name="power_folder_icon" translate="false">
Inv_FolderClosed
</panel.string>
@@ -99,7 +103,7 @@ clicking on their names.
height="23"
follows="top|left"
label="Invite"
- left="0"
+ left="5"
name="member_invite"
width="100" />
<button
diff --git a/indra/newview/skins/default/xui/en/panel_groups.xml b/indra/newview/skins/default/xui/en/panel_groups.xml
deleted file mode 100644
index bba399481b..0000000000
--- a/indra/newview/skins/default/xui/en/panel_groups.xml
+++ /dev/null
@@ -1,111 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<panel
- border="true"
- follows="all"
- height="347"
- layout="topleft"
- left="280"
- name="groups"
- top="24"
- width="350">
- <scroll_list
- bottom="302"
- follows="left|top|right|bottom"
- layout="topleft"
- left="10"
- name="group list"
- top="10"
- width="240">
- <scroll_list.columns
- label=""
- name="name"
- width="248" />
- </scroll_list>
- <text
- type="string"
- length="1"
- follows="left|bottom"
- height="16"
- layout="topleft"
- left_delta="2"
- mouse_opaque="false"
- name="groupdesc"
- top_pad="7"
- width="248">
- Your currently active group is displayed in bold.
- </text>
- <text
- type="string"
- length="1"
- follows="left|bottom"
- height="16"
- layout="topleft"
- left_delta="0"
- mouse_opaque="false"
- name="groupcount"
- top_pad="1"
- width="248">
- You belong to [COUNT] groups (of [MAX] maximum).
- </text>
- <locate
- height="0"
- layout="topleft"
- left="-90"
- top="7"
- width="1" />
- <button
- follows="top|right"
- height="22"
- label="IM/Call"
- layout="topleft"
- left_delta="0"
- name="IM"
- tool_tip="Open Instant Message session"
- top_pad="3"
- width="80" />
- <button
- follows="top|right"
- height="22"
- label="Info"
- layout="topleft"
- left_delta="0"
- name="Info"
- top_pad="3"
- width="80" />
- <button
- follows="top|right"
- height="22"
- label="Activate"
- layout="topleft"
- left_delta="0"
- name="Activate"
- top_pad="3"
- width="80" />
- <button
- follows="top|right"
- height="22"
- label="Leave"
- layout="topleft"
- left_delta="0"
- name="Leave"
- top_pad="3"
- width="80" />
- <button
- follows="top|right"
- height="22"
- label="Create..."
- layout="topleft"
- left_delta="0"
- name="Create"
- top_pad="13"
- width="80" />
- <button
- follows="top|right"
- height="22"
- label="Search..."
- layout="topleft"
- left_delta="0"
- name="Search..."
- top_pad="3"
- width="80" />
-</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_hint.xml b/indra/newview/skins/default/xui/en/panel_hint.xml
new file mode 100644
index 0000000000..e2e9d0aef0
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_hint.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel
+ width="205"
+ height="100">
+ <text name="hint_title"
+ font="SansSerifMedium"
+ left="8"
+ right="180"
+ top="8"
+ bottom="20"
+ follows="left|right|top"
+ text_color="Black"
+ wrap="false"/>
+ <text name="hint_text"
+ left="8"
+ right="197"
+ top="26"
+ bottom="92"
+ follows="all"
+ text_color="Black"
+ wrap="true"/>
+ <button right="197"
+ top="8"
+ width="16"
+ height="16"
+ name="close"
+ follows="right|top"
+ image_color="DkGray"
+ image_unselected="Icon_Close_Foreground"
+ image_selected="Icon_Close_Press"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_im_control_panel.xml b/indra/newview/skins/default/xui/en/panel_im_control_panel.xml
index 33a5e01e4c..aa0edbfb8a 100644
--- a/indra/newview/skins/default/xui/en/panel_im_control_panel.xml
+++ b/indra/newview/skins/default/xui/en/panel_im_control_panel.xml
@@ -3,11 +3,11 @@
border="false"
height="300"
name="panel_im_control_panel"
- width="119">
+ width="150">
<avatar_icon
follows="left|top"
height="105"
- left_delta="5"
+ left_delta="20"
name="avatar_icon"
top="-5"
width="114"/>
@@ -22,7 +22,7 @@
name="button_stack"
orientation="vertical"
top_pad="5"
- width="114">
+ width="145">
<layout_panel
mouse_opaque="false"
auto_resize="true"
@@ -31,7 +31,7 @@
layout="topleft"
left="2"
min_height="0"
- width="109"
+ width="140"
top="0"
name="spacer"
user_resize="false" />
@@ -41,7 +41,7 @@
height="20"
layout="topleft"
min_height="20"
- width="109"
+ width="140"
name="view_profile_btn_panel"
user_resize="false">
<button
@@ -50,7 +50,7 @@
label="Profile"
name="view_profile_btn"
top="0"
- width="109" />
+ width="140" />
</layout_panel>
<layout_panel
auto_resize="false"
@@ -58,7 +58,7 @@
height="25"
layout="topleft"
min_height="25"
- width="109"
+ width="140"
name="add_friend_btn_panel"
user_resize="false">
<button
@@ -67,7 +67,7 @@
label="Add Friend"
name="add_friend_btn"
top="5"
- width="109" />
+ width="140" />
</layout_panel>
<layout_panel
auto_resize="false"
@@ -75,7 +75,7 @@
height="25"
layout="topleft"
min_height="25"
- width="109"
+ width="140"
name="teleport_btn_panel"
user_resize="false">
<button
@@ -85,7 +85,7 @@
label="Teleport"
name="teleport_btn"
tool_tip = "Offer to teleport this person"
- width="109" />
+ width="140" />
</layout_panel>
<layout_panel
auto_resize="false"
@@ -93,7 +93,7 @@
height="25"
layout="topleft"
min_height="25"
- width="109"
+ width="140"
name="share_btn_panel"
user_resize="false">
<button
@@ -102,7 +102,7 @@
height="23"
label="Share"
name="share_btn"
- width="109" />
+ width="140" />
</layout_panel>
<layout_panel
auto_resize="false"
@@ -110,7 +110,7 @@
height="25"
layout="topleft"
min_height="25"
- width="109"
+ width="140"
name="pay_btn_panel"
user_resize="false">
<button
@@ -119,7 +119,7 @@
height="23"
label="Pay"
name="pay_btn"
- width="109" />
+ width="140" />
</layout_panel>
<layout_panel
auto_resize="false"
@@ -127,7 +127,7 @@
height="25"
layout="topleft"
min_height="25"
- width="109"
+ width="140"
name="call_btn_panel"
user_resize="false">
<button
@@ -135,7 +135,7 @@
height="23"
label="Call"
name="call_btn"
- width="109" />
+ width="140" />
</layout_panel>
<layout_panel
auto_resize="false"
@@ -143,7 +143,7 @@
height="25"
layout="topleft"
min_height="25"
- width="109"
+ width="140"
name="end_call_btn_panel"
user_resize="false"
visible="false">
@@ -152,7 +152,7 @@
height="23"
label="End Call"
name="end_call_btn"
- width="109" />
+ width="140" />
</layout_panel>
<layout_panel
auto_resize="false"
@@ -160,7 +160,7 @@
height="25"
layout="topleft"
min_height="25"
- width="109"
+ width="140"
name="voice_ctrls_btn_panel"
user_resize="false"
visible="false">
@@ -169,7 +169,7 @@
height="23"
label="Voice Controls"
name="voice_ctrls_btn"
- width="109" />
+ width="140" />
</layout_panel>
</layout_stack>
</panel>
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 f1b7b92ece..2e38835810 100644
--- a/indra/newview/skins/default/xui/en/panel_inventory_item.xml
+++ b/indra/newview/skins/default/xui/en/panel_inventory_item.xml
@@ -41,7 +41,7 @@
height="20"
layout="topleft"
left_pad="5"
- allow_html="false"
+ parse_urls="false"
use_ellipses="true"
name="item_name"
text_color="white"
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 55fef5aaf7..f8ae238148 100644
--- a/indra/newview/skins/default/xui/en/panel_landmark_info.xml
+++ b/indra/newview/skins/default/xui/en/panel_landmark_info.xml
@@ -57,7 +57,7 @@
translate="false"
value="Parcel_R_Dark" />
<button
- follows="top|right"
+ follows="top|left"
height="24"
image_hover_unselected="BackButton_Over"
image_pressed="BackButton_Press"
@@ -103,7 +103,8 @@
width="310">
<texture_picker
enabled="false"
- follows="left|top|right"
+ fallback_image="default_land_picture.j2c"
+ follows="left|top|right"
height="197"
layout="topleft"
left="11"
@@ -138,7 +139,6 @@
layout="topleft"
left="10"
name="description"
- textbox.label="More"
top_pad="10"
value="Du waltz die spritz"
width="280" />
@@ -235,7 +235,7 @@
value="Title:"
width="290" />
<text
- allow_html="false"
+ parse_urls="false"
follows="left|top"
height="22"
layout="topleft"
@@ -275,7 +275,7 @@
name="notes_editor"
read_only="true"
text_readonly_color="white"
- text_type="ascii"
+ text_type="ascii_with_newline"
top_pad="5"
width="290"
wrap="true" />
diff --git a/indra/newview/skins/default/xui/en/panel_landmarks.xml b/indra/newview/skins/default/xui/en/panel_landmarks.xml
index a7e87f2a1e..7e415f45a4 100644
--- a/indra/newview/skins/default/xui/en/panel_landmarks.xml
+++ b/indra/newview/skins/default/xui/en/panel_landmarks.xml
@@ -97,51 +97,94 @@
left="3"
name="bottom_panel"
width="313">
- <button
- follows="bottom|left"
- tool_tip="Show additional options"
- height="25"
- image_hover_unselected="Toolbar_Left_Over"
- image_overlay="OptionsMenu_Off"
- image_selected="Toolbar_Left_Selected"
- image_unselected="Toolbar_Left_Off"
- layout="topleft"
- left="0"
- name="options_gear_btn"
- top="1"
- width="31" />
- <button
- follows="bottom|left"
- height="25"
- image_hover_unselected="Toolbar_Middle_Over"
- image_overlay="AddItem_Off"
- image_selected="Toolbar_Middle_Selected"
- image_unselected="Toolbar_Middle_Off"
- layout="topleft"
- left_pad="1"
- name="add_btn"
- tool_tip="Add new landmark"
- width="31" />
- <icon
- follows="bottom|left"
- height="25"
- image_name="Toolbar_Middle_Off"
- layout="topleft"
- left_pad="1"
- name="dummy_icon"
- width="209"
- />
- <dnd_button
- follows="bottom|left"
- height="25"
- image_hover_unselected="Toolbar_Right_Over"
- image_overlay="TrashItem_Off"
- image_selected="Toolbar_Right_Selected"
- image_unselected="Toolbar_Right_Off"
- layout="topleft"
- left_pad="1"
- name="trash_btn"
- tool_tip="Remove selected landmark"
- width="31" />
- </panel>
+
+ <layout_stack
+ animate="false"
+ border_size="0"
+ follows="left|right|bottom"
+ height="25"
+ layout="topleft"
+ orientation="horizontal"
+ top_pad="1"
+ left="0"
+ name="bottom_panel"
+ width="307">
+ <layout_panel
+ auto_resize="false"
+ height="25"
+ layout="topleft"
+ name="options_gear_btn_panel"
+ width="32">
+ <button
+ follows="bottom|left"
+ tool_tip="Show additional options"
+ height="25"
+ image_hover_unselected="Toolbar_Left_Over"
+ image_overlay="OptionsMenu_Off"
+ image_selected="Toolbar_Left_Selected"
+ image_unselected="Toolbar_Left_Off"
+ layout="topleft"
+ left="0"
+ name="options_gear_btn"
+ top="0"
+ width="31" />
+ </layout_panel>
+ <layout_panel
+ auto_resize="false"
+ height="25"
+ layout="topleft"
+ name="add_btn_panel"
+ width="32">
+ <button
+ follows="bottom|left"
+ height="25"
+ image_hover_unselected="Toolbar_Middle_Over"
+ image_overlay="AddItem_Off"
+ image_selected="Toolbar_Middle_Selected"
+ image_unselected="Toolbar_Middle_Off"
+ layout="topleft"
+ left="0"
+ name="add_btn"
+ tool_tip="Add new landmark"
+ top="0"
+ width="31" />
+ </layout_panel>
+ <layout_panel
+ auto_resize="true"
+ height="25"
+ layout="topleft"
+ name="dummy_panel"
+ width="212">
+ <icon
+ follows="bottom|left|right"
+ height="25"
+ image_name="Toolbar_Middle_Off"
+ layout="topleft"
+ left="0"
+ top="0"
+ name="dummy_icon"
+ width="211" />
+ </layout_panel>
+ <layout_panel
+ auto_resize="false"
+ height="25"
+ layout="topleft"
+ name="trash_btn_panel"
+ width="31">
+ <dnd_button
+ follows="bottom|left"
+ height="25"
+ image_hover_unselected="Toolbar_Right_Over"
+ image_overlay="TrashItem_Off"
+ image_selected="Toolbar_Right_Selected"
+ image_unselected="Toolbar_Right_Off"
+ left="0"
+ layout="topleft"
+ name="trash_btn"
+ tool_tip="Remove selected landmark"
+ top="0"
+ width="31"/>
+ </layout_panel>
+ </layout_stack>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_login.xml b/indra/newview/skins/default/xui/en/panel_login.xml
index 185e458a85..891616b838 100644
--- a/indra/newview/skins/default/xui/en/panel_login.xml
+++ b/indra/newview/skins/default/xui/en/panel_login.xml
@@ -24,6 +24,8 @@ top="600"
</panel.string>
<!-- *NOTE: Custom resize logic for login_html in llpanellogin.cpp -->
<web_browser
+ tab_stop="false"
+trusted_content="true"
bg_opaque_color="Black"
border_visible="false"
bottom="600"
@@ -130,7 +132,7 @@ control_name="LoginLocation"
max_chars="128"
top_pad="0"
name="start_location_combo"
- width="135">
+ width="170">
<combo_box.item
label="My last location"
name="MyLastLocation"
@@ -156,6 +158,7 @@ width="135"
visible="false" />
</layout_panel>
<layout_panel
+tab_stop="false"
follows="right|bottom"
name="links"
width="200"
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 2a53b3e2fa..16529f4064 100644
--- a/indra/newview/skins/default/xui/en/panel_main_inventory.xml
+++ b/indra/newview/skins/default/xui/en/panel_main_inventory.xml
@@ -104,8 +104,6 @@
</tab_container>
<layout_stack
animate="false"
- background_visible="true"
- bevel_style="none"
border_size="0"
follows="left|right|bottom"
height="25"
diff --git a/indra/newview/skins/default/xui/en/panel_me.xml b/indra/newview/skins/default/xui/en/panel_me.xml
index 63c522ac69..84b5d11ba7 100644
--- a/indra/newview/skins/default/xui/en/panel_me.xml
+++ b/indra/newview/skins/default/xui/en/panel_me.xml
@@ -26,7 +26,7 @@
</text> -->
<tab_container
follows="all"
- height="575"
+ height="555"
halign="center"
layout="topleft"
left="5"
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 c5f44cd049..d3a58fed58 100644
--- a/indra/newview/skins/default/xui/en/panel_media_settings_permissions.xml
+++ b/indra/newview/skins/default/xui/en/panel_media_settings_permissions.xml
@@ -16,7 +16,8 @@
follows="top|left"
height="15"
left="10"
- name="controls_label">
+ name="controls_label"
+ text_readonly_color="LabelDisabledColor">
Controls:
</text>
<combo_box
@@ -46,7 +47,8 @@
follows="top|left"
height="15"
left="10"
- name="owner_label">
+ name="owner_label"
+ text_readonly_color="LabelDisabledColor">
Owner
</text>
@@ -83,8 +85,9 @@
enabled="false"
follows="top|left"
height="15"
- left="10"
- name="group_label">
+ left="10"
+ name="group_label"
+ text_readonly_color="LabelDisabledColor">
Group:
</text>
@@ -95,6 +98,7 @@
font="SansSerif"
height="20" left="60"
name="perms_group_name"
+ text_readonly_color="LabelDisabledColor"
value =""
width="200" />
@@ -132,7 +136,8 @@
follows="top|left"
height="15"
left="10"
- name="anyone_label">
+ name="anyone_label"
+ text_readonly_color="LabelDisabledColor">
Anyone
</text>
diff --git a/indra/newview/skins/default/xui/en/panel_my_profile.xml b/indra/newview/skins/default/xui/en/panel_my_profile.xml
index 841a4f5713..37a1ed3048 100644
--- a/indra/newview/skins/default/xui/en/panel_my_profile.xml
+++ b/indra/newview/skins/default/xui/en/panel_my_profile.xml
@@ -41,7 +41,7 @@
layout="topleft"
left="0"
top="0"
- height="522"
+ height="510"
width="315"
border_size="0">
<layout_panel
@@ -83,6 +83,7 @@
allow_no_texture="true"
default_image_name="None"
enabled="false"
+ fallback_image="Generic_Person_Large"
follows="top|left"
height="124"
layout="topleft"
@@ -117,7 +118,6 @@
layout="topleft"
left="107"
textbox.max_length="512"
- textbox.label="More"
textbox.show_context_menu="true"
name="sl_description_edit"
top_pad="-3"
@@ -140,6 +140,7 @@
allow_no_texture="true"
default_image_name="None"
enabled="false"
+ fallback_image="Generic_Person_Large"
follows="top|left"
height="124"
layout="topleft"
@@ -173,7 +174,6 @@
layout="topleft"
left="107"
textbox.max_length="512"
- textbox.label="More"
textbox.show_context_menu="true"
name="fl_description_edit"
top_pad="-3"
@@ -315,7 +315,6 @@
name="sl_groups"
top_pad="0"
translate="false"
- textbox.label="More"
textbox.show_context_menu="true"
width="298"
expanded_bg_visible="true"
@@ -325,82 +324,25 @@
</panel>
</scroll_container>
</layout_panel>
- <!-- <layout_panel
- follows="bottom|left"
+ </layout_stack>
+ <panel
+ follows="bottom|left|right"
+ height="23"
layout="topleft"
left="0"
- name="profile_buttons_panel"
- height="28"
- width="313">
- <button
- follows="bottom|left"
- height="23"
- label="Add Friend"
- layout="topleft"
- left="0"
- mouse_opaque="false"
- name="add_friend"
- tool_tip="Offer friendship to the Resident"
- top="5"
- width="80" />
- <button
- follows="bottom|left"
- height="23"
- label="IM"
- layout="topleft"
- name="im"
- top="5"
- left_pad="3"
- width="45" />
- <button
- follows="bottom|left"
- height="23"
- label="Call"
- layout="topleft"
- name="call"
- left_pad="3"
- top="5"
- width="45" />
- <button
- enabled="false"
- follows="bottom|left"
- height="23"
- label="Map"
- layout="topleft"
- name="show_on_map_btn"
- top="5"
- left_pad="3"
- width="45" />
- <button
- follows="bottom|left"
- height="23"
- label="Teleport"
- layout="topleft"
- name="teleport"
- left_pad="3"
- top="5"
- width="85" />
- </panel>-->
- <layout_panel
- follows="bottom|left"
- layout="topleft"
- left="0"
- top_pad="0"
+ top_pad="1"
name="profile_me_buttons_panel"
visible="false"
- user_resize="false"
- auto_resize="false"
- height="28"
width="315">
<button
- follows="bottom|right"
+ follows="bottom"
height="23"
left="6"
- top="1"
+ top="1"
label="Edit Profile"
name="edit_profile_btn"
tool_tip="Edit your personal information"
width="152" />
- </layout_panel>
-</layout_stack>
+ </panel>
+
</panel>
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 96c76576c0..082d51ed3c 100644
--- a/indra/newview/skins/default/xui/en/panel_navigation_bar.xml
+++ b/indra/newview/skins/default/xui/en/panel_navigation_bar.xml
@@ -22,14 +22,25 @@
width="600"/>
<icon
follows="all"
- image_name="NavBar_BG_NoFav"
+ image_name="NavBar_BG_NoFav_Bevel"
mouse_opaque="false"
- name="bg_icon_no_fav"
+ name="bg_icon_no_fav_bevel"
scale_image="true"
visible="false"
left="0"
top="0"
- height="50"
+ height="60"
+ width="600"/>
+ <icon
+ follows="all"
+ image_name="NavBar_BG_NoNav_Bevel"
+ mouse_opaque="false"
+ name="bg_icon_no_nav_bevel"
+ scale_image="true"
+ visible="false"
+ left="0"
+ top="0"
+ height="60"
width="600"/>
<panel
background_visible="false"
@@ -86,6 +97,8 @@
name="location_combo"
top_delta="0"
width="266">
+ <combo_list
+ mouse_wheel_opaque="true"/>
<!-- *TODO: Delete. Let the location_input use the correct art sizes.
<location_input.add_landmark_button
height="18"
@@ -113,10 +126,6 @@
<!-- top_delta="0" -->
<!-- width="168" /> -->
<search_combo_box
- bevel_style="none"
- border_style="line"
- border.border_thickness="0"
- commit_on_focus_lost="false"
follows="right|top"
halign="right"
height="23"
diff --git a/indra/newview/skins/default/xui/en/panel_nearby_chat.xml b/indra/newview/skins/default/xui/en/panel_nearby_chat.xml
deleted file mode 100644
index 50a78e1c71..0000000000
--- a/indra/newview/skins/default/xui/en/panel_nearby_chat.xml
+++ /dev/null
@@ -1,27 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<!-- All our XML is utf-8 encoded. -->
-
-<panel
- name="nearby_chat" visible="true" width="250" height="480" background_opaque="false"
- background_visible="true" bevel_style="in" follows="left|top" bg_alpha_color="0.3 0.3 0.3 1.0">
- <panel bottom="380" width="250" height="30" background_visible="true" background_opaque="false" bg_alpha_color="0.0 0.0 0.0 1.0" name="chat_caption">
- <text
- width="140" left="25" height="20" follows="left|right|top"
- font="SansSerifBigBold" text_color="white" word_wrap="true"
- mouse_opaque="true" name="sender_name" >NEARBY CHAT </text>
- <icon top="25" left="180"
- width="20" height="20" follows="top|right"
- color="1 1 1 1" enabled="true" image_name="icn_voice-groupfocus.tga"
- mouse_opaque="true" name="nearby_speakers_btn"/>
- <icon top="25" left="205"
- width="20" height="20" follows="top|right"
- color="1 1 1 1" enabled="true" image_name="inv_item_landmark_visited.tga"
- mouse_opaque="true" name="tearoff_btn"/>
- <icon top="22" left="230"
- width="15" height="15" follows="top|right"
- color="1 1 1 1" enabled="true" image_name="closebox.tga"
- name="close_btn"/>
- </panel>
- <chat_history_view bottom="0" width="250" height="320" follows="left|right|top|bottom" name="chat_scroll" />
-</panel>
-
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 f5a78fc929..8c13ced8f3 100644
--- a/indra/newview/skins/default/xui/en/panel_nearby_media.xml
+++ b/indra/newview/skins/default/xui/en/panel_nearby_media.xml
@@ -1,7 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel
- can_resize="true"
- can_close="false"
bg_opaque_image="Volume_Background"
bg_alpha_image="Volume_Background"
background_opaque="true"
@@ -58,7 +56,6 @@
top_delta="0"
left_pad="4"
height="22"
- min_width="28"
width="28">
<button.commit_callback
function="MediaListCtrl.GoMediaPrefs" />
@@ -107,6 +104,7 @@
follows="top|left"
font="SansSerif"
left="10"
+ name="nearby_media_title"
width="100">
Nearby Media
</text>
@@ -117,6 +115,7 @@
font="SansSerif"
top_pad="15"
left="10"
+ name="show_text"
width="40">
Show:
</text>
@@ -188,6 +187,7 @@
bevel_style="in"
background_visible="false"
follows="left|right|bottom"
+ name="media_controls_panel"
top_pad="5"
height="30"
left="10"
diff --git a/indra/newview/skins/default/xui/en/panel_notes.xml b/indra/newview/skins/default/xui/en/panel_notes.xml
index cff7b51ce8..124b1cfc6b 100644
--- a/indra/newview/skins/default/xui/en/panel_notes.xml
+++ b/indra/newview/skins/default/xui/en/panel_notes.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel
follows="all"
- height="533"
+ height="515"
label="Notes &amp; Privacy"
layout="topleft"
left="0"
@@ -112,58 +112,125 @@
name="notes_buttons_panel"
auto_resize="false"
width="313">
- <button
- follows="bottom|left"
- height="23"
- label="Add Friend"
- layout="topleft"
- left="2"
- mouse_opaque="false"
- name="add_friend"
- tool_tip="Offer friendship to the Resident"
- top="5"
- width="80" />
- <button
- follows="bottom|left"
- height="23"
- label="IM"
- layout="topleft"
- name="im"
- tool_tip="Open instant message session"
- top="5"
- left_pad="3"
- width="45" />
- <button
- follows="bottom|left"
- height="23"
- label="Call"
- layout="topleft"
- name="call"
- tool_tip="Call this Resident"
- left_pad="3"
- top="5"
- width="46" />
- <button
- enabled="false"
- follows="bottom|left"
- height="23"
- label="Map"
- layout="topleft"
- name="show_on_map_btn"
- tool_tip="Show the Resident on the map"
- top="5"
- left_pad="3"
- width="45" />
- <button
- follows="bottom|left"
- height="23"
- label="Teleport"
- layout="topleft"
- name="teleport"
- tool_tip="Offer teleport"
- left_pad="3"
- top="5"
- width="80" />
+
+ <layout_stack
+ follows="bottom|left|right"
+ height="23"
+ layout="topleft"
+ name="bottom_bar_ls"
+ left="2"
+ orientation="horizontal"
+ top_pad="5"
+ width="309">
+
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left="0"
+ name="add_friend_btn_lp"
+ user_resize="false"
+ auto_resize="true"
+ width="118">
+ <button
+ follows="bottom|left|right"
+ height="23"
+ label="Add Friend"
+ layout="topleft"
+ left="1"
+ mouse_opaque="false"
+ name="add_friend"
+ tool_tip="Offer friendship to the Resident"
+ top="0"
+ width="117" />
+ </layout_panel>
+
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left_pad="3"
+ name="im_btn_lp"
+ user_resize="false"
+ auto_resize="true"
+ width="22">
+ <button
+ follows="bottom|left|right"
+ height="23"
+ label="IM"
+ layout="topleft"
+ name="im"
+ tool_tip="Open instant message session"
+ top="0"
+ left="1"
+ width="21" />
+ </layout_panel>
+
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left_pad="3"
+ name="call_btn_lp"
+ user_resize="false"
+ auto_resize="true"
+ width="52">
+ <button
+ follows="bottom|left|right"
+ height="23"
+ label="Call"
+ layout="topleft"
+ name="call"
+ tool_tip="Call this Resident"
+ left="1"
+ top="0"
+ use_ellipses="true"
+ width="51" />
+ </layout_panel>
+
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left_pad="3"
+ name="show_on_map_btn_lp"
+ user_resize="false"
+ auto_resize="true"
+ width="46">
+ <button
+ enabled="false"
+ follows="bottom|left|right"
+ height="23"
+ label="Map"
+ layout="topleft"
+ name="show_on_map_btn"
+ tool_tip="Show the Resident on the map"
+ top="0"
+ left="1"
+ width="45" />
+ </layout_panel>
+
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left_pad="3"
+ name="teleport_btn_lp"
+ user_resize="false"
+ auto_resize="true"
+ width="81">
+ <button
+ follows="bottom|left|right"
+ height="23"
+ label="Teleport"
+ layout="topleft"
+ name="teleport"
+ tool_tip="Offer teleport"
+ left="1"
+ top="0"
+ width="80" />
+ </layout_panel>
+ </layout_stack>
</layout_panel>
</layout_stack>
</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_notification.xml b/indra/newview/skins/default/xui/en/panel_notification.xml
index 34738745eb..59ead84127 100644
--- a/indra/newview/skins/default/xui/en/panel_notification.xml
+++ b/indra/newview/skins/default/xui/en/panel_notification.xml
@@ -78,7 +78,7 @@
width="285"
wrap="true"
parse_highlights="true"
- allow_html="true"/>
+ parse_urls="true"/>
</panel>
<panel
background_visible="false"
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 3143b0a40c..c3dc588ba2 100644
--- a/indra/newview/skins/default/xui/en/panel_notifications_channel.xml
+++ b/indra/newview/skins/default/xui/en/panel_notifications_channel.xml
@@ -14,6 +14,9 @@
orientation="horizontal"
top="20"
width="100">
+ <layout_panel name="notifications_list_panel"
+ width="100"
+ user_resize="true">
<scroll_list
draw_heading="true"
follows="left|right|top|bottom"
@@ -24,7 +27,6 @@
sort_ascending="false"
sort_column="2"
top="0"
- user_resize="true"
width="100">
<scroll_list.columns
label="Name"
@@ -39,6 +41,10 @@
name="date"
width="150" />
</scroll_list>
+ </layout_panel>
+ <layout_panel name="rejects_list_panel"
+ width="100"
+ user_resize="true">
<scroll_list
draw_heading="true"
follows="left|right|top|bottom"
@@ -49,7 +55,6 @@
sort_ascending="false"
sort_column="2"
top="0"
- user_resize="true"
width="100">
<scroll_list.columns
label="Name"
@@ -64,6 +69,7 @@
name="date"
width="150" />
</scroll_list>
+ </layout_panel>
</layout_stack>
<button
follows="left|right|top"
diff --git a/indra/newview/skins/default/xui/en/panel_online_status.xml b/indra/newview/skins/default/xui/en/panel_online_status.xml
deleted file mode 100644
index 14cb5fffee..0000000000
--- a/indra/newview/skins/default/xui/en/panel_online_status.xml
+++ /dev/null
@@ -1,35 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<panel
- background_visible="false"
- height="152"
- label="friend_online_status"
- layout="topleft"
- left="0"
- name="friend_online_status"
- top="0"
- width="305">
- <avatar_icon
- follows="top|left"
- height="18"
- image_name="Generic_Person"
- layout="topleft"
- left="3"
- mouse_opaque="false"
- name="avatar_icon"
- top="10"
- width="18" />
- <text
- font="SansSerifSmall"
- follows="all"
- height="137"
- layout="topleft"
- left_pad="5"
- name="message"
- text_color="white"
- top="15"
- use_ellipses="true"
- value=""
- width="285"
- word_wrap="true"
- max_length="350" />
-</panel> \ No newline at end of file
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 1ed73e6c15..e0426c75b4 100644
--- a/indra/newview/skins/default/xui/en/panel_outfit_edit.xml
+++ b/indra/newview/skins/default/xui/en/panel_outfit_edit.xml
@@ -54,6 +54,9 @@
<string name="Filter.Clothing" value="Clothing"/>
<string name="Filter.Bodyparts" value="Body parts"/>
+ <string
+ name="replace_body_part"
+ value="Click to replace your existing shape"/>
<button
follows="top|left"
@@ -68,7 +71,7 @@
top="1"
width="30" />
<text
- follows="top|right"
+ follows="top|left|right"
font="SansSerifHugeBold"
height="26"
layout="topleft"
@@ -105,7 +108,7 @@
width="31" />
<panel
bevel_style="none"
- follows="top|right"
+ follows="top|left|right"
height="37"
layout="topleft"
left_pad="5"
@@ -168,7 +171,7 @@ It is calculated as border_size + 2*UIResizeBarOverlap
<layout_panel
layout="topleft"
height="187"
- min_height="100"
+ min_height="155"
name="outfit_wearables_panel"
width="313"
auto_resize="true"
@@ -180,14 +183,14 @@ It is calculated as border_size + 2*UIResizeBarOverlap
follows="all"
height="185"
width="313"
+ orientation="vertical"
layout="topleft"
name="filter_panels"
top="0"
left="0">
<layout_panel
auto_resize="true"
- background_visible="true"
- bg_alpha_color="DkGray2"
+ background_visible="false"
layout="topleft"
height="154"
name="add_button_and_combobox"
@@ -288,12 +291,12 @@ It is calculated as border_size + 2*UIResizeBarOverlap
<layout_panel
- background_visible="true"
+ background_visible="false"
bg_alpha_color="DkGray2"
auto_resize="true"
default_tab_group="3"
height="450"
- min_height="210"
+ min_height="80"
name="add_wearables_panel"
width="313"
tab_group="2"
@@ -315,13 +318,13 @@ It is calculated as border_size + 2*UIResizeBarOverlap
background_visible="false"
border="false"
follows="left|top|right|bottom"
- height="442"
+ height="418"
layout="topleft"
left="0"
mouse_opaque="false"
name="folder_view"
- top_pad="5"
- width="310"
+ top_pad="0"
+ width="313"
visible="false"/>
<panel
name="filtered_wearables_panel"
@@ -330,7 +333,7 @@ It is calculated as border_size + 2*UIResizeBarOverlap
layout="topleft"
follows="left|top|right|bottom"
border="false"
- height="449"
+ height="418"
left="0"
mouse_opaque="false"
width="310"
@@ -343,11 +346,20 @@ It is calculated as border_size + 2*UIResizeBarOverlap
layout="topleft"
follows="all"
multi_select="true"
- width="310"
- height="449"
+ width="313"
+ height="418"
left="0"
top="0"/>
</panel>
+ <button
+ follows="bottom|left"
+ height="22"
+ left="2"
+ label="Wear Item"
+ layout="topleft"
+ name="plus_btn"
+ top_pad="5"
+ width="130" />
</layout_panel>
</layout_stack>
@@ -379,22 +391,23 @@ It is calculated as border_size + 2*UIResizeBarOverlap
<icon
follows="bottom|left|right"
height="25"
- image_name="Toolbar_Right_Off"
+ image_name="Toolbar_Middle_Off"
layout="topleft"
left_pad="1"
name="dummy_right_icon"
- width="246" />
+ width="250" />
<button
follows="bottom|right"
height="25"
- image_hover_unselected="Toolbar_Middle_Over"
- image_overlay="AddItem_Off"
- image_selected="Toolbar_Middle_Selected"
- image_unselected="Toolbar_Middle_Off"
+ image_hover_unselected="Toolbar_Right_Over"
+ image_overlay="Shop"
+ image_selected="Toolbar_Right_Selected"
+ image_unselected="Toolbar_Right_Off"
layout="topleft"
- left_pad="0"
- name="shop_btn"
+ left_pad="1"
+ name="shop_btn_1"
top="1"
+ tool_tip="Visit the SL Marketplace. You can also select something you are wearing, then click here to see more things like it"
width="31" />
</panel>
@@ -449,28 +462,28 @@ It is calculated as border_size + 2*UIResizeBarOverlap
name="list_view_btn"
top="1"
width="31" />
- <button
- follows="bottom|left"
- height="25"
- image_hover_unselected="Toolbar_Middle_Over"
- image_overlay="AddItem_Off"
- image_selected="Toolbar_Middle_Selected"
- image_unselected="Toolbar_Middle_Off"
- label=""
- layout="topleft"
- left_pad="1"
- name="add_to_outfit_btn"
- top="1"
- width="31" />
<icon
follows="bottom|left|right"
height="25"
- image_name="Toolbar_Right_Off"
+ image_name="Toolbar_Middle_Off"
layout="topleft"
left_pad="1"
name="dummy_right_icon"
- width="184" >
+ width="186" >
</icon>
+ <button
+ follows="bottom|right"
+ height="25"
+ image_hover_unselected="Toolbar_Right_Over"
+ image_overlay="Shop"
+ image_selected="Toolbar_Right_Selected"
+ image_unselected="Toolbar_Right_Off"
+ layout="topleft"
+ left_pad="1"
+ name="shop_btn_2"
+ top="1"
+ tool_tip="Visit the SL Marketplace. You can also select something you are wearing, then click here to see more things like it"
+ width="31" />
</panel>
<!-- SAVE AND REVERT BUTTONS -->
@@ -482,17 +495,37 @@ It is calculated as border_size + 2*UIResizeBarOverlap
top_pad="2"
name="save_revert_button_bar"
width="300">
+ <layout_stack
+ follows="bottom|left|right"
+ height="23"
+ layout="topleft"
+ mouse_opaque="false"
+ name="button_bar_ls"
+ left="0"
+ orientation="horizontal"
+ top="0"
+ width="313">
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left="0"
+ mouse_opaque="false"
+ name="save_btn_lp"
+ user_resize="false"
+ auto_resize="true"
+ width="156">
<button
- follows="bottom|left"
+ follows="bottom|left|right"
height="23"
label="Save"
- left="0"
+ left="1"
layout="topleft"
name="save_btn"
top="0"
width="155" />
<button
- follows="bottom|left"
+ follows="bottom|right"
height="23"
name="save_flyout_btn"
label=""
@@ -506,15 +539,28 @@ It is calculated as border_size + 2*UIResizeBarOverlap
image_pressed_selected="SegmentedBtn_Right_Selected_Press"
image_overlay="Arrow_Small_Up"
width="20"/>
+ </layout_panel>
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left_pad="3"
+ mouse_opaque="false"
+ name="revert_btn_lp"
+ user_resize="false"
+ auto_resize="true"
+ width="147">
<button
follows="bottom|left|right"
height="23"
- left_pad="12"
+ left="0"
label="Undo Changes"
layout="topleft"
name="revert_btn"
top="0"
tool_tip="Revert to last saved version"
width="147" />
+ </layout_panel>
+ </layout_stack>
</panel>
</panel>
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 a59070496e..88c82313dd 100644
--- a/indra/newview/skins/default/xui/en/panel_outfits_inventory.xml
+++ b/indra/newview/skins/default/xui/en/panel_outfits_inventory.xml
@@ -12,22 +12,30 @@
min_width="240"
width="320"
border="false">
+ <panel.string
+ name="wear_outfit_tooltip">
+ Wear selected outfit
+ </panel.string>
+ <panel.string
+ name="wear_items_tooltip">
+ Wear selected items
+ </panel.string>
<tab_container
follows="all"
- height="509"
+ height="539"
layout="topleft"
- left="7"
+ left="5"
name="appearance_tabs"
- tab_min_width="140"
+ tab_min_width="150"
tab_height="30"
tab_position="top"
halign="center"
top="8"
- width="312">
+ width="315">
<panel
class="outfits_list"
filename="panel_outfits_list.xml"
- height="490"
+ height="520"
name="outfitslist_tab"
background_visible="true"
help_topic="my_outfits_tab"
@@ -35,99 +43,94 @@
label="MY OUTFITS"
layout="topleft"
width="315" />
- <inventory_panel
- follows="all"
+ <panel
background_visible="true"
- background_opaque="true"
- label="WEARING"
+ bg_alpha_color="DkGray"
+ class="panel_wearing"
+ filename="panel_outfits_wearing.xml"
+ follows="all"
+ height="520"
help_topic="now_wearing_tab"
- allow_multi_select="true"
- border="false"
- left="0"
- top="0"
- mouse_opaque="true"
+ label="WEARING"
+ layout="topleft"
name="cof_tab"
- start_folder="Current Outfit"
- use_label_suffix="true"
width="315" />
</tab_container>
- <panel
- background_visible="true"
- follows="bottom|left|right"
- height="57"
- layout="topleft"
- left="9"
- top_pad="-1"
- visible="true"
- name="bottom_panel"
- width="310">
- <button
- follows="bottom|left"
- tool_tip="Show additional options"
- height="25"
- image_hover_unselected="Toolbar_Left_Over"
- image_overlay="OptionsMenu_Off"
- image_selected="Toolbar_Left_Selected"
- image_unselected="Toolbar_Left_Off"
- layout="topleft"
- left="1"
- name="options_gear_btn"
- top="1"
- width="31" />
- <icon
- follows="bottom|left|right"
- height="25"
- image_name="Toolbar_Middle_Off"
- layout="topleft"
- left_pad="1"
- name="dummy_icon"
- width="241"
- />
- <dnd_button
- follows="bottom|right"
- height="25"
- image_hover_unselected="Toolbar_Right_Over"
- image_overlay="TrashItem_Off"
- image_selected="Toolbar_Right_Selected"
- image_unselected="Toolbar_Right_Off"
- layout="topleft"
- left_pad="1"
- name="trash_btn"
- tool_tip="Delete selected outfit"
- width="31"/>
- <button
- follows="bottom|left"
- height="23"
- label="Save As"
- left="0"
- layout="topleft"
- name="save_btn"
- top_pad="6"
- width="155" />
- <button
- follows="bottom|left"
- height="23"
- name="save_flyout_btn"
- label=""
+ <panel
+ background_visible="true"
+ follows="bottom|left|right"
+ height="27"
layout="topleft"
- left_pad="-20"
- tab_stop="false"
- image_selected="SegmentedBtn_Right_Selected_Press"
- image_unselected="SegmentedBtn_Right_Off"
- image_pressed="SegmentedBtn_Right_Press"
- image_pressed_selected="SegmentedBtn_Right_Selected_Press"
- image_overlay="Arrow_Small_Up"
- width="20"/>
- <button
- follows="bottom|left|right"
- height="23"
- label="Wear"
- layout="topleft"
- name="wear_btn"
- left_pad="3"
- tool_tip="Wear selected outfit"
- width="152" />
- </panel>
-
+ left="9"
+ top_pad="1"
+ visible="true"
+ name="bottom_panel"
+ width="310">
+ <layout_stack
+ follows="bottom|left|right"
+ height="23"
+ layout="topleft"
+ mouse_opaque="false"
+ name="bottom_panel_ls"
+ left="0"
+ orientation="horizontal"
+ top="0"
+ width="313">
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left="0"
+ mouse_opaque="false"
+ name="save_btn_lp"
+ user_resize="false"
+ auto_resize="true"
+ width="156">
+ <button
+ follows="bottom|left|right"
+ height="23"
+ label="Save As"
+ left="1"
+ layout="topleft"
+ name="save_btn"
+ top="0"
+ width="155" />
+ <button
+ follows="bottom|right"
+ height="23"
+ name="save_flyout_btn"
+ label=""
+ layout="topleft"
+ left_pad="-20"
+ tab_stop="false"
+ image_selected="SegmentedBtn_Right_Selected_Press"
+ image_unselected="SegmentedBtn_Right_Off"
+ image_pressed="SegmentedBtn_Right_Press"
+ image_pressed_selected="SegmentedBtn_Right_Selected_Press"
+ image_overlay="Arrow_Small_Up"
+ width="20"/>
+ </layout_panel>
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left_pad="3"
+ mouse_opaque="false"
+ name="wear_btn_lp"
+ user_resize="false"
+ auto_resize="true"
+ width="152">
+ <button
+ follows="bottom|left|right"
+ height="23"
+ label="Wear"
+ layout="topleft"
+ name="wear_btn"
+ left="0"
+ top="0"
+ width="152" />
+ </layout_panel>
+ </layout_stack>
+ </panel>
</panel>
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 d0c44c4328..d18f0d57ca 100644
--- a/indra/newview/skins/default/xui/en/panel_outfits_list.xml
+++ b/indra/newview/skins/default/xui/en/panel_outfits_list.xml
@@ -4,24 +4,69 @@
bg_alpha_color="DkGray"
border="false"
follows="all"
- height="400"
+ height="430"
name="Outfits"
layout="topleft"
left="0"
top="0"
- width="313">
+ width="312">
<accordion
background_visible="true"
bg_alpha_color="DkGray2"
bg_opaque_color="DkGray2"
no_matched_tabs_text.value="Didn't find what you're looking for? Try [secondlife:///app/search/all/[SEARCH_TERM] Search]."
- no_visible_tabs_text.value="There are no any outfits. Try [secondlife:///app/search/all/ Search]."
+ no_matched_tabs_text.v_pad="10"
+ no_visible_tabs_text.value="You don't have any outfits yet. Try [secondlife:///app/search/all/ Search]"
follows="all"
height="400"
layout="topleft"
left="3"
name="outfits_accordion"
top="0"
- width="307">
+ width="309">
</accordion>
+ <panel
+ background_visible="true"
+ follows="bottom|left|right"
+ height="28"
+ layout="topleft"
+ left="4"
+ top_pad="0"
+ visible="true"
+ name="bottom_panel"
+ width="312">
+ <button
+ follows="bottom|left"
+ tool_tip="Show additional options"
+ height="25"
+ image_hover_unselected="Toolbar_Left_Over"
+ image_overlay="OptionsMenu_Off"
+ image_selected="Toolbar_Left_Selected"
+ image_unselected="Toolbar_Left_Off"
+ layout="topleft"
+ left="0"
+ name="options_gear_btn"
+ top="1"
+ width="31" />
+ <icon
+ follows="bottom|left|right"
+ height="25"
+ image_name="Toolbar_Middle_Off"
+ layout="topleft"
+ left_pad="1"
+ name="dummy_icon"
+ width="243"/>
+ <button
+ follows="bottom|right"
+ height="25"
+ image_hover_unselected="Toolbar_Right_Over"
+ image_overlay="TrashItem_Off"
+ image_selected="Toolbar_Right_Selected"
+ image_unselected="Toolbar_Right_Off"
+ layout="topleft"
+ left_pad="1"
+ name="trash_btn"
+ tool_tip="Delete selected outfit"
+ width="31"/>
+ </panel>
</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_outfits_wearing.xml b/indra/newview/skins/default/xui/en/panel_outfits_wearing.xml
new file mode 100644
index 0000000000..2fbbf6610c
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/panel_outfits_wearing.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<panel
+ background_visible="true"
+ bg_alpha_color="DkGray"
+ follows="all"
+ height="430"
+ layout="topleft"
+ left="0"
+ name="Wearing"
+ top="0"
+ width="312">
+ <wearable_items_list
+ follows="all"
+ height="400"
+ layout="topleft"
+ left="3"
+ multi_select="true"
+ name="cof_items_list"
+ standalone="false"
+ top="0"
+ width="309"
+ worn_indication_enabled="false" />
+ <panel
+ background_visible="true"
+ follows="bottom|left|right"
+ height="28"
+ layout="topleft"
+ left="4"
+ name="bottom_panel"
+ top_pad="0"
+ width="312">
+ <button
+ follows="bottom|left"
+ height="25"
+ image_hover_unselected="Toolbar_Left_Over"
+ image_overlay="OptionsMenu_Off"
+ image_selected="Toolbar_Left_Selected"
+ image_unselected="Toolbar_Left_Off"
+ layout="topleft"
+ left="0"
+ name="options_gear_btn"
+ tool_tip="Show additional options"
+ top="1"
+ width="31" />
+ <icon
+ follows="bottom|left|right"
+ height="25"
+ image_name="Toolbar_Right_Off"
+ layout="topleft"
+ left_pad="1"
+ name="dummy_icon"
+ width="274" />
+ </panel>
+</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_people.xml b/indra/newview/skins/default/xui/en/panel_people.xml
index b79ef1e287..ab8930c967 100644
--- a/indra/newview/skins/default/xui/en/panel_people.xml
+++ b/indra/newview/skins/default/xui/en/panel_people.xml
@@ -95,8 +95,6 @@ Looking for people to hang out with? Try the [secondlife:///app/worldmap World M
width="313">
<avatar_list
allow_select="true"
- bg_alpha_color="DkGray2"
- bg_opaque_color="DkGray2"
follows="all"
height="356"
ignore_online_status="true"
@@ -145,7 +143,7 @@ Looking for people to hang out with? Try the [secondlife:///app/worldmap World M
function="People.addFriend" />
</button>
<icon
- follows="bottom|left"
+ follows="bottom|left|right"
height="25"
image_name="Toolbar_Right_Off"
layout="topleft"
@@ -194,6 +192,7 @@ Looking for people to hang out with? Try the [secondlife:///app/worldmap World M
left="0"
multi_select="true"
name="avatars_online"
+ show_permissions_granted="true"
top="0"
width="307" />
</accordion_tab>
@@ -210,6 +209,7 @@ Looking for people to hang out with? Try the [secondlife:///app/worldmap World M
left="0"
multi_select="true"
name="avatars_all"
+ show_permissions_granted="true"
top="0"
width="307" />
</accordion_tab>
@@ -224,6 +224,96 @@ Looking for people to hang out with? Try the [secondlife:///app/worldmap World M
name="bottom_panel"
top_pad="0"
width="313">
+
+ <layout_stack
+ animate="false"
+ border_size="0"
+ follows="left|right|bottom"
+ height="25"
+ layout="topleft"
+ orientation="horizontal"
+ top_pad="1"
+ left="0"
+ name="bottom_panel"
+ width="305">
+ <layout_panel
+ auto_resize="false"
+ height="25"
+ layout="topleft"
+ name="options_gear_btn_panel"
+ width="32">
+ <button
+ follows="bottom|left"
+ tool_tip="Show additional options"
+ height="25"
+ image_hover_unselected="Toolbar_Left_Over"
+ image_overlay="OptionsMenu_Off"
+ image_selected="Toolbar_Left_Selected"
+ image_unselected="Toolbar_Left_Off"
+ layout="topleft"
+ left="0"
+ name="friends_viewsort_btn"
+ top="0"
+ width="31" />
+ </layout_panel>
+ <layout_panel
+ auto_resize="false"
+ height="25"
+ layout="topleft"
+ name="add_btn_panel"
+ width="32">
+ <button
+ follows="bottom|left"
+ height="25"
+ image_hover_unselected="Toolbar_Middle_Over"
+ image_overlay="AddItem_Off"
+ image_selected="Toolbar_Middle_Selected"
+ image_unselected="Toolbar_Middle_Off"
+ layout="topleft"
+ left="0"
+ name="add_btn"
+ tool_tip="Offer friendship to a Resident"
+ top="0"
+ width="31" />
+ </layout_panel>
+ <layout_panel
+ auto_resize="true"
+ height="25"
+ layout="topleft"
+ name="dummy_panel"
+ width="212">
+ <icon
+ follows="bottom|left|right"
+ height="25"
+ image_name="Toolbar_Middle_Off"
+ layout="topleft"
+ left="0"
+ top="0"
+ name="dummy_icon"
+ width="211" />
+ </layout_panel>
+ <layout_panel
+ auto_resize="false"
+ height="25"
+ layout="topleft"
+ name="trash_btn_panel"
+ width="31">
+ <dnd_button
+ follows="bottom|left"
+ height="25"
+ image_hover_unselected="Toolbar_Right_Over"
+ image_overlay="TrashItem_Off"
+ image_selected="Toolbar_Right_Selected"
+ image_unselected="Toolbar_Right_Off"
+ left="0"
+ layout="topleft"
+ name="trash_btn"
+ tool_tip="Remove selected person from your Friends list"
+ top="0"
+ width="31"/>
+ </layout_panel>
+ </layout_stack><!--
+
<button
follows="bottom|left"
tool_tip="Options"
@@ -250,7 +340,7 @@ Looking for people to hang out with? Try the [secondlife:///app/worldmap World M
tool_tip="Offer friendship to a Resident"
width="31" />
<icon
- follows="bottom|left"
+ follows="bottom|left|right"
height="25"
image_name="Toolbar_Middle_Off"
layout="topleft"
@@ -270,7 +360,7 @@ Looking for people to hang out with? Try the [secondlife:///app/worldmap World M
name="del_btn"
tool_tip="Remove selected person from your Friends list"
width="31" />
- </panel>
+ --></panel>
<text
follows="all"
height="450"
@@ -300,16 +390,11 @@ Looking for people to hang out with? Try the [secondlife:///app/worldmap World M
-->
<group_list
allow_select="true"
- background_visible="true"
- bg_alpha_color="DkGray2"
- bg_opaque_color="DkGray2"
follows="all"
height="356"
layout="topleft"
left="3"
name="group_list"
- no_filtered_groups_msg="[secondlife:///app/search/groups Try finding the group in search?]"
- no_groups_msg="[secondlife:///app/search/groups Try searching for some groups to join.]"
top="0"
width="307" />
<panel
@@ -360,7 +445,7 @@ Looking for people to hang out with? Try the [secondlife:///app/worldmap World M
tool_tip="Activate selected group"
width="31" />
<icon
- follows="bottom|left"
+ follows="bottom|left|right"
height="25"
image_name="Toolbar_Right_Off"
layout="topleft"
@@ -386,9 +471,6 @@ Looking for people to hang out with? Try the [secondlife:///app/worldmap World M
width="313">
<avatar_list
allow_select="true"
- background_visible="true"
- bg_alpha_color="DkGray2"
- bg_opaque_color="DkGray2"
follows="all"
height="356"
layout="topleft"
@@ -437,7 +519,7 @@ Looking for people to hang out with? Try the [secondlife:///app/worldmap World M
function="People.addFriend" />
</button>
<icon
- follows="bottom|left"
+ follows="bottom|left|right"
height="25"
image_name="Toolbar_Right_Off"
layout="topleft"
@@ -449,85 +531,210 @@ Looking for people to hang out with? Try the [secondlife:///app/worldmap World M
</panel>
</tab_container>
<panel
- follows="bottom|left"
+ follows="bottom|left|right"
height="23"
layout="topleft"
left="8"
top_pad="4"
name="button_bar"
width="313">
- <button
- follows="bottom|left"
- height="23"
- label="Profile"
- layout="topleft"
- name="view_profile_btn"
- tool_tip="Show picture, groups, and other Residents information"
- top="0"
- width="67" />
- <button
- follows="bottom|left"
- left_pad="3"
- height="23"
- label="IM"
- layout="topleft"
- name="im_btn"
- tool_tip="Open instant message session"
- width="40" />
- <button
- follows="bottom|left"
- left_pad="3"
- height="23"
- label="Call"
- layout="topleft"
- name="call_btn"
- tool_tip="Call this Resident"
- width="51" />
- <button
- follows="bottom|left"
- left_pad="3"
- height="23"
- label="Share"
- layout="topleft"
- name="share_btn"
- tool_tip="Share an inventory item"
- width="65" />
- <button
- follows="bottom|left"
- left_pad="3"
- height="23"
- label="Teleport"
- layout="topleft"
- name="teleport_btn"
- tool_tip="Offer teleport"
- width="76" />
- <button
- follows="bottom|left"
- left="0"
- top_delta="0"
- height="23"
- label="Group Profile"
- layout="topleft"
- name="group_info_btn"
- tool_tip="Show group information"
- width="107" />
- <button
- follows="bottom|left"
- left_pad="3"
- height="23"
- label="Group Chat"
- layout="topleft"
- name="chat_btn"
- tool_tip="Open chat session"
- width="100" />
- <button
- follows="bottom|left"
- left_pad="3"
- height="23"
- label="Group Call"
- layout="topleft"
- name="group_call_btn"
- tool_tip="Call this group"
- width="95" />
+
+<!--********************************Profile; IM; Call, Share, Teleport********************************-->
+ <layout_stack
+ follows="bottom|left|right"
+ height="23"
+ layout="topleft"
+ name="bottom_bar_ls"
+ left="0"
+ orientation="horizontal"
+ top_pad="0"
+ width="313">
+
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left="0"
+ name="view_profile_btn_lp"
+ user_resize="false"
+ auto_resize="true"
+ width="68">
+ <button
+ follows="bottom|left|right"
+ height="23"
+ label="Profile"
+ layout="topleft"
+ left="1"
+ name="view_profile_btn"
+ tool_tip="Show picture, groups, and other Residents information"
+ top="0"
+ width="67" />
+ </layout_panel>
+
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left_pad="3"
+ name="chat_btn_lp"
+ user_resize="false"
+ auto_resize="true"
+ width="41">
+ <button
+ follows="bottom|left|right"
+ left="1"
+ height="23"
+ label="IM"
+ layout="topleft"
+ name="im_btn"
+ tool_tip="Open instant message session"
+ top="0"
+ width="40" />
+ </layout_panel>
+
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left_pad="3"
+ name="chat_btn_lp"
+ user_resize="false"
+ auto_resize="true"
+ width="52">
+ <button
+ follows="bottom|left|right"
+ left="1"
+ height="23"
+ label="Call"
+ layout="topleft"
+ name="call_btn"
+ tool_tip="Call this Resident"
+ top="0"
+ width="51" />
+ </layout_panel>
+
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left_pad="3"
+ name="chat_btn_lp"
+ user_resize="false"
+ auto_resize="true"
+ width="66">
+ <button
+ follows="bottom|left|right"
+ left="1"
+ height="23"
+ label="Share"
+ layout="topleft"
+ name="share_btn"
+ tool_tip="Share an inventory item"
+ top="0"
+ width="65" />
+ </layout_panel>
+
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left_pad="3"
+ name="chat_btn_lp"
+ user_resize="false"
+ auto_resize="true"
+ width="77">
+ <button
+ follows="bottom|left|right"
+ left="1"
+ height="23"
+ label="Teleport"
+ layout="topleft"
+ name="teleport_btn"
+ tool_tip="Offer teleport"
+ top="0"
+ width="76" />
+ </layout_panel>
+ </layout_stack>
+
+<!--********************************Group Profile; Group Chat; Group Call buttons************************-->
+ <layout_stack
+ follows="bottom|left|right"
+ height="23"
+ layout="topleft"
+ mouse_opaque="false"
+ name="bottom_bar_ls1"
+ left="0"
+ orientation="horizontal"
+ top="0"
+ width="313">
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left="0"
+ mouse_opaque="false"
+ name="group_info_btn_lp"
+ user_resize="false"
+ auto_resize="true"
+ width="108">
+ <button
+ follows="bottom|left|right"
+ left="1"
+ height="23"
+ label="Group Profile"
+ layout="topleft"
+ mouse_opaque="false"
+ name="group_info_btn"
+ tool_tip="Show group information"
+ top="0"
+ width="107" />
+ </layout_panel>
+
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left_pad="3"
+ mouse_opaque="false"
+ name="chat_btn_lp"
+ user_resize="false"
+ auto_resize="true"
+ width="101">
+ <button
+ follows="bottom|left|right"
+ left="1"
+ height="23"
+ label="Group Chat"
+ layout="topleft"
+ mouse_opaque="false"
+ name="chat_btn"
+ tool_tip="Open chat session"
+ top="0"
+ width="100" />
+ </layout_panel>
+
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left_pad="3"
+ mouse_opaque="false"
+ name="group_call_btn_lp"
+ user_resize="false"
+ auto_resize="true"
+ width="96">
+ <button
+ follows="bottom|left|right"
+ left="1"
+ height="23"
+ label="Group Call"
+ layout="topleft"
+ mouse_opaque="false"
+ name="group_call_btn"
+ tool_tip="Call this group"
+ top="0"
+ width="95" />
+ </layout_panel>
+ </layout_stack>
</panel>
</panel>
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 1d01bcb8a5..0496c86215 100644
--- a/indra/newview/skins/default/xui/en/panel_pick_info.xml
+++ b/indra/newview/skins/default/xui/en/panel_pick_info.xml
@@ -11,7 +11,7 @@
top="0"
width="333">
<button
- follows="top|right"
+ follows="top|left"
height="24"
image_hover_unselected="BackButton_Over"
image_pressed="BackButton_Press"
@@ -55,6 +55,7 @@
left="0"
width="285">
<texture_picker
+ fallback_image="default_land_picture.j2c"
enabled="false"
follows="left|top|right"
height="197"
@@ -100,7 +101,7 @@
follows="all"
height="100"
width="280"
- allow_html="true"
+ parse_urls="true"
hide_scrollbar="false"
layout="topleft"
left="10"
@@ -120,30 +121,73 @@
top_pad="5"
left="8"
name="buttons">
- <button
- follows="bottom|left"
- height="23"
- label="Teleport"
- layout="topleft"
- left="0"
- name="teleport_btn"
- top="0"
- width="101" />
- <button
- follows="bottom|left"
- height="23"
- label="Map"
- layout="topleft"
- left_pad="3"
- name="show_on_map_btn"
- width="100" />
- <button
- follows="bottom|left"
- height="23"
- label="Edit"
- layout="topleft"
- name="edit_btn"
- left_pad="3"
- width="101" />
+
+ <layout_stack
+ follows="bottom|left|right"
+ height="23"
+ layout="topleft"
+ name="layout_stack1"
+ left="0"
+ orientation="horizontal"
+ top_pad="0"
+ width="312">
+
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left="0"
+ name="layout_panel1"
+ user_resize="false"
+ auto_resize="true"
+ width="101">
+ <button
+ follows="bottom|left|right"
+ height="23"
+ label="Teleport"
+ layout="topleft"
+ name="teleport_btn"
+ top="0"
+ width="101" />
+ </layout_panel>
+
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left_pad="3"
+ name="show_on_map_btn_lp"
+ user_resize="false"
+ auto_resize="true"
+ width="100">
+ <button
+ follows="bottom|left|right"
+ height="23"
+ label="Map"
+ layout="topleft"
+ name="show_on_map_btn"
+ top_pad="0"
+ width="100" />
+ </layout_panel>
+
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left_pad="3"
+ name="edit_btn_lp"
+ user_resize="false"
+ auto_resize="true"
+ width="101">
+ <button
+ follows="bottom|left|right"
+ height="23"
+ label="Edit"
+ layout="topleft"
+ name="edit_btn"
+ top_pad="0"
+ width="101" />
+ </layout_panel>
+ </layout_stack>
</panel>
</panel>
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 41651edaa0..de147908d8 100644
--- a/indra/newview/skins/default/xui/en/panel_pick_list_item.xml
+++ b/indra/newview/skins/default/xui/en/panel_pick_list_item.xml
@@ -33,7 +33,7 @@
<texture_picker
allow_no_texture="true"
border_enabled="true"
- default_image_name="TabIcon_Places_Large"
+ fallback_image="default_land_picture.j2c"
enabled="false"
follows="left|top"
height="80"
@@ -65,7 +65,6 @@
left="103"
name="picture_descr"
textbox.max_length="1024"
- textbox.label="More"
textbox.show_context_menu="false"
top_pad="0"
width="178"
diff --git a/indra/newview/skins/default/xui/en/panel_picks.xml b/indra/newview/skins/default/xui/en/panel_picks.xml
index 0093a08e15..4f7c4fa9b2 100644
--- a/indra/newview/skins/default/xui/en/panel_picks.xml
+++ b/indra/newview/skins/default/xui/en/panel_picks.xml
@@ -30,7 +30,7 @@ bg_opaque_color="DkGray2"
<accordion
fit_parent="true"
follows="all"
- height="470"
+ height="485"
layout="topleft"
left="0"
name="accordion"
@@ -38,7 +38,6 @@ bg_opaque_color="DkGray2"
single_expansion="true"
width="313">
<accordion_tab
- can_resize="false"
layout="topleft"
height="235"
min_height="150"
@@ -56,7 +55,6 @@ bg_opaque_color="DkGray2"
width="313" />
</accordion_tab>
<accordion_tab
- can_resize="false"
layout="topleft"
height="235"
name="tab_classifieds"
@@ -80,93 +78,166 @@ bg_opaque_color="DkGray2"
bevel_style="none"
enabled="false"
auto_resize="false"
- follows="bottom"
+ follows="bottom|left|right"
left="1"
height="27"
label="bottom_panel"
- layout="topleft"
+ layout="bottom"
name="edit_panel"
top_pad="-2"
width="313">
- <button
- enabled="false"
- follows="bottom|left"
- height="18"
- image_selected="OptionsMenu_Press"
- image_unselected="OptionsMenu_Off"
- image_disabled="OptionsMenu_Disabled"
- layout="topleft"
- left="10"
- name="gear_menu_btn"
- top="9"
- width="18" />
- <button
- follows="bottom|left"
- height="18"
- image_disabled="AddItem_Disabled"
- image_selected="AddItem_Press"
- image_unselected="AddItem_Off"
- layout="topleft"
- left_pad="15"
- name="new_btn"
- tool_tip="Create a new pick or classified at the current location"
- top="9"
- width="18" />
- <button
- follows="bottom|right"
- height="18"
- image_disabled="TrashItem_Disabled"
- image_selected="TrashItem_Press"
- image_unselected="TrashItem_Off"
- layout="topleft"
- name="trash_btn"
- right="-10"
- top="9"
- width="18" />
- </panel>
- <panel
+
+ <layout_stack
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ name="edit_panel_ls"
+ left="10"
+ orientation="horizontal"
+ top_pad="0"
+ width="293">
+
+ <layout_panel
+ follows="bottom|left"
+ height="18"
+ layout="bottomleft"
+ left="0"
+ name="gear_menu_btn"
+ user_resize="false"
+ auto_resize="true"
+ width="51">
+ <button
+ enabled="false"
+ follows="bottom|left"
+ height="18"
+ image_selected="OptionsMenu_Press"
+ image_unselected="OptionsMenu_Off"
+ image_disabled="OptionsMenu_Disabled"
+ layout="topleft"
+ left="0"
+ name="gear_menu_btn"
+ top_pad="0"
+ width="18" />
+ <button
+ follows="bottom|left"
+ height="18"
+ image_disabled="AddItem_Disabled"
+ image_selected="AddItem_Press"
+ image_unselected="AddItem_Off"
+ layout="topleft"
+ left_pad="15"
+ name="new_btn"
+ tool_tip="Create a new pick or classified at the current location"
+ width="18" />
+ </layout_panel>
+
+ <layout_panel
+ follows="bottom|right"
+ height="18"
+ layout="bottomleft"
+ name="trash_btn_lp"
+ user_resize="false"
+ auto_resize="true"
+ width="18">
+ <button
+ follows="bottom|right"
+ height="18"
+ image_disabled="TrashItem_Disabled"
+ image_selected="TrashItem_Press"
+ image_unselected="TrashItem_Off"
+ layout="topleft"
+ name="trash_btn"
+ top="0"
+ width="18" />
+ </layout_panel>
+
+ </layout_stack>
+ </panel>
+
+ <panel
bg_opaque_color="DkGray"
background_visible="true"
background_opaque="true"
+ follows="bottom|left|right"
layout="topleft"
left="0"
height="40"
- top="502"
name="buttons_cucks"
width="313">
- <button
- enabled="false"
- follows="bottom|left"
- height="23"
- label="Info"
- layout="topleft"
- left="2"
- name="info_btn"
- tab_stop="false"
- tool_tip="Show pick information"
- top="5"
- width="95" />
- <button
- enabled="false"
- follows="bottom|left"
- height="23"
- label="Teleport"
- layout="topleft"
- left_pad="3"
- name="teleport_btn"
- tab_stop="false"
- tool_tip="Teleport to the corresponding area"
- width="117" />
- <button
- enabled="false"
- follows="bottom|left"
- height="23"
- label="Map"
- layout="topleft"
- left_pad="3"
- name="show_on_map_btn"
- tab_stop="false"
- tool_tip="Show the corresponding area on the World Map"
- width="90" />
- </panel>
+
+ <layout_stack
+ follows="bottom|left|right"
+ height="28"
+ layout="topleft"
+ left="2"
+ name="buttons_cucks_ls"
+ orientation="horizontal"
+ top="0"
+ width="313">
+
+ <layout_panel
+ follows="bottom|left|right"
+ height="28"
+ layout="topleft"
+ left="0"
+ name="info_btn_lp"
+ user_resize="false"
+ auto_resize="true"
+ top="0"
+ width="95">
+ <button
+ enabled="false"
+ follows="top|left|right"
+ height="23"
+ label="Info"
+ layout="topleft"
+ name="info_btn"
+ tab_stop="false"
+ tool_tip="Show pick information"
+ width="95" />
+ </layout_panel>
+
+ <layout_panel
+ follows="bottom|left|right"
+ height="28"
+ layout="bottomleft"
+ left_pad="2"
+ name="teleport_btn_lp"
+ user_resize="false"
+ auto_resize="true"
+ width="117">
+ <button
+ enabled="false"
+ follows="top|left|right"
+ height="23"
+ label="Teleport"
+ layout="topleft"
+ name="teleport_btn"
+ tab_stop="false"
+ tool_tip="Teleport to the corresponding area"
+ width="117" />
+ </layout_panel>
+
+ <layout_panel
+ follows="bottom|left|right"
+ height="28"
+ layout="bottomleft"
+ name="show_on_map_btn_lp"
+ user_resize="false"
+ auto_resize="true"
+ left_pad="2"
+ width="90">
+ <button
+ enabled="false"
+ follows="top|left|right"
+ height="23"
+ label="Map"
+ layout="topleft"
+ name="show_on_map_btn"
+ tab_stop="false"
+ tool_tip="Show the corresponding area on the World Map"
+ width="88" />
+ </layout_panel>
+ </layout_stack>
+ </panel>
</panel>
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 55e0184282..01d1e48ba1 100644
--- a/indra/newview/skins/default/xui/en/panel_place_profile.xml
+++ b/indra/newview/skins/default/xui/en/panel_place_profile.xml
@@ -154,7 +154,7 @@
translate="false"
value="Parcel_DamageNo_Dark" />
<button
- follows="top|right"
+ follows="top|left"
height="24"
image_hover_unselected="BackButton_Over"
image_pressed="BackButton_Press"
@@ -200,7 +200,8 @@
width="310">
<texture_picker
enabled="false"
- follows="left|top|right"
+ fallback_image="default_land_picture.j2c"
+ follows="left|top|right"
height="197"
layout="topleft"
left="11"
@@ -263,7 +264,7 @@
</layout_panel>
</layout_stack>
<text
- allow_html="false"
+ parse_urls="false"
follows="left|top|right"
font="SansSerifLarge"
height="14"
@@ -276,7 +277,7 @@
value="SampleRegion"
width="290" />
<text
- allow_html="false"
+ parse_urls="false"
follows="left|top|right"
height="14"
layout="topleft"
@@ -292,7 +293,6 @@
layout="topleft"
left="5"
name="description"
- textbox.label="More"
top_pad="10"
value="Du waltz die spritz"
width="300" />
diff --git a/indra/newview/skins/default/xui/en/panel_places.xml b/indra/newview/skins/default/xui/en/panel_places.xml
index 638e190e8f..21314703b0 100644
--- a/indra/newview/skins/default/xui/en/panel_places.xml
+++ b/indra/newview/skins/default/xui/en/panel_places.xml
@@ -68,83 +68,297 @@ background_visible="true"
visible="false"
width="315" />
<panel
+ follows="bottom|left|right"
height="23"
layout="topleft"
left="4"
name="button_panel"
width="315">
- <button
- follows="bottom|left"
- height="23"
- label="Teleport"
- layout="topleft"
- left="5"
- name="teleport_btn"
- tool_tip="Teleport to the selected area"
- top="1"
- width="108" />
- <button
- follows="bottom|left"
- height="23"
- label="Map"
- layout="topleft"
- left_pad="3"
- name="map_btn"
- tool_tip="Show the corresponding area on the World Map"
- width="85" />
- <button
- follows="bottom|left"
- height="23"
- label="Edit"
- layout="topleft"
- left_pad="3"
- name="edit_btn"
- tool_tip="Edit landmark information"
- width="83" />
- <button
- follows="bottom|right"
- height="23"
- label="â–¼"
- layout="topleft"
- name="overflow_btn"
- tool_tip="Show additional options"
- left_pad="3"
- width="23" />
- <button
- follows="bottom|left"
- height="23"
- label="Save"
- layout="topleft"
- name="save_btn"
- left="5"
- top_pad="-23"
- width="152" />
- <button
- follows="bottom|right"
- height="23"
- label="Cancel"
- layout="topleft"
- name="cancel_btn"
- left_pad="3"
- width="153" />
- <button
- follows="bottom|right"
- height="23"
- label="Close"
- layout="topleft"
- name="close_btn"
- right="-10"
- top="1"
- width="60" />
- <button
- follows="bottom|left"
- height="23"
- label="Profile"
- layout="topleft"
- name="profile_btn"
- right="-1"
- tool_tip="Show place profile"
- top="1"
- width="111" />
+
+ <layout_stack
+ follows="bottom|left|right"
+ height="23"
+ layout="topleft"
+ mouse_opaque="false"
+ name="bottom_bar_ls0"
+ left="4"
+ orientation="horizontal"
+ top="0"
+ width="315">
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left="0"
+ mouse_opaque="false"
+ name="lp1"
+ user_resize="false"
+ auto_resize="true"
+ width="193">
+
+ <!--*********************** Teleport, Map buttons ***********************-->
+
+ <layout_stack
+ follows="bottom|left|right"
+ height="23"
+ layout="topleft"
+ mouse_opaque="false"
+ name="bottom_bar_ls1"
+ left="0"
+ orientation="horizontal"
+ top="0"
+ width="193">
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left="0"
+ mouse_opaque="false"
+ name="teleport_btn_lp"
+ user_resize="false"
+ auto_resize="true"
+ width="109">
+ <button
+ follows="bottom|left|right"
+ height="23"
+ label="Teleport"
+ layout="topleft"
+ left="1"
+ name="teleport_btn"
+ tool_tip="Teleport to the selected area"
+ top="0"
+ width="108" />
+ </layout_panel>
+
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left_pad="3"
+ mouse_opaque="false"
+ name="chat_btn_lp"
+ user_resize="false"
+ auto_resize="true"
+ width="86">
+ <button
+ follows="bottom|left|right"
+ height="23"
+ label="Map"
+ layout="topleft"
+ left="1"
+ name="map_btn"
+ tool_tip="Show the corresponding area on the World Map"
+ top="0"
+ width="85" />
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
+
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left_pad="0"
+ mouse_opaque="false"
+ name="lp2"
+ user_resize="false"
+ auto_resize="true"
+ width="116">
+
+ <!--*********************** Edit, Options buttons ***********************-->
+
+ <layout_stack
+ follows="bottom|left|right"
+ height="23"
+ layout="topleft"
+ mouse_opaque="false"
+ name="bottom_bar_ls3"
+ left="0"
+ orientation="horizontal"
+ top="0"
+ width="120">
+
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left_pad="0"
+ mouse_opaque="false"
+ name="edit_btn_lp"
+ user_resize="false"
+ auto_resize="true"
+ width="84">
+ <button
+ follows="bottom|left|right"
+ height="23"
+ label="Edit"
+ layout="topleft"
+ left="1"
+ mouse_opaque="false"
+ name="edit_btn"
+ tool_tip="Edit landmark information"
+ top="0"
+ width="83" />
+ </layout_panel>
+
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left_pad="0"
+ mouse_opaque="false"
+ name="overflow_btn_lp"
+ user_resize="false"
+ auto_resize="true"
+ width="24">
+ <button
+ follows="bottom|left|right"
+ height="23"
+ label="â–¼"
+ layout="topleft"
+ mouse_opaque="false"
+ name="overflow_btn"
+ tool_tip="Show additional options"
+ top="0"
+ left="1"
+ width="23" />
+ </layout_panel>
+ </layout_stack>
+
+ <!--*********************** Profile button ***********************-->
+
+ <layout_stack
+ follows="bottom|left|right"
+ height="23"
+ layout="topleft"
+ mouse_opaque="false"
+ name="bottom_bar_ls3"
+ left="0"
+ orientation="horizontal"
+ top="0"
+ width="120">
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left_pad="3"
+ mouse_opaque="false"
+ name="profile_btn_lp"
+ user_resize="false"
+ auto_resize="true"
+ width="112">
+ <button
+ follows="bottom|left|right"
+ height="23"
+ label="Profile"
+ layout="topleft"
+ mouse_opaque="false"
+ name="profile_btn"
+ left="1"
+ tool_tip="Show place profile"
+ top="0"
+ width="111" />
+ </layout_panel>
+ </layout_stack>
+
+ <!--*********************** Close button ***********************-->
+
+ <layout_stack
+ follows="bottom|left|right"
+ height="23"
+ layout="topleft"
+ mouse_opaque="false"
+ name="bottom_bar_close_ls3"
+ left="0"
+ orientation="horizontal"
+ top="0"
+ width="120">
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left_pad="3"
+ mouse_opaque="false"
+ name="close_btn_lp"
+ top="0"
+ user_resize="false"
+ auto_resize="true"
+ width="61">
+ <button
+ follows="bottom|left|right"
+ height="23"
+ label="Close"
+ layout="topleft"
+ mouse_opaque="false"
+ name="close_btn"
+ left="1"
+ top="0"
+ width="60" />
+ </layout_panel>
+ </layout_stack>
+
+
+ </layout_panel>
+ </layout_stack>
+
+<!--*********************** Save, Cancel buttons ***********************-->
+
+ <layout_stack
+ follows="bottom|left|right"
+ height="23"
+ layout="topleft"
+ mouse_opaque="false"
+ name="bottom_bar_ls2"
+ left="4"
+ orientation="horizontal"
+ top="0"
+ width="313">
+
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left_pad="3"
+ mouse_opaque="false"
+ name="save_btn_lp"
+ top="0"
+ user_resize="false"
+ auto_resize="true"
+ width="153">
+ <button
+ follows="bottom|left|right"
+ height="23"
+ label="Save"
+ layout="topleft"
+ mouse_opaque="false"
+ name="save_btn"
+ left="1"
+ top_pad="0"
+ width="152"/>
+ </layout_panel>
+
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left_pad="3"
+ mouse_opaque="false"
+ name="cancel_btn_lp"
+ top="0"
+ user_resize="false"
+ auto_resize="true"
+ width="154">
+ <button
+ follows="bottom|left|right"
+ height="23"
+ label="Cancel"
+ layout="topleft"
+ mouse_opaque="false"
+ name="cancel_btn"
+ left="1"
+ top="0"
+ width="153" />
+ </layout_panel>
+ </layout_stack>
</panel>
</panel>
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 516457dd93..559df5bec9 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_alerts.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_alerts.xml
@@ -57,6 +57,8 @@
left="10"
multi_select="true"
name="enabled_popups"
+ sort_column="0"
+ sort_ascending="true"
width="495" />
<button
enabled_control="FirstSelectedDisabledPopups"
@@ -103,6 +105,8 @@
height="140"
layout="topleft"
left="10"
+ sort_column="0"
+ sort_ascending="true"
multi_select="true"
name="disabled_popups"
width="495" />
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 ba967d3e2c..31e160ec33 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_chat.xml
@@ -104,7 +104,7 @@
layout="topleft"
left="190"
name="agent"
- top_pad="-17"
+ top_pad="-15"
width="44" >
<color_swatch.init_callback
function="Pref.getUIColor"
@@ -135,7 +135,7 @@
layout="topleft"
left="360"
name="im"
- top_pad="-17"
+ top_pad="-15"
width="44">
<color_swatch.init_callback
function="Pref.getUIColor"
@@ -166,7 +166,7 @@
layout="topleft"
left="40"
name="system"
- top_pad="40"
+ top_pad="22"
width="44" >
<color_swatch.init_callback
function="Pref.getUIColor"
@@ -196,7 +196,7 @@
layout="topleft"
left="190"
name="script_error"
- top_pad="-17"
+ top_pad="-15"
width="44">
<color_swatch.init_callback
function="Pref.getUIColor"
@@ -226,7 +226,7 @@
layout="topleft"
left="360"
name="objects"
- top_pad="-17"
+ top_pad="-15"
width="44" >
<color_swatch.init_callback
function="Pref.getUIColor"
@@ -256,7 +256,7 @@
layout="topleft"
left="40"
name="owner"
- top_pad="40"
+ top_pad="22"
width="44" >
<color_swatch.init_callback
function="Pref.getUIColor"
@@ -286,7 +286,7 @@
layout="topleft"
left="190"
name="links"
- top_pad="-17"
+ top_pad="-15"
width="44" >
<color_swatch.init_callback
function="Pref.getUIColor"
@@ -316,7 +316,7 @@
layout="topleft"
left="30"
name="play_typing_animation"
- top_pad="40"
+ top_pad="32"
width="400" />
<check_box
enabled="false"
@@ -343,7 +343,7 @@
left="30"
height="20"
width="170"
- top_pad="20">
+ top_pad="14">
Show IMs in:
</text>
<text
@@ -386,4 +386,106 @@
top_pad="5"
width="150" />
</radio_group>
+ <check_box
+ control_name="TranslateChat"
+ enabled="true"
+ height="16"
+ label="Use machine translation while chatting (powered by Google)"
+ layout="topleft"
+ left="30"
+ name="translate_chat_checkbox"
+ bottom_delta="40"
+ width="400" />
+ <text
+ bottom_delta="30"
+ name="translate_language_text"
+ follows="left|top"
+ layout="topleft"
+ left_delta="20"
+ height="20"
+ width="110">
+ Translate chat into:
+ </text>
+ <combo_box
+ allow_text_entry="true"
+ bottom_delta="3"
+ control_name="TranslateLanguage"
+ enabled="true"
+ follows="left|top"
+ height="23"
+ left_delta="110"
+ max_chars="135"
+ mouse_opaque="true"
+ name="translate_language_combobox"
+ width="146">
+ <combo_box.item
+ label="System Default"
+ name="System Default Language"
+ value="default" />
+ <combo_box.item
+ label="English"
+ name="English"
+ value="en" />
+ <!-- After "System Default" and "English", please keep the rest of these combo_box.items in alphabetical order by the first character in the string. -->
+ <combo_box.item
+ label="Dansk (Danish)"
+ name="Danish"
+ value="da" />
+ <combo_box.item
+ label="Deutsch (German)"
+ name="German"
+ value="de" />
+ <combo_box.item
+ label="Español (Spanish)"
+ name="Spanish"
+ value="es" />
+ <combo_box.item
+ label="Français (French)"
+ name="French"
+ value="fr" />
+ <combo_box.item
+ label="Italiano (Italian)"
+ name="Italian"
+ value="it" />
+ <combo_box.item
+ label="Magyar (Hungarian)"
+ name="Hungarian"
+ value="hu" />
+ <combo_box.item
+ label="Nederlands (Dutch)"
+ name="Dutch"
+ value="nl" />
+ <combo_box.item
+ label="Polski (Polish)"
+ name="Polish"
+ value="pl" />
+ <combo_box.item
+ label="Português (Portuguese)"
+ name="Portugese"
+ value="pt" />
+ <combo_box.item
+ label="РуÑÑкий (Russian)"
+ name="Russian"
+ value="ru" />
+ <combo_box.item
+ label="Türkçe (Turkish)"
+ name="Turkish"
+ value="tr" />
+ <combo_box.item
+ label="УкраїнÑька (Ukrainian)"
+ name="Ukrainian"
+ value="uk" />
+ <combo_box.item
+ label="中文 (简体) (Chinese)"
+ name="Chinese"
+ value="zh" />
+ <combo_box.item
+ label="日本語 (Japanese)"
+ name="Japanese"
+ value="ja" />
+ <combo_box.item
+ label="한국어 (Korean)"
+ name="Korean"
+ value="ko" />
+ </combo_box>
</panel>
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 a69e8d29b0..17eebffa02 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_general.xml
@@ -77,7 +77,7 @@
value="pl" />
<combo_box.item
enabled="true"
- label="Portugués (Portuguese) - Beta"
+ label="Português (Portuguese) - Beta"
name="Portugese"
value="pt" />
<combo_box.item
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 f4694180a1..7ae717d0e3 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_graphics1.xml
@@ -155,7 +155,7 @@
visiblity_control="ShowAdvancedGraphicsSettings"
border="false"
follows="top|left"
- height="260"
+ height="283"
label="CustomGraphics"
layout="topleft"
left="5"
@@ -211,119 +211,112 @@
<check_box.commit_callback
function="Pref.VertexShaderEnable" />
</check_box>
- <check_box
- control_name="RenderWaterReflections"
+<!-- DISABLED UNTIL WE REALLY WANT TO SUPPORT THIS
+ <check_box
+ control_name="RenderDeferred"
height="16"
initial_value="true"
- label="Water reflections"
+ label="Lighting and Shadows"
layout="topleft"
left_delta="0"
- name="Reflections"
+ name="UseLightShaders"
top_pad="1"
width="256">
- <check_box.commit_callback
+ <check_box.commit_callback
function="Pref.VertexShaderEnable" />
- </check_box>
- <text
- type="string"
- length="1"
- follows="left|top"
- height="12"
- layout="topleft"
- left_delta="0"
- name="ReflectionDetailText"
- top_pad="7"
- width="128">
- Reflection detail:
- </text>
- <radio_group
- control_name="RenderReflectionDetail"
- draw_border="false"
- height="70"
- layout="topleft"
- left_delta="-2"
- name="ReflectionDetailRadio"
- top_pad="3"
- width="321">
- <radio_item
- height="16"
- label="Terrain and trees"
- layout="topleft"
- left="3"
- name="0"
- top="3"
- width="315" />
- <radio_item
- height="16"
- label="All static objects"
- layout="topleft"
- left_delta="0"
- name="1"
- top_delta="16"
- width="315" />
- <radio_item
- height="16"
- label="All avatars and objects"
- layout="topleft"
- left_delta="0"
- name="2"
- top_delta="16"
- width="315" />
- <radio_item
- height="16"
- label="Everything"
- layout="topleft"
- left_delta="0"
- name="3"
- top_delta="16"
- width="315" />
- </radio_group>
- <text
- type="string"
- length="1"
- follows="left|top"
- height="12"
- layout="topleft"
- left_delta="2"
- name="AvatarRenderingText"
- top_pad="5"
- width="158">
- Avatar rendering:
- </text>
- <check_box
- control_name="RenderUseImpostors"
- height="16"
- initial_value="true"
- label="Avatar impostors"
- layout="topleft"
- left_delta="0"
- name="AvatarImpostors"
- top_pad="7"
- width="256" />
- <check_box
- control_name="RenderAvatarVP"
+ </check_box>
+ <check_box
+ control_name="RenderDeferredSSAO"
height="16"
initial_value="true"
- label="Hardware skinning"
+ label="Ambient Occlusion"
layout="topleft"
left_delta="0"
- name="AvatarVertexProgram"
+ name="UseSSAO"
top_pad="1"
width="256">
- <check_box.commit_callback
+ <check_box.commit_callback
function="Pref.VertexShaderEnable" />
- </check_box>
- <check_box
- control_name="RenderAvatarCloth"
- height="16"
- initial_value="true"
- label="Avatar cloth"
- layout="topleft"
- left_delta="0"
- name="AvatarCloth"
- top_pad="1"
- width="256" />
+ </check_box>
+ <text
+ type="string"
+ length="1"
+ top_pad="8"
+ follows="top|left"
+ height="23"
+ width="110"
+ word_wrap="true"
+ layout="topleft"
+ left="10"
+ name="shadows_label">
+ Shadows:
+ </text>
+ <combo_box
+ control_name="RenderShadowDetail"
+ height="23"
+ layout="topleft"
+ left="10"
+ top_pad="0"
+ name="ShadowDetail"
+ width="150">
+ <combo_box.item
+ label="None"
+ name="0"
+ value="0"/>
+ <combo_box.item
+ label="Sun/Moon"
+ name="1"
+ value="1"/>
+ <combo_box.item
+ label="Sun/Moon + Projectors"
+ name="2"
+ value="2"/>
+ </combo_box>
+-->
+ <text
+ type="string"
+ length="1"
+ top_pad="8"
+ follows="top|left"
+ height="23"
+ width="110"
+ word_wrap="true"
+ layout="topleft"
+ left="10"
+ name="reflection_label">
+ Water Reflections:
+ </text>
+ <combo_box
+ control_name="RenderReflectionDetail"
+ height="23"
+ layout="topleft"
+ left_delta="10"
+ top_pad ="0"
+ name="Reflections"
+ width="150">
+ <combo_box.item
+ label="Minimal"
+ name="0"
+ value="0"/>
+ <combo_box.item
+ label="Terrain and trees"
+ name="1"
+ value="1"/>
+ <combo_box.item
+ label="All static objects"
+ name="2"
+ value="2"/>
+ <combo_box.item
+ label="All avatars and objects"
+ name="3"
+ value="3"/>
+ <combo_box.item
+ label="Everything"
+ name="4"
+ value="4"/>
+ </combo_box>
+
<slider
control_name="RenderFarClip"
decimal_digits="0"
@@ -615,49 +608,58 @@
width="128">
Low
</text>
- <text
- type="string"
- length="1"
- follows="left|top"
- height="12"
- layout="topleft"
- left="200"
- name="LightingDetailText"
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="12"
+ layout="topleft"
+ left_delta="-260"
+ name="AvatarRenderingText"
top_pad="18"
- width="140">
- Lighting detail:
- </text>
- <radio_group
- control_name="RenderLightingDetail"
- draw_border="false"
- height="38"
- layout="topleft"
- name="LightingDetailRadio"
- top_pad="5"
- width="200">
- <radio_item
- height="16"
- label="Sun and moon only"
- layout="topleft"
- name="SunMoon"
- value="0"
- top="3"
- width="156" />
- <radio_item
- height="16"
- label="Nearby local lights"
- layout="topleft"
- name="LocalLights"
- value="1"
- top_delta="16"
- width="156" />
- </radio_group>
+ width="128">
+ Avatar rendering:
+ </text>
+ <check_box
+ control_name="RenderUseImpostors"
+ height="16"
+ initial_value="true"
+ label="Avatar impostors"
+ layout="topleft"
+ left_delta="0"
+ name="AvatarImpostors"
+ top_pad="7"
+ width="256" />
+ <check_box
+ control_name="RenderAvatarVP"
+ height="16"
+ initial_value="true"
+ label="Hardware skinning"
+ layout="topleft"
+ left_delta="0"
+ name="AvatarVertexProgram"
+ top_pad="1"
+ width="256">
+ <check_box.commit_callback
+ function="Pref.VertexShaderEnable" />
+ </check_box>
+ <check_box
+ control_name="RenderAvatarCloth"
+ height="16"
+ initial_value="true"
+ label="Avatar cloth"
+ layout="topleft"
+ left_delta="0"
+ name="AvatarCloth"
+ top_pad="1"
+ width="256" />
<text
type="string"
length="1"
follows="left|top"
height="12"
layout="topleft"
+ left="358"
left_pad="-30"
name="TerrainDetailText"
top="226"
@@ -687,7 +689,7 @@
name="2"
top_delta="16"
width="50" />
- </radio_group>
+ </radio_group> -->
</panel>
<button
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 fca9b4bca1..4ebd4c76f8 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_privacy.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_privacy.xml
@@ -162,8 +162,9 @@
name="block_list"
top_pad="20"
width="145">
- <button.commit_callback
- function="SideTray.ShowPanel"
- parameter="panel_block_list_sidetray" />
+ <!--<button.commit_callback
+ function="SideTray.ShowPanel"-->
+ <button.commit_callback
+ function="Pref.BlockList"/>
</button>
</panel>
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 2c6ceeef2e..879781f746 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_setup.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_setup.xml
@@ -320,7 +320,19 @@
radio_style="false"
width="400"
top_pad="5"/>
-
+ <check_box
+ top_delta="4"
+ enabled="true"
+ follows="left|top"
+ height="14"
+ initial_value="false"
+ control_name="MediaEnablePopups"
+ label="Enable media browser pop-ups"
+ left_delta="0"
+ mouse_opaque="true"
+ name="media_popup_enabled"
+ width="400"
+ top_pad="5"/>
<check_box
top_delta="4"
enabled="true"
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 65c78ad333..aa760edad3 100644
--- a/indra/newview/skins/default/xui/en/panel_preferences_sound.xml
+++ b/indra/newview/skins/default/xui/en/panel_preferences_sound.xml
@@ -408,6 +408,14 @@
name="default_text">
Default
</panel.string>
+ <panel.string
+ name="default system device">
+ Default system device
+ </panel.string>
+ <panel.string
+ name="no device">
+ No device
+ </panel.string>
<icon
height="18"
image_name="Microphone_On"
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 6bf00373ea..b25fd695c9 100644
--- a/indra/newview/skins/default/xui/en/panel_prim_media_controls.xml
+++ b/indra/newview/skins/default/xui/en/panel_prim_media_controls.xml
@@ -33,10 +33,9 @@
mouse_opaque="false"
layout="topleft"
user_resize="false" />
- <panel
+ <layout_panel
name="media_progress_indicator"
mouse_opaque="false"
- follows="left|right|top"
height="8"
layout="topleft"
left="0"
@@ -55,7 +54,7 @@
top="0"
left="0"
tool_tip="Media is Loading"/>
- </panel>
+ </layout_panel>
<layout_panel
name="right_bookend_bottom"
width="0"
diff --git a/indra/newview/skins/default/xui/en/panel_profile.xml b/indra/newview/skins/default/xui/en/panel_profile.xml
index d7a601d7a3..78b192d4af 100644
--- a/indra/newview/skins/default/xui/en/panel_profile.xml
+++ b/indra/newview/skins/default/xui/en/panel_profile.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel
follows="all"
- height="540"
+ height="430"
label="Profile"
layout="topleft"
left="0"
@@ -41,7 +41,7 @@
layout="topleft"
left="0"
top="0"
- height="524"
+ height="400"
width="317"
border_size="0">
<layout_panel
@@ -50,7 +50,7 @@
layout="topleft"
top="0"
left="0"
- height="524"
+ height="400"
width="317">
<scroll_container
color="DkGray2"
@@ -83,6 +83,7 @@
allow_no_texture="true"
default_image_name="None"
enabled="false"
+ fallback_image="Generic_Person_Large"
follows="top|left"
height="124"
layout="topleft"
@@ -107,7 +108,6 @@
layout="topleft"
left="107"
textbox.max_length="512"
- textbox.label="More"
textbox.show_context_menu="true"
name="sl_description_edit"
top_pad="-3"
@@ -130,6 +130,7 @@
allow_no_texture="true"
default_image_name="None"
enabled="false"
+ fallback_image="Generic_Person_Large"
follows="top|left"
height="124"
layout="topleft"
@@ -153,7 +154,6 @@
layout="topleft"
left="107"
textbox.max_length="512"
- textbox.label="More"
textbox.show_context_menu="true"
name="fl_description_edit"
top_pad="-3"
@@ -293,7 +293,6 @@
left="7"
name="sl_groups"
textbox.max_length="512"
- textbox.label="More"
textbox.show_context_menu="true"
top_pad="0"
translate="false"
@@ -305,74 +304,147 @@
</panel>
</scroll_container>
</layout_panel>
- <layout_panel
- follows="bottom|left"
+
+</layout_stack>
+
+ <layout_stack
+ name="layout_verb_buttons"
+ orientation="horizontal"
+ follows="bottom|left|right"
+ layout="topleft"
+ left="2"
+ top_pad="1"
+ height="30"
+ width="315"
+ border_size="0">
+ <layout_panel
+ follows="bottom|left"
height="30"
layout="topleft"
name="profile_buttons_panel"
+ top="0"
auto_resize="false"
width="317">
- <button
- follows="bottom|left"
- height="23"
- label="Add Friend"
- layout="topleft"
- left="2"
- mouse_opaque="false"
- name="add_friend"
- pad_left="1"
- pad_right="1"
- tool_tip="Offer friendship to the Resident"
- top="5"
- use_ellipses="true"
- width="117" />
- <button
- follows="bottom|left"
- height="23"
- label="IM"
- layout="topleft"
- name="im"
- tool_tip="Open instant message session"
- top="5"
- left_pad="1"
- width="21" />
- <button
- follows="bottom|left"
- height="23"
- label="Call"
- layout="topleft"
- name="call"
- tool_tip="Call this Resident"
- left_pad="1"
- pad_left="1"
- pad_right="1"
- top="5"
- use_ellipses="true"
- width="51" />
- <button
- follows="bottom|left"
- height="23"
- label="Teleport"
- layout="topleft"
- name="teleport"
- tool_tip="Offer teleport"
- left_pad="1"
- pad_left="1"
- pad_right="1"
- top="5"
- use_ellipses="true"
- width="92" />
- <button
- follows="bottom|right"
- height="23"
- label="â–¼"
- layout="topleft"
- name="overflow_btn"
- tool_tip="Pay money to or share inventory with the Resident"
- right="-1"
- top="5"
- width="23" />
- </layout_panel>
+
+ <layout_stack
+ follows="bottom|left|right"
+ height="23"
+ layout="topleft"
+ name="bottom_bar_ls"
+ left="0"
+ orientation="horizontal"
+ top_pad="5"
+ width="317">
+
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left="0"
+ name="add_friend_btn_lp"
+ user_resize="false"
+ auto_resize="true"
+ width="121">
+ <button
+ follows="bottom|left|right"
+ height="23"
+ label="Add Friend"
+ layout="topleft"
+ left="1"
+ mouse_opaque="false"
+ name="add_friend"
+ tool_tip="Offer friendship to the Resident"
+ top="0"
+ width="120" />
+ </layout_panel>
+
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left_pad="3"
+ name="im_btn_lp"
+ user_resize="false"
+ auto_resize="true"
+ width="22">
+ <button
+ follows="bottom|left|right"
+ height="23"
+ label="IM"
+ layout="topleft"
+ name="im"
+ tool_tip="Open instant message session"
+ top="0"
+ left="1"
+ width="21" />
+ </layout_panel>
+
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left_pad="3"
+ name="call_btn_lp"
+ user_resize="false"
+ auto_resize="true"
+ width="52">
+ <button
+ follows="bottom|left|right"
+ height="23"
+ label="Call"
+ layout="topleft"
+ name="call"
+ tool_tip="Call this Resident"
+ left="1"
+ top="0"
+ use_ellipses="true"
+ width="51" />
+ </layout_panel>
+
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left_pad="3"
+ name="chat_btn_lp"
+ user_resize="false"
+ auto_resize="true"
+ width="93">
+ <button
+ follows="bottom|left|right"
+ height="23"
+ label="Teleport"
+ layout="topleft"
+ name="teleport"
+ tool_tip="Offer teleport"
+ left="1"
+ top="0"
+ use_ellipses="true"
+ width="92" />
+ </layout_panel>
+
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left_pad="3"
+ name="overflow_btn_lp"
+ user_resize="false"
+ auto_resize="false"
+ width="24">
+ <button
+ follows="bottom|left|right"
+ height="23"
+ label="â–¼"
+ layout="topleft"
+ name="overflow_btn"
+ tool_tip="Pay money to or share inventory with the Resident"
+ left="1"
+ top="0"
+ width="23" />
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
<layout_panel
follows="bottom|left"
height="30"
@@ -390,6 +462,6 @@
tool_tip="Edit your personal information"
width="130" />
</layout_panel>
+ </layout_stack>
-</layout_stack>
</panel>
diff --git a/indra/newview/skins/default/xui/en/panel_profile_view.xml b/indra/newview/skins/default/xui/en/panel_profile_view.xml
index d9030fc0d6..3b4d6ae58d 100644
--- a/indra/newview/skins/default/xui/en/panel_profile_view.xml
+++ b/indra/newview/skins/default/xui/en/panel_profile_view.xml
@@ -17,7 +17,7 @@
Offline
</string>
<button
- follows="top|right"
+ follows="top|left"
height="24"
image_hover_unselected="BackButton_Over"
image_pressed="BackButton_Press"
@@ -56,7 +56,7 @@
width="150" />
<tab_container
follows="all"
- height="538"
+ height="515"
halign="center"
layout="topleft"
left="5"
diff --git a/indra/newview/skins/default/xui/en/panel_progress.xml b/indra/newview/skins/default/xui/en/panel_progress.xml
index 727c5fb7b2..2868d91cc7 100644
--- a/indra/newview/skins/default/xui/en/panel_progress.xml
+++ b/indra/newview/skins/default/xui/en/panel_progress.xml
@@ -34,6 +34,7 @@
height="768"
layout="topleft"
left="0"
+ orientation="vertical"
name="stack2"
top="0"
width="640">
diff --git a/indra/newview/skins/default/xui/en/panel_region_general_layout.xml b/indra/newview/skins/default/xui/en/panel_region_general_layout.xml
deleted file mode 100644
index ffa1a257d5..0000000000
--- a/indra/newview/skins/default/xui/en/panel_region_general_layout.xml
+++ /dev/null
@@ -1,242 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<panel
- border="true"
- follows="top|left"
- height="360"
- label="Region"
- layout="topleft"
- left="0"
- name="General"
- top="360"
- width="280">
- <text
- follows="left|top"
- font="SansSerif"
- height="20"
- layout="topleft"
- left="10"
- name="region_text_lbl"
- top="10"
- width="100">
- Region:
- </text>
- <text
- follows="left|top"
- font="SansSerif"
- height="20"
- layout="topleft"
- left_delta="50"
- name="region_text"
- top_delta="0"
- width="200">
- unknown
- </text>
- <text
- follows="left|top"
- font="SansSerif"
- height="20"
- layout="topleft"
- left="10"
- name="version_channel_text_lbl"
- top="30"
- width="100">
- Version:
- </text>
- <text
- follows="left|top"
- font="SansSerif"
- height="20"
- layout="topleft"
- left_delta="50"
- name="version_channel_text"
- top_delta="0"
- width="200">
- unknown
- </text>
- <text
- follows="left|top"
- font="SansSerif"
- height="20"
- layout="topleft"
- left="10"
- name="region_type_lbl"
- top="50"
- width="100">
- Type:
- </text>
- <text
- follows="left|top"
- font="SansSerif"
- height="20"
- layout="topleft"
- left_delta="50"
- name="region_type"
- top_delta="0"
- width="200">
- unknown
- </text>
- <check_box
- height="20"
- label="Block Terraform"
- layout="topleft"
- left="10"
- name="block_terraform_check"
- top="70"
- width="80" />
- <check_box
- height="20"
- label="Block Fly"
- layout="topleft"
- left="10"
- name="block_fly_check"
- top="90"
- width="80" />
- <check_box
- height="20"
- label="Allow Damage"
- layout="topleft"
- left="10"
- name="allow_damage_check"
- top="110"
- width="80" />
- <check_box
- height="20"
- label="Restrict Pushing"
- layout="topleft"
- left="10"
- name="restrict_pushobject"
- top="130"
- width="80" />
- <check_box
- height="20"
- label="Allow Land Resell"
- layout="topleft"
- left="10"
- name="allow_land_resell_check"
- top="160"
- width="80" />
- <check_box
- height="20"
- label="Allow Land Join/Divide"
- layout="topleft"
- left="10"
- name="allow_parcel_changes_check"
- top="180"
- width="80" />
- <check_box
- height="20"
- label="Block Land Show in Search"
- layout="topleft"
- left="10"
- name="block_parcel_search_check"
- tool_tip="Let people see this region and its parcels in search results"
- top="200"
- width="80" />
- <spinner
- follows="left|top"
- height="20"
- increment="1"
- label="Agent Limit"
- label_width="97"
- layout="topleft"
- left="10"
- max_val="100"
- min_val="1"
- name="agent_limit_spin"
- top="240"
- width="170" />
- <spinner
- follows="left|top"
- height="20"
- increment="0.5"
- label="Object Bonus"
- label_width="97"
- layout="topleft"
- left="10"
- max_val="10"
- min_val="1"
- name="object_bonus_spin"
- top="260"
- width="170" />
- <text
- follows="left|top"
- height="20"
- label="Maturity"
- layout="topleft"
- left="10"
- name="access_text"
- top="290"
- width="100">
- Rating:
- </text>
- <combo_box
- height="20"
- label="Moderate"
- layout="topleft"
- left_delta="100"
- name="access_combo"
- top_delta="0"
- width="85">
- <combo_box.item
- label="Adult"
- name="Adult"
- value="42" />
- <combo_box.item
- label="Moderate"
- name="Mature"
- value="21" />
- <combo_box.item
- label="General"
- name="PG"
- value="13" />
- </combo_box>
- <button
- enabled="false"
- follows="left|top"
- height="20"
- label="Apply"
- layout="topleft"
- left="108"
- name="apply_btn"
- top="320"
- width="100"/>
- <button
- follows="left|top"
- height="20"
- label="Teleport Home One Resident..."
- layout="topleft"
- left="10"
- name="kick_btn"
- top_pad="10"
- width="250" />
- <button
- follows="left|top"
- height="20"
- label="Teleport Home All Residents..."
- layout="topleft"
- left_delta="0"
- name="kick_all_btn"
- top_pad="3"
- width="250" />
- <button
- follows="left|top"
- height="20"
- label="Send Message To Region..."
- layout="topleft"
- left_delta="0"
- name="im_btn"
- top_pad="20"
- width="200" />
- <button
- follows="left|top"
- height="20"
- label="Manage Telehub..."
- layout="topleft"
- left_delta="0"
- name="manage_telehub_btn"
- top_pad="20"
- width="150" >
- <button.commit_callback
- function="RegionInfo.ManageTelehub" />
- </button>
-</panel>
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 9dff00fa0b..c5e8bf5803 100644
--- 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
@@ -79,6 +79,8 @@
layout="topleft"
left_delta="0"
multi_select="true"
+ sort_column="0"
+ sort_ascending="true"
name="scripts_list"
top_delta="16"
width="460">
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 78d64620a5..a8cd380f20 100644
--- a/indra/newview/skins/default/xui/en/panel_scrolling_param.xml
+++ b/indra/newview/skins/default/xui/en/panel_scrolling_param.xml
@@ -12,7 +12,7 @@
layout="topleft"
left="12"
name="min param text"
- text_color="EmphasisColor"
+ text_color="White"
font_shadow="hard"
top="120"
width="120" />
@@ -22,7 +22,7 @@
layout="topleft"
left="155"
name="max param text"
- text_color="EmphasisColor"
+ text_color="White"
font_shadow="hard"
top_delta="0"
width="120" />
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 0a9c70303e..557b04d281 100644
--- 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
@@ -9,7 +9,7 @@
left="0"
name="sidetray_tab_panel">
<text
- follows="left|top"
+ follows="left|top|right"
font="SansSerifHuge"
height="16"
layout="topleft"
@@ -20,7 +20,32 @@
value="Side Panel"
width="255" />
<button
- follows="left|right|top"
+ follows="right|top"
+ height="16"
+ image_selected="Sidebar_Icon_Undock_Press"
+ image_unselected="Sidebar_Icon_Undock_Foreground"
+ image_disabled="Sidebar_Icon_Undock_Press"
+ layout="topleft"
+ name="undock"
+ top="10"
+ right="-28"
+ width="16"
+ tool_tip="Undock" />
+ <button
+ follows="right|top"
+ height="16"
+ image_selected="Sidebar_Icon_Dock_Press"
+ image_unselected="Sidebar_Icon_Dock_Foreground"
+ image_disabled="Sidebar_Icon_Dock_Press"
+ layout="topleft"
+ name="dock"
+ top="10"
+ right="-28"
+ width="16"
+ tool_tip="Dock"
+ visible="false" />
+ <button
+ follows="right|top"
height="16"
image_selected="Icon_Help_Press"
image_unselected="Icon_Help_Foreground"
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 ab3cc036d5..72b2f5e84f 100644
--- a/indra/newview/skins/default/xui/en/panel_sidetray_home_tab.xml
+++ b/indra/newview/skins/default/xui/en/panel_sidetray_home_tab.xml
@@ -17,15 +17,18 @@
left="10"
name="stack"
top_pad="10"
+ orientation="vertical"
width="313">
<layout_panel
height="550"
layout="topleft"
left_delta="0"
name="browser_layout"
+ orientation="vertical"
top_delta="0"
width="313">
<web_browser
+ trusted_content="true"
border_visible="false"
follows="all"
height="550"
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 43513e1ab6..4ccd7b3629 100644
--- a/indra/newview/skins/default/xui/en/panel_status_bar.xml
+++ b/indra/newview/skins/default/xui/en/panel_status_bar.xml
@@ -14,14 +14,6 @@
tab_stop="false"
width="1000">
<panel.string
- name="StatBarDaysOfWeek">
- Sunday:Monday:Tuesday:Wednesday:Thursday:Friday:Saturday
- </panel.string>
- <panel.string
- name="StatBarMonthsOfYear">
- January:February:March:April:May:June:July:August:September:October:November:December
- </panel.string>
- <panel.string
name="packet_loss_tooltip">
Packet Loss
</panel.string>
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 daa4356c83..bf09836e87 100644
--- a/indra/newview/skins/default/xui/en/panel_teleport_history.xml
+++ b/indra/newview/skins/default/xui/en/panel_teleport_history.xml
@@ -5,8 +5,6 @@
background_visible="true"
bg_alpha_color="DkGray">
<accordion
- no_matched_tabs_text.value="Didn't find what you're looking for? Try [secondlife:///app/search/places/[SEARCH_TERM] Search]."
- no_visible_tabs_text.value="Teleport history is empty. Try [secondlife:///app/search/places/ Search]."
follows="left|top|right|bottom"
height="373"
layout="topleft"
@@ -16,6 +14,12 @@
background_visible="true"
bg_alpha_color="DkGray2"
width="307">
+ <no_matched_tabs_text
+ name="no_matched_teleports_msg"
+ value="Didn't find what you're looking for? Try [secondlife:///app/search/places/[SEARCH_TERM] Search]." />
+ <no_visible_tabs_text
+ name="no_teleports_msg"
+ value="Teleport history is empty. Try [secondlife:///app/search/places/ Search]." />
<accordion_tab
layout="topleft"
name="today"
@@ -167,7 +171,7 @@
top="1"
width="31" />
<icon
- follows="bottom|left"
+ follows="bottom|left|right"
height="25"
image_name="Toolbar_Right_Off"
layout="topleft"
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 c5f3fcc27d..c89e1dc215 100644
--- a/indra/newview/skins/default/xui/en/panel_teleport_history_item.xml
+++ b/indra/newview/skins/default/xui/en/panel_teleport_history_item.xml
@@ -41,7 +41,7 @@
height="20"
layout="topleft"
left_pad="5"
- allow_html="false"
+ parse_urls="false"
use_ellipses="true"
name="region"
text_color="white"
@@ -56,6 +56,7 @@
left_pad="5"
right="-3"
name="profile_btn"
+ tab_stop="false"
tool_tip="Show item info"
top="1"
visible="false"
diff --git a/indra/newview/skins/default/xui/en/panel_toast.xml b/indra/newview/skins/default/xui/en/panel_toast.xml
index 92b4c17247..42f64c3a76 100644
--- a/indra/newview/skins/default/xui/en/panel_toast.xml
+++ b/indra/newview/skins/default/xui/en/panel_toast.xml
@@ -31,8 +31,6 @@
can_close="false"
can_dock="false"
border_visible = "false"
- border_drop_shadow_visible = "false"
- drop_shadow_visible = "false"
border = "false"
>
<panel
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 d3fb77f135..30d3064e14 100644
--- a/indra/newview/skins/default/xui/en/panel_topinfo_bar.xml
+++ b/indra/newview/skins/default/xui/en/panel_topinfo_bar.xml
@@ -10,7 +10,6 @@
name="topinfo_bar"
width="1024">
<button
- border="true"
follows="left|top"
height="16"
hover_glow_amount="0.15"
@@ -37,7 +36,7 @@
enabled="true"
follows="right|top"
height="18"
- image_name="Parcel_VoiceNo_Light"
+ image_name="Parcel_VoiceNo_Dark"
name="voice_icon"
top="1"
visible="false"
@@ -46,7 +45,7 @@
<icon
follows="right|top"
height="18"
- image_name="Parcel_FlyNo_Light"
+ image_name="Parcel_FlyNo_Dark"
name="fly_icon"
top="1"
visible="false"
@@ -55,7 +54,7 @@
<icon
follows="right|top"
height="18"
- image_name="Parcel_PushNo_Light"
+ image_name="Parcel_PushNo_Dark"
name="push_icon"
top="1"
visible="false"
@@ -64,7 +63,7 @@
<icon
follows="right|top"
height="18"
- image_name="Parcel_BuildNo_Light"
+ image_name="Parcel_BuildNo_Dark"
name="build_icon"
top="1"
visible="false"
@@ -73,7 +72,7 @@
<icon
follows="right|top"
height="18"
- image_name="Parcel_ScriptsNo_Light"
+ image_name="Parcel_ScriptsNo_Dark"
name="scripts_icon"
top="1"
visible="false"
diff --git a/indra/newview/skins/default/xui/en/sidepanel_appearance.xml b/indra/newview/skins/default/xui/en/sidepanel_appearance.xml
index e189d11d35..c1c0f07304 100644
--- a/indra/newview/skins/default/xui/en/sidepanel_appearance.xml
+++ b/indra/newview/skins/default/xui/en/sidepanel_appearance.xml
@@ -21,6 +21,9 @@ width="333">
<string
name="Now Wearing"
value="Now wearing..." />
+ <string
+ name="Changing outfits"
+ value="Changing outfits" />
<panel
background_opaque="true"
background_visible="true"
@@ -49,20 +52,20 @@ width="333">
visible="false" />
<icon
follows="top|left"
- height="32"
- image_name="TabIcon_Appearance_Off"
+ height="31"
+ image_name="Shirt_Large"
name="outfit_icon"
mouse_opaque="false"
visible="true"
- left="0"
+ left="1"
top="0"
- width="32" />
+ width="31" />
<text
- font="SansSerifSmallBold"
+ font="SansSerifSmall"
text_color="EmphasisColor"
width="300"
height="10"
- follows="top|left"
+ follows="top|left|right"
layout="topleft"
left="35"
top="3"
@@ -78,25 +81,25 @@ width="333">
top="15"
use_ellipses="true"
width="230"
- follows="top|left"
+ follows="top|left|right"
word_wrap="false"
mouse_opaque="false"
name="currentlook_name">
MyOutfit With a really Long Name like MOOSE
</text>
<button
- follows="left|top"
- height="23"
+ follows="top|right"
+ height="28"
image_overlay="Edit_Wrench"
label=""
layout="topleft"
left="265"
name="edit_outfit_btn"
tool_tip="Edit this outfit"
- top="7"
- width="30" />
+ top="3"
+ width="28" />
<loading_indicator
- follows="left|top"
+ follows="top|right"
height="24"
layout="topleft"
left="268"
diff --git a/indra/newview/skins/default/xui/en/sidepanel_inventory.xml b/indra/newview/skins/default/xui/en/sidepanel_inventory.xml
index 6c9acae35e..f3c6895cee 100644
--- a/indra/newview/skins/default/xui/en/sidepanel_inventory.xml
+++ b/indra/newview/skins/default/xui/en/sidepanel_inventory.xml
@@ -31,77 +31,122 @@
height="545"
width="330" />
<panel
+ follows="bottom|left|right"
height="25"
layout="topleft"
name="button_panel"
left="9"
top_pad="-2"
width="313">
- <button
- enabled="true"
- follows="bottom|left"
- height="23"
- label="Profile"
- layout="topleft"
- left="0"
- name="info_btn"
- tool_tip="Show object profile"
- top="0"
- width="102" />
- <button
- enabled="true"
- follows="bottom|left"
- height="23"
- label="Share"
- layout="topleft"
- left="105"
- name="share_btn"
- tool_tip="Share an inventory item"
- top="0"
- width="102" />
- <button
- enabled="true"
- follows="bottom|left"
- height="23"
- label="Shop"
- layout="topleft"
- left="210"
- name="shop_btn"
- tool_tip="Open Marketplace webpage"
- top="0"
- width="102" />
- <button
- enabled="false"
- follows="bottom|left"
- height="23"
- label="Wear"
- layout="topleft"
- left="210"
- name="wear_btn"
- tool_tip="Wear seleceted outfit"
- top="0"
- width="102" />
- <button
- enabled="false"
- follows="bottom|left"
- height="23"
- label="Play"
- layout="topleft"
- name="play_btn"
- left="210"
- top="0"
- width="102" />
- <button
- enabled="false"
- follows="bottom|left"
- height="23"
- label="Teleport"
- layout="topleft"
- left="210"
- name="teleport_btn"
- tool_tip="Teleport to the selected area"
- top="0"
- width="102" />
+ <layout_stack
+ follows="bottom|left|right"
+ height="23"
+ layout="topleft"
+ mouse_opaque="false"
+ name="button_panel_ls"
+ left="0"
+ orientation="horizontal"
+ top="0"
+ width="313">
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left="0"
+ mouse_opaque="false"
+ name="info_btn_lp"
+ user_resize="false"
+ auto_resize="true"
+ width="103">
+ <button
+ enabled="true"
+ follows="bottom|left|right"
+ height="23"
+ label="Profile"
+ layout="topleft"
+ left="1"
+ name="info_btn"
+ tool_tip="Show object profile"
+ top="0"
+ width="102" />
+ </layout_panel>
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left_pad="3"
+ mouse_opaque="false"
+ name="share_btn_lp"
+ user_resize="false"
+ auto_resize="true"
+ width="102">
+ <button
+ enabled="true"
+ follows="bottom|left|right"
+ height="23"
+ label="Share"
+ layout="topleft"
+ left="0"
+ name="share_btn"
+ tool_tip="Share an inventory item"
+ top="0"
+ width="102" />
+ </layout_panel>
+ <layout_panel
+ follows="bottom|left|right"
+ height="23"
+ layout="bottomleft"
+ left_pad="3"
+ mouse_opaque="false"
+ name="shop_btn_lp"
+ user_resize="false"
+ auto_resize="true"
+ width="102">
+ <button
+ enabled="true"
+ follows="bottom|left|right"
+ height="23"
+ label="Shop"
+ layout="topleft"
+ left="0"
+ name="shop_btn"
+ tool_tip="Open Marketplace webpage"
+ top="0"
+ width="102" />
+ <button
+ enabled="false"
+ follows="bottom|left|right"
+ height="23"
+ label="Wear"
+ layout="topleft"
+ left="0"
+ name="wear_btn"
+ tool_tip="Wear seleceted outfit"
+ top="0"
+ width="102" />
+ <button
+ enabled="false"
+ follows="bottom|left|right"
+ height="23"
+ label="Play"
+ layout="topleft"
+ name="play_btn"
+ left="0"
+ top="0"
+ width="102" />
+ <button
+ enabled="false"
+ follows="bottom|left|right"
+ height="23"
+ label="Teleport"
+ layout="topleft"
+ left="0"
+ name="teleport_btn"
+ tool_tip="Teleport to the selected area"
+ top="0"
+ width="102" />
+ </layout_panel>
+ </layout_stack>
</panel>
</panel>
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 b3bc618eec..182bc29e27 100644
--- a/indra/newview/skins/default/xui/en/sidepanel_item_info.xml
+++ b/indra/newview/skins/default/xui/en/sidepanel_item_info.xml
@@ -1,12 +1,11 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel
- auto_tile="true"
+ follows="all"
height="570"
layout="topleft"
name="item properties"
help_topic="item_properties"
- save_rect="true"
- title="Object Profile"
+ title="Item Profile"
width="333">
<panel.string
name="unknown">
@@ -28,6 +27,14 @@
name="acquiredDate">
[wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local]
</panel.string>
+ <panel.string
+ name="origin_inventory">
+ (Inventory)
+ </panel.string>
+ <panel.string
+ name="origin_inworld">
+ (Inworld)
+ </panel.string>
<icon
follows="top|right"
height="18"
@@ -39,7 +46,7 @@
top="8"
width="18" />
<button
- follows="top|right"
+ follows="top|left"
height="24"
image_hover_unselected="BackButton_Over"
image_pressed="BackButton_Press"
@@ -60,343 +67,354 @@
text_color="LtGray"
top="2"
use_ellipses="true"
- value="Object Profile"
+ value="Item Profile"
width="275" />
<text
- follows="top|left"
+ follows="top|left|right"
height="13"
layout="topleft"
left="45"
- name="where"
+ name="origin"
text_color="LtGray_50"
+ use_ellipses="true"
value="(Inventory)"
- width="150" />
- <panel
- follows="all"
- height="493"
- label=""
- layout="topleft"
- left="9"
- help_topic=""
- top="45"
- width="313"
- background_visible="true"
- bg_alpha_color="DkGray2">
- <text
- type="string"
- length="1"
- follows="left|top"
- height="10"
- layout="topleft"
- left="5"
- name="LabelItemNameTitle"
- top="10"
- width="78">
- Name:
- </text>
- <line_editor
- border_style="line"
- border_thickness="1"
- follows="left|top|right"
- height="20"
- layout="topleft"
- left_delta="78"
- max_length="63"
- name="LabelItemName"
- top_delta="0"
- width="225" />
- <text
- type="string"
- length="1"
- follows="left|top"
- height="10"
- layout="topleft"
- left="5"
- name="LabelItemDescTitle"
- top_pad="10"
- width="78">
- Description:
- </text>
- <line_editor
- border_style="line"
- border_thickness="1"
- follows="left|top|right"
- height="23"
- layout="topleft"
- left_delta="78"
- max_length="127"
- name="LabelItemDesc"
- top_delta="-5"
- width="225" />
- <text
- type="string"
- length="1"
- follows="left|top"
- height="23"
- layout="topleft"
- left="5"
- name="LabelCreatorTitle"
- top_pad="10"
- width="78">
- Creator:
- </text>
- <avatar_icon
- follows="top|left"
- height="20"
- default_icon_name="Generic_Person"
- layout="topleft"
- left_pad="0"
- top_delta="-6"
- mouse_opaque="true"
- width="20" />
- <text
- type="string"
- follows="left|right|top"
- font="SansSerifSmall"
- height="15"
+ width="275" />
+ <scroll_container
+ color="DkGray2"
+ follows="all"
layout="topleft"
- left_pad="5"
- name="LabelCreatorName"
- top_delta="6"
- width="140">
- </text>
- <button
- follows="top|right"
- height="16"
- image_selected="Inspector_I"
- image_unselected="Inspector_I"
- layout="topleft"
- right="-5"
- name="BtnCreator"
- top_delta="-6"
- width="16" />
- <text
- type="string"
- length="1"
- follows="left|top"
- height="23"
- layout="topleft"
- left="5"
- name="LabelOwnerTitle"
- top_pad="10"
- width="78">
- Owner:
- </text>
- <avatar_icon
- follows="top|left"
- height="20"
- default_icon_name="Generic_Person"
- layout="topleft"
- left_pad="0"
- top_delta="-6"
- mouse_opaque="true"
- width="20" />
- <text
- type="string"
- follows="left|right|top"
- font="SansSerifSmall"
- height="15"
- layout="topleft"
- left_pad="5"
- name="LabelOwnerName"
- top_delta="6"
- width="140">
- </text>
- <button
- follows="top|right"
- height="16"
- image_selected="Inspector_I"
- image_unselected="Inspector_I"
- layout="topleft"
- right="-5"
- name="BtnOwner"
- top_delta="-3"
- width="16" />
- <text
- type="string"
- length="1"
- follows="left|top"
- height="23"
- layout="topleft"
- left="5"
- name="LabelAcquiredTitle"
-top_pad="10"
- width="78">
- Acquired:
- </text>
- <text
- type="string"
- length="1"
- follows="left|top"
- height="23"
- layout="topleft"
- left_delta="78"
- name="LabelAcquiredDate"
- top_delta="0"
- width="222">
- </text>
- <panel
- border="false"
- follows="left|top"
+ left="9"
+ name="item_profile_scroll"
+ opaque="true"
+ height="493"
+ width="313"
+ top="45">
+ <panel
+ follows="left|top|right"
+ height="390"
+ help_topic=""
+ label=""
+ layout="topleft"
+ left="0"
+ name="item_profile"
+ top="0"
+ width="295">
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="5"
+ name="LabelItemNameTitle"
+ top="10"
+ width="78">
+ Name:
+ </text>
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ follows="left|top|right"
+ height="20"
+ layout="topleft"
+ left_delta="78"
+ max_length="63"
+ name="LabelItemName"
+ top_delta="0"
+ width="210" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="10"
+ layout="topleft"
+ left="5"
+ name="LabelItemDescTitle"
+ top_pad="10"
+ width="78">
+ Description:
+ </text>
+ <line_editor
+ border_style="line"
+ border_thickness="1"
+ follows="left|top|right"
+ height="23"
+ layout="topleft"
+ left_delta="78"
+ max_length="127"
+ name="LabelItemDesc"
+ top_delta="-5"
+ width="210" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="23"
+ layout="topleft"
+ left="5"
+ name="LabelCreatorTitle"
+ top_pad="10"
+ width="78">
+ Creator:
+ </text>
+ <avatar_icon
+ follows="top|left"
+ height="20"
+ default_icon_name="Generic_Person"
+ layout="topleft"
+ left_pad="0"
+ top_delta="-6"
+ mouse_opaque="true"
+ width="20" />
+ <text
+ type="string"
+ follows="left|right|top"
+ font="SansSerifSmall"
+ height="15"
layout="topleft"
- mouse_opaque="false"
- name="perms_inv"
- left="0"
- top_pad="25"
- height="155"
- width="313">
- <text
- type="string"
- length="1"
- left="10"
- top_pad="13"
- text_color="EmphasisColor"
- height="15"
+ left_pad="5"
+ name="LabelCreatorName"
+ top_delta="6"
+ width="140">
+ </text>
+ <button
+ follows="top|right"
+ height="16"
+ image_selected="Inspector_I"
+ image_unselected="Inspector_I"
+ layout="topleft"
+ right="-5"
+ name="BtnCreator"
+ top_delta="-6"
+ width="16" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="23"
+ layout="topleft"
+ left="5"
+ name="LabelOwnerTitle"
+ top_pad="10"
+ width="78">
+ Owner:
+ </text>
+ <avatar_icon
+ follows="top|left"
+ height="20"
+ default_icon_name="Generic_Person"
+ layout="topleft"
+ left_pad="0"
+ top_delta="-6"
+ mouse_opaque="true"
+ width="20" />
+ <text
+ type="string"
+ follows="left|right|top"
+ font="SansSerifSmall"
+ height="15"
+ layout="topleft"
+ left_pad="5"
+ name="LabelOwnerName"
+ top_delta="6"
+ width="140">
+ </text>
+ <button
+ follows="top|right"
+ height="16"
+ image_selected="Inspector_I"
+ image_unselected="Inspector_I"
+ layout="topleft"
+ right="-5"
+ name="BtnOwner"
+ top_delta="-3"
+ width="16" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="23"
+ layout="topleft"
+ left="5"
+ name="LabelAcquiredTitle"
+ top_pad="10"
+ width="78">
+ Acquired:
+ </text>
+ <text
+ type="string"
+ length="1"
+ follows="left|top|right"
+ height="23"
+ layout="topleft"
+ left_delta="78"
+ name="LabelAcquiredDate"
+ top_delta="0"
+ width="210">
+ </text>
+ <panel
+ border="false"
follows="left|top|right"
layout="topleft"
- name="perm_modify"
- width="200">
- You can:
+ mouse_opaque="false"
+ name="perms_inv"
+ left="0"
+ top_pad="25"
+ height="155"
+ width="313">
+ <text
+ type="string"
+ length="1"
+ left="10"
+ top_pad="13"
+ text_color="EmphasisColor"
+ height="15"
+ follows="left|top|right"
+ layout="topleft"
+ name="perm_modify"
+ width="200">
+ You can:
+ </text>
+ <check_box
+ height="18"
+ label="Modify"
+ layout="topleft"
+ left="20"
+ name="CheckOwnerModify"
+ top_pad="0"
+ width="90" />
+ <check_box
+ height="18"
+ label="Copy"
+ layout="topleft"
+ left_pad="0"
+ name="CheckOwnerCopy"
+ width="90" />
+ <check_box
+ height="18"
+ label="Transfer"
+ layout="topleft"
+ left_pad="0"
+ name="CheckOwnerTransfer"
+ width="106" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="10"
+ name="AnyoneLabel"
+ top_pad="8"
+ width="100">
+ Anyone:
</text>
- <check_box
- height="18"
- label="Modify"
- layout="topleft"
- left="20"
- name="CheckOwnerModify"
- top_pad="0"
- width="90" />
- <check_box
- height="18"
- label="Copy"
- layout="topleft"
- left_pad="0"
- name="CheckOwnerCopy"
- width="90" />
- <check_box
- height="18"
- label="Transfer"
- layout="topleft"
- left_pad="0"
- name="CheckOwnerTransfer"
- width="106" />
- <text
- type="string"
- length="1"
- follows="left|top"
- height="16"
- layout="topleft"
- left="10"
- name="AnyoneLabel"
- top_pad="8"
- width="100">
- Anyone:
- </text>
- <check_box
- height="18"
- label="Copy"
- layout="topleft"
- left_pad="0"
- name="CheckEveryoneCopy"
- top_delta="-2"
- width="150" />
- <text
- type="string"
- length="1"
- follows="left|top"
- height="16"
- layout="topleft"
- left="10"
- name="GroupLabel"
- top_pad="8"
- width="100">
- Group:
- </text>
- <check_box
- height="18"
- label="Share"
- layout="topleft"
- left_pad="0"
- top_delta="-2"
- name="CheckShareWithGroup"
- tool_tip="Allow all members of the set group to share your modify permissions for this object. You must Deed to enable role restrictions."
- width="150" />
- <text
- type="string"
- length="1"
- follows="left|top"
- height="16"
- layout="topleft"
- left="10"
- name="NextOwnerLabel"
- top_pad="8"
- width="200"
- word_wrap="true">
- Next owner:
- </text>
- <check_box
- height="18"
- label="Modify"
- layout="topleft"
- left="20"
- top_pad="0"
- name="CheckNextOwnerModify"
- width="90" />
- <check_box
- height="18"
- label="Copy"
- layout="topleft"
- left_pad="0"
- name="CheckNextOwnerCopy"
- width="90" />
- <check_box
- height="18"
- label="Transfer"
- layout="topleft"
- left_pad="0"
- name="CheckNextOwnerTransfer"
- tool_tip="Next owner can give away or resell this object"
- width="106" />
- </panel>
- <check_box
- height="18"
- label="For Sale"
- layout="topleft"
- left="20"
- name="CheckPurchase"
- top_pad="20"
- width="100" />
- <combo_box
- height="23"
- left_pad="0"
- layout="topleft"
- follows="left|top"
- name="combobox sale copy"
- width="170">
- <combo_box.item
- label="Copy"
- name="Copy"
- value="Copy" />
- <combo_box.item
- label="Original"
- name="Original"
- value="Original" />
- </combo_box>
- <spinner
- follows="left|top"
- decimal_digits="0"
- increment="1"
- control_name="Edit Cost"
- name="Edit Cost"
- label="Price: L$"
- label_width="75"
- left="120"
- width="170"
- min_val="0"
- height="23"
- max_val="999999999"
- top_pad="10"/>
- </panel>
+ <check_box
+ height="18"
+ label="Copy"
+ layout="topleft"
+ left_pad="0"
+ name="CheckEveryoneCopy"
+ top_delta="-2"
+ width="150" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="10"
+ name="GroupLabel"
+ top_pad="8"
+ width="100">
+ Group:
+ </text>
+ <check_box
+ height="18"
+ label="Share"
+ layout="topleft"
+ left_pad="0"
+ top_delta="-2"
+ name="CheckShareWithGroup"
+ tool_tip="Allow all members of the set group to share your modify permissions for this object. You must Deed to enable role restrictions."
+ width="150" />
+ <text
+ type="string"
+ length="1"
+ follows="left|top"
+ height="16"
+ layout="topleft"
+ left="10"
+ name="NextOwnerLabel"
+ top_pad="8"
+ width="200"
+ word_wrap="true">
+ Next owner:
+ </text>
+ <check_box
+ height="18"
+ label="Modify"
+ layout="topleft"
+ left="20"
+ top_pad="0"
+ name="CheckNextOwnerModify"
+ width="90" />
+ <check_box
+ height="18"
+ label="Copy"
+ layout="topleft"
+ left_pad="0"
+ name="CheckNextOwnerCopy"
+ width="90" />
+ <check_box
+ height="18"
+ label="Transfer"
+ layout="topleft"
+ left_pad="0"
+ name="CheckNextOwnerTransfer"
+ tool_tip="Next owner can give away or resell this object"
+ width="106" />
+ </panel>
+ <check_box
+ height="18"
+ label="For Sale"
+ layout="topleft"
+ left="20"
+ name="CheckPurchase"
+ top_pad="20"
+ width="100" />
+ <combo_box
+ height="23"
+ left_pad="0"
+ layout="topleft"
+ follows="left|top"
+ name="combobox sale copy"
+ width="170">
+ <combo_box.item
+ label="Copy"
+ name="Copy"
+ value="Copy" />
+ <combo_box.item
+ label="Original"
+ name="Original"
+ value="Original" />
+ </combo_box>
+ <spinner
+ follows="left|top"
+ decimal_digits="0"
+ increment="1"
+ control_name="Edit Cost"
+ name="Edit Cost"
+ label="Price: L$"
+ label_width="75"
+ left="120"
+ width="170"
+ min_val="0"
+ height="23"
+ max_val="999999999"
+ top_pad="10"/>
+ </panel>
+ </scroll_container>
<panel
height="30"
layout="topleft"
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 faa1ae4e8b..843015cb8b 100644
--- a/indra/newview/skins/default/xui/en/sidepanel_task_info.xml
+++ b/indra/newview/skins/default/xui/en/sidepanel_task_info.xml
@@ -1,11 +1,9 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<panel
- auto_tile="true"
height="570"
layout="topleft"
name="object properties"
help_topic="object_properties"
- save_rect="true"
title="Object Profile"
width="333">
<panel.string
@@ -87,7 +85,7 @@
left="45"
name="where"
text_color="LtGray_50"
- value="(inworld)"
+ value="(Inworld)"
width="150" />
<panel
follows="all"
@@ -219,7 +217,6 @@
left_pad="0"
top_delta="0"
name="button set group"
- picture_style="true"
tab_stop="false"
tool_tip="Choose a group to share this object's permissions"
width="10" />
diff --git a/indra/newview/skins/default/xui/en/strings.xml b/indra/newview/skins/default/xui/en/strings.xml
index 68eea8dc9a..6b3fd9ff9e 100644
--- a/indra/newview/skins/default/xui/en/strings.xml
+++ b/indra/newview/skins/default/xui/en/strings.xml
@@ -67,7 +67,7 @@
<string name="SentToInvalidRegion">You were sent to an invalid region.</string>
<string name="TestingDisconnect">Testing viewer disconnect</string>
- <!-- Tooltip, lltooltipview.cpp -->
+ <!-- Tooltip -->
<string name="TooltipPerson">Person</string><!-- Object under mouse pointer is an avatar -->
<string name="TooltipNoName">(no name)</string> <!-- No name on an object -->
<string name="TooltipOwner">Owner:</string> <!-- Owner name follows -->
@@ -83,6 +83,7 @@
<string name="TooltipFlagNoScripts">No Scripts</string>
<string name="TooltipLand">Land:</string>
<string name="TooltipMustSingleDrop">Only a single item can be dragged here</string>
+ <string name="TooltipPrice" value="L$[AMOUNT]: "/>
<!-- tooltips for Urls -->
<string name="TooltipHttpUrl">Click to view this web page</string>
@@ -103,8 +104,6 @@
<string name="TooltipMapUrl">Click to view this location on a map</string>
<string name="TooltipSLAPP">Click to run the secondlife:// command</string>
<string name="CurrentURL" value=" CurrentURL: [CurrentURL]" />
- <string name="TooltipPrice" value=" L$[PRICE]-" />
-
<!-- text for SLURL labels -->
<string name="SLurlLabelTeleport">Teleport to</string>
@@ -136,7 +135,8 @@
<string name="RetrievingData">Retrieving...</string>
<string name="ReleaseNotes">Release Notes</string>
- <string name="RELEASE_NOTES_BASE_URL">http://wiki.secondlife.com/wiki/Release_Notes/</string>
+ <!-- Always mark translate="false" for strings that are nothing but URLs, as they don't need translation. -->
+ <string name="RELEASE_NOTES_BASE_URL" translate="false">http://wiki.secondlife.com/wiki/Release_Notes/</string>
<!-- Indicates something is being loaded. Maybe should be merged with RetrievingData -->
<string name="LoadingData">Loading...</string>
@@ -278,6 +278,7 @@
<!-- world map -->
<string name="texture_loading">Loading...</string>
<string name="worldmap_offline">Offline</string>
+ <string name="worldmap_item_tooltip_format">[AREA] m² L$[PRICE]</string>
<string name="worldmap_results_none_found">None found.</string>
<!-- animations uploading status codes -->
@@ -1812,7 +1813,8 @@ Clears (deletes) the media and all params from the given face.
<string name="skirt">Skirt</string>
<string name="alpha">Alpha</string>
<string name="tattoo">Tattoo</string>
- <string name="invalid">invalid</string>
+ <string name="invalid">invalid</string>
+ <string name="none">none</string>
<!-- Not Worn Wearable Types -->
<string name="shirt_not_worn">Shirt not worn</string>
@@ -1828,9 +1830,26 @@ Clears (deletes) the media and all params from the given face.
<string name="tattoo_not_worn">Tattoo not worn</string>
<string name="invalid_not_worn">invalid</string>
+ <!-- Create new wearable of the specified type -->
+ <string name="create_new_shape">Create new shape</string>
+ <string name="create_new_skin">Create new skin</string>
+ <string name="create_new_hair">Create new hair</string>
+ <string name="create_new_eyes">Create new eyes</string>
+ <string name="create_new_shirt">Create new shirt</string>
+ <string name="create_new_pants">Create new pants</string>
+ <string name="create_new_shoes">Create new shoes</string>
+ <string name="create_new_socks">Create new socks</string>
+ <string name="create_new_jacket">Create new jacket</string>
+ <string name="create_new_gloves">Create new gloves</string>
+ <string name="create_new_undershirt">Create new undershirt</string>
+ <string name="create_new_underpants">Create new underpants</string>
+ <string name="create_new_skirt">Create new skirt</string>
+ <string name="create_new_alpha">Create new alpha</string>
+ <string name="create_new_tattoo">Create new tattoo</string>
+ <string name="create_new_invalid">invalid</string>
+
<!-- Wearable List-->
<string name="NewWearable">New [WEARABLE_ITEM]</string>
- <string name="CreateNewWearable">Create [WEARABLE_TYPE]</string>
<!-- LLGroupNotify -->
<!-- used in the construction of a Group Notice blue dialog box, buttons, tooltip etc. Seems to be no longer utilized by code in Viewer 2.0 -->
@@ -1895,6 +1914,7 @@ Clears (deletes) the media and all params from the given face.
<string name="AnimFlagStop" value=" Stop Animation : " />
<string name="AnimFlagStart" value=" Start Animation : " />
<string name="Wave" value=" Wave " />
+ <string name="GestureActionNone" value="None" />
<string name="HelloAvatar" value=" Hello, avatar! " />
<string name="ViewAllGestures" value=" View All &gt;&gt;" />
<string name="GetMoreGestures" value=" Get More &gt;&gt;" />
@@ -1937,8 +1957,12 @@ Clears (deletes) the media and all params from the given face.
<string name="InvFolder Uncompressed Sounds">Uncompressed Sounds</string>
<string name="InvFolder Animations">Animations</string>
<string name="InvFolder Gestures">Gestures</string>
+ <string name="InvFolder Favorite">Favorites</string>
+ <!-- historically default name of the Favorites folder can start from either "f" or "F" letter.
+ We should localize both of them with the same value -->
<string name="InvFolder favorite">Favorites</string>
<string name="InvFolder Current Outfit">Current Outfit</string>
+ <string name="InvFolder Initial Outfits">Initial Outfits</string>
<string name="InvFolder My Outfits">My Outfits</string>
<string name="InvFolder Accessories">Accessories</string>
@@ -1995,6 +2019,7 @@ Clears (deletes) the media and all params from the given face.
<string name="Stomach">Stomach</string>
<string name="Left Pec">Left Pec</string>
<string name="Right Pec">Right Pec</string>
+ <string name="Invalid Attachment">Invalid Attachment Point</string>
<!-- Avatar age computation, see LLDateUtil::ageFromDate -->
<string name="YearsMonthsOld">[AGEYEARS] [AGEMONTHS] old</string>
@@ -2079,6 +2104,7 @@ Clears (deletes) the media and all params from the given face.
<string name="SummaryForTheWeek" value="Summary for this week, beginning on " />
<string name="NextStipendDay" value="The next stipend day is " />
<string name="GroupIndividualShare" value=" Group Individual Share" />
+ <string name="GroupColumn" value=" Group" />
<string name="Balance">Balance</string>
<string name="Credits">Credits</string>
<string name="Debits">Debits</string>
@@ -2169,8 +2195,8 @@ Clears (deletes) the media and all params from the given face.
<string name="PanelDirEventsDateText">[mthnum,datetime,slt]/[day,datetime,slt]</string>
<!-- panel contents -->
- <string name="PanelContentsNewScript">New Script</string>
<string name="PanelContentsTooltip">Content of object</string>
+ <string name="PanelContentsNewScript">New Script</string>
<!-- panel preferences general -->
<string name="BusyModeResponseDefault">The Resident you messaged is in &apos;busy mode&apos; which means they have requested not to be disturbed. Your message will still be shown in their IM panel for later viewing.</string>
@@ -2199,7 +2225,7 @@ Clears (deletes) the media and all params from the given face.
<!-- panel picks -->
<string name="NoPicksClassifiedsText">You haven't created any Picks or Classifieds. Click the Plus button below to create a Pick or Classified.</string>
- <string name="NoAvatarPicksClassifiedsText">User has no picks or classfields</string>
+ <string name="NoAvatarPicksClassifiedsText">User has no picks or classifieds</string>
<string name="PicksClassifiedsLoadingText">Loading...</string>
<!-- Multi Preview Floater -->
@@ -2256,6 +2282,9 @@ Expected .wav, .tga, .bmp, .jpg, .jpeg, or .bvh
<string name="accel-win-alt">Alt+</string>
<string name="accel-win-shift">Shift+</string>
+ <string name="Esc">Esc</string>
+ <string name="Home">Home</string>
+
<!-- Previews -->
<string name="FileSaved">File Saved</string>
<string name="Receiving">Receiving</string>
@@ -2976,6 +3005,7 @@ If you continue to receive this message, contact the [SUPPORT_SITE].
<string name="IM_default_text_label">Click here to instant message.</string>
<string name="IM_to_label">To</string>
<string name="IM_moderator_label">(Moderator)</string>
+ <string name="Saved_message">(Saved [LONG_TIMESTAMP])</string>
<!-- voice calls -->
<string name="answered_call">Your call has been answered</string>
@@ -2998,6 +3028,9 @@ If you continue to receive this message, contact the [SUPPORT_SITE].
<string name="conference-title">
Ad-hoc Conference
</string>
+ <string name="conference-title-incoming">
+ Conference with [AGENT_NAME]
+ </string>
<string name="inventory_item_offered-im">
Inventory item offered
</string>
@@ -3006,6 +3039,9 @@ If you continue to receive this message, contact the [SUPPORT_SITE].
</string>
+ <string name="no_session_message">
+ (IM Session Doesn't Exist)
+ </string>
<string name="only_user_message">
You are the only user in this session.
</string>
@@ -3117,6 +3153,7 @@ If you continue to receive this message, contact the [SUPPORT_SITE].
<string name="group_role_everyone">Everyone</string>
<string name="group_role_officers">Officers</string>
<string name="group_role_owners">Owners</string>
+ <string name="group_member_status_online">Online</string>
<string name="uploading_abuse_report">Uploading...
@@ -3139,7 +3176,9 @@ Abuse Report</string>
<string name="New Alpha">New Alpha</string>
<string name="New Tattoo">New Tattoo</string>
<string name="Invalid Wearable">Invalid Wearable</string>
+ <string name="New Gesture">New Gesture</string>
<string name="New Script">New Script</string>
+ <string name="New Note">New Note</string>
<string name="New Folder">New Folder</string>
<string name="Contents">Contents</string>
<string name="Gesture">Gesture</string>
@@ -3161,13 +3200,20 @@ Abuse Report</string>
<string name="Male - Stick tougue out">Male - Stick tougue out</string>
<string name="Male - Wow">Male - Wow</string>
+ <string name="Female - Chuckle">Female - Chuckle</string>
+ <string name="Female - Cry">Female - Cry</string>
+ <string name="Female - Embarrassed">Female - Embarrassed</string>
<string name="Female - Excuse me">Female - Excuse me</string>
<string name="Female - Get lost">Female - Get lost</string>
<string name="Female - Blow kiss">Female - Blow kiss</string>
<string name="Female - Boo">Female - Boo</string>
<string name="Female - Bored">Female - Bored</string>
<string name="Female - Hey">Female - Hey</string>
+ <string name="Female - Hey baby">Female - Hey baby</string>
<string name="Female - Laugh">Female - Laugh</string>
+ <string name="Female - Looking good">Female - Looking good</string>
+ <string name="Female - Over here">Female - Over here</string>
+ <string name="Female - Please">Female - Please</string>
<string name="Female - Repulsed">Female - Repulsed</string>
<string name="Female - Shrug">Female - Shrug</string>
<string name="Female - Stick tougue out">Female - Stick tougue out</string>
@@ -3200,4 +3246,29 @@ Abuse Report</string>
<string name="dateTimeDayFormat">[MDAY]</string>
<string name="dateTimeAM">AM</string>
<string name="dateTimePM">PM</string>
+
+ <!-- currency formatting -->
+ <string name="LocalEstimateUSD">US$ [AMOUNT]</string>
+
+ <!-- Group Profile roles and powers -->
+ <string name="Membership">Membership</string>
+ <string name="Roles">Roles</string>
+ <string name="Group Identity">Group Identity</string>
+ <string name="Parcel Management">Parcel Management</string>
+ <string name="Parcel Identity">Parcel Identity</string>
+ <string name="Parcel Settings">Parcel Settings</string>
+ <string name="Parcel Powers">Parcel Powers</string>
+ <string name="Parcel Access">Parcel Access</string>
+ <string name="Parcel Content">Parcel Content</string>
+ <string name="Object Management">Object Management</string>
+ <string name="Accounting">Accounting</string>
+ <string name="Notices">Notices</string>
+ <string name="Chat">Chat</string>
+
+ <!-- Question strings for delete items notifications -->
+ <string name="DeleteItems">Delete selected items?</string>
+ <string name="DeleteItem">Delete selected item?</string>
+
+ <string name="EmptyOutfitText">There are no items in this outfit</string>
+
</strings>
diff --git a/indra/newview/skins/default/xui/en/widgets/accordion.xml b/indra/newview/skins/default/xui/en/widgets/accordion.xml
index 19f8234389..1a66f0f5c5 100644
--- a/indra/newview/skins/default/xui/en/widgets/accordion.xml
+++ b/indra/newview/skins/default/xui/en/widgets/accordion.xml
@@ -3,6 +3,12 @@
height="100"
name="accordion"
width="200">
+ <!-- It is possible to override attributes of "no_matched_tabs_text" and "no_visible_tabs_text" with a short form:
+ no_matched_tabs_text.value="Overridden text" (placed among <accordion> attributes)
+ But unfortunatly such form is not supported by VLT Tool. It requires to have the overridden "value"
+ attribute declared in tags below ("no_matched_tabs_text" & "no_visible_tabs_text").
+ It looks less clean but we have to use "long" form for these messages to enable automated translation with VLT.
+ -->
<no_matched_tabs_text
follows="all"
height="100"
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 102dc0c16d..6f68c99021 100644
--- a/indra/newview/skins/default/xui/en/widgets/accordion_tab.xml
+++ b/indra/newview/skins/default/xui/en/widgets/accordion_tab.xml
@@ -9,6 +9,6 @@
header_image_over="Accordion_Over"
header_image_pressed="Accordion_Press"
header_image_focused="Accordion_Selected"
- header_text_color="LtGray"
+ header_text_color="AccordionHeaderTextColor"
font="SansSerif"
/>
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
new file mode 100644
index 0000000000..0eec002006
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/widgets/bodyparts_list_item.xml
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<bodyparts_list_item
+ follows="top|right|left"
+ height="23"
+ layout="topleft"
+ left="0"
+ name="wearable_item"
+ bottom="0"
+ width="380">
+ <item_icon
+ height="16"
+ follows="top|left"
+ image_name="Inv_Object"
+ layout="topleft"
+ left="0"
+ name="item_icon"
+ top="2"
+ width="16" />
+ <item_name
+ follows="left|right"
+ height="16"
+ layout="topleft"
+ left="21"
+ parse_urls="false"
+ use_ellipses="true"
+ name="item_name"
+ text_color="white"
+ top="5"
+ value="..."
+ width="359" />
+ <lock_panel
+ background_visible="false"
+ name="btn_lock"
+ layout="topleft"
+ follows="top|right"
+ top="0"
+ left="0"
+ height="23"
+ width="23"
+ tab_stop="false"
+ tool_tip="You don't have permission to edit"/>
+ <lock_icon
+ name="btn_lock1"
+ layout="topleft"
+ follows="top|right"
+ image_name="Locked_Icon"
+ top="2"
+ left="5"
+ height="13"
+ width="9"
+ tab_stop="false" />
+ <edit_panel
+ background_visible="false"
+ name="btn_edit_panel"
+ layout="topleft"
+ follows="top|right"
+ top="1"
+ left="17"
+ height="23"
+ width="26"
+ tab_stop="false"/>
+ <edit_btn
+ name="btn_edit"
+ layout="topleft"
+ follows="top|right"
+ image_overlay="Edit_Wrench"
+ top="0"
+ left="0"
+ height="23"
+ width="23"
+ tab_stop="false"
+ tool_tip="Edit this shape"/>
+</bodyparts_list_item>
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 726ae803fe..7a60bee338 100644
--- a/indra/newview/skins/default/xui/en/widgets/check_box.xml
+++ b/indra/newview/skins/default/xui/en/widgets/check_box.xml
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<check_box text_enabled_color="LabelTextColor"
- text_disabled_color="LabelDisabledColor"
- font="SansSerifSmall"
+<check_box font="SansSerifSmall"
follows="left|top">
- <check_box.label_text name="checkbox label" />
+ <check_box.label_text name="checkbox label"
+ text_color="LabelTextColor"
+ text_readonly_color="LabelDisabledColor"/>
<check_box.check_button name="CheckboxCtrl Button"
commit_on_return="false"
label=""
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
new file mode 100644
index 0000000000..96d72c78a6
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/widgets/clothing_list_item.xml
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<clothing_list_item
+ follows="top|right|left"
+ height="23"
+ layout="topleft"
+ left="0"
+ name="wearable_item"
+ bottom="0"
+ width="380">
+ <lock_icon
+ height="16"
+ follows="top|left"
+ image_name="Inv_Object"
+ layout="topleft"
+ left="21"
+ name="item_icon"
+ top="2"
+ width="16" />
+ <item_name
+ follows="left|right"
+ height="16"
+ layout="topleft"
+ left="42"
+ parse_urls="false"
+ use_ellipses="true"
+ name="item_name"
+ text_color="white"
+ top="5"
+ value="..."
+ width="359" />
+ <up_btn
+ name="btn_move_up"
+ layout="topleft"
+ follows="top|right"
+ image_overlay="UpArrow_Off"
+ top="1"
+ left="0"
+ height="23"
+ width="23"
+ tab_stop="false" />
+ <down_btn
+ name="btn_move_down"
+ layout="topleft"
+ follows="top|right"
+ image_overlay="DownArrow_Off"
+ top="1"
+ left="26"
+ height="23"
+ width="23"
+ tab_stop="false" />
+ <lock_panel
+ background_visible="false"
+ name="btn_lock"
+ layout="topleft"
+ follows="top|right"
+ top="0"
+ left="0"
+ height="23"
+ width="23"
+ tab_stop="false"
+ tool_tip="You don't have permission to edit"/>
+ <lock_icon
+ name="btn_lock1"
+ layout="topleft"
+ follows="top|right"
+ image_name="Locked_Icon"
+ top="2"
+ left="5"
+ height="13"
+ width="9"
+ tab_stop="false" />
+ <edit_panel
+ background_visible="false"
+ name="btn_edit_panel"
+ layout="topleft"
+ follows="top|right"
+ top="0"
+ left="26"
+ height="23"
+ width="26"
+ tab_stop="false"/>
+ <edit_btn
+ name="btn_edit"
+ layout="topleft"
+ follows="top|right"
+ image_overlay="Edit_Wrench"
+ top="1"
+ left="0"
+ height="23"
+ width="23"
+ tab_stop="false"
+ tool_tip="Edit this wearable"/>
+</clothing_list_item>
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
new file mode 100644
index 0000000000..0534485ddd
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/widgets/deletable_wearable_list_item.xml
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<deletable_wearable_list_item
+ follows="top|right|left"
+ height="23"
+ layout="topleft"
+ left="0"
+ name="deletable_wearable_item"
+ bottom="0"
+ width="380">
+ <delete_btn
+ name="btn_delete"
+ layout="topleft"
+ follows="top|left"
+ image_unselected="Toast_CloseBtn"
+ image_selected="Toast_CloseBtn"
+ top="3"
+ left="0"
+ height="18"
+ width="18"
+ tab_stop="false"
+ tool_tip="Remove from outfit"/>
+ <item_icon
+ height="16"
+ follows="top|left"
+ image_name="Inv_Object"
+ layout="topleft"
+ left="24"
+ name="item_icon"
+ top="2"
+ width="16" />
+ <item_name
+ follows="left|right"
+ height="16"
+ layout="topleft"
+ left="45"
+ parse_urls="false"
+ use_ellipses="true"
+ name="item_name"
+ text_color="white"
+ top="5"
+ value="..."
+ width="359" />
+</deletable_wearable_list_item>
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
new file mode 100644
index 0000000000..6c60624805
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/widgets/dummy_clothing_list_item.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<dummy_clothing_list_item
+ follows="top|right|left"
+ height="23"
+ layout="topleft"
+ left="0"
+ name="dummy_clothing_item"
+ bottom="0"
+ width="380">
+ <item_icon
+ height="16"
+ color="0.75 0.75 0.75 1"
+ follows="top|left"
+ image_name="Inv_Object"
+ layout="topleft"
+ left="20"
+ name="item_icon"
+ top="2"
+ width="16" />
+ <item_name
+ follows="left|right"
+ height="16"
+ layout="topleft"
+ left="41"
+ parse_urls="false"
+ use_ellipses="true"
+ name="item_name"
+ text_color="LtGray_50"
+ top="4"
+ value="..."
+ width="359" />
+ <add_panel
+ name="btn_add_panel"
+ layout="topleft"
+ follows="top|right"
+ top="0"
+ left="0"
+ height="23"
+ width="26"
+ tab_stop="false"/>
+ <add_btn
+ name="btn_add"
+ layout="topleft"
+ follows="top|right"
+ image_overlay="AddItem_Off"
+ top="0"
+ left="0"
+ height="23"
+ width="23"
+ tab_stop="false"
+ tool_tip="Add more items of this type" />
+</dummy_clothing_list_item>
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 216c4dea95..c6331ec87b 100644
--- a/indra/newview/skins/default/xui/en/widgets/expandable_text.xml
+++ b/indra/newview/skins/default/xui/en/widgets/expandable_text.xml
@@ -2,10 +2,9 @@
<expandable_text
max_height="300" >
<textbox
- allow_html="true"
+ parse_urls="true"
allow_scroll="true"
bg_visible="false"
- label="More"
follows="left|top|right"
name="text"
read_only="true"
diff --git a/indra/newview/skins/default/xui/en/widgets/hint_popup.xml b/indra/newview/skins/default/xui/en/widgets/hint_popup.xml
new file mode 100644
index 0000000000..92080df154
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/widgets/hint_popup.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<hint_popup
+ name="hint"
+ background_opaque="true"
+ background_visible="true"
+ chrome="true"
+ layout="topleft"
+ bg_opaque_image="hint_background"
+ distance="24"
+ left_arrow="hint_arrow_left"
+ up_arrow="hint_arrow_up"
+ right_arrow="hint_arrow_right"
+ down_arrow="hint_arrow_down"
+ lower_left_arrow="hint_arrow_lower_left"
+ left_arrow_offset="3"
+ up_arrow_offset="-2"
+ right_arrow_offset="-3"
+ down_arrow_offset="5"
+ fade_in_time="0.2"
+ fade_out_time="0.3">
+</hint_popup>
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
new file mode 100644
index 0000000000..da9059c819
--- /dev/null
+++ b/indra/newview/skins/default/xui/en/widgets/inventory_list_item.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<inventory_list_item
+ follows="top|right|left"
+ height="20"
+ name="inventory_item"
+ tab_stop="false"
+ hover_image="ListItem_Over"
+ selected_image="ListItem_Select"
+ separator_image="Wearables_Divider"
+ width="380">
+ <!-- DEFAULT style for inventory list item -->
+ <default_style
+ font="SansSerifSmall"
+ font.style="NORMAL" />
+
+ <!-- style for inventory list item WORN on avatar -->
+ <worn_style
+ font="SansSerifSmall"
+ font.style="BOLD"
+ color="EmphasisColor" />
+ <item_icon
+ height="16"
+ follows="top|left"
+ image_name="Inv_Object"
+ layout="topleft"
+ left="0"
+ name="item_icon"
+ top="0"
+ width="16" />
+ <item_name
+ follows="left|right"
+ height="20"
+ layout="topleft"
+ left="21"
+ parse_urls="false"
+ use_ellipses="true"
+ name="item_name"
+ text_color="white"
+ top="4"
+ value="..."
+ width="359" />
+</inventory_list_item>
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 02ea661da3..37d60f1671 100644
--- a/indra/newview/skins/default/xui/en/widgets/location_input.xml
+++ b/indra/newview/skins/default/xui/en/widgets/location_input.xml
@@ -7,7 +7,7 @@
icon_maturity_general="Parcel_PG_Light"
icon_maturity_adult="Parcel_R_Light"
icon_maturity_moderate="Parcel_M_Light"
- maturity_help_topic="TODO"
+ maturity_help_topic="maturity_rating"
add_landmark_image_enabled="Favorite_Star_Active"
add_landmark_image_disabled="Favorite_Star_Off"
add_landmark_image_hover="Favorite_Star_Over"
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 48bc021e6d..830ea12e41 100644
--- a/indra/newview/skins/default/xui/en/widgets/scroll_bar.xml
+++ b/indra/newview/skins/default/xui/en/widgets/scroll_bar.xml
@@ -8,18 +8,18 @@
thickness="15">
<up_button image_unselected="ScrollArrow_Up"
image_selected="ScrollArrow_Up"
- scale_image="true" thickness="15"
+ scale_image="true"
hover_glow_amount="0.35"/>
<down_button image_unselected="ScrollArrow_Down"
image_selected="ScrollArrow_Down"
- scale_image="true" thickness="15"
+ scale_image="true"
hover_glow_amount="0.35"/>
<left_button image_unselected="ScrollArrow_Left"
image_selected="ScrollArrow_Left"
- scale_image="true" thickness="15"
+ scale_image="true"
hover_glow_amount="0.35"/>
<right_button image_unselected="ScrollArrow_Right"
image_selected="ScrollArrow_Right"
- scale_image="true" thickness="15"
+ scale_image="true"
hover_glow_amount="0.35"/>
</scroll_bar>
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 63166f32b7..dd93675807 100644
--- a/indra/newview/skins/default/xui/en/widgets/scroll_list.xml
+++ b/indra/newview/skins/default/xui/en/widgets/scroll_list.xml
@@ -12,6 +12,7 @@
draw_stripes="true"
scroll_bar_bg_visible="false"
scroll_bar_bg_color="black"
+ mouse_wheel_opaque="false"
background_visible="true"
heading_height="23"
draw_border="false"
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 5d429d5b5b..ce84cfedc0 100644
--- a/indra/newview/skins/default/xui/en/widgets/search_combo_box.xml
+++ b/indra/newview/skins/default/xui/en/widgets/search_combo_box.xml
@@ -1,15 +1,12 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<search_combo_box
allow_text_entry="true"
- list_position="BELOW"
+ list_position="below"
show_text_as_tentative="false"
dropdown_button_visible="false"
max_chars="256"
name="parent"
- allow_new_values="true"
- background_image="TextField_Search_Off"
- background_image_disabled="TextField_Search_Disabled"
- background_image_focused="TextField_Search_Active">
+ allow_new_values="true">
<combo_editor
name="child1"
select_on_focus="true"
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 bb46ec0954..a120b1aec8 100644
--- a/indra/newview/skins/default/xui/en/widgets/simple_text_editor.xml
+++ b/indra/newview/skins/default/xui/en/widgets/simple_text_editor.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<simple_text_editor
- allow_html="false"
+ parse_urls="false"
mouse_opaque="true"
font="SansSerifSmall"
max_length="255"
@@ -15,13 +15,12 @@
default_color="TextDefaultColor"
text_color="TextFgColor"
text_readonly_color="TextFgReadOnlyColor"
+ text_selected_color="White"
h_pad="6"
v_pad="4"
bg_visible="true"
bg_readonly_color="TextBgReadOnlyColor"
bg_writeable_color="TextBgWriteableColor"
+ bg_selected_color="EmphasisColor"
bg_focus_color="TextBgFocusColor">
- <simple_text_editor.border
- bevel_style="in"
- follows="all" />
</simple_text_editor>
diff --git a/indra/newview/skins/default/xui/en/widgets/text.xml b/indra/newview/skins/default/xui/en/widgets/text.xml
index 3006df22b8..134f2d7522 100644
--- a/indra/newview/skins/default/xui/en/widgets/text.xml
+++ b/indra/newview/skins/default/xui/en/widgets/text.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<text allow_html="true"
+<text parse_urls="true"
mouse_opaque="false"
name="text_box"
font="SansSerifSmall"
@@ -8,7 +8,7 @@
halign="left"
h_pad="0"
allow_scroll="false"
- text_readonly_color="LabelDisabledColor"
+ text_readonly_color="LabelTextColor"
bg_writeable_color="FloaterDefaultBackgroundColor"
use_ellipses="false"
bg_visible="false"
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 2ced8b1b4b..0f7f50b312 100644
--- a/indra/newview/skins/default/xui/en/widgets/text_editor.xml
+++ b/indra/newview/skins/default/xui/en/widgets/text_editor.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<!-- Core parameters are in simple_text_editor.xml -->
<text_editor
- allow_html="false"
+ parse_urls="false"
show_context_menu="true"/>
diff --git a/indra/newview/skins/default/xui/en/widgets/textbase.xml b/indra/newview/skins/default/xui/en/widgets/textbase.xml
index f4dc192bc3..b2da2147c1 100644
--- a/indra/newview/skins/default/xui/en/widgets/textbase.xml
+++ b/indra/newview/skins/default/xui/en/widgets/textbase.xml
@@ -1,3 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<textbase clip_partial="false"
+ halign="left"
+ valign="top"
font="SansSerif"/>
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 c672f68c5c..92831cc21c 100644
--- a/indra/newview/skins/default/xui/es/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/es/floater_about_land.xml
@@ -221,60 +221,60 @@ Vaya al menú Mundo &gt; Acerca del terreno o seleccione otra parcela para ver s
<text name="Simulator primitive usage:">
Uso de primitivas:
</text>
- <text left="204" name="objects_available" width="250">
+ <text name="objects_available">
[COUNT] de un máx. de [MAX] ([AVAILABLE] disponibles)
</text>
- <text name="Primitives parcel supports:" width="200">
+ <text name="Primitives parcel supports:">
Prims que admite la parcela:
</text>
- <text left="204" name="object_contrib_text" width="152">
+ <text name="object_contrib_text">
[COUNT]
</text>
<text name="Primitives on parcel:">
Prims en la parcela:
</text>
- <text left="204" name="total_objects_text" width="48">
+ <text name="total_objects_text">
[COUNT]
</text>
- <text left="14" name="Owned by parcel owner:" width="180">
+ <text name="Owned by parcel owner:">
Del propietario de la parcela:
</text>
- <text left="204" name="owner_objects_text" width="48">
+ <text name="owner_objects_text">
[COUNT]
</text>
- <button label="Mostrar" label_selected="Mostrar" name="ShowOwner" right="-135" width="60"/>
- <button label="Devolver" name="ReturnOwner..." right="-10" tool_tip="Devolver los objetos a sus propietarios." width="119"/>
- <text left="14" name="Set to group:" width="180">
+ <button label="Mostrar" label_selected="Mostrar" name="ShowOwner"/>
+ <button label="Devolver" name="ReturnOwner..." tool_tip="Devolver los objetos a sus propietarios."/>
+ <text name="Set to group:">
Del grupo:
</text>
- <text left="204" name="group_objects_text" width="48">
+ <text name="group_objects_text">
[COUNT]
</text>
- <button label="Mostrar" label_selected="Mostrar" name="ShowGroup" right="-135" width="60"/>
- <button label="Devolver" name="ReturnGroup..." right="-10" tool_tip="Devolver los objetos a sus propietarios." width="119"/>
- <text left="14" name="Owned by others:" width="128">
+ <button label="Mostrar" label_selected="Mostrar" name="ShowGroup"/>
+ <button label="Devolver" name="ReturnGroup..." tool_tip="Devolver los objetos a sus propietarios."/>
+ <text name="Owned by others:">
Propiedad de otros:
</text>
- <text left="204" name="other_objects_text" width="48">
+ <text name="other_objects_text">
[COUNT]
</text>
- <button label="Mostrar" label_selected="Mostrar" name="ShowOther" right="-135" width="60"/>
- <button label="Devolver" name="ReturnOther..." right="-10" tool_tip="Devolver los objetos a sus propietarios." width="119"/>
- <text left="14" name="Selected / sat upon:" width="193">
+ <button label="Mostrar" label_selected="Mostrar" name="ShowOther"/>
+ <button label="Devolver" name="ReturnOther..." tool_tip="Devolver los objetos a sus propietarios."/>
+ <text name="Selected / sat upon:">
Seleccionados / con gente sentada:
</text>
- <text left="204" name="selected_objects_text" width="48">
+ <text name="selected_objects_text">
[COUNT]
</text>
<text name="Autoreturn">
Devolución automát. de objetos de otros (en min., 0 la desactiva):
</text>
- <line_editor name="clean other time" right="-20"/>
- <text name="Object Owners:" width="150">
+ <line_editor name="clean other time"/>
+ <text name="Object Owners:">
Propietarios de los objetos:
</text>
- <button label="Actualizar la lista" label_selected="Actualizar la lista" left="158" name="Refresh List" tool_tip="Refresh Object List"/>
- <button label="Devolver los objetos" left="270" name="Return objects..." width="164"/>
+ <button label="Actualizar la lista" label_selected="Actualizar la lista" name="Refresh List" tool_tip="Refresh Object List"/>
+ <button label="Devolver los objetos" name="Return objects..."/>
<name_list name="owner list">
<name_list.columns label="Tipo" name="type"/>
<name_list.columns label="Nombre" name="name"/>
diff --git a/indra/newview/skins/default/xui/es/floater_camera.xml b/indra/newview/skins/default/xui/es/floater_camera.xml
index c625407ba2..ccf3d4bf91 100644
--- a/indra/newview/skins/default/xui/es/floater_camera.xml
+++ b/indra/newview/skins/default/xui/es/floater_camera.xml
@@ -22,6 +22,35 @@
Centrar el objeto
</floater.string>
<panel name="controls">
+ <panel name="preset_views_list">
+ <panel_camera_item name="front_view">
+ <panel_camera_item.text name="front_view_text">
+ De frente
+ </panel_camera_item.text>
+ </panel_camera_item>
+ <panel_camera_item name="group_view">
+ <panel_camera_item.text name="side_view_text">
+ Vista lateral
+ </panel_camera_item.text>
+ </panel_camera_item>
+ <panel_camera_item name="rear_view">
+ <panel_camera_item.text name="rear_view_text">
+ Desde detrás
+ </panel_camera_item.text>
+ </panel_camera_item>
+ </panel>
+ <panel name="camera_modes_list">
+ <panel_camera_item name="object_view">
+ <panel_camera_item.text name="object_view_text">
+ Vista de objeto
+ </panel_camera_item.text>
+ </panel_camera_item>
+ <panel_camera_item name="mouselook_view">
+ <panel_camera_item.text name="mouselook_view_text">
+ Vista subjetiva
+ </panel_camera_item.text>
+ </panel_camera_item>
+ </panel>
<panel name="zoom" tool_tip="Hacer zoom con la cámara en lo enfocado">
<joystick_rotate name="cam_rotate_stick" tool_tip="La cámara gira alrededor del punto de vista"/>
<slider_bar name="zoom_slider" tool_tip="Hacer zoom en lo enfocado"/>
diff --git a/indra/newview/skins/default/xui/es/floater_customize.xml b/indra/newview/skins/default/xui/es/floater_customize.xml
deleted file mode 100644
index 77b670d5f0..0000000000
--- a/indra/newview/skins/default/xui/es/floater_customize.xml
+++ /dev/null
@@ -1,530 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater customize" title="APARIENCIA">
- <tab_container name="customize tab container">
- <text label="Partes del cuerpo" name="body_parts_placeholder">
- Partes del cuerpo
- </text>
- <panel label="Forma" name="Shape">
- <button label="Restablecer" label_selected="Restablecer" name="Revert"/>
- <button label="Cuerpo" label_selected="Cuerpo" name="Body"/>
- <button label="Cabeza" label_selected="Cabeza" name="Head"/>
- <button label="Ojos" label_selected="Ojos" name="Eyes"/>
- <button label="Orejas" label_selected="Orejas" name="Ears"/>
- <button label="Nariz" label_selected="Nariz" name="Nose"/>
- <button label="Boca" label_selected="Boca" name="Mouth"/>
- <button label="Barbilla" label_selected="Barbilla" name="Chin"/>
- <button label="Torso" label_selected="Torso" name="Torso"/>
- <button label="Piernas" label_selected="Piernas" name="Legs"/>
- <radio_group name="sex radio">
- <radio_item label="Mujer" name="radio" value="0"/>
- <radio_item label="Varón" name="radio2" value="1"/>
- </radio_group>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: no modificable
- </text>
- <text name="title_loading">
- [DESC]: cargando...
- </text>
- <text name="title_not_worn">
- [DESC]: no lleva
- </text>
- <text name="path">
- Situada en [PATH]
- </text>
- <text name="not worn instructions">
- Ponte una anatomía nueva arrastrándola desde tu inventario hasta tu avatar. O bien puedes crear una nueva partiendo de cero.
- </text>
- <text name="no modify instructions">
- No tiene permiso para modificar este ítem.
- </text>
- <text name="Item Action Label">
- Forma:
- </text>
- <button label="Crear una forma nueva" label_selected="Crear una forma nueva" name="Create New"/>
- <button label="Guardar" label_selected="Guardar" name="Save"/>
- <button label="Guardar como..." label_selected="Guardar como..." name="Save As"/>
- </panel>
- <panel label="Piel" name="Skin">
- <button label="Color de piel" label_selected="Color de piel" name="Skin Color" width="115"/>
- <button label="Detalles faciales" label_selected="Detalles faciales" name="Face Detail" width="115"/>
- <button label="Maquillaje" label_selected="Maquillaje" name="Makeup" width="115"/>
- <button label="Detalles del cuerpo" label_selected="Detalles del cuerpo" name="Body Detail" width="115"/>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: no modificable
- </text>
- <text name="title_loading">
- [DESC]: cargando...
- </text>
- <text name="title_not_worn">
- [DESC]: no lleva
- </text>
- <text name="path">
- Situada en [PATH]
- </text>
- <text name="not worn instructions">
- Ponte una piel nueva arrastrándola desde tu inventario hasta tu avatar. O bien puedes crear una nueva partiendo de cero.
- </text>
- <text name="no modify instructions">
- No tiene permiso para modificar este ítem.
- </text>
- <text name="Item Action Label" right="107">
- Piel:
- </text>
- <texture_picker label="Tatuaje: cabeza" name="Head Tattoos" tool_tip="Pulse para elegir una imagen" width="90"/>
- <texture_picker label="Tatuaje: superior" name="Upper Tattoos" tool_tip="Pulse para elegir una imagen" width="90"/>
- <texture_picker label="Tatuaje: inferior" name="Lower Tattoos" tool_tip="Pulse para elegir una imagen" width="90"/>
- <button label="Crear una piel nueva" label_selected="Crear una piel nueva" name="Create New"/>
- <button label="Guardar" label_selected="Guardar" left="113" name="Save"/>
- <button label="Guardar como..." label_selected="Guardar como..." name="Save As"/>
- <button label="Restablecer" label_selected="Restablecer" name="Revert"/>
- </panel>
- <panel label="Pelo" name="Hair">
- <button label="Color" label_selected="Color" name="Color"/>
- <button label="Peinado" label_selected="Peinado" name="Style"/>
- <button label="Cejas" label_selected="Cejas" name="Eyebrows"/>
- <button label="Facial" label_selected="Facial" name="Facial"/>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: no modificable
- </text>
- <text name="title_loading">
- [DESC]: cargando...
- </text>
- <text name="title_not_worn">
- [DESC]: no lleva
- </text>
- <text name="path">
- Situado en [PATH]
- </text>
- <text name="not worn instructions">
- Ponte un pelo nuevo arrastrándolo desde tu inventario hasta tu avatar. O bien puedes crear uno nuevo partiendo de cero.
- </text>
- <text name="no modify instructions">
- No tiene permiso para modificar este ítem.
- </text>
- <text name="Item Action Label" right="107">
- Pelo:
- </text>
- <texture_picker label="Textura" name="Texture" tool_tip="Pulse para elegir una imagen"/>
- <button label="Crear un pelo nuevo" label_selected="Crear un pelo nuevo" name="Create New"/>
- <button label="Guardar" label_selected="Guardar" left="113" name="Save"/>
- <button label="Guardar como..." label_selected="Guardar como..." name="Save As"/>
- <button label="Restablecer" label_selected="Restablecer" name="Revert"/>
- </panel>
- <panel label="Ojos" name="Eyes">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: no modificables
- </text>
- <text name="title_loading">
- [DESC]: cargando...
- </text>
- <text name="title_not_worn">
- [DESC]: no lleva
- </text>
- <text name="path">
- Situados en [PATH]
- </text>
- <text name="not worn instructions">
- Ponte unos ojos nuevos arrastrándolos desde tu inventario hasta tu avatar. O bien puedes crear unos nuevos partiendo de cero.
- </text>
- <text name="no modify instructions">
- No tiene permiso para modificar este ítem.
- </text>
- <text name="Item Action Label" right="107">
- Ojos:
- </text>
- <texture_picker label="Iris" name="Iris" tool_tip="Pulse para elegir una imagen"/>
- <button label="Crear unos ojos nuevos" label_selected="Crear unos ojos nuevos" name="Create New"/>
- <button label="Guardar" label_selected="Guardar" left="113" name="Save"/>
- <button label="Guardar como..." label_selected="Guardar como..." name="Save As"/>
- <button label="Restablecer" label_selected="Restablecer" name="Revert"/>
- </panel>
- <text label="Ropa" name="clothes_placeholder">
- Ropas
- </text>
- <panel label="Camisa" name="Shirt">
- <texture_picker label="Tela" name="Fabric" tool_tip="Pulse para elegir una imagen"/>
- <color_swatch label="Color/Tinte" name="Color/Tint" tool_tip="Pulsa para abrir el selector de color"/>
- <button label="Quitarla" label_selected="Quitarla" name="Take Off"/>
- <button label="Crear una falda nueva" label_selected="Crear una falda nueva" name="Create New"/>
- <button label="Guardar" label_selected="Guardar" left="113" name="Save"/>
- <button label="Guardar como..." label_selected="Guardar como..." name="Save As"/>
- <button label="Restablecer" label_selected="Restablecer" name="Revert"/>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: no modificable
- </text>
- <text name="title_loading">
- [DESC]: cargando...
- </text>
- <text name="title_not_worn">
- [DESC]: no lleva
- </text>
- <text name="path">
- Situada en [PATH]
- </text>
- <text name="not worn instructions">
- Ponte una camisa nueva arrastrándola desde tu inventario hasta tu avatar. O bien puedes crear una nueva partiendo de cero.
- </text>
- <text name="no modify instructions">
- No tiene permiso para modificar este ítem.
- </text>
- <text name="Item Action Label" right="107">
- Camisa:
- </text>
- </panel>
- <panel label="Pantalones" name="Pants">
- <texture_picker label="Tela" name="Fabric" tool_tip="Pulse para elegir una imagen"/>
- <color_swatch label="Color/Tinte" name="Color/Tint" tool_tip="Pulsa para abrir el selector de color"/>
- <button label="Quitarlos" label_selected="Quitarlos" name="Take Off"/>
- <button label="Crear unos pantalones nuevos" label_selected="Crear unos pantalones nuevos" name="Create New" width="185"/>
- <button label="Guardar" label_selected="Guardar" left="113" name="Save"/>
- <button label="Guardar como..." label_selected="Guardar como..." name="Save As"/>
- <button label="Restablecer" label_selected="Restablecer" name="Revert"/>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: no modificables
- </text>
- <text name="title_loading">
- [DESC]: cargando...
- </text>
- <text name="title_not_worn">
- [DESC]: no lleva
- </text>
- <text name="path">
- Situados en [PATH]
- </text>
- <text name="not worn instructions">
- Ponte unos pantalones nuevos arrastrándolos desde tu inventario hasta tu avatar. O bien puedes crear unos nuevos partiendo de cero.
- </text>
- <text name="no modify instructions">
- No tiene permiso para modificar este ítem.
- </text>
- <text name="Item Action Label" right="107">
- Pantalones:
- </text>
- </panel>
- <panel label="Zapatos" name="Shoes">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: no modificables
- </text>
- <text name="title_loading">
- [DESC]: cargando...
- </text>
- <text name="title_not_worn">
- [DESC]: no lleva
- </text>
- <text name="path">
- Situados en [PATH]
- </text>
- <text name="not worn instructions">
- Ponte unos zapatos nuevos arrastrándolos desde tu inventario hasta tu avatar. O bien puedes crear unos nuevos partiendo de cero.
- </text>
- <button label="Crear unos zapatos nuevos" label_selected="Crear unos zapatos nuevos" name="Create New"/>
- <text name="no modify instructions">
- No tiene permiso para modificar este ítem.
- </text>
- <text name="Item Action Label" right="107">
- Zapatos:
- </text>
- <texture_picker label="Tela" name="Fabric" tool_tip="Pulse para elegir una imagen"/>
- <color_swatch label="Color/Tinte" name="Color/Tint" tool_tip="Pulsa para abrir el selector de color"/>
- <button label="Quitarlos" label_selected="Quitarlos" name="Take Off"/>
- <button label="Guardar" label_selected="Guardar" left="113" name="Save"/>
- <button label="Guardar como..." label_selected="Guardar como..." name="Save As"/>
- <button label="Restablecer" label_selected="Restablecer" name="Revert"/>
- </panel>
- <panel label="Calcetines" name="Socks">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: no modificables
- </text>
- <text name="title_loading">
- [DESC]: cargando...
- </text>
- <text name="title_not_worn">
- [DESC]: no lleva
- </text>
- <text name="path">
- Situados en [PATH]
- </text>
- <text name="not worn instructions">
- Ponte unos calcetines nuevos arrastrándolos desde tu inventario hasta tu avatar. O bien puedes crear unos nuevos partiendo de cero.
- </text>
- <button label="Crear unos calcetines nuevos" label_selected="Crear unos calcetines nuevos" name="Create New" width="185"/>
- <text name="no modify instructions">
- No tiene permiso para modificar este ítem.
- </text>
- <text name="Item Action Label" right="107">
- Calcetines:
- </text>
- <texture_picker label="Tela" name="Fabric" tool_tip="Pulse para elegir una imagen"/>
- <color_swatch label="Color/Tinte" name="Color/Tint" tool_tip="Pulsa para abrir el selector de color"/>
- <button label="Quitarlos" label_selected="Quitarlos" name="Take Off"/>
- <button label="Guardar" label_selected="Guardar" left="113" name="Save"/>
- <button label="Guardar como..." label_selected="Guardar como..." name="Save As"/>
- <button label="Restablecer" label_selected="Restablecer" name="Revert"/>
- </panel>
- <panel label="Chaqueta" name="Jacket">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: no modificable
- </text>
- <text name="title_loading">
- [DESC]: cargando...
- </text>
- <text name="title_not_worn">
- [DESC]: no lleva
- </text>
- <text name="path">
- Situada en [PATH]
- </text>
- <text name="not worn instructions">
- Ponte una chaqueta nueva arrastrándola desde tu inventario hasta tu avatar. O bien puedes crear una nueva partiendo de cero.
- </text>
- <button label="Crear una chaqueta nueva" label_selected="Crear una chaqueta nueva" name="Create New"/>
- <text name="no modify instructions">
- No tiene permiso para modificar este ítem.
- </text>
- <text name="Item Action Label" right="107">
- Chaqueta:
- </text>
- <texture_picker label="Tela superior" name="Upper Fabric" tool_tip="Pulse para elegir una imagen"/>
- <texture_picker label="Tela inferior" name="Lower Fabric" tool_tip="Pulse para elegir una imagen"/>
- <color_swatch label="Color/Tinte" name="Color/Tint" tool_tip="Pulsa para abrir el selector de color"/>
- <button label="Quitarla" label_selected="Quitarla" name="Take Off"/>
- <button label="Guardar" label_selected="Guardar" left="113" name="Save"/>
- <button label="Guardar como..." label_selected="Guardar como..." name="Save As"/>
- <button label="Restablecer" label_selected="Restablecer" name="Revert"/>
- </panel>
- <panel label="Guantes" name="Gloves">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: no modificables
- </text>
- <text name="title_loading">
- [DESC]: cargando...
- </text>
- <text name="title_not_worn">
- [DESC]: no lleva
- </text>
- <text name="path">
- Situados en [PATH]
- </text>
- <text name="not worn instructions">
- Ponte unos guantes nuevos arrastrándolos desde tu inventario hasta tu avatar. O bien puedes crear unos nuevos partiendo de cero.
- </text>
- <button label="Crear unos guantes nuevos" label_selected="Crear unos guantes nuevos" name="Create New"/>
- <text name="no modify instructions">
- No tiene permiso para modificar este ítem.
- </text>
- <text name="Item Action Label" right="107">
- Guantes:
- </text>
- <texture_picker label="Tela" name="Fabric" tool_tip="Pulse para elegir una imagen"/>
- <color_swatch label="Color/Tinte" name="Color/Tint" tool_tip="Pulsa para abrir el selector de color"/>
- <button label="Quitarlos" label_selected="Quitarlos" name="Take Off"/>
- <button label="Guardar" label_selected="Guardar" left="113" name="Save"/>
- <button label="Guardar como..." label_selected="Guardar como..." name="Save As"/>
- <button label="Restablecer" label_selected="Restablecer" name="Revert"/>
- </panel>
- <panel label="Camiseta" name="Undershirt">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: no modificable
- </text>
- <text name="title_loading">
- [DESC]: cargando...
- </text>
- <text name="title_not_worn">
- [DESC]: no lleva
- </text>
- <text name="path">
- Situada en [PATH]
- </text>
- <text name="not worn instructions">
- Ponte una camiseta nueva arrastrándola desde tu inventario hasta tu avatar. O bien puedes crear una nueva partiendo de cero.
- </text>
- <button label="Crear una camiseta nueva" label_selected="Crear una camiseta nueva" name="Create New"/>
- <text name="no modify instructions">
- No tiene permiso para modificar este ítem.
- </text>
- <text name="Item Action Label" right="107">
- Camiseta:
- </text>
- <texture_picker label="Tela" name="Fabric" tool_tip="Pulse para elegir una imagen"/>
- <color_swatch label="Color/Tinte" name="Color/Tint" tool_tip="Pulsa para abrir el selector de color"/>
- <button label="Quitarla" label_selected="Quitarla" name="Take Off"/>
- <button label="Guardar" label_selected="Guardar" left="113" name="Save"/>
- <button label="Guardar como..." label_selected="Guardar como..." name="Save As"/>
- <button label="Restablecer" label_selected="Restablecer" name="Revert"/>
- </panel>
- <panel label="Ropa interior" name="Underpants">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: no modificable
- </text>
- <text name="title_loading">
- [DESC]: cargando...
- </text>
- <text name="title_not_worn">
- [DESC]: no lleva
- </text>
- <text name="path">
- Situada en [PATH]
- </text>
- <text name="not worn instructions">
- Ponte una ropa interior nueva arrastrándola desde tu inventario hasta tu avatar. O bien puedes crear una nueva partiendo de cero.
- </text>
- <button label="Crear una ropa interior nueva" label_selected="Crear una ropa interior nueva" name="Create New" width="185"/>
- <text name="no modify instructions">
- No tiene permiso para modificar este ítem.
- </text>
- <text name="Item Action Label" right="107">
- Ropa interior:
- </text>
- <texture_picker label="Tela" name="Fabric" tool_tip="Pulse para elegir una imagen"/>
- <color_swatch label="Color/Tinte" name="Color/Tint" tool_tip="Pulsa para abrir el selector de color"/>
- <button label="Quitarla" label_selected="Quitarla" name="Take Off"/>
- <button label="Guardar" label_selected="Guardar" left="113" name="Save"/>
- <button label="Guardar como..." label_selected="Guardar como..." name="Save As"/>
- <button label="Restablecer" label_selected="Restablecer" name="Revert"/>
- </panel>
- <panel label="Falda" name="Skirt">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: no modificable
- </text>
- <text name="title_loading">
- [DESC]: cargando...
- </text>
- <text name="title_not_worn">
- [DESC]: no lleva
- </text>
- <text name="path">
- Situada en [PATH]
- </text>
- <text name="not worn instructions">
- Ponte una falda nueva arrastrándola desde tu inventario hasta tu avatar. O bien puedes crear una nueva partiendo de cero.
- </text>
- <button label="Crear una falda nueva" label_selected="Crear una falda nueva" name="Create New"/>
- <text name="no modify instructions">
- No tiene permiso para modificar este ítem.
- </text>
- <text name="Item Action Label" right="107">
- Falda:
- </text>
- <texture_picker label="Tela" name="Fabric" tool_tip="Pulse para elegir una imagen"/>
- <color_swatch label="Color/Tinte" name="Color/Tint" tool_tip="Pulsa para abrir el selector de color"/>
- <button label="Quitarla" label_selected="Quitarla" name="Take Off"/>
- <button label="Guardar" label_selected="Guardar" left="113" name="Save"/>
- <button label="Guardar como..." label_selected="Guardar como..." name="Save As"/>
- <button label="Restablecer" label_selected="Restablecer" name="Revert"/>
- </panel>
- <panel label="Tatuaje" name="Tattoo">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: no modificable
- </text>
- <text name="title_loading">
- [DESC]: cargando...
- </text>
- <text name="title_not_worn">
- [DESC]: no puesto
- </text>
- <text name="path">
- Situado en [PATH]
- </text>
- <text name="not worn instructions">
- Pon un tatuaje nuevo arrastrándolo desde tu inventario a tu avatar. O bien puedes crear uno nuevo partiendo de cero.
- </text>
- <button label="Crear un tatuaje nuevo" label_selected="Crear un tatuaje nuevo" name="Create New"/>
- <text name="no modify instructions">
- No tienes permiso para modificar este artículo.
- </text>
- <text name="Item Action Label">
- Tatuaje:
- </text>
- <texture_picker label="Tatuaje de la cabeza" name="Head Tattoo" tool_tip="Pulsa para elegir una imagen"/>
- <texture_picker label="Tatuaje superior" name="Upper Tattoo" tool_tip="Pulsa para elegir una imagen"/>
- <texture_picker label="Tatuaje inferior" name="Lower Tattoo" tool_tip="Pulsa para elegir una imagen"/>
- <button label="Quitarme" label_selected="Quitarme" name="Take Off"/>
- <button label="Guardar" label_selected="Guardar" name="Save"/>
- <button label="Guardar como..." label_selected="Guardar como..." name="Save As"/>
- <button label="Revertir" label_selected="Revertir" name="Revert"/>
- </panel>
- <panel label="Alfa" name="Alpha">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: no modificable
- </text>
- <text name="title_loading">
- [DESC]: cargando...
- </text>
- <text name="title_not_worn">
- [DESC]: no puesto
- </text>
- <text name="path">
- Situado en [PATH]
- </text>
- <text name="not worn instructions">
- Pon una capa Alfa nueva arrastrándola desde tu inventario a tu avatar. O bien puedes crear una nueva partiendo de cero.
- </text>
- <button label="Crear una capa Alfa nueva" label_selected="Crear una capa Alfa nueva" name="Create New"/>
- <text name="no modify instructions">
- No tienes permiso para modificar este artículo.
- </text>
- <text name="Item Action Label">
- Alfa:
- </text>
- <texture_picker label="Alfa inferior" name="Lower Alpha" tool_tip="Pulsa para elegir una imagen"/>
- <texture_picker label="Alfa superior" name="Upper Alpha" tool_tip="Pulsa para elegir una imagen"/>
- <texture_picker label="Alfa de la cabeza" name="Head Alpha" tool_tip="Pulsa para elegir una imagen"/>
- <texture_picker label="Alfa de los ojos" name="Eye Alpha" tool_tip="Pulsa para elegir una imagen"/>
- <texture_picker label="Alfa del pelo" name="Hair Alpha" tool_tip="Pulsa para elegir una imagen"/>
- <button label="Quitarme" label_selected="Quitarme" name="Take Off"/>
- <button label="Guardar" label_selected="Guardar" name="Save"/>
- <button label="Guardar como..." label_selected="Guardar como..." name="Save As"/>
- <button label="Revertir" label_selected="Revertir" name="Revert"/>
- </panel>
- </tab_container>
- <scroll_container name="panel_container"/>
- <button label="Información del script" label_selected="Información del script" name="script_info" tool_tip="Mostrar los scripts anexados a tu avatar"/>
- <button label="Hacer un vestuario" label_selected="Hacer un vestuario" name="make_outfit_btn"/>
- <button label="Cancelar" label_selected="Cancelar" name="Cancel"/>
- <button label="OK" label_selected="OK" name="Ok"/>
-</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_device_settings.xml b/indra/newview/skins/default/xui/es/floater_device_settings.xml
deleted file mode 100644
index eadf04a417..0000000000
--- a/indra/newview/skins/default/xui/es/floater_device_settings.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_device_settings" title="CONFIGURACIÓN DE LOS DISPOSITIVOS DEL CHAT DE VOZ"/>
diff --git a/indra/newview/skins/default/xui/es/floater_im.xml b/indra/newview/skins/default/xui/es/floater_im.xml
deleted file mode 100644
index 3850b94fd6..0000000000
--- a/indra/newview/skins/default/xui/es/floater_im.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<multi_floater name="im_floater" title="Mensaje Instantáneo">
- <string name="only_user_message">
- Eres el único Residente en esta sesión.
- </string>
- <string name="offline_message">
- [FIRST] [LAST] no está conectado.
- </string>
- <string name="invite_message">
- Pulse el botón [BUTTON NAME] para aceptar/conectar este chat de voz.
- </string>
- <string name="muted_message">
- Has ignorado a este Residente. Enviándole un mensaje, automáticamente dejarás de ignorarle.
- </string>
- <string name="generic_request_error">
- Error al hacer lo solicitado; por favor, inténtelo más tarde.
- </string>
- <string name="insufficient_perms_error">
- Usted no tiene permisos suficientes.
- </string>
- <string name="session_does_not_exist_error">
- La sesión ya acabó
- </string>
- <string name="no_ability_error">
- Usted no tiene esa capacidad.
- </string>
- <string name="not_a_mod_error">
- Usted no es un moderador de la sesión.
- </string>
- <string name="muted_error">
- Un moderador del grupo le ha desactivado el chat de texto.
- </string>
- <string name="add_session_event">
- No es posible añadir Residentes a la sesión de chat con [RECIPIENT].
- </string>
- <string name="message_session_event">
- No se ha podido enviar su mensaje a la sesión de chat con [RECIPIENT].
- </string>
- <string name="removed_from_group">
- Ha sido eliminado del grupo.
- </string>
- <string name="close_on_no_ability">
- Usted ya no tendrá más la capacidad de estar en la sesión de chat.
- </string>
-</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 c7312e609b..3d9d17fc81 100644
--- a/indra/newview/skins/default/xui/es/floater_im_session.xml
+++ b/indra/newview/skins/default/xui/es/floater_im_session.xml
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="panel_im">
<layout_stack name="im_panels">
- <layout_panel label="Panel de control de MI" name="panel_im_control_panel"/>
<layout_panel>
<line_editor label="A" name="chat_editor"/>
</layout_panel>
diff --git a/indra/newview/skins/default/xui/es/floater_map.xml b/indra/newview/skins/default/xui/es/floater_map.xml
index 7588380148..73e947f1f7 100644
--- a/indra/newview/skins/default/xui/es/floater_map.xml
+++ b/indra/newview/skins/default/xui/es/floater_map.xml
@@ -24,6 +24,9 @@
<floater.string name="mini_map_northwest">
NO
</floater.string>
+ <floater.string name="mini_map_caption">
+ MINIMAPA
+ </floater.string>
<text label="N" name="floater_map_north" text="N">
N
</text>
diff --git a/indra/newview/skins/default/xui/es/floater_my_friends.xml b/indra/newview/skins/default/xui/es/floater_my_friends.xml
deleted file mode 100644
index 07f362560b..0000000000
--- a/indra/newview/skins/default/xui/es/floater_my_friends.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_my_friends" title="CONTACTOS">
- <tab_container name="friends_and_groups">
- <panel label="Amigos" name="friends_panel"/>
- <panel label="Grupos" name="groups_panel"/>
- </tab_container>
-</floater>
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
deleted file mode 100644
index 9f9902a3a0..0000000000
--- a/indra/newview/skins/default/xui/es/floater_outfit_save_as.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="modal container" title="Guardar el vestuario">
- <button label="Guardar" label_selected="Guardar" name="Save"/>
- <button label="Cancelar" label_selected="Cancelar" name="Cancel"/>
- <text name="Save item as:">
- Guardar lo que llevo puesto
-como un vestuario nuevo:
- </text>
- <line_editor name="name ed">
- [DESC] (nuevo)
- </line_editor>
-</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_preview_classified.xml b/indra/newview/skins/default/xui/es/floater_preview_classified.xml
deleted file mode 100644
index d9c9c51ba8..0000000000
--- a/indra/newview/skins/default/xui/es/floater_preview_classified.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="classified_preview" title="INFORMACIÓN DEL CLASIFICADO">
- <floater.string name="Title">
- Clasificado: [NAME]
- </floater.string>
-</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_preview_event.xml b/indra/newview/skins/default/xui/es/floater_preview_event.xml
deleted file mode 100644
index 7edd4f9e3f..0000000000
--- a/indra/newview/skins/default/xui/es/floater_preview_event.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="event_preview" title="INFORMACIÓN DEL EVENTO">
- <floater.string name="Title">
- Evento: [NAME]
- </floater.string>
-</floater>
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 44179d6b28..c58eb227aa 100644
--- a/indra/newview/skins/default/xui/es/floater_preview_gesture.xml
+++ b/indra/newview/skins/default/xui/es/floater_preview_gesture.xml
@@ -24,9 +24,6 @@
<floater.string name="Title">
Gesto: [NAME]
</floater.string>
- <text name="name_text">
- Nombre:
- </text>
<text name="desc_label">
Descripción:
</text>
@@ -45,7 +42,12 @@
<text name="library_label">
Biblioteca:
</text>
- <scroll_list name="library_list"/>
+ <scroll_list name="library_list">
+ <scroll_list.rows name="action_animation" value="Animaciones"/>
+ <scroll_list.rows name="action_sound" value="Sonido"/>
+ <scroll_list.rows name="action_chat" value="Chat"/>
+ <scroll_list.rows name="action_wait" value="Espera"/>
+ </scroll_list>
<button label="Añadir &gt;&gt;" name="add_btn"/>
<text name="steps_label">
Pasos:
@@ -53,13 +55,15 @@
<button label="Arriba" name="up_btn"/>
<button label="Abajo" name="down_btn"/>
<button label="Quitar" name="delete_btn"/>
- <text left="230" name="options_text" width="200"/>
+ <text left="230" name="options_text" width="200">
+ (opciones)
+ </text>
<radio_group name="animation_trigger_type">
<radio_item label="Empezar" name="start"/>
<radio_item label="Parar" name="stop"/>
</radio_group>
<check_box bottom_delta="34" label="hasta que las animaciones estén hechas" name="wait_anim_check"/>
- <check_box bottom_delta="-30" label="tiempo en segundos" name="wait_time_check"/>
+ <check_box bottom_delta="-30" label="tiempo en segundos:" name="wait_time_check"/>
<line_editor left_delta="130" name="wait_time_editor"/>
<text name="help_label">
Todos los pasos suceden a la vez, a menos que añadas pasos de espera.
diff --git a/indra/newview/skins/default/xui/es/floater_preview_gesture_info.xml b/indra/newview/skins/default/xui/es/floater_preview_gesture_info.xml
deleted file mode 100644
index f5b771c6e7..0000000000
--- a/indra/newview/skins/default/xui/es/floater_preview_gesture_info.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Gesture" title="ATAJO DE TECLADO PARA GESTOS"/>
diff --git a/indra/newview/skins/default/xui/es/floater_preview_gesture_shortcut.xml b/indra/newview/skins/default/xui/es/floater_preview_gesture_shortcut.xml
deleted file mode 100644
index ea955f9727..0000000000
--- a/indra/newview/skins/default/xui/es/floater_preview_gesture_shortcut.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Gesture" title="ATAJO DE TECLADO PARA GESTOS">
- <text name="trigger_label">
- Chat :
- </text>
- <text name="key_label">
- Teclado:
- </text>
- <combo_box label="Ninguno/a" name="modifier_combo"/>
- <combo_box label="Ninguno/a" name="key_combo"/>
- <text name="replace_text" tool_tip="Reemplaza la/s palabra/s clave con estas palabras. Por ejemplo, si cambias la palabra clave &apos;hola&apos; por &apos;qué tal&apos;, se cambiará en el chat &apos;Quería decir hola&apos; por &apos;Quería decir qué tal&apos; en cuanto realices el gesto.">
- Reemplazar por:
- </text>
- <line_editor name="replace_editor" tool_tip="Reemplaza la/s palabra/s clave con estas palabras. Por ejemplo, si cambias la palabra clave &apos;hola&apos; por &apos;qué tal&apos;, se cambiará en el chat &apos;Quería decir hola&apos; por &apos;Quería decir qué tal&apos; en cuanto realices el gesto."/>
-</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_preview_gesture_steps.xml b/indra/newview/skins/default/xui/es/floater_preview_gesture_steps.xml
deleted file mode 100644
index f5b771c6e7..0000000000
--- a/indra/newview/skins/default/xui/es/floater_preview_gesture_steps.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Gesture" title="ATAJO DE TECLADO PARA GESTOS"/>
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 5eed89d522..a1645f0c64 100644
--- a/indra/newview/skins/default/xui/es/floater_publish_classified.xml
+++ b/indra/newview/skins/default/xui/es/floater_publish_classified.xml
@@ -5,7 +5,7 @@
Recuerda, no se reembolsarán las cantidades abonadas por clasificados.
</text>
- <spinner label="Precio por el anuncio:" name="price_for_listing" tool_tip="Precio por publicarlo." value="50"/>
+ <spinner label="Precio: L$" name="price_for_listing" tool_tip="Precio por publicarlo." value="50"/>
<text name="l$_text" value="L$"/>
<text name="more_info_text">
Más información (enlace a ayuda de clasificados)
diff --git a/indra/newview/skins/default/xui/es/floater_snapshot.xml b/indra/newview/skins/default/xui/es/floater_snapshot.xml
index 5106749f1c..eafc623ea9 100644
--- a/indra/newview/skins/default/xui/es/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/es/floater_snapshot.xml
@@ -1,23 +1,75 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Snapshot" title="Foto">
+<floater name="Snapshot" title="VISTA PREVIA DE LA FOTO">
<floater.string name="unknown">
desconocido
</floater.string>
+ <radio_group label="Tipo de foto" name="snapshot_type_radio">
+ <radio_item label="Correo-e" name="postcard"/>
+ <radio_item label="Mi inventario ([AMOUNT] L$)" name="texture"/>
+ <radio_item label="Guardar en mi ordenador" name="local"/>
+ </radio_group>
+ <text name="file_size_label">
+ [SIZE] kB
+ </text>
<button label="Actualizar la foto" name="new_snapshot_btn"/>
- <line_editor label="Descripción" name="description"/>
- <panel name="panel_snapshot_main">
- <button label="Compartir foto" name="share"/>
- <button label="Guardar foto" name="save"/>
- <button label="Configurar como imagen del perfil" name="set_profile_pic"/>
- </panel>
- <panel name="panel_snapshot_share">
- <button label="Compartir en Internet" name="share_to_web"/>
- <button label="Foto por correo" name="share_to_email"/>
- <button label="Atrás" name="cancel_share"/>
- </panel>
- <panel name="panel_snapshot_save">
- <button label="Guardar en mi inventario" name="save_to_inventory"/>
- <button label="Guardar en mi ordenador" name="save_to_computer"/>
- <button label="Atrás" name="cancel_save"/>
- </panel>
+ <button label="Enviar" name="send_btn"/>
+ <button label="Ahorro ([AMOUNT] L$)" name="upload_btn"/>
+ <flyout_button label="Guardar" name="save_btn" tool_tip="Guardar la imagen en un archivo">
+ <flyout_button.item label="Guardar" name="save_item"/>
+ <flyout_button.item label="Guardar como..." name="saveas_item"/>
+ </flyout_button>
+ <button label="Más" name="more_btn" tool_tip="Opciones avanzadas"/>
+ <button label="Menos" name="less_btn" tool_tip="Opciones avanzadas"/>
+ <button label="Cancelar" name="discard_btn"/>
+ <text name="type_label2">
+ Tamaño
+ </text>
+ <text name="format_label">
+ Formato
+ </text>
+ <combo_box label="Resolución" name="postcard_size_combo">
+ <combo_box.item label="Ventana actual" name="CurrentWindow"/>
+ <combo_box.item label="640x480" name="640x480"/>
+ <combo_box.item label="800x600" name="800x600"/>
+ <combo_box.item label="1024x768" name="1024x768"/>
+ <combo_box.item label="Personalizado" name="Custom"/>
+ </combo_box>
+ <combo_box label="Resolución" name="texture_size_combo">
+ <combo_box.item label="Ventana actual" name="CurrentWindow"/>
+ <combo_box.item label="Pequeña (128x128)" name="Small(128x128)"/>
+ <combo_box.item label="Mediana (256x256)" name="Medium(256x256)"/>
+ <combo_box.item label="Grande (512x512)" name="Large(512x512)"/>
+ <combo_box.item label="Personalizado" name="Custom"/>
+ </combo_box>
+ <combo_box label="Resolución" name="local_size_combo">
+ <combo_box.item label="Ventana actual" name="CurrentWindow"/>
+ <combo_box.item label="320x240" name="320x240"/>
+ <combo_box.item label="640x480" name="640x480"/>
+ <combo_box.item label="800x600" name="800x600"/>
+ <combo_box.item label="1024x768" name="1024x768"/>
+ <combo_box.item label="1280x1024" name="1280x1024"/>
+ <combo_box.item label="1600x1200" name="1600x1200"/>
+ <combo_box.item label="Personalizado" name="Custom"/>
+ </combo_box>
+ <combo_box label="Formato" name="local_format_combo">
+ <combo_box.item label="PNG" name="PNG"/>
+ <combo_box.item label="JPEG" name="JPEG"/>
+ <combo_box.item label="BMP" name="BMP"/>
+ </combo_box>
+ <spinner label="Ancho" name="snapshot_width"/>
+ <spinner label="Altura" name="snapshot_height"/>
+ <check_box label="Mantener las proporciones" name="keep_aspect_check"/>
+ <slider label="Calidad de la imagen" name="image_quality_slider"/>
+ <text name="layer_type_label">
+ Captura:
+ </text>
+ <combo_box label="Capas de imagen" name="layer_types">
+ <combo_box.item label="Colores" name="Colors"/>
+ <combo_box.item label="Profundidad" name="Depth"/>
+ </combo_box>
+ <check_box label="Interfaz" name="ui_check"/>
+ <check_box label="HUDs" name="hud_check"/>
+ <check_box label="Mantener abierto después de guardar" name="keep_open_check"/>
+ <check_box label="Congelar la toma (pantalla completa)" name="freeze_frame_check"/>
+ <check_box label="Actualizar automáticamente" name="auto_snapshot_check"/>
</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_statistics.xml b/indra/newview/skins/default/xui/es/floater_statistics.xml
deleted file mode 100644
index c9b0a76df0..0000000000
--- a/indra/newview/skins/default/xui/es/floater_statistics.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="stats floater" title="ESTADÃSTICAS"/>
diff --git a/indra/newview/skins/default/xui/es/floater_tools.xml b/indra/newview/skins/default/xui/es/floater_tools.xml
index 9637544f4e..bc99cfe215 100644
--- a/indra/newview/skins/default/xui/es/floater_tools.xml
+++ b/indra/newview/skins/default/xui/es/floater_tools.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="toolbox floater" short_title="HERRAMIENTAS DE CONSTRUCCIÓN" title="" width="288">
+<floater name="toolbox floater" short_title="HERRAMIENTAS DE CONSTRUCCIÓN" title="">
<floater.string name="status_rotate">
Arrastra las bandas de color para girar el objeto.
</floater.string>
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 51adeb4dff..6f4782417d 100644
--- a/indra/newview/skins/default/xui/es/floater_voice_controls.xml
+++ b/indra/newview/skins/default/xui/es/floater_voice_controls.xml
@@ -19,10 +19,12 @@
<layout_panel name="my_panel">
<text name="user_text" value="Mi avatar:"/>
</layout_panel>
- <layout_stack name="voice_effect_and_leave_call_stack">
- <layout_panel name="leave_call_btn_panel">
- <button label="Colgar" name="leave_call_btn"/>
- </layout_panel>
- </layout_stack>
+ <layout_panel name="leave_call_panel">
+ <layout_stack name="voice_effect_and_leave_call_stack">
+ <layout_panel name="leave_call_btn_panel">
+ <button label="Colgar" name="leave_call_btn"/>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
</layout_stack>
</floater>
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 c1b7222aad..5ef4347958 100644
--- 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="PROBAR TRANSFORMACIÓN DE VOZ">
+<floater label="Lugares" name="voice_effects" title="TRANSFORMACIÓN DE VOZ">
<string name="no_voice_effect">
(Sin transformación de voz)
</string>
@@ -12,18 +12,19 @@
<string name="new_voice_effect">
(¡Nuevo!)
</string>
+ <text name="preview_text">
+ Para probarla
+ </text>
<text name="status_text">
- Para probar un efecto de transformación de voz, pulsa el botón Grabar, graba un breve fragmento de voz y pulsa cualquiera de las transformaciones de voz de la lista para escuchar cómo suena.
-
-Para volver a conectarte al chat de voz, cierra esta ventana.
+ Graba una muestra y pulsa en una voz para escuchar cómo suena.
</text>
- <button label="Grabar muestra" name="record_btn" tool_tip="Graba una muestra de tu voz."/>
+ <button label="Grabar" name="record_btn" tool_tip="Graba una muestra de tu voz."/>
<button label="Parar" name="record_stop_btn"/>
<text name="voice_morphing_link">
- [[URL] Obtener transformación de voz]
+ [[URL] Suscríbete ahora]
</text>
<scroll_list name="voice_effect_list" tool_tip="Graba una muestra de tu voz y pulsa en un efecto para ver cómo suena.">
- <scroll_list.columns label="Transformación de voz" name="name"/>
+ <scroll_list.columns label="Nombre de la voz" name="name"/>
<scroll_list.columns label="Caduca" name="expires"/>
</scroll_list>
</floater>
diff --git a/indra/newview/skins/default/xui/es/floater_wearable_save_as.xml b/indra/newview/skins/default/xui/es/floater_wearable_save_as.xml
deleted file mode 100644
index bf96ed53ce..0000000000
--- a/indra/newview/skins/default/xui/es/floater_wearable_save_as.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="modal container" title=" ">
- <button label="Guardar" label_selected="Guardar" name="Save"/>
- <button label="Cancelar" label_selected="Cancelar" name="Cancel"/>
- <text name="Save item as:">
- Guardar el ítem en mi inventario como:
- </text>
- <line_editor name="name ed">
- Nuevo [DESC]
- </line_editor>
-</floater>
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 deda5b86c8..acc63e52a0 100644
--- a/indra/newview/skins/default/xui/es/floater_world_map.xml
+++ b/indra/newview/skins/default/xui/es/floater_world_map.xml
@@ -19,12 +19,12 @@
<text name="land_sale_label">
Venta de terreno
</text>
- <text name="by_owner_label">
- por el dueño
- </text>
<text name="auction_label">
subasta
</text>
+ <text name="by_owner_label">
+ por el dueño
+ </text>
<button name="Go Home" tool_tip="Teleportar a mi Base"/>
<text name="Home_label">
Base
@@ -35,11 +35,11 @@
<text name="pg_label">
General
</text>
- <check_box name="event_mature_chk"/>
- <text name="mature_label">
+ <check_box initial_value="true" name="events_mature_chk"/>
+ <text name="events_mature_label">
Moderado
</text>
- <text name="adult_label">
+ <text name="events_adult_label">
Adulto
</text>
</panel>
@@ -58,6 +58,9 @@
<search_editor label="Regiones alfabéticamente" name="location" tool_tip="Escribe el nombre de una región"/>
<button label="Encontrar" name="DoSearch" tool_tip="Buscar una región"/>
<button name="Clear" tool_tip="Limpia las marcas y actualiza el mapa"/>
+ <text name="events_label">
+ Lugar:
+ </text>
<button label="Teleportar" name="Teleport" tool_tip="Teleportar a la localización seleccionada"/>
<button label="Copiar la SLurl" name="copy_slurl" tool_tip="Copiar la SLurl de esta posición para usarla en una web."/>
<button label="Ver lo elegido" name="Show Destination" tool_tip="Centrar el mapa en la localización seleccionada"/>
diff --git a/indra/newview/skins/default/xui/es/language_settings.xml b/indra/newview/skins/default/xui/es/language_settings.xml
index 1ade4ba300..f172994077 100644
--- a/indra/newview/skins/default/xui/es/language_settings.xml
+++ b/indra/newview/skins/default/xui/es/language_settings.xml
@@ -17,6 +17,7 @@
datetimeToCodes["month"] = "%B"; // August
datetimeToCodes["mthnum"] = "%m"; // 08
datetimeToCodes["day"] = "%d"; // 31
+ datetimeToCodes["sday"] = "%-d"; // 9
datetimeToCodes["hour24"] = "%H"; // 14
datetimeToCodes["hour"] = "%H"; // 14
datetimeToCodes["hour12"] = "%I"; // 02
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 afac8d7fe9..dc4efa1ce8 100644
--- a/indra/newview/skins/default/xui/es/menu_attachment_self.xml
+++ b/indra/newview/skins/default/xui/es/menu_attachment_self.xml
@@ -3,11 +3,13 @@
<menu_item_call label="Tocar" name="Attachment Object Touch"/>
<menu_item_call label="Editar" name="Edit..."/>
<menu_item_call label="Quitar" name="Detach"/>
- <menu_item_call label="Soltar" name="Drop"/>
<menu_item_call label="Levantarme" name="Stand Up"/>
<menu_item_call label="Cambiar vestuario" name="Change Outfit"/>
+ <menu_item_call label="Editar mi vestuario" name="Edit Outfit"/>
+ <menu_item_call label="Editar mi anatomía" name="Edit My Shape"/>
<menu_item_call label="Mis amigos" name="Friends..."/>
<menu_item_call label="Mis grupos" name="Groups..."/>
<menu_item_call label="Mi perfil" name="Profile..."/>
<menu_item_call label="Depurar las texturas" name="Debug..."/>
+ <menu_item_call label="Soltar" name="Drop"/>
</context_menu>
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 d347a7d0c4..ddc0b97310 100644
--- a/indra/newview/skins/default/xui/es/menu_avatar_self.xml
+++ b/indra/newview/skins/default/xui/es/menu_avatar_self.xml
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Self Pie">
<menu_item_call label="Levantarme" name="Stand Up"/>
- <context_menu label="Quitarme â–¶" name="Take Off &gt;">
- <context_menu label="Ropas â–¶" name="Clothes &gt;">
+ <context_menu label="Quitarme" name="Take Off &gt;">
+ <context_menu label="Ropas" name="Clothes &gt;">
<menu_item_call label="Camisa" name="Shirt"/>
<menu_item_call label="Pantalón" name="Pants"/>
<menu_item_call label="Falda" name="Skirt"/>
@@ -16,8 +16,8 @@
<menu_item_call label="Alfa" name="Self Alpha"/>
<menu_item_call label="Toda la ropa" name="All Clothes"/>
</context_menu>
- <context_menu label="HUD â–¶" name="Object Detach HUD"/>
- <context_menu label="Desanexar â–¶" name="Object Detach"/>
+ <context_menu label="HUD" name="Object Detach HUD"/>
+ <context_menu label="Desanexar" name="Object Detach"/>
<menu_item_call label="Quitarse todo" name="Detach All"/>
</context_menu>
<menu_item_call label="Cambiar vestuario" name="Chenge Outfit"/>
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 4051f64e14..3c0c588284 100644
--- a/indra/newview/skins/default/xui/es/menu_cof_clothing.xml
+++ b/indra/newview/skins/default/xui/es/menu_cof_clothing.xml
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="COF Clothing">
<menu_item_call label="Quitarme" name="take_off"/>
- <menu_item_call label="Subir una capa" name="move_up"/>
- <menu_item_call label="Bajar una capa" name="move_down"/>
<menu_item_call label="Editar" name="edit"/>
+ <menu_item_call label="Reemplazar" name="replace"/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/es/menu_inventory.xml b/indra/newview/skins/default/xui/es/menu_inventory.xml
index 8f606aef82..94ee162bbc 100644
--- a/indra/newview/skins/default/xui/es/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/es/menu_inventory.xml
@@ -61,7 +61,7 @@
<menu_item_call label="Copiar" name="Copy"/>
<menu_item_call label="Pegar" name="Paste"/>
<menu_item_call label="Pegar como enlace" name="Paste As Link"/>
- <menu_item_call label="Quitar el enlace" name="Remove Link"/>
+ <menu_item_call label="Borrar" name="Remove Link"/>
<menu_item_call label="Borrar" name="Delete"/>
<menu_item_call label="Borrar carpeta del sistema" name="Delete System Folder"/>
<menu_item_call label="Empezar multiconferencia" name="Conference Chat Folder"/>
@@ -76,11 +76,10 @@
<menu_item_call label="Desactivar" name="Deactivate"/>
<menu_item_call label="Guardar como" name="Save As"/>
<menu_item_call label="Quitarse" name="Detach From Yourself"/>
- <menu_item_call label="Ponerse" name="Object Wear"/>
+ <menu_item_call label="Ponerme" name="Wearable And Object Wear"/>
<menu label="Anexar a" name="Attach To"/>
<menu label="Anexar como HUD" name="Attach To HUD"/>
<menu_item_call label="Editar" name="Wearable Edit"/>
- <menu_item_call label="Ponerse" name="Wearable Wear"/>
<menu_item_call label="Añadir" name="Wearable Add"/>
<menu_item_call label="Quitarse" name="Take Off"/>
<menu_item_call label="--sin opciones--" name="--no options--"/>
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 91cb4a08ff..ba106e8335 100644
--- a/indra/newview/skins/default/xui/es/menu_inventory_add.xml
+++ b/indra/newview/skins/default/xui/es/menu_inventory_add.xml
@@ -5,6 +5,7 @@
<menu_item_call label="Sonido ([COST] L$)..." name="Upload Sound"/>
<menu_item_call label="Animación ([COST] L$)..." name="Upload Animation"/>
<menu_item_call label="Masivo ([COST] L$ por archivo)..." name="Bulk Upload"/>
+ <menu_item_call label="Configurar los permisos por defecto de subida" name="perm prefs"/>
</menu>
<menu_item_call label="Carpeta nueva" name="New Folder"/>
<menu_item_call label="Script nuevo" name="New Script"/>
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 80cf78c0b5..8c4488a285 100644
--- a/indra/newview/skins/default/xui/es/menu_inventory_gear_default.xml
+++ b/indra/newview/skins/default/xui/es/menu_inventory_gear_default.xml
@@ -6,9 +6,10 @@
<menu_item_call label="Ver los filtros" name="show_filters"/>
<menu_item_call label="Restablecer los filtros" name="reset_filters"/>
<menu_item_call label="Cerrar todas las carpetas" name="close_folders"/>
- <menu_item_call label="Vaciar la Papelera" name="empty_trash"/>
<menu_item_call label="Vaciar Objetos Perdidos" name="empty_lostnfound"/>
<menu_item_call label="Guardar la textura como" name="Save Texture As"/>
+ <menu_item_call label="Compartir" name="Share"/>
<menu_item_call label="Encontrar el original" name="Find Original"/>
<menu_item_call label="Encontrar todos los enlazados" name="Find All Links"/>
+ <menu_item_call label="Vaciar la Papelera" name="empty_trash"/>
</menu>
diff --git a/indra/newview/skins/default/xui/es/menu_object.xml b/indra/newview/skins/default/xui/es/menu_object.xml
index d2743cd4fc..fb83b51ecc 100644
--- a/indra/newview/skins/default/xui/es/menu_object.xml
+++ b/indra/newview/skins/default/xui/es/menu_object.xml
@@ -1,6 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Object Pie">
- <menu_item_call label="Tocar" name="Object Touch"/>
+ <menu_item_call label="Tocar" name="Object Touch">
+ <on_enable parameter="Tocar" name="EnableTouch"/>
+ </menu_item_call>
<menu_item_call label="Editar" name="Edit..."/>
<menu_item_call label="Construir" name="Build"/>
<menu_item_call label="Abrir" name="Open"/>
@@ -8,12 +10,12 @@
<menu_item_call label="Levantarme" name="Object Stand Up"/>
<menu_item_call label="Perfil del objeto" name="Object Inspect"/>
<menu_item_call label="Acercar el zoom" name="Zoom In"/>
- <context_menu label="Ponerme â–¶" name="Put On">
+ <context_menu label="Ponerme" name="Put On">
<menu_item_call label="Ponerme" name="Wear"/>
- <context_menu label="Anexar â–¶" name="Object Attach"/>
- <context_menu label="Anexar como HUD â–¶" name="Object Attach HUD"/>
+ <context_menu label="Anexar" name="Object Attach"/>
+ <context_menu label="Anexar como HUD" name="Object Attach HUD"/>
</context_menu>
- <context_menu label="Quitarme â–¶" name="Remove">
+ <context_menu label="Quitarme" name="Remove">
<menu_item_call label="Denunciar una infracción" name="Report Abuse..."/>
<menu_item_call label="Ignorar" name="Object Mute"/>
<menu_item_call label="Devolver" name="Return..."/>
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 39afa5e60b..3b11bceecf 100644
--- a/indra/newview/skins/default/xui/es/menu_outfit_gear.xml
+++ b/indra/newview/skins/default/xui/es/menu_outfit_gear.xml
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu name="Gear Outfit">
<menu_item_call label="Ponerme - Reemplazar el vestuario actual" name="wear"/>
+ <menu_item_call label="Ponerme - Añadir al vestuario actual" name="wear_add"/>
<menu_item_call label="Quitarme - Quitar del vestuario actual" name="take_off"/>
<menu label="Ropas nuevas" name="New Clothes">
<menu_item_call label="Camisa nueva" name="New Shirt"/>
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 e674d6fa11..4136082a62 100644
--- a/indra/newview/skins/default/xui/es/menu_outfit_tab.xml
+++ b/indra/newview/skins/default/xui/es/menu_outfit_tab.xml
@@ -4,6 +4,6 @@
<menu_item_call label="Ponerme - Añadir al vestuario actual" name="wear_add"/>
<menu_item_call label="Quitarme - Quitar del vestuario actual" name="take_off"/>
<menu_item_call label="Editar el vestuario" name="edit"/>
- <menu_item_call label="Renombrar" name="rename"/>
+ <menu_item_call label="Renombrar el vestuario" name="rename"/>
<menu_item_call label="Borrar el vestuario" name="delete"/>
</context_menu>
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 fd8bd05230..f6eedd1170 100644
--- a/indra/newview/skins/default/xui/es/menu_participant_list.xml
+++ b/indra/newview/skins/default/xui/es/menu_participant_list.xml
@@ -11,7 +11,7 @@
<menu_item_check label="Ver los iconos de la gente" name="View Icons"/>
<menu_item_check label="Ignorar la voz" name="Block/Unblock"/>
<menu_item_check label="Ignorar el texto" name="MuteText"/>
- <context_menu label="Opciones del moderador &gt;" name="Moderator Options">
+ <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"/>
diff --git a/indra/newview/skins/default/xui/es/menu_topinfobar.xml b/indra/newview/skins/default/xui/es/menu_topinfobar.xml
new file mode 100644
index 0000000000..2125fd51b2
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/menu_topinfobar.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="menu_topinfobar">
+ <menu_item_check label="Mostrar las coordenadas" name="Show Coordinates"/>
+ <menu_item_check label="Mostrar las propiedades de la parcela" name="Show Parcel Properties"/>
+ <menu_item_call label="Hito" name="Landmark"/>
+ <menu_item_call label="Copiar" name="Copy"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/es/menu_viewer.xml b/indra/newview/skins/default/xui/es/menu_viewer.xml
index f56ab00bf6..66c0bf9311 100644
--- a/indra/newview/skins/default/xui/es/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/es/menu_viewer.xml
@@ -177,6 +177,7 @@
<menu_item_check label="Buscar" name="Search"/>
<menu_item_call label="Recuperar las teclas" name="Release Keys"/>
<menu_item_call label="Interfaz en el tamaño predeterminado" name="Set UI Size to Default"/>
+ <menu_item_check label="Mostrar el menú Avanzado - acceso directo antiguo" name="Show Advanced Menu - legacy shortcut"/>
<menu_item_check label="Correr siempre" name="Always Run"/>
<menu_item_check label="Volar" name="Fly"/>
<menu_item_call label="Cerrar la ventana" name="Close Window"/>
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 d5f106ff96..c207a0371d 100644
--- a/indra/newview/skins/default/xui/es/menu_wearable_list_item.xml
+++ b/indra/newview/skins/default/xui/es/menu_wearable_list_item.xml
@@ -1,11 +1,12 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Outfit Wearable Context Menu">
- <menu_item_call label="Ponerme" name="wear"/>
+ <menu_item_call label="Reemplazar" name="wear_replace"/>
+ <menu_item_call label="Ponerme" name="wear_wear"/>
<menu_item_call label="Añadir" name="wear_add"/>
<menu_item_call label="Quitarme / Quitar" name="take_off_or_detach"/>
<menu_item_call label="Quitar" name="detach"/>
- <context_menu label="Anexar a â–¶" name="wearable_attach_to"/>
- <context_menu label="Anexar al HUD â–¶" name="wearable_attach_to_hud"/>
+ <context_menu label="Anexar a" name="wearable_attach_to"/>
+ <context_menu label="Anexar al HUD" name="wearable_attach_to_hud"/>
<menu_item_call label="Quitarme" name="take_off"/>
<menu_item_call label="Editar" name="edit"/>
<menu_item_call label="Perfil del objeto" name="object_profile"/>
diff --git a/indra/newview/skins/default/xui/es/menu_wearing_gear.xml b/indra/newview/skins/default/xui/es/menu_wearing_gear.xml
new file mode 100644
index 0000000000..5f68e1687f
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/menu_wearing_gear.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="Gear Wearing">
+ <menu_item_call label="Editar el vestuario" name="edit"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/es/menu_wearing_tab.xml b/indra/newview/skins/default/xui/es/menu_wearing_tab.xml
new file mode 100644
index 0000000000..56f4afda9b
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/menu_wearing_tab.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<context_menu name="Wearing">
+ <menu_item_call label="Editar el vestuario" name="edit"/>
+</context_menu>
diff --git a/indra/newview/skins/default/xui/es/notifications.xml b/indra/newview/skins/default/xui/es/notifications.xml
index 1ec29d6029..e9eda790dd 100644
--- a/indra/newview/skins/default/xui/es/notifications.xml
+++ b/indra/newview/skins/default/xui/es/notifications.xml
@@ -355,6 +355,10 @@ No se reembolsan las cuotas pagadas.
¿Borrar el destacado &lt;nolink&gt;[PICK]&lt;/nolink&gt;?
<usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
</notification>
+ <notification name="DeleteOutfits">
+ ¿Eliminar el vestuario seleccionado?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
<notification name="PromptGoToEventsPage">
¿Ir a la web de eventos de [SECOND_LIFE]?
<url name="url">
@@ -614,8 +618,7 @@ Podría ser [VALIDS]
No se puede codificar el archivo: [FILE]
</notification>
<notification name="CorruptedProtectedDataStore">
- No se pueden leer los datos protegidos, por lo que se están restaurando.
- Esto puede deberse a un cambio de configuración de la red.
+ No se pueden rellenar el nombre de usuario y la contraseña. Esto puede deberse a un cambio de configuración de la red.
<usetemplate name="okbutton" yestext="OK"/>
</notification>
<notification name="CorruptResourceFile">
@@ -2043,11 +2046,6 @@ Publícala en una página web para que otros puedan acceder fácilmente a esta p
Subiendo fotos del mundo y del sitio web...
(tardará unos 5 minutos).
</notification>
- <notification name="UploadConfirmation">
- La subida cuesta [AMOUNT] L$.
-¿Quieres continuar?
- <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Subir"/>
- </notification>
<notification name="UploadPayment">
Has pagado [AMOUNT] LS por la subida.
</notification>
@@ -2467,9 +2465,6 @@ Del objeto: [OBJECTNAME]; propiedad de: [NAME]?
<notification name="FailedToFindWearable">
Búsqueda fallida de [TYPE] de nombre [DESC] en la base de datos.
</notification>
- <notification name="ShareToWebFailed">
- Fallo al subir la imagen a la web.
- </notification>
<notification name="InvalidWearable">
El ítem que quieres vestirte tiene una característica que tu visor no puede leer. Por favor, actualiza tu versión de [APP_NAME] para ponerte este ítem.
</notification>
@@ -2755,8 +2750,8 @@ Comprueba la configuración de la red y del servidor de seguridad.
El avatar &apos;[NAME]&apos; ya estaba totalmente cargado al salir.
</notification>
<notification name="AvatarRezSelfBakeNotification">
- ( [EXISTENCE] segundos vivo)
-Has cargado una textura obtenida mediante bake de [RESOLUTION] para &apos;[BODYREGION]&apos; después de [TIME] segundos.
+ ( [EXISTENCE] segundos con vida )
+Has [ACTION] una textura obtenida mediante bake de [RESOLUTION] para &apos;[BODYREGION]&apos; después de [TIME] segundos.
</notification>
<notification name="ConfirmLeaveCall">
¿Estás seguro de que deseas salir de esta multiconferencia?
@@ -2793,4 +2788,7 @@ Si los problemas persisten, por favor, acude a [SUPPORT_SITE].
Si posees un terreno, puedes hacerlo tu Base.
También puedes buscar en el Mapa lugares marcados como &quot;Puntos de Información&quot;.
</global>
+ <global name="You died and have been teleported to your home location">
+ Has muerto y te has teleportado a tu Base.
+ </global>
</notifications>
diff --git a/indra/newview/skins/default/xui/es/panel_audio_device.xml b/indra/newview/skins/default/xui/es/panel_audio_device.xml
deleted file mode 100644
index d20a0af4fb..0000000000
--- a/indra/newview/skins/default/xui/es/panel_audio_device.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="device_settings">
- <text name="Audio Devices">
- Dispositivos de sonido
- </text>
- <text name="Input device (microphone):">
- Dispositivo de entrada (micrófono):
- </text>
- <text name="Output device (speakers):">
- Dispositivo de salida (altavoces):
- </text>
- <text name="Input level:">
- Volumen de entrada
- </text>
- <text_editor name="voice_intro_text1">
- Ajuste el deslizable para controlar el volumen con el que usted le sonará a otros residentes. Para probar el volumen de entrada, basta con que hable al micrófono.
- </text_editor>
- <volume_slider name="mic_volume_slider" tool_tip="Cambie el volumen usando este deslizable"/>
- <text name="wait_text">
- Por favor, espere
- </text>
- <string name="default_text">
- Por defecto
- </string>
-</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 de764d8025..8f4e0101aa 100644
--- 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
@@ -1,4 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="wearable_item">
<text name="item_name" value="..."/>
+ <panel name="btn_lock" tool_tip="No tienes permiso para editar."/>
+ <panel name="btn_edit_panel">
+ <button name="btn_edit" tool_tip="Editar esta anatomía"/>
+ </panel>
</panel>
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 de764d8025..959b83d658 100644
--- a/indra/newview/skins/default/xui/es/panel_clothing_list_item.xml
+++ b/indra/newview/skins/default/xui/es/panel_clothing_list_item.xml
@@ -1,4 +1,9 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="wearable_item">
+ <button name="btn_delete" tool_tip="Quitar del vestuario"/>
<text name="item_name" value="..."/>
+ <panel name="btn_lock" tool_tip="No tienes permiso para editar."/>
+ <panel name="btn_edit_panel">
+ <button name="btn_edit" tool_tip="Editar este artículo"/>
+ </panel>
</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 91d90a5660..d1d7d8ec82 100644
--- 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
@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="deletable_wearable_item">
+ <button name="btn_delete" tool_tip="Quitar del vestuario"/>
<text name="item_name" value="..."/>
</panel>
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 6af84de0c7..bc3046978c 100644
--- 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
@@ -1,4 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="dummy_clothing_item">
<text name="item_name" value="..."/>
+ <panel name="btn_add_panel">
+ <button name="btn_add" tool_tip="Añadir más elementos de este tipo"/>
+ </panel>
</panel>
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 176f122dc4..09321f7b91 100644
--- a/indra/newview/skins/default/xui/es/panel_edit_wearable.xml
+++ b/indra/newview/skins/default/xui/es/panel_edit_wearable.xml
@@ -90,6 +90,7 @@
<string name="tattoo_desc_text">
Tatuaje:
</string>
+ <labeled_back_button label="Guardar" name="back_btn" tool_tip="Regresar a Editar el vestuario"/>
<text name="edit_wearable_title" value="Modificando la anatomía"/>
<panel label="Camisa" name="wearable_type_panel">
<text name="description_text" value="Anatomía:"/>
@@ -102,6 +103,6 @@
</panel>
<panel name="button_panel">
<button label="Guardar como" name="save_as_button"/>
- <button label="Revertir" name="revert_button"/>
+ <button label="Deshacer los cambios" name="revert_button"/>
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/es/panel_friends.xml b/indra/newview/skins/default/xui/es/panel_friends.xml
deleted file mode 100644
index e1cac7c2c3..0000000000
--- a/indra/newview/skins/default/xui/es/panel_friends.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="friends">
- <string name="Multiple">
- Varios amigos
- </string>
- <scroll_list name="friend_list" tool_tip="Para seleccionar a varios amigos, mantenga pulsado Ctrl o Mays. mientras les va pulsando.">
- <column name="icon_online_status" tool_tip="Estado de conexión"/>
- <column label="Nombre" name="friend_name" tool_tip="Nombre"/>
- <column name="icon_visible_online" tool_tip="El amigo puede ver cuándo está conectado"/>
- <column name="icon_visible_map" tool_tip="El amigo puede localizarle en el mapa"/>
- <column name="icon_edit_mine" tool_tip="El amigo puede editar, borrar o tomar sus objetos"/>
- <column name="icon_edit_theirs" tool_tip="Puede editar los objetos de este amigo"/>
- </scroll_list>
- <button label="MI/Llamada" name="im_btn" tool_tip="Abrir sesión de mensajes instantáneos"/>
- <button label="Perfil" name="profile_btn" tool_tip="Mostrar la imagen, los grupos, y otra información"/>
- <button label="Teleporte" name="offer_teleport_btn" tool_tip="Ofrecer a este amigo teleportarle hasta su posición"/>
- <button label="Pagar" name="pay_btn" tool_tip="Dar dólares Linden (L$) a este amigo"/>
- <button label="Quitar" name="remove_btn" tool_tip="Quitar a esta persona de su lista de amigos"/>
- <button label="Añadir" name="add_btn" tool_tip="Ofrecer amistad a un Residente"/>
-</panel>
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 c4f17ab6dc..a0f7433d7d 100644
--- a/indra/newview/skins/default/xui/es/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/es/panel_group_general.xml
@@ -48,7 +48,7 @@ Deja el cursor sobre las opciones para ver más ayuda.
<spinner label="L$" left_delta="130" name="spin_enrollment_fee" tool_tip="Si la opción Cuota de entrada está marcada, los nuevos miembros han de pagar esta cuota para entrar al grupo." width="60"/>
<combo_box bottom_delta="-38" name="group_mature_check" tool_tip="Establece si la información de su grupo es &apos;mature&apos;." width="150">
<combo_item name="select_mature">
- - Elige la Calificación -
+ - Selecciona el nivel de calificación -
</combo_item>
<combo_box.item label="Contenido &apos;Mature&apos;" name="mature"/>
<combo_box.item label="Contenido &apos;PG&apos;" name="pg"/>
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 7a3dbad59e..1eaa69abff 100644
--- a/indra/newview/skins/default/xui/es/panel_group_notices.xml
+++ b/indra/newview/skins/default/xui/es/panel_group_notices.xml
@@ -18,7 +18,7 @@ El máximo es de 200 por día y grupo.
<text name="notice_list_none_found">
No se han encontrado
</text>
- <button label="Crear un aviso nuevo" label_selected="Crear un aviso nuevo" name="create_new_notice" tool_tip="Crear un aviso nuevo"/>
+ <button label="Nuevo aviso" label_selected="Crear un aviso nuevo" name="create_new_notice" tool_tip="Crear un aviso nuevo"/>
<button label="Actualizar" label_selected="Actualizar la lista" name="refresh_notices" tool_tip="Actualizar la lista de avisos"/>
<panel label="Crear un aviso nuevo" name="panel_create_new_notice">
<text name="lbl">
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 5ef81162bc..390b4e2e9d 100644
--- a/indra/newview/skins/default/xui/es/panel_group_roles.xml
+++ b/indra/newview/skins/default/xui/es/panel_group_roles.xml
@@ -12,6 +12,9 @@
Puede añadir o quitar los roles asignados a los miembros.
Seleccione varios nombres manteniendo pulsada la tecla Ctrl y pulsando en cada uno de ellos.
</panel.string>
+ <panel.string name="donation_area">
+ [AREA] m²
+ </panel.string>
<filter_editor label="Filtrar los miembros" name="filter_input"/>
<name_list name="member_list">
<name_list.columns label="Miembro" name="name"/>
@@ -74,21 +77,15 @@ incluyendo el de Todos y el de Propietarios.
<text name="static">
Nombre del rol
</text>
- <line_editor name="role_name">
- Empleados
- </line_editor>
+ <line_editor name="role_name"/>
<text name="static3">
Etiqueta del rol
</text>
- <line_editor name="role_title">
- (esperando)
- </line_editor>
+ <line_editor name="role_title"/>
<text name="static2">
Descripción
</text>
- <text_editor name="role_description">
- (esperando)
- </text_editor>
+ <text_editor name="role_description"/>
<text name="static4">
Roles asignados
</text>
@@ -103,9 +100,6 @@ incluyendo el de Todos y el de Propietarios.
</scroll_list>
</panel>
<panel name="actions_footer">
- <text name="static">
- Descripción de la capacidad
- </text>
<text_editor name="action_description">
Esta capacidad es la de &apos;Expulsar miembros de este grupo&apos;. Sólo un propietario puede expulsar a otro.
</text_editor>
diff --git a/indra/newview/skins/default/xui/es/panel_groups.xml b/indra/newview/skins/default/xui/es/panel_groups.xml
deleted file mode 100644
index 232de85522..0000000000
--- a/indra/newview/skins/default/xui/es/panel_groups.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="groups">
- <scroll_list bottom="50" name="group list"/>
- <text bottom="16" height="32" name="groupdesc" width="268">
- El grupo que tiene activado actualmente se
-muestra en negrilla.
- </text>
- <text bottom="3" name="groupcount" width="268">
- Pertenece a [COUNT] grupo/s (de un máximo de [MAX]).
- </text>
- <button label="MI/Llamar" name="IM" tool_tip="Abrir una sesión de mensajes instantáneos"/>
- <button label="Información" name="Info"/>
- <button label="Activar" name="Activate"/>
- <button label="Abandonar" name="Leave"/>
- <button label="Crear..." name="Create"/>
- <button label="Buscar..." name="Search..."/>
-</panel>
diff --git a/indra/newview/skins/default/xui/es/panel_nearby_chat.xml b/indra/newview/skins/default/xui/es/panel_nearby_chat.xml
deleted file mode 100644
index 986c109c41..0000000000
--- a/indra/newview/skins/default/xui/es/panel_nearby_chat.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<!-- All our XML is utf-8 encoded. -->
-<panel name="nearby_chat">
- <panel name="chat_caption">
- <text name="sender_name">
- CHAT
- </text>
- </panel>
-</panel>
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 d1a14c877f..f65cae6e20 100644
--- a/indra/newview/skins/default/xui/es/panel_nearby_media.xml
+++ b/indra/newview/skins/default/xui/es/panel_nearby_media.xml
@@ -23,6 +23,12 @@
<button label="Más &gt;&gt;" label_selected="Menos &lt;&lt;" name="less_btn" tool_tip="Controles avanzados"/>
</panel>
<panel name="nearby_media_panel">
+ <text name="nearby_media_title">
+ Media cercanos
+ </text>
+ <text name="show_text">
+ Mostrar:
+ </text>
<combo_box name="show_combo">
<combo_box.item label="Todo" name="All"/>
<combo_box.item label="En esta parcela" name="WithinParcel"/>
@@ -36,22 +42,22 @@
<scroll_list.columns label="Nombre" name="media_name"/>
<scroll_list.columns label="Depurar" name="media_debug"/>
</scroll_list>
- <panel>
+ <panel name="media_controls_panel">
<layout_stack name="media_controls">
<layout_panel name="stop">
<button name="stop_btn" tool_tip="Parar los media seleccionados"/>
</layout_panel>
<layout_panel name="play">
- <button name="play_btn" tool_tip="Ejecutar los media"/>
+ <button name="play_btn" tool_tip="Ejecutar los media seleccionados"/>
</layout_panel>
<layout_panel name="pause">
- <button name="pause_btn" tool_tip="Pausa los media seleccionados"/>
+ <button name="pause_btn" tool_tip="Pausar los media seleccionados"/>
</layout_panel>
<layout_panel name="volume_slider_ctrl">
<slider_bar initial_value="0.5" name="volume_slider" tool_tip="Volumen de los media seleccionados"/>
</layout_panel>
<layout_panel name="mute">
- <button name="mute_btn" tool_tip="Silencia los media seleccionados"/>
+ <button name="mute_btn" tool_tip="Silenciar el audio de los media seleccionados"/>
</layout_panel>
<layout_panel name="zoom">
<button name="zoom_btn" tool_tip="Zoom en los media seleccionados"/>
diff --git a/indra/newview/skins/default/xui/es/panel_notes.xml b/indra/newview/skins/default/xui/es/panel_notes.xml
index 8de2afa767..da98e1b15e 100644
--- a/indra/newview/skins/default/xui/es/panel_notes.xml
+++ b/indra/newview/skins/default/xui/es/panel_notes.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Notas y Privacidad" name="panel_notes">
<layout_stack name="layout">
- <panel name="notes_stack">
+ <layout_panel name="notes_stack">
<scroll_container name="profile_scroll">
<panel name="profile_scroll_panel">
<text name="status_message" value="Mis notas privadas:"/>
@@ -11,13 +11,13 @@
<check_box label="Edite, borre o coja mis objetos" name="objects_check"/>
</panel>
</scroll_container>
- </panel>
- <panel name="notes_buttons_panel">
+ </layout_panel>
+ <layout_panel name="notes_buttons_panel">
<button label="Añadir como amigo" name="add_friend" tool_tip="Ofrecer amistad a este Residente"/>
<button label="MI" name="im" tool_tip="Abrir un mensaje instantáneo"/>
<button label="Llamar" name="call" tool_tip="Llamar a este Residente"/>
<button label="Mapa" name="show_on_map_btn" tool_tip="Mostrar al Residente en el mapa"/>
<button label="Teleportar" name="teleport" tool_tip="Ofrecer teleporte"/>
- </panel>
+ </layout_panel>
</layout_stack>
</panel>
diff --git a/indra/newview/skins/default/xui/es/panel_online_status.xml b/indra/newview/skins/default/xui/es/panel_online_status.xml
deleted file mode 100644
index fdc489f375..0000000000
--- a/indra/newview/skins/default/xui/es/panel_online_status.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="friend_online_status" name="friend_online_status"/>
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 31648e8e80..f697539502 100644
--- a/indra/newview/skins/default/xui/es/panel_outfit_edit.xml
+++ b/indra/newview/skins/default/xui/es/panel_outfit_edit.xml
@@ -13,7 +13,9 @@
<string name="Filter.All" value="Todos"/>
<string name="Filter.Clothes/Body" value="Ropas/Cuerpo"/>
<string name="Filter.Objects" value="Objetos"/>
- <string name="Filter.Custom" value="Filtro personalizado"/>
+ <string name="Filter.Clothing" value="Ropa"/>
+ <string name="Filter.Bodyparts" value="Partes del cuerpo"/>
+ <string name="replace_body_part" value="Pulsa para sustituir tu anatomía actual"/>
<text name="title" value="Editar el vestuario"/>
<panel label="bottom_panel" name="header_panel">
<panel label="bottom_panel" name="outfit_name_and_status">
@@ -25,17 +27,25 @@
<layout_panel label="Panel de control de los MI" name="outfit_wearables_panel">
<layout_stack name="filter_panels">
<layout_panel name="add_button_and_combobox">
- <button label="Añadir más..." name="show_add_wearables_btn"/>
+ <button label="Añadir más..." name="show_add_wearables_btn" tool_tip="Abrir/Cerrar"/>
</layout_panel>
<layout_panel name="filter_panel">
<filter_editor label="Filtrar artículos del inventario" name="look_item_filter"/>
</layout_panel>
</layout_stack>
</layout_panel>
- <layout_panel name="add_wearables_panel"/>
+ <layout_panel name="add_wearables_panel">
+ <button label="Ponerme un ítem" name="plus_btn"/>
+ </layout_panel>
</layout_stack>
+ <panel name="no_add_wearables_button_bar">
+ <button name="shop_btn_1" tool_tip="Visita el Mercado de SL. Asimismo, puedes seleccionar algo que lleves puesto y, a continuación, hacer clic aquí para ver más ítems relacionados"/>
+ </panel>
+ <panel name="add_wearables_button_bar">
+ <button name="shop_btn_2" tool_tip="Visita el Mercado de SL. Asimismo, puedes seleccionar algo que lleves puesto y, a continuación, hacer clic aquí para ver más ítems relacionados"/>
+ </panel>
<panel name="save_revert_button_bar">
<button label="Guardar" name="save_btn"/>
- <button label="Revertir" name="revert_btn"/>
+ <button label="Deshacer los cambios" name="revert_btn" tool_tip="Volver a la última versión guardada"/>
</panel>
</panel>
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 7691a680a1..582b0d1955 100644
--- a/indra/newview/skins/default/xui/es/panel_outfits_inventory.xml
+++ b/indra/newview/skins/default/xui/es/panel_outfits_inventory.xml
@@ -1,12 +1,16 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Cosas" name="Outfits">
+ <panel.string name="wear_outfit_tooltip">
+ Ponerme el vestuario seleccionado
+ </panel.string>
+ <panel.string name="wear_items_tooltip">
+ Ponerme ítems seleccionados
+ </panel.string>
<tab_container name="appearance_tabs">
<panel label="MIS VESTUARIOS" name="outfitslist_tab"/>
- <inventory_panel label="PUESTO" name="cof_tab"/>
+ <panel label="PUESTO" name="cof_tab"/>
</tab_container>
<panel name="bottom_panel">
- <button name="options_gear_btn" tool_tip="Ver más opciones"/>
- <dnd_button name="trash_btn" tool_tip="Quitar el ítem seleccionado"/>
<button label="Guardar como" name="save_btn"/>
<button label="Ponerme" name="wear_btn" tool_tip="Ponerme el vestuario seleccionado"/>
</panel>
diff --git a/indra/newview/skins/default/xui/es/panel_outfits_list.xml b/indra/newview/skins/default/xui/es/panel_outfits_list.xml
new file mode 100644
index 0000000000..661b44e419
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/panel_outfits_list.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="Outfits">
+ <panel name="bottom_panel">
+ <button name="options_gear_btn" tool_tip="Ver más opciones"/>
+ <button name="trash_btn" tool_tip="Eliminar el vestuario seleccionado"/>
+ </panel>
+</panel>
diff --git a/indra/newview/skins/default/xui/es/panel_outfits_wearing.xml b/indra/newview/skins/default/xui/es/panel_outfits_wearing.xml
new file mode 100644
index 0000000000..8cea619bd5
--- /dev/null
+++ b/indra/newview/skins/default/xui/es/panel_outfits_wearing.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="Wearing">
+ <panel name="bottom_panel">
+ <button name="options_gear_btn" tool_tip="Ver más opciones"/>
+ </panel>
+</panel>
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 fc8c908788..22f967afe6 100644
--- a/indra/newview/skins/default/xui/es/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/es/panel_preferences_chat.xml
@@ -56,4 +56,27 @@
<radio_item label="Varias ventanas" name="radio" value="0"/>
<radio_item label="Pestañas" name="radio2" value="1"/>
</radio_group>
+ <check_box label="Traducir Chat" name="translate_chat_checkbox" />
+ <text name="translate_language_text">
+ Idioma de chat:
+ </text>
+ <combo_box name="translate_language_combobox">
+ <combo_box.item name="System Default Language" label="Predeterminado del sistema" />
+ <combo_box.item name="English" label="English (Inglés)" />
+ <combo_box.item name="Danish" label="Dansk (Danés)" />
+ <combo_box.item name="German" label="Deutsch (Alemán)" />
+ <combo_box.item name="Spanish" label="Español" />
+ <combo_box.item name="French" label="Français (Francés)" />
+ <combo_box.item name="Italian" label="Italiano" />
+ <combo_box.item name="Hungarian" label="Magyar (Húngaro)" />
+ <combo_box.item name="Dutch" label="Nederlands (Neerlandés)" />
+ <combo_box.item name="Polish" label="Polski (Polaco)" />
+ <combo_box.item name="Portugese" label="Português (Portugués)" />
+ <combo_box.item name="Russian" label="РуÑÑкий (Ruso)" />
+ <combo_box.item name="Turkish" label="Türkçe (Turco)" />
+ <combo_box.item name="Ukrainian" label="УкраїнÑька (Ucraniano)" />
+ <combo_box.item name="Chinese" label="中文 (简体) (Chino)" />
+ <combo_box.item name="Japanese" label="日本語 (Japonés)" />
+ <combo_box.item name="Korean" label="한국어 (Coreano)" />
+ </combo_box>
</panel>
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 ca157314aa..20109cf2c5 100644
--- a/indra/newview/skins/default/xui/es/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/es/panel_preferences_general.xml
@@ -13,7 +13,7 @@
<combo_box.item label="Italiano - Beta" name="Italian"/>
<combo_box.item label="Nederlands (Neerlandés) - Beta" name="Dutch"/>
<combo_box.item label="Polski (Polaco) - Beta" name="Polish"/>
- <combo_box.item label="Portugués (Portugués) - Beta" name="Portugese"/>
+ <combo_box.item label="Português (Portugués) - Beta" name="Portugese"/>
<combo_box.item label="日本語 (Japonés) - Beta" name="(Japanese)"/>
</combo_box>
<text name="language_textbox2">
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 183c007a0c..feebf197c4 100644
--- a/indra/newview/skins/default/xui/es/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/es/panel_preferences_graphics1.xml
@@ -49,10 +49,7 @@
m
</text>
<slider label="Núm. máx. de partículas:" name="MaxParticleCount"/>
- <slider label="Distancia de dibujo máxima del avatar:" name="MaxAvatarDrawDistance"/>
- <text name="DrawDistanceMeterText3">
- m
- </text>
+ <slider label="N.º máximo de avatares no impostores:" name="MaxNumberAvatarDrawn"/>
<slider label="Calidad de procesamiento:" name="RenderPostProcess"/>
<text name="MeshDetailText">
Detalle de la malla:
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 2d3c76d215..b0088ee1a2 100644
--- a/indra/newview/skins/default/xui/es/panel_preferences_sound.xml
+++ b/indra/newview/skins/default/xui/es/panel_preferences_sound.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Sonidos" name="Preference Media panel">
<slider label="Volumen general" name="System Volume"/>
- <check_box label="Silenciar cuando minimice" name="mute_when_minimized"/>
+ <check_box initial_value="true" label="Silenciar cuando minimice" name="mute_when_minimized"/>
<slider label="Botones" name="UI Volume"/>
<slider label="Ambiental" name="Wind Volume"/>
<slider label="Efectos de sonido" name="SFX Volume"/>
@@ -11,8 +11,8 @@
<check_box label="Activada" name="enable_media"/>
<slider label="Chat de voz" name="Voice Volume"/>
<check_box label="Activado" name="enable_voice_check"/>
- <check_box label="Permitir la ejecución automática de los media" name="media_auto_play_btn" tool_tip="Marcar esto para permitir la ejecución automática de los media"/>
- <check_box label="Ejecutar para otros avatares los media anexados" name="media_show_on_others_btn" tool_tip="Al desmarcar esto se esconderán los media anexados a otros avatares cercanos"/>
+ <check_box label="Permitir la ejecución automática de los media" name="media_auto_play_btn" tool_tip="Marcar esto para permitir la ejecución automática de los media" value="true"/>
+ <check_box label="Ejecutar para otros avatares los media anexados" name="media_show_on_others_btn" tool_tip="Al desmarcar esto se esconderán los media anexados a otros avatares cercanos" value="true"/>
<text name="voice_chat_settings">
Configuración del chat de voz
</text>
@@ -28,6 +28,12 @@
<panel.string name="default_text">
Por defecto
</panel.string>
+ <panel.string name="default system device">
+ Dispositivo del sistema por defecto
+ </panel.string>
+ <panel.string name="no device">
+ Ningún dispositivo
+ </panel.string>
<text name="Input">
Entrada
</text>
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 174922e28e..90b9e475e7 100644
--- a/indra/newview/skins/default/xui/es/panel_prim_media_controls.xml
+++ b/indra/newview/skins/default/xui/es/panel_prim_media_controls.xml
@@ -13,9 +13,9 @@
50
</string>
<layout_stack name="progress_indicator_area">
- <panel name="media_progress_indicator">
+ <layout_panel name="media_progress_indicator">
<progress_bar name="media_progress_bar" tool_tip="Los media se están cargando"/>
- </panel>
+ </layout_panel>
</layout_stack>
<layout_stack name="media_controls">
<layout_panel name="back">
diff --git a/indra/newview/skins/default/xui/es/panel_region_general_layout.xml b/indra/newview/skins/default/xui/es/panel_region_general_layout.xml
deleted file mode 100644
index 9ff88e2f79..0000000000
--- a/indra/newview/skins/default/xui/es/panel_region_general_layout.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="Región" name="General">
- <text name="region_text_lbl">
- Región:
- </text>
- <text name="region_text">
- desconocida
- </text>
- <text name="version_channel_text_lbl">
- Versión:
- </text>
- <text name="version_channel_text">
- desconocida
- </text>
- <text name="region_type_lbl">
- Tipo:
- </text>
- <text name="region_type">
- desconocido
- </text>
- <check_box label="No permitir modificar el terreno" name="block_terraform_check"/>
- <check_box label="Prohibir volar" name="block_fly_check"/>
- <check_box label="Permitir el daño" name="allow_damage_check"/>
- <check_box label="Impedir los &apos;empujones&apos;" name="restrict_pushobject"/>
- <check_box label="Permitir la reventa del terreno" name="allow_land_resell_check"/>
- <check_box label="Permitir unir/dividir el terreno" name="allow_parcel_changes_check"/>
- <check_box label="Bloquear el mostrar el terreno en la búsqueda" name="block_parcel_search_check" tool_tip="Permite que la gente vea esta región y sus parcelas en los resultados de la búsqueda"/>
- <spinner label="Nº máximo de avatares" name="agent_limit_spin"/>
- <spinner label="Plus de objetos" name="object_bonus_spin"/>
- <text label="Calificación" name="access_text">
- Calificación:
- </text>
- <combo_box label="Moderado" name="access_combo">
- <combo_box.item label="Adulto" name="Adult"/>
- <combo_box.item label="Moderado" name="Mature"/>
- <combo_box.item label="General" name="PG"/>
- </combo_box>
- <button label="Aplicar" name="apply_btn"/>
- <button label="Teleportar a su Base a un Residente..." name="kick_btn"/>
- <button label="Teleportar a sus Bases a todos los Residentes..." name="kick_all_btn"/>
- <button label="Enviar un mensaje a toda la región..." name="im_btn"/>
- <button label="Administrar el Punto de Teleporte..." name="manage_telehub_btn"/>
-</panel>
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 a0ee30e8f6..364451b26b 100644
--- a/indra/newview/skins/default/xui/es/panel_teleport_history.xml
+++ b/indra/newview/skins/default/xui/es/panel_teleport_history.xml
@@ -1,10 +1,11 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="Teleport History">
<accordion name="history_accordion">
+ <no_matched_tabs_text name="no_matched_teleports_msg" value="¿No encuentras lo que buscas? Intenta con [secondlife:///app/search/places/[SEARCH_TERM] Buscar]."/>
+ <no_visible_tabs_text name="no_teleports_msg" value="El historial de teleportes está vacío. Intenta con [secondlife:///app/search/places/ Buscar]."/>
<accordion_tab name="today" title="Hoy"/>
<accordion_tab name="yesterday" title="Ayer"/>
<accordion_tab name="2_days_ago" title="Hace 2 días"/>
- 5
<accordion_tab name="3_days_ago" title="Hace 3 días"/>
<accordion_tab name="4_days_ago" title="Hace 4 días"/>
<accordion_tab name="5_days_ago" title="Hace 5 días"/>
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 2cc36b7cae..94a0428941 100644
--- a/indra/newview/skins/default/xui/es/panel_voice_effect.xml
+++ b/indra/newview/skins/default/xui/es/panel_voice_effect.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="panel_voice_effect">
<string name="no_voice_effect">
- Sin transformación de voz
+ Transformación de voz desactivada
</string>
<string name="preview_voice_effects">
Probar transformación de voz ▶
@@ -9,7 +9,7 @@
<string name="get_voice_effects">
Obtener transformación de voz ▶
</string>
- <combo_box name="voice_effect" tool_tip="Selecciona un efecto de transformación de voz para cambiar tu voz.">
- <combo_box.item label="Sin transformación de voz" name="no_voice_effect"/>
+ <combo_box name="voice_effect" tool_tip="Selecciona una transformación de voz para cambiar tu voz">
+ <combo_box.item label="Transformación de voz desactivada" name="no_voice_effect"/>
</combo_box>
</panel>
diff --git a/indra/newview/skins/default/xui/es/sidepanel_appearance.xml b/indra/newview/skins/default/xui/es/sidepanel_appearance.xml
index db5d47c11e..bdef89c392 100644
--- a/indra/newview/skins/default/xui/es/sidepanel_appearance.xml
+++ b/indra/newview/skins/default/xui/es/sidepanel_appearance.xml
@@ -3,12 +3,14 @@
<string name="No Outfit" value="No hay vestuario"/>
<string name="Unsaved Changes" value="Cambios sin guardar"/>
<string name="Now Wearing" value="Llevas puesto..."/>
+ <string name="Changing outfits" value="Cambiar de vestuario"/>
<panel name="panel_currentlook">
<button label="F" name="editappearance_btn"/>
<button label="O" name="openoutfit_btn"/>
<text name="currentlook_status">
(Estado)
</text>
+ <button label="" name="edit_outfit_btn" tool_tip="Editar este vestuario"/>
</panel>
<filter_editor label="Filtrar los vestuarios" name="Filter"/>
</panel>
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 0d2eb0ac35..0cea46afba 100644
--- a/indra/newview/skins/default/xui/es/sidepanel_item_info.xml
+++ b/indra/newview/skins/default/xui/es/sidepanel_item_info.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="item properties" title="Perfil del objeto">
+<panel name="item properties" title="Perfil del elemento">
<panel.string name="unknown">
(desconocidas)
</panel.string>
@@ -15,9 +15,15 @@
<panel.string name="acquiredDate">
[wkday,datetime,local][day,datetime,local] [mth,datetime,local] [year,datetime,local][hour,datetime,local]:[min,datetime,local]:[second,datetime,local]
</panel.string>
- <text name="title" value="Perfil del objeto"/>
- <text name="where" value="(Inventario)"/>
- <panel label="">
+ <panel.string name="origin_inventory">
+ (Inventario)
+ </panel.string>
+ <panel.string name="origin_inworld">
+ (En el mundo)
+ </panel.string>
+ <text name="title" value="Perfil del elemento"/>
+ <text name="origin" value="(Inventario)"/>
+ <panel label="" name="item_profile">
<text name="LabelItemNameTitle">
Nombre:
</text>
@@ -35,30 +41,28 @@
<text name="LabelAcquiredTitle">
Obtenido:
</text>
- <text name="LabelAcquiredDate">
- Miér., 24 Mayo 2006 12:50:46
- </text>
+ <text name="LabelAcquiredDate"/>
<panel name="perms_inv">
<text name="perm_modify">
Tú puedes:
</text>
<check_box label="Modificar" name="CheckOwnerModify"/>
- <check_box label="Copiarlo" name="CheckOwnerCopy"/>
- <check_box label="Transferirlo" name="CheckOwnerTransfer"/>
+ <check_box label="Copiar" name="CheckOwnerCopy"/>
+ <check_box label="Transferir" name="CheckOwnerTransfer"/>
<text name="AnyoneLabel">
Cualquiera:
</text>
- <check_box label="Copiarlo" name="CheckEveryoneCopy"/>
+ <check_box label="Copiar" name="CheckEveryoneCopy"/>
<text name="GroupLabel">
Grupo:
</text>
- <check_box label="Compartir" name="CheckShareWithGroup" tool_tip="Permite que todos los miembros del grupo compartan tus permisos de modificación en este objeto. Debes transferirlo para activar las restricciones según los roles."/>
+ <check_box label="Compartir" name="CheckShareWithGroup" tool_tip="Permite que todos los miembros del grupo compartan tus permisos de modificación de este objeto. Debes transferirlo para activar las restricciones según los roles."/>
<text name="NextOwnerLabel">
Próximo propietario:
</text>
- <check_box label="Modificarlo" name="CheckNextOwnerModify"/>
- <check_box label="Copiarlo" name="CheckNextOwnerCopy"/>
- <check_box label="Transferirlo" name="CheckNextOwnerTransfer" tool_tip="El próximo propietario puede dar o revender este objeto"/>
+ <check_box label="Modificar" name="CheckNextOwnerModify"/>
+ <check_box label="Copiar" name="CheckNextOwnerCopy"/>
+ <check_box label="Transferir" name="CheckNextOwnerTransfer" tool_tip="El próximo propietario puede dar o revender este objeto"/>
</panel>
<check_box label="En venta" name="CheckPurchase"/>
<combo_box name="combobox sale copy">
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 f40813d3c9..e6d9e28aff 100644
--- a/indra/newview/skins/default/xui/es/sidepanel_task_info.xml
+++ b/indra/newview/skins/default/xui/es/sidepanel_task_info.xml
@@ -37,7 +37,7 @@
Mixed Sale
</panel.string>
<text name="title" value="Perfil del objeto"/>
- <text name="where" value="(en el mundo)"/>
+ <text name="where" value="(En el mundo)"/>
<panel label="" name="properties_panel">
<text name="Name:">
Nombre:
diff --git a/indra/newview/skins/default/xui/es/strings.xml b/indra/newview/skins/default/xui/es/strings.xml
index 6bd9ceb6ef..a6404bf14c 100644
--- a/indra/newview/skins/default/xui/es/strings.xml
+++ b/indra/newview/skins/default/xui/es/strings.xml
@@ -184,6 +184,7 @@
<string name="TooltipMustSingleDrop">
Aquí se puede arrastrar sólo un ítem
</string>
+ <string name="TooltipPrice" value="[AMOUNT] L$:"/>
<string name="TooltipHttpUrl">
Pulsa para ver esta página web
</string>
@@ -236,7 +237,6 @@
Pulsa para ejecutar el comando secondlife://
</string>
<string name="CurrentURL" value="URL actual: [CurrentURL]"/>
- <string name="TooltipPrice" value="[PRICE] L$"/>
<string name="SLurlLabelTeleport">
Teleportarse a
</string>
@@ -297,6 +297,9 @@
<string name="ReleaseNotes">
Notas de la versión
</string>
+ <string name="RELEASE_NOTES_BASE_URL">
+ http://wiki.secondlife.com/wiki/Release_Notes/
+ </string>
<string name="LoadingData">
Cargando...
</string>
@@ -642,6 +645,9 @@
<string name="worldmap_offline">
Sin conexión
</string>
+ <string name="worldmap_item_tooltip_format">
+ [PRICE] L$ por [AREA] m²
+ </string>
<string name="worldmap_results_none_found">
No se ha encontrado.
</string>
@@ -843,6 +849,9 @@
<string name="invalid">
inválido/a
</string>
+ <string name="none">
+ ninguno
+ </string>
<string name="shirt_not_worn">
Camisa no puesta
</string>
@@ -879,12 +888,57 @@
<string name="invalid_not_worn">
no válido/a
</string>
+ <string name="create_new_shape">
+ Crear una anatomía nueva
+ </string>
+ <string name="create_new_skin">
+ Crear una piel nueva
+ </string>
+ <string name="create_new_hair">
+ Crear pelo nuevo
+ </string>
+ <string name="create_new_eyes">
+ Crear ojos nuevos
+ </string>
+ <string name="create_new_shirt">
+ Crear una camisa nueva
+ </string>
+ <string name="create_new_pants">
+ Crear unos pantalones nuevos
+ </string>
+ <string name="create_new_shoes">
+ Crear unos zapatos nuevos
+ </string>
+ <string name="create_new_socks">
+ Crear unos calcetines nuevos
+ </string>
+ <string name="create_new_jacket">
+ Crear una chaqueta nueva
+ </string>
+ <string name="create_new_gloves">
+ Crear unos guantes nuevos
+ </string>
+ <string name="create_new_undershirt">
+ Crear una camiseta nueva
+ </string>
+ <string name="create_new_underpants">
+ Crear ropa interior nueva
+ </string>
+ <string name="create_new_skirt">
+ Crear una falda nueva
+ </string>
+ <string name="create_new_alpha">
+ Crear una capa alfa nueva
+ </string>
+ <string name="create_new_tattoo">
+ Crear un tatuaje nuevo
+ </string>
+ <string name="create_new_invalid">
+ no válido/a
+ </string>
<string name="NewWearable">
Nuevo [WEARABLE_ITEM]
</string>
- <string name="CreateNewWearable">
- Crear [WEARABLE_TYPE]
- </string>
<string name="next">
Siguiente
</string>
@@ -983,6 +1037,7 @@
<string name="AnimFlagStop" value="Parar la animación:"/>
<string name="AnimFlagStart" value="Empezar la animación:"/>
<string name="Wave" value="Onda"/>
+ <string name="GestureActionNone" value="Ninguno"/>
<string name="HelloAvatar" value="¡Hola, avatar!"/>
<string name="ViewAllGestures" value="Ver todos &gt;&gt;"/>
<string name="GetMoreGestures" value="Obtener más &gt;&gt;"/>
@@ -1062,12 +1117,18 @@
<string name="InvFolder Gestures">
Gestos
</string>
+ <string name="InvFolder Favorite">
+ Favoritos
+ </string>
<string name="InvFolder favorite">
Favoritos
</string>
<string name="InvFolder Current Outfit">
Vestuario actual
</string>
+ <string name="InvFolder Initial Outfits">
+ Vestuario inicial
+ </string>
<string name="InvFolder My Outfits">
Mis vestuarios
</string>
@@ -1387,6 +1448,7 @@
<string name="SummaryForTheWeek" value="Resumen de esta semana, empezando el"/>
<string name="NextStipendDay" value="El próximo día de pago es el"/>
<string name="GroupIndividualShare" value="Grupo Aportaciones individuales"/>
+ <string name="GroupColumn" value="Grupo"/>
<string name="Balance">
Saldo
</string>
@@ -1582,20 +1644,29 @@
<string name="ATTACH_HUD_BOTTOM_RIGHT">
HUD: abajo der.
</string>
+ <string name="Bad attachment point">
+ Punto de colocación no válido
+ </string>
<string name="CursorPos">
Línea [LINE], Columna [COLUMN]
</string>
<string name="PanelDirCountFound">
[COUNT] resultados
</string>
- <string name="PanelContentsNewScript">
- Script nuevo
- </string>
<string name="PanelContentsTooltip">
Contenido del objeto
</string>
+ <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.
+ 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>
+ <string name="NoOutfits">
+ Todavía no tienes vestuario. Intenta con [secondlife:///app/search/all/ Buscar]
+ </string>
+ <string name="NoOutfitsTabsMatched">
+ ¿No encuentras lo que buscas? Intenta con [secondlife:///app/search/all/[SEARCH_TERM] Buscar].
</string>
<string name="MuteByName">
(Por el nombre)
@@ -3517,6 +3588,9 @@ Si sigues recibiendo este mensaje, contacta con [SUPPORT_SITE].
<string name="group_role_owners">
Propietarios
</string>
+ <string name="group_member_status_online">
+ Conectado/a
+ </string>
<string name="uploading_abuse_report">
Subiendo...
@@ -3570,9 +3644,15 @@ Denuncia de infracción
<string name="Invalid Wearable">
No se puede poner
</string>
+ <string name="New Gesture">
+ Gesto nuevo
+ </string>
<string name="New Script">
Script nuevo
</string>
+ <string name="New Note">
+ Nota nueva
+ </string>
<string name="New Folder">
Carpeta nueva
</string>
@@ -3630,6 +3710,15 @@ Denuncia de infracción
<string name="Male - Wow">
Varón - Admiración
</string>
+ <string name="Female - Chuckle">
+ Mujer - Risa suave
+ </string>
+ <string name="Female - Cry">
+ Mujer - Llorar
+ </string>
+ <string name="Female - Embarrassed">
+ Mujer - Ruborizada
+ </string>
<string name="Female - Excuse me">
Mujer - Disculpa
</string>
@@ -3648,9 +3737,21 @@ Denuncia de infracción
<string name="Female - Hey">
Mujer - ¡Eh!
</string>
+ <string name="Female - Hey baby">
+ Mujer - ¡Eh, encanto!
+ </string>
<string name="Female - Laugh">
Mujer - Risa
</string>
+ <string name="Female - Looking good">
+ Mujer - Buen aspecto
+ </string>
+ <string name="Female - Over here">
+ Mujer - Por aquí
+ </string>
+ <string name="Female - Please">
+ Mujer - Por favor
+ </string>
<string name="Female - Repulsed">
Mujer - Rechazo
</string>
@@ -3700,4 +3801,46 @@ Denuncia de infracción
<string name="dateTimePM">
PM
</string>
+ <string name="LocalEstimateUSD">
+ [AMOUNT] US$
+ </string>
+ <string name="Membership">
+ Membresía
+ </string>
+ <string name="Roles">
+ Roles
+ </string>
+ <string name="Group Identity">
+ Indentidad de grupo
+ </string>
+ <string name="Parcel Management">
+ Gestión de la parcela
+ </string>
+ <string name="Parcel Identity">
+ Identidad de la parcela
+ </string>
+ <string name="Parcel Settings">
+ Configuración de la parcela
+ </string>
+ <string name="Parcel Powers">
+ Poder de la parcela
+ </string>
+ <string name="Parcel Access">
+ Acceso a la parcela
+ </string>
+ <string name="Parcel Content">
+ Contenido de la parcela
+ </string>
+ <string name="Object Management">
+ Manejo de objetos
+ </string>
+ <string name="Accounting">
+ Contabilidad
+ </string>
+ <string name="Notices">
+ Avisos
+ </string>
+ <string name="Chat">
+ Chat
+ </string>
</strings>
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 ff49fd4536..b0ef1cf8df 100644
--- a/indra/newview/skins/default/xui/fr/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/fr/floater_about_land.xml
@@ -220,60 +220,60 @@ ou divisé.
[COUNT] sur [MAX] ([DELETED] seront supprimés)
</panel.string>
<text name="parcel_object_bonus">
- Facteur Bonus Objets : [BONUS]
+ Facteur Bonus objets : [BONUS]
</text>
<text name="Simulator primitive usage:">
- Utilisation des prims :
+ Utilisation des primitives :
</text>
- <text left="214" name="objects_available" width="230">
+ <text name="objects_available">
[COUNT] sur [MAX] ([AVAILABLE] disponibles)
</text>
- <text name="Primitives parcel supports:" width="200">
+ <text name="Primitives parcel supports:">
Prims max. sur la parcelle :
</text>
- <text left="214" name="object_contrib_text" width="152">
+ <text name="object_contrib_text">
[COUNT]
</text>
<text name="Primitives on parcel:">
Prims sur la parcelle :
</text>
- <text left="214" name="total_objects_text" width="48">
+ <text name="total_objects_text">
[COUNT]
</text>
- <text left="14" name="Owned by parcel owner:" width="180">
+ <text name="Owned by parcel owner:">
Appartenant au propriétaire :
</text>
- <text left="214" name="owner_objects_text" width="48">
+ <text name="owner_objects_text">
[COUNT]
</text>
- <button label="Afficher" label_selected="Afficher" name="ShowOwner" right="-135" width="60"/>
- <button label="Retour" label_selected="Renvoyer..." name="ReturnOwner..." right="-10" tool_tip="Renvoyer les objets à leurs propriétaires." width="119"/>
- <text left="14" name="Set to group:" width="180">
+ <button label="Afficher" label_selected="Afficher" name="ShowOwner"/>
+ <button label="Retour" label_selected="Renvoyer..." name="ReturnOwner..." tool_tip="Renvoyer les objets à leurs propriétaires."/>
+ <text name="Set to group:">
Données au groupe :
</text>
- <text left="214" name="group_objects_text" width="48">
+ <text name="group_objects_text">
[COUNT]
</text>
- <button label="Afficher" label_selected="Afficher" name="ShowGroup" right="-135" width="60"/>
- <button label="Retour" label_selected="Renvoyer..." name="ReturnGroup..." right="-10" tool_tip="Renvoyer les objets à leurs propriétaires." width="119"/>
- <text left="14" name="Owned by others:" width="128">
+ <button label="Afficher" label_selected="Afficher" name="ShowGroup" />
+ <button label="Retour" label_selected="Renvoyer..." name="ReturnGroup..." tool_tip="Renvoyer les objets à leurs propriétaires."/>
+ <text name="Owned by others:">
Appartenant à d&apos;autres :
</text>
- <text left="214" name="other_objects_text" width="48">
+ <text name="other_objects_text">
[COUNT]
</text>
- <button label="Afficher" label_selected="Afficher" name="ShowOther" right="-135" width="60"/>
- <button label="Retour" label_selected="Renvoyer..." name="ReturnOther..." right="-10" tool_tip="Renvoyer les objets à leurs propriétaires." width="119"/>
- <text left="14" name="Selected / sat upon:" width="220">
+ <button label="Afficher" label_selected="Afficher" name="ShowOther"/>
+ <button label="Retour" label_selected="Renvoyer..." name="ReturnOther..." tool_tip="Renvoyer les objets à leurs propriétaires."/>
+ <text name="Selected / sat upon:">
Sélectionnées/où quelqu&apos;un est assis :
</text>
- <text left_delta="214" name="selected_objects_text" width="48">
+ <text name="selected_objects_text">
[COUNT]
</text>
<text name="Autoreturn">
Renvoi automatique des objets d&apos;autres résidents (minutes, 0 pour désactiver) :
</text>
- <line_editor name="clean other time" right="-6" width="36"/>
+ <line_editor name="clean other time"/>
<text name="Object Owners:">
Propriétaires :
</text>
@@ -281,10 +281,9 @@ ou divisé.
<button label="Renvoi des objets" label_selected="Renvoyer les objets..." name="Return objects..."/>
<name_list label="Plus récents" name="owner list">
<name_list.columns label="Type" name="type"/>
- <name_list.columns name="online_status"/>
- <name_list.columns label="Nom" name="name" width="100"/>
- <name_list.columns label="Nombre" name="count" width="100"/>
- <name_list.columns label="Plus récents" name="mostrecent" width="120"/>
+ <name_list.columns label="Nom" name="name"/>
+ <name_list.columns label="Nombre" name="count"/>
+ <name_list.columns label="Plus récents" name="mostrecent"/>
</name_list>
</panel>
<panel label="OPTIONS" name="land_options_panel">
@@ -343,9 +342,9 @@ Seules les parcelles de grande taille peuvent apparaître dans la recherche.
Options du terrain :
</text>
<check_box label="Sécurisé (pas de dégâts)" name="check safe" tool_tip="Si cette option est cochée, le terrain est sécurisé et il n&apos;y pas de risques de dommages causés par des combats. Si elle est décochée, des dommages causés par les combats peuvent avoir lieu."/>
- <check_box bottom="-140" label="Pas de bousculades" left="14" name="PushRestrictCheck" tool_tip="Empêche l&apos;utilisation de scripts causant des bousculades. Cette option est utile pour empêcher les comportements abusifs sur votre terrain."/>
- <check_box bottom="-160" label="Afficher le lieu dans la recherche (30 L$/semaine)" name="ShowDirectoryCheck" tool_tip="Afficher la parcelle dans les résultats de recherche"/>
- <combo_box bottom="-160" left="286" name="land category with adult" width="146">
+ <check_box label="Pas de bousculades" name="PushRestrictCheck" tool_tip="Empêche l&apos;utilisation de scripts causant des bousculades. Cette option est utile pour empêcher les comportements abusifs sur votre terrain."/>
+ <check_box label="Afficher le lieu dans la recherche (30 L$/semaine)" name="ShowDirectoryCheck" tool_tip="Afficher la parcelle dans les résultats de recherche"/>
+ <combo_box name="land category with adult">
<combo_box.item label="Toutes catégories" name="item0"/>
<combo_box.item label="Appartenant aux Lindens" name="item1"/>
<combo_box.item label="Adult" name="item2"/>
@@ -360,7 +359,7 @@ Seules les parcelles de grande taille peuvent apparaître dans la recherche.
<combo_box.item label="Shopping" name="item11"/>
<combo_box.item label="Autre" name="item12"/>
</combo_box>
- <combo_box bottom="-160" left="286" name="land category" width="146">
+ <combo_box name="land category">
<combo_box.item label="Toutes catégories" name="item0"/>
<combo_box.item label="Appartenant aux Lindens" name="item1"/>
<combo_box.item label="Art et Culture" name="item3"/>
@@ -374,20 +373,20 @@ Seules les parcelles de grande taille peuvent apparaître dans la recherche.
<combo_box.item label="Shopping" name="item11"/>
<combo_box.item label="Autre" name="item12"/>
</combo_box>
- <check_box bottom="-180" label="Contenu Modéré" name="MatureCheck" tool_tip=""/>
- <text bottom="-200" name="Snapshot:">
+ <check_box label="Contenu Modéré" name="MatureCheck" tool_tip=""/>
+ <text name="Snapshot:">
Photo :
</text>
- <texture_picker bottom="-319" label="" name="snapshot_ctrl" tool_tip="Cliquez pour sélectionner une image"/>
+ <texture_picker label="" name="snapshot_ctrl" tool_tip="Cliquez pour sélectionner une image"/>
<text name="landing_point">
Lieu d&apos;arrivée : [LANDING]
</text>
<button label="Définir" label_selected="Définir" name="Set" tool_tip="Définit le point d&apos;arrivée des visiteurs. Définit l&apos;emplacement de votre avatar sur ce terrain."/>
<button label="Annuler" label_selected="Annuler" name="Clear" tool_tip="Effacer le lieu d&apos;arrivée"/>
- <text bottom="-343" name="Teleport Routing: ">
+ <text name="Teleport Routing: ">
Règles de téléportation :
</text>
- <combo_box bottom="-343" left="140" name="landing type" tool_tip="Règles de téléportation - Choisissez les règles de téléportation sur votre terrain" width="140">
+ <combo_box name="landing type" tool_tip="Règles de téléportation - Choisissez les règles de téléportation sur votre terrain" width="140">
<combo_box.item label="Bloqué" name="Blocked"/>
<combo_box.item label="Lieu d&apos;arrivée fixe" name="LandingPoint"/>
<combo_box.item label="Lieu d&apos;arrivée libre" name="Anywhere"/>
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 503fe5c154..ab68ce166b 100644
--- a/indra/newview/skins/default/xui/fr/floater_bulk_perms.xml
+++ b/indra/newview/skins/default/xui/fr/floater_bulk_perms.xml
@@ -44,7 +44,7 @@
</text>
<check_box label="Copier" name="everyone_copy"/>
<text name="NextOwnerLabel">
- Le prochain propriétaire :
+ Prochain propr. :
</text>
<check_box label="Modifier" name="next_owner_modify"/>
<check_box label="Copier" name="next_owner_copy"/>
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 4eaff8535e..b3acc83078 100644
--- a/indra/newview/skins/default/xui/fr/floater_buy_currency.xml
+++ b/indra/newview/skins/default/xui/fr/floater_buy_currency.xml
@@ -22,10 +22,10 @@ le Lindex...
<text name="currency_action">
Je veux acheter
</text>
- <text name="currency_label">
+ <text name="currency_label" left="308">
L$
</text>
- <line_editor label="L$" name="currency_amt" width="65">
+ <line_editor label="L$" name="currency_amt" width="65" left_pad="-85">
1234
</line_editor>
<text name="buying_label">
diff --git a/indra/newview/skins/default/xui/fr/floater_camera.xml b/indra/newview/skins/default/xui/fr/floater_camera.xml
index 558551b649..1d62a89ff2 100644
--- a/indra/newview/skins/default/xui/fr/floater_camera.xml
+++ b/indra/newview/skins/default/xui/fr/floater_camera.xml
@@ -9,35 +9,57 @@
<floater.string name="move_tooltip">
Déplacer la caméra vers le haut et le bas, la gauche et la droite
</floater.string>
- <floater.string name="orbit_mode_title">
- Faire tourner
+ <floater.string name="camera_modes_title">
+ Modes
</floater.string>
<floater.string name="pan_mode_title">
- Faire un panoramique
+ Rotation - Zoom - Panoramique
</floater.string>
- <floater.string name="avatar_view_mode_title">
+ <floater.string name="presets_mode_title">
Préréglages
</floater.string>
<floater.string name="free_mode_title">
Voir l&apos;objet
</floater.string>
<panel name="controls">
- <joystick_track name="cam_track_stick" tool_tip="Déplacer la caméra vers le haut et le bas, la gauche et la droite"/>
+ <panel name="preset_views_list">
+ <panel_camera_item name="front_view">
+ <panel_camera_item.text name="front_view_text">
+ Vue frontale
+ </panel_camera_item.text>
+ </panel_camera_item>
+ <panel_camera_item name="group_view">
+ <panel_camera_item.text name="side_view_text">
+ Vue latérale
+ </panel_camera_item.text>
+ </panel_camera_item>
+ <panel_camera_item name="rear_view">
+ <panel_camera_item.text name="rear_view_text">
+ Vue arrière
+ </panel_camera_item.text>
+ </panel_camera_item>
+ </panel>
+ <panel name="camera_modes_list">
+ <panel_camera_item name="object_view">
+ <panel_camera_item.text name="object_view_text">
+ Vue de l&apos;objet
+ </panel_camera_item.text>
+ </panel_camera_item>
+ <panel_camera_item name="mouselook_view">
+ <panel_camera_item.text name="mouselook_view_text">
+ Vue subjective
+ </panel_camera_item.text>
+ </panel_camera_item>
+ </panel>
<panel name="zoom" tool_tip="Zoomer en direction du point central">
+ <joystick_rotate name="cam_rotate_stick" tool_tip="Faire tourner la caméra autour du point central"/>
<slider_bar name="zoom_slider" tool_tip="Zoomer en direction du point central"/>
- </panel>
- <joystick_rotate name="cam_rotate_stick" tool_tip="Faire tourner la caméra autour du point central"/>
- <panel name="camera_presets">
- <button name="rear_view" tool_tip="Vue arrière"/>
- <button name="group_view" tool_tip="Vue Groupe"/>
- <button name="front_view" tool_tip="Vue frontale"/>
- <button name="mouselook_view" tool_tip="Vue subjective"/>
+ <joystick_track name="cam_track_stick" tool_tip="Déplacer la caméra vers le haut et le bas, la gauche et la droite"/>
</panel>
</panel>
<panel name="buttons">
- <button label="" name="orbit_btn" tool_tip="Faire tourner la caméra"/>
- <button label="" name="pan_btn" tool_tip="Faire un panoramique"/>
- <button label="" name="avatarview_btn" tool_tip="Préréglages"/>
- <button label="" name="freecamera_btn" tool_tip="Voir l&apos;objet"/>
+ <button label="" name="presets_btn" tool_tip="Préréglages"/>
+ <button label="" name="pan_btn" tool_tip="Rotation - Zoom - Panoramique"/>
+ <button label="" name="avatarview_btn" tool_tip="Modes"/>
</panel>
</floater>
diff --git a/indra/newview/skins/default/xui/fr/floater_customize.xml b/indra/newview/skins/default/xui/fr/floater_customize.xml
deleted file mode 100644
index ff407b25c1..0000000000
--- a/indra/newview/skins/default/xui/fr/floater_customize.xml
+++ /dev/null
@@ -1,530 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater customize" title="APPARENCE">
- <tab_container name="customize tab container" tab_min_width="150">
- <text label="Parties du corps" name="body_parts_placeholder">
- Parties du corps
- </text>
- <panel label="Silhouette" left="154" name="Shape" width="389">
- <button label="Rétablir" label_selected="Rétablir" name="Revert"/>
- <button label="Corps" label_selected="Corps" name="Body"/>
- <button label="Tête" label_selected="Tête" name="Head"/>
- <button label="Yeux" label_selected="Yeux" name="Eyes"/>
- <button label="Oreilles" label_selected="Oreilles" name="Ears"/>
- <button label="Nez" label_selected="Nez" name="Nose"/>
- <button label="Bouche" label_selected="Bouche" name="Mouth"/>
- <button label="Menton" label_selected="Menton" name="Chin"/>
- <button label="Torse" label_selected="Torse" name="Torso"/>
- <button label="Jambes" label_selected="Jambes" name="Legs"/>
- <radio_group name="sex radio">
- <radio_item label="Femme" name="radio" value="0"/>
- <radio_item label="Homme" name="radio2" value="1"/>
- </radio_group>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: impossible de modifier
- </text>
- <text name="title_loading">
- [DESC]: en cours de chargement...
- </text>
- <text name="title_not_worn">
- [DESC]: non portée
- </text>
- <text name="path">
- Emplacement : [PATH]
- </text>
- <text name="not worn instructions">
- Pour changer de silhouette, faites-en glisser une de votre inventaire à votre avatar. Vous pouvez aussi en créer une nouvelle et la porter.
- </text>
- <text name="no modify instructions">
- Vous n&apos;avez pas la permission de modifier cet objet.
- </text>
- <text name="Item Action Label" right="92">
- Silhouette :
- </text>
- <button label="Créer une silhouette" label_selected="Créer une silhouette" name="Create New"/>
- <button label="Enregistrer" label_selected="Enregistrer" name="Save"/>
- <button label="Enregistrer sous..." label_selected="Enregistrer sous..." name="Save As"/>
- </panel>
- <panel label="Peau" name="Skin">
- <button label="Couleur" label_selected="Couleur" name="Skin Color" width="84"/>
- <button label="Détails visage" label_selected="Détails visage" name="Face Detail" width="84"/>
- <button label="Maquillage" label_selected="Maquillage" name="Makeup" width="84"/>
- <button label="Détails corps" label_selected="Détails corps" name="Body Detail" width="84"/>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: impossible de modifier
- </text>
- <text name="title_loading">
- [DESC]: en cours de chargement...
- </text>
- <text name="title_not_worn">
- [DESC]: non portée
- </text>
- <text name="path">
- Emplacement : [PATH]
- </text>
- <text name="not worn instructions">
- Pour changer de peau, faites-en glisser une à partir de votre inventaire. Vous pouvez aussi en créer une nouvelle et la porter.
- </text>
- <text name="no modify instructions">
- Vous n&apos;avez pas la permission de modifier cet objet.
- </text>
- <text name="Item Action Label" right="92">
- Peau :
- </text>
- <texture_picker label="Tatouages tête" name="Head Tattoos" tool_tip="Cliquez pour sélectionner une image" width="78"/>
- <texture_picker label="Tatouages haut" name="Upper Tattoos" tool_tip="Cliquez pour sélectionner une image" width="78"/>
- <texture_picker label="Tatouages bas" name="Lower Tattoos" tool_tip="Cliquez pour sélectionner une image" width="78"/>
- <button label="Créer une peau" label_selected="Créer une peau" name="Create New"/>
- <button label="Enregistrer" label_selected="Enregistrer" name="Save"/>
- <button label="Enregistrer sous..." label_selected="Enregistrer sous..." name="Save As"/>
- <button label="Rétablir" label_selected="Rétablir" name="Revert"/>
- </panel>
- <panel label="Cheveux" name="Hair">
- <button label="Couleur" label_selected="Couleur" name="Color"/>
- <button label="Style" label_selected="Style" name="Style"/>
- <button label="Sourcils" label_selected="Sourcils" name="Eyebrows"/>
- <button label="Pilosité" label_selected="Pilosité" name="Facial"/>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: impossible de modifier
- </text>
- <text name="title_loading">
- [DESC]: en cours de chargement...
- </text>
- <text name="title_not_worn">
- [DESC]: non portés
- </text>
- <text name="path">
- Emplacement : [PATH]
- </text>
- <text name="not worn instructions">
- Pour changer de cheveux, faites-en glisser à partir de votre inventaire. Vous pouvez aussi en créer de nouveaux et les porter.
- </text>
- <text name="no modify instructions">
- Vous n&apos;avez pas la permission de modifier cet objet.
- </text>
- <text name="Item Action Label" right="92">
- Cheveux :
- </text>
- <texture_picker label="Texture" name="Texture" tool_tip="Cliquez pour sélectionner une image"/>
- <button label="Créer des cheveux" label_selected="Créer des cheveux" name="Create New"/>
- <button label="Enregistrer" label_selected="Enregistrer" name="Save"/>
- <button label="Enregistrer sous..." label_selected="Enregistrer sous..." name="Save As"/>
- <button label="Rétablir" label_selected="Rétablir" name="Revert"/>
- </panel>
- <panel label="Yeux" name="Eyes">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: impossible de modifier
- </text>
- <text name="title_loading">
- [DESC]: en cours de chargement...
- </text>
- <text name="title_not_worn">
- [DESC]: non portés
- </text>
- <text name="path">
- Emplacement : [PATH]
- </text>
- <text name="not worn instructions">
- Pour changer d&apos;yeux, faites-en glisser une paire de votre inventaire à votre avatar. Vous pouvez aussi en créer de nouveaux et les porter.
- </text>
- <text name="no modify instructions">
- Vous n&apos;avez pas la permission de modifier cet objet.
- </text>
- <text name="Item Action Label" right="92">
- Yeux :
- </text>
- <texture_picker label="Iris" name="Iris" tool_tip="Cliquez pour sélectionner une image"/>
- <button label="Créer des yeux" label_selected="Créer des yeux" name="Create New"/>
- <button label="Enregistrer" label_selected="Enregistrer" name="Save"/>
- <button label="Enregistrer sous..." label_selected="Enregistrer sous..." name="Save As"/>
- <button label="Rétablir" label_selected="Rétablir" name="Revert"/>
- </panel>
- <text label="Habits" name="clothes_placeholder">
- Habits
- </text>
- <panel label="Chemise" name="Shirt">
- <texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image" width="74"/>
- <color_swatch label="Coul./Teinte" name="Color/Tint" tool_tip="Cliquez pour ouvrir le sélecteur de couleurs" width="74"/>
- <button label="Enlever" label_selected="Enlever" left="12" name="Take Off" width="82"/>
- <button label="Créer une chemise" label_selected="Créer une chemise" name="Create New"/>
- <button label="Enregistrer" label_selected="Enregistrer" name="Save"/>
- <button label="Enregistrer sous..." label_selected="Enregistrer sous..." name="Save As"/>
- <button label="Rétablir" label_selected="Rétablir" name="Revert"/>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: impossible de modifier
- </text>
- <text name="title_loading">
- [DESC]: en cours de chargement...
- </text>
- <text name="title_not_worn">
- [DESC]: non portée
- </text>
- <text name="path">
- Emplacement : [PATH]
- </text>
- <text name="not worn instructions">
- Pour changer de chemise, faites-en glisser une à partir de votre inventaire. Vous pouvez aussi en créer une nouvelle et la porter.
- </text>
- <text name="no modify instructions">
- Vous n&apos;avez pas la permission de modifier cet objet.
- </text>
- <text name="Item Action Label" right="92">
- Chemise :
- </text>
- </panel>
- <panel label="Pantalon" name="Pants">
- <texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image" width="74"/>
- <color_swatch label="Coul./Teinte" name="Color/Tint" tool_tip="Cliquez pour ouvrir le sélecteur de couleurs" width="74"/>
- <button label="Enlever" label_selected="Enlever" left="12" name="Take Off" width="82"/>
- <button label="Créer un pantalon" label_selected="Créer un pantalon" name="Create New"/>
- <button label="Enregistrer" label_selected="Enregistrer" name="Save"/>
- <button label="Enregistrer sous..." label_selected="Enregistrer sous..." name="Save As"/>
- <button label="Rétablir" label_selected="Rétablir" name="Revert"/>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: impossible de modifier
- </text>
- <text name="title_loading">
- [DESC]: en cours de chargement...
- </text>
- <text name="title_not_worn">
- [DESC]: non porté
- </text>
- <text name="path">
- Emplacement : [PATH]
- </text>
- <text name="not worn instructions">
- Pour changer de pantalon, faites-en glisser un à partir de votre inventaire. Vous pouvez aussi en créer un nouveau et le porter.
- </text>
- <text name="no modify instructions">
- Vous n&apos;avez pas la permission de modifier cet objet.
- </text>
- <text name="Item Action Label" right="92">
- Pantalon :
- </text>
- </panel>
- <panel label="Chaussures" name="Shoes">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: impossible de modifier
- </text>
- <text name="title_loading">
- [DESC]: en cours de chargement...
- </text>
- <text name="title_not_worn">
- [DESC]: non portées
- </text>
- <text name="path">
- Emplacement : [PATH]
- </text>
- <text name="not worn instructions">
- Pour changer de chaussures, faites-en glisser une paire de votre inventaire à votre avatar. Vous pouvez aussi en créer des nouvelles et les porter.
- </text>
- <button label="Créer des chaussures" label_selected="Créer des chaussures" name="Create New"/>
- <text name="no modify instructions">
- Vous n&apos;avez pas la permission de modifier cet objet.
- </text>
- <text name="Item Action Label" right="92">
- Chaussures :
- </text>
- <texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image" width="74"/>
- <color_swatch label="Coul./Teinte" name="Color/Tint" tool_tip="Cliquez pour ouvrir le sélecteur de couleurs" width="74"/>
- <button label="Enlever" label_selected="Enlever" left="12" name="Take Off" width="82"/>
- <button label="Enregistrer" label_selected="Enregistrer" name="Save"/>
- <button label="Enregistrer sous..." label_selected="Enregistrer sous..." name="Save As"/>
- <button label="Rétablir" label_selected="Rétablir" name="Revert"/>
- </panel>
- <panel label="Chaussettes" name="Socks">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: impossible de modifier
- </text>
- <text name="title_loading">
- [DESC]: en cours de chargement...
- </text>
- <text name="title_not_worn">
- [DESC]: non portées
- </text>
- <text name="path">
- Emplacement : [PATH]
- </text>
- <text name="not worn instructions">
- Pour changer de chaussettes, faites-en glisser une paire à partir de votre inventaire. Vous pouvez aussi en créer des nouvelles et les porter.
- </text>
- <button label="Créer des chaussettes" label_selected="Créer des chaussettes" name="Create New"/>
- <text name="no modify instructions">
- Vous n&apos;avez pas la permission de modifier cet objet.
- </text>
- <text name="Item Action Label" right="92">
- Chaussettes :
- </text>
- <texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image" width="74"/>
- <color_swatch label="Coul./Teinte" name="Color/Tint" tool_tip="Cliquez pour ouvrir le sélecteur de couleurs" width="74"/>
- <button label="Enlever" label_selected="Enlever" left="12" name="Take Off" width="82"/>
- <button label="Enregistrer" label_selected="Enregistrer" name="Save"/>
- <button label="Enregistrer sous..." label_selected="Enregistrer sous..." name="Save As"/>
- <button label="Rétablir" label_selected="Rétablir" name="Revert"/>
- </panel>
- <panel label="Veste" name="Jacket">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: impossible de modifier
- </text>
- <text name="title_loading">
- [DESC]: en cours de chargement...
- </text>
- <text name="title_not_worn">
- [DESC]: non portée
- </text>
- <text name="path">
- Emplacement : [PATH]
- </text>
- <text name="not worn instructions">
- Pour changer de veste, faites-en glisser une à partir de votre inventaire. Vous pouvez aussi en créer une nouvelle et la porter.
- </text>
- <button label="Créer une veste" label_selected="Créer une veste" name="Create New"/>
- <text name="no modify instructions">
- Vous n&apos;avez pas la permission de modifier cet objet.
- </text>
- <text name="Item Action Label" right="92">
- Veste :
- </text>
- <texture_picker label="Tissu (dessus)" name="Upper Fabric" tool_tip="Cliquez pour sélectionner une image" width="81"/>
- <texture_picker label="Tissu (dessous)" name="Lower Fabric" tool_tip="Cliquez pour sélectionner une image" width="81"/>
- <color_swatch label="Coul./Teinte" name="Color/Tint" tool_tip="Cliquez pour ouvrir le sélecteur de couleurs" width="81"/>
- <button label="Enlever" label_selected="Enlever" left="12" name="Take Off" width="82"/>
- <button label="Enregistrer" label_selected="Enregistrer" name="Save"/>
- <button label="Enregistrer sous..." label_selected="Enregistrer sous..." name="Save As"/>
- <button label="Rétablir" label_selected="Rétablir" name="Revert"/>
- </panel>
- <panel label="Gants" name="Gloves">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: impossible de modifier
- </text>
- <text name="title_loading">
- [DESC]: en cours de chargement...
- </text>
- <text name="title_not_worn">
- [DESC]: non portés
- </text>
- <text name="path">
- Emplacement : [PATH]
- </text>
- <text name="not worn instructions">
- Pour changer de gants, faites-en glisser une paire à partir de votre inventaire. Vous pouvez aussi en créer de nouveaux et les porter.
- </text>
- <button label="Créer des gants" label_selected="Créer des gants" name="Create New"/>
- <text name="no modify instructions">
- Vous n&apos;avez pas la permission de modifier cet objet.
- </text>
- <text name="Item Action Label" right="92">
- Gants :
- </text>
- <texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image" width="74"/>
- <color_swatch label="Coul./Teinte" name="Color/Tint" tool_tip="Cliquez pour ouvrir le sélecteur de couleurs" width="74"/>
- <button label="Enlever" label_selected="Enlever" left="12" name="Take Off" width="82"/>
- <button label="Enregistrer" label_selected="Enregistrer" name="Save"/>
- <button label="Enregistrer sous..." label_selected="Enregistrer sous..." name="Save As"/>
- <button label="Rétablir" label_selected="Rétablir" name="Revert"/>
- </panel>
- <panel label="Débardeur" name="Undershirt">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: impossible de modifier
- </text>
- <text name="title_loading">
- [DESC]: en cours de chargement...
- </text>
- <text name="title_not_worn">
- [DESC]: non porté
- </text>
- <text name="path">
- Emplacement : [PATH]
- </text>
- <text name="not worn instructions">
- Pour changer de débardeur, faites-en glisser un à partir de votre inventaire. Vous pouvez aussi en créer un nouveau et le porter.
- </text>
- <button label="Créer un débardeur" label_selected="Créer un débardeur" name="Create New"/>
- <text name="no modify instructions">
- Vous n&apos;avez pas la permission de modifier cet objet.
- </text>
- <text name="Item Action Label">
- Débardeur :
- </text>
- <texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image" width="74"/>
- <color_swatch label="Coul./Teinte" name="Color/Tint" tool_tip="Cliquez pour ouvrir le sélecteur de couleurs" width="74"/>
- <button label="Enlever" label_selected="Enlever" left="12" name="Take Off" width="82"/>
- <button label="Enregistrer" label_selected="Enregistrer" name="Save"/>
- <button label="Enregistrer sous..." label_selected="Enregistrer sous..." name="Save As"/>
- <button label="Rétablir" label_selected="Rétablir" name="Revert"/>
- </panel>
- <panel label="Caleçon" name="Underpants">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: impossible de modifier
- </text>
- <text name="title_loading">
- [DESC]: en cours de chargement...
- </text>
- <text name="title_not_worn">
- [DESC]: non porté
- </text>
- <text name="path">
- Emplacement : [PATH]
- </text>
- <text name="not worn instructions">
- Pour changer de caleçon, faites-en glisser un à partir de votre inventaire. Vous pouvez aussi en créer un nouveau et le porter.
- </text>
- <button label="Créer un caleçon" label_selected="Créer un caleçon" name="Create New"/>
- <text name="no modify instructions">
- Vous n&apos;avez pas la permission de modifier cet objet.
- </text>
- <text name="Item Action Label">
- Caleçon :
- </text>
- <texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image" width="74"/>
- <color_swatch label="Coul./Teinte" name="Color/Tint" tool_tip="Cliquez pour ouvrir le sélecteur de couleurs" width="74"/>
- <button label="Enlever" label_selected="Enlever" left="12" name="Take Off" width="82"/>
- <button label="Enregistrer" label_selected="Enregistrer" name="Save"/>
- <button label="Enregistrer sous..." label_selected="Enregistrer sous..." name="Save As"/>
- <button label="Rétablir" label_selected="Rétablir" name="Revert"/>
- </panel>
- <panel label="Jupe" name="Skirt">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: impossible de modifier
- </text>
- <text name="title_loading">
- [DESC]: en cours de chargement...
- </text>
- <text name="title_not_worn">
- [DESC]: non portée
- </text>
- <text name="path">
- Emplacement : [PATH]
- </text>
- <text name="not worn instructions">
- Pour changer de jupe, faites-en glisser une à partir de votre inventaire. Vous pouvez aussi en créer une nouvelle et la porter.
- </text>
- <button label="Créer une jupe" label_selected="Créer une jupe" name="Create New"/>
- <text name="no modify instructions">
- Vous n&apos;avez pas la permission de modifier cet objet.
- </text>
- <text name="Item Action Label" right="92">
- Jupe :
- </text>
- <texture_picker label="Tissu" name="Fabric" tool_tip="Cliquez pour sélectionner une image" width="74"/>
- <color_swatch label="Coul./Teinte" name="Color/Tint" tool_tip="Cliquez pour ouvrir le sélecteur de couleurs" width="74"/>
- <button label="Enlever" label_selected="Enlever" left="12" name="Take Off" width="82"/>
- <button label="Enregistrer" label_selected="Enregistrer" name="Save"/>
- <button label="Enregistrer sous..." label_selected="Enregistrer sous..." name="Save As"/>
- <button label="Rétablir" label_selected="Rétablir" name="Revert"/>
- </panel>
- <panel label="Tatouage" name="Tattoo">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: impossible de modifier
- </text>
- <text name="title_loading">
- [DESC]: en cours de chargement...
- </text>
- <text name="title_not_worn">
- [DESC]: non porté
- </text>
- <text name="path">
- Dans [PATH]
- </text>
- <text name="not worn instructions">
- Pour changer de tatouage, faites-en glisser un de votre inventaire à votre avatar. Vous pouvez aussi en créer un nouveau et le porter.
- </text>
- <button label="Créer un nouveau tatouage" label_selected="Créer un nouveau tatouage" name="Create New"/>
- <text name="no modify instructions">
- Vous n&apos;avez pas le droit de modifier cet objet.
- </text>
- <text name="Item Action Label">
- Tatouage :
- </text>
- <texture_picker label="Tatouage tête" name="Head Tattoo" tool_tip="Cliquez pour sélectionner une image"/>
- <texture_picker label="Tatouage haut" name="Upper Tattoo" tool_tip="Cliquez pour sélectionner une image"/>
- <texture_picker label="Tatouage bas" name="Lower Tattoo" tool_tip="Cliquez pour sélectionner une image"/>
- <button label="Enlever" label_selected="Enlever" name="Take Off"/>
- <button label="Enregistrer" label_selected="Enregistrer" name="Save"/>
- <button label="Enregistrer sous..." label_selected="Enregistrer sous..." name="Save As"/>
- <button label="Rétablir" label_selected="Rétablir" name="Revert"/>
- </panel>
- <panel label="Alpha" name="Alpha">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: impossible de modifier
- </text>
- <text name="title_loading">
- [DESC]: en cours de chargement...
- </text>
- <text name="title_not_worn">
- [DESC]: non porté
- </text>
- <text name="path">
- Dans [PATH]
- </text>
- <text name="not worn instructions">
- Pour changer de masque alpha, faites-en glisser un de votre inventaire à votre avatar. Vous pouvez aussi en créer un nouveau et le porter.
- </text>
- <button label="Créer un nouvel alpha" label_selected="Créer un nouvel alpha" name="Create New"/>
- <text name="no modify instructions">
- Vous n&apos;avez pas le droit de modifier cet objet.
- </text>
- <text name="Item Action Label">
- Alpha :
- </text>
- <texture_picker label="Alpha bas" name="Lower Alpha" tool_tip="Cliquez pour sélectionner une image"/>
- <texture_picker label="Alpha haut" name="Upper Alpha" tool_tip="Cliquez pour sélectionner une image"/>
- <texture_picker label="Alpha tête" name="Head Alpha" tool_tip="Cliquez pour sélectionner une image"/>
- <texture_picker label="Alpha yeux" name="Eye Alpha" tool_tip="Cliquez pour sélectionner une image"/>
- <texture_picker label="Alpha cheveux" name="Hair Alpha" tool_tip="Cliquez pour sélectionner une image"/>
- <button label="Enlever" label_selected="Enlever" name="Take Off"/>
- <button label="Enregistrer" label_selected="Enregistrer" name="Save"/>
- <button label="Enregistrer sous..." label_selected="Enregistrer sous..." name="Save As"/>
- <button label="Rétablir" label_selected="Rétablir" name="Revert"/>
- </panel>
- </tab_container>
- <scroll_container left="251" name="panel_container"/>
- <button label="Infos scripts" label_selected="Infos scripts" name="script_info" tool_tip="Afficher les scripts attachés à votre avatar"/>
- <button label="Créer tenue" label_selected="Créer une tenue..." name="make_outfit_btn"/>
- <button label="Annuler" label_selected="Annuler" name="Cancel"/>
- <button label="OK" label_selected="OK" name="Ok"/>
-</floater>
diff --git a/indra/newview/skins/default/xui/fr/floater_day_cycle_options.xml b/indra/newview/skins/default/xui/fr/floater_day_cycle_options.xml
index 87c8847cbd..0ce17b9dc6 100644
--- a/indra/newview/skins/default/xui/fr/floater_day_cycle_options.xml
+++ b/indra/newview/skins/default/xui/fr/floater_day_cycle_options.xml
@@ -80,12 +80,12 @@
</text>
<spinner label="Heure" name="WLLengthOfDayHour"/>
<spinner label="Min" name="WLLengthOfDayMin"/>
- <spinner label="S" name="WLLengthOfDaySec"/>
+ <spinner label="Sec" name="WLLengthOfDaySec"/>
<text name="DayCycleText3">
Aperçu :
</text>
<button label="Lire" label_selected="Lire" name="WLAnimSky"/>
- <button label="Stop !" label_selected="Stop" name="WLStopAnimSky"/>
+ <button label="Arrêter" label_selected="Stop" name="WLStopAnimSky"/>
<button label="Utiliser heure domaine" label_selected="Aller heure domaine" name="WLUseLindenTime"/>
<button label="Enregistrer jour test" label_selected="Enregistrer jour test" name="WLSaveDayCycle"/>
<button label="Charger jour test" label_selected="Charger jour test" name="WLLoadDayCycle"/>
diff --git a/indra/newview/skins/default/xui/fr/floater_device_settings.xml b/indra/newview/skins/default/xui/fr/floater_device_settings.xml
deleted file mode 100644
index f5994cb604..0000000000
--- a/indra/newview/skins/default/xui/fr/floater_device_settings.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_device_settings" title="PARAMÈTRES DU MATÉRIEL UTILISÉ POUR LE CHAT VOCAL"/>
diff --git a/indra/newview/skins/default/xui/fr/floater_first_time_tip.xml b/indra/newview/skins/default/xui/fr/floater_first_time_tip.xml
deleted file mode 100644
index a1c6a19e8c..0000000000
--- a/indra/newview/skins/default/xui/fr/floater_first_time_tip.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="set_name_in_the_cladd">
- <check_box label="Désactiver les astuces" name="DontShowFirstTimeTip_checkbox"/>
-</floater>
diff --git a/indra/newview/skins/default/xui/fr/floater_im.xml b/indra/newview/skins/default/xui/fr/floater_im.xml
deleted file mode 100644
index 15b01dbf12..0000000000
--- a/indra/newview/skins/default/xui/fr/floater_im.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<multi_floater name="im_floater" title="Message instantané">
- <text name="only_user_message">
- Vous êtes le seul résident participant à cette session.
- </text>
- <text name="offline_message">
- [FIRST] [LAST] est déconnecté(e).
- </text>
- <string name="invite_message">
- Pour accepter ce chat vocal/vous connecter, cliquez sur le bouton [BUTTON NAME].
- </string>
- <string name="muted_message">
- Vous ignorez ce résident. Si vous lui envoyez un message, il ne sera plus ignoré.
- </string>
- <string name="generic_request_error">
- Erreur lors de la requête, veuillez réessayer ultérieurement.
- </string>
- <string name="insufficient_perms_error">
- Vous n&apos;avez pas les droits requis.
- </string>
- <string name="session_does_not_exist_error">
- La session a expiré
- </string>
- <string name="no_ability_error">
- Vous n&apos;avez pas ce pouvoir.
- </string>
- <string name="not_a_mod_error">
- Vous n&apos;êtes pas modérateur de session.
- </string>
- <string name="muted_error">
- Un modérateur de groupe a désactivé votre chat écrit.
- </string>
- <string name="add_session_event">
- Impossible d&apos;ajouter des résidents à la session de chat avec [RECIPIENT].
- </string>
- <string name="message_session_event">
- Impossible d&apos;envoyer votre message à la session de chat avec [RECIPIENT].
- </string>
- <string name="removed_from_group">
- Vous avez été supprimé du groupe.
- </string>
- <string name="close_on_no_ability">
- Vous ne pouvez plus participer à la session de chat.
- </string>
-</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 c3df4a869c..516eb41362 100644
--- a/indra/newview/skins/default/xui/fr/floater_im_session.xml
+++ b/indra/newview/skins/default/xui/fr/floater_im_session.xml
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="panel_im">
<layout_stack name="im_panels">
- <layout_panel label="Panneau de contrôle IM" name="panel_im_control_panel"/>
<layout_panel>
<line_editor label="À" name="chat_editor"/>
</layout_panel>
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 110c61aedc..43a7424851 100644
--- a/indra/newview/skins/default/xui/fr/floater_incoming_call.xml
+++ b/indra/newview/skins/default/xui/fr/floater_incoming_call.xml
@@ -16,7 +16,13 @@
a rejoint un chat vocal avec conférence.
</floater.string>
<floater.string name="VoiceInviteGroup">
- a rejoint un chat vocal avec le groupe [GROUP].
+ vient de rejoindre le canal vocal [GROUP].
+ </floater.string>
+ <floater.string name="VoiceInviteQuestionGroup">
+ Voulez-vous quitter [CURRENT_CHAT] et rejoindre l&apos;appel avec [GROUP] ?
+ </floater.string>
+ <floater.string name="VoiceInviteQuestionDefault">
+ 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 ?
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 fca1a329a2..29b61fc98d 100644
--- a/indra/newview/skins/default/xui/fr/floater_inventory_item_properties.xml
+++ b/indra/newview/skins/default/xui/fr/floater_inventory_item_properties.xml
@@ -44,7 +44,7 @@
<text name="OwnerLabel">
Vous :
</text>
- <check_box label="Éditer" name="CheckOwnerModify"/>
+ <check_box label="Modifier" name="CheckOwnerModify"/>
<check_box label="Copier" name="CheckOwnerCopy"/>
<check_box label="Revendre" name="CheckOwnerTransfer"/>
<text name="AnyoneLabel" width="80">
@@ -58,7 +58,7 @@
<text name="NextOwnerLabel" width="192">
Le prochain propriétaire :
</text>
- <check_box label="Éditer" name="CheckNextOwnerModify"/>
+ <check_box label="Modifier" name="CheckNextOwnerModify"/>
<check_box label="Copier" name="CheckNextOwnerCopy"/>
<check_box label="Revendre" name="CheckNextOwnerTransfer"/>
<check_box label="À vendre" name="CheckPurchase"/>
diff --git a/indra/newview/skins/default/xui/fr/floater_map.xml b/indra/newview/skins/default/xui/fr/floater_map.xml
index ae319949e3..cd013f6c0e 100644
--- a/indra/newview/skins/default/xui/fr/floater_map.xml
+++ b/indra/newview/skins/default/xui/fr/floater_map.xml
@@ -27,6 +27,9 @@
<floater.string name="ToolTipMsg">
[AGENT][REGION](Double-cliquez pour ouvrir la carte)
</floater.string>
+ <floater.string name="mini_map_caption">
+ MINI-CARTE
+ </floater.string>
<text label="N" name="floater_map_north" text="N">
N
</text>
diff --git a/indra/newview/skins/default/xui/fr/floater_my_friends.xml b/indra/newview/skins/default/xui/fr/floater_my_friends.xml
deleted file mode 100644
index db7c026e22..0000000000
--- a/indra/newview/skins/default/xui/fr/floater_my_friends.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_my_friends" title="CONTACTS">
- <tab_container name="friends_and_groups">
- <panel label="Amis" name="friends_panel"/>
- <panel label="Groupes" name="groups_panel"/>
- </tab_container>
-</floater>
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
deleted file mode 100644
index d77dfbdf82..0000000000
--- a/indra/newview/skins/default/xui/fr/floater_outfit_save_as.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="modal container" title="Enregistrer la tenue">
- <button label="Enregistrer" label_selected="Enregistrer" name="Save"/>
- <button label="Annuler" label_selected="Annuler" name="Cancel"/>
- <text name="Save item as:">
- Enregistrer ce que je porte
-comme une nouvelle tenue :
- </text>
- <line_editor name="name ed">
- [DESC] (nouv.)
- </line_editor>
-</floater>
diff --git a/indra/newview/skins/default/xui/fr/floater_pay.xml b/indra/newview/skins/default/xui/fr/floater_pay.xml
index 30e510efb5..06cc7df522 100644
--- a/indra/newview/skins/default/xui/fr/floater_pay.xml
+++ b/indra/newview/skins/default/xui/fr/floater_pay.xml
@@ -18,7 +18,7 @@
<button label="10 L$" label_selected="10 L$" name="fastpay 10"/>
<button label="20 L$" label_selected="20 L$" name="fastpay 20"/>
<text left="4" name="amount text">
- Ou choisissez un montant :
+ Ou choisir un montant :
</text>
<line_editor left="60" name="amount" width="55"/>
<button label="Payer" label_selected="Payer" name="pay btn"/>
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 9cac739ab0..bb8dee241f 100644
--- a/indra/newview/skins/default/xui/fr/floater_pay_object.xml
+++ b/indra/newview/skins/default/xui/fr/floater_pay_object.xml
@@ -22,7 +22,7 @@
<button label="10 L$" label_selected="10 L$" name="fastpay 10"/>
<button label="20 L$" label_selected="20 L$" name="fastpay 20"/>
<text halign="left" left="5" name="amount text">
- Ou choisissez un montant :
+ Ou choisir un montant :
</text>
<line_editor left="65" name="amount" width="50"/>
<button label="Payer" label_selected="Payer" name="pay btn"/>
diff --git a/indra/newview/skins/default/xui/fr/floater_postcard.xml b/indra/newview/skins/default/xui/fr/floater_postcard.xml
index 0f3a4541e2..a4b0675fe4 100644
--- a/indra/newview/skins/default/xui/fr/floater_postcard.xml
+++ b/indra/newview/skins/default/xui/fr/floater_postcard.xml
@@ -16,7 +16,7 @@
Objet :
</text>
<line_editor left="143" name="subject_form" width="130" left_delta="146"/>
- <line_editor label="Saisissez votre objet ici." name="subject_form"/>
+ <line_editor label="Saisir ici votre objet" name="subject_form"/>
<text name="msg_label">
Message :
</text>
@@ -24,7 +24,7 @@
<check_box label="Contenu adulte" name="mature_check" tool_tip="Cette carte postale est à caractère adulte."/>
<button label="?" name="publish_help_btn"/>
<text_editor name="msg_form">
- Saisissez votre message ici.
+ Saisir ici votre message
</text_editor>
<text name="fine_print">
Si le destinataire s&apos;inscrit sur [SECOND_LIFE], vous recevrez un bonus.
diff --git a/indra/newview/skins/default/xui/fr/floater_preview_classified.xml b/indra/newview/skins/default/xui/fr/floater_preview_classified.xml
deleted file mode 100644
index 23f86d88b9..0000000000
--- a/indra/newview/skins/default/xui/fr/floater_preview_classified.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="classified_preview" title="INFOS SUR LA PETITE ANNONCE">
- <floater.string name="Title">
- Petite annonce : [NAME]
- </floater.string>
-</floater>
diff --git a/indra/newview/skins/default/xui/fr/floater_preview_event.xml b/indra/newview/skins/default/xui/fr/floater_preview_event.xml
deleted file mode 100644
index 7590c43af1..0000000000
--- a/indra/newview/skins/default/xui/fr/floater_preview_event.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="event_preview" title="INFORMATIONS SUR LES ÉVÉNEMENTS">
- <floater.string name="Title">
- Événement : [NAME]
- </floater.string>
-</floater>
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 1d164ac661..7828d2df97 100644
--- a/indra/newview/skins/default/xui/fr/floater_preview_gesture.xml
+++ b/indra/newview/skins/default/xui/fr/floater_preview_gesture.xml
@@ -13,20 +13,17 @@
Attendre :
</floater.string>
<floater.string name="stop_txt">
- Stop
+ Arrêter
</floater.string>
<floater.string name="preview_txt">
Prévisualiser
</floater.string>
<floater.string name="none_text">
- -- Aucune --
+ - Choisir -
</floater.string>
<floater.string name="Title">
Geste : [NAME]
</floater.string>
- <text name="name_text">
- Nom :
- </text>
<text name="desc_label">
Description :
</text>
@@ -45,7 +42,12 @@
<text name="library_label">
Bibliothèque :
</text>
- <scroll_list name="library_list"/>
+ <scroll_list name="library_list">
+ <scroll_list.rows name="action_animation" value="Animation"/>
+ <scroll_list.rows name="action_sound" value="Son"/>
+ <scroll_list.rows name="action_chat" value="Chat"/>
+ <scroll_list.rows name="action_wait" value="Attente"/>
+ </scroll_list>
<button label="Ajouter &gt;&gt;" name="add_btn"/>
<text name="steps_label">
Étapes :
@@ -53,12 +55,15 @@
<button label="Haut" name="up_btn"/>
<button label="Bas" name="down_btn"/>
<button label="Supprimer" name="delete_btn"/>
+ <text name="options_text">
+ (options)
+ </text>
<radio_group name="animation_trigger_type">
<radio_item label="Lancer" name="start"/>
<radio_item label="Arrêter" name="stop"/>
</radio_group>
<check_box label="jusqu&apos;à la fin des animations" name="wait_anim_check"/>
- <check_box label="temps (sec)" name="wait_time_check"/>
+ <check_box label="temps (sec) :" name="wait_time_check"/>
<line_editor left_delta="130" name="wait_time_editor"/>
<text name="help_label">
Toutes les étapes ont lieu en même temps si vous n&apos;ajoutez pas d&apos;étapes d&apos;attente.
diff --git a/indra/newview/skins/default/xui/fr/floater_preview_gesture_info.xml b/indra/newview/skins/default/xui/fr/floater_preview_gesture_info.xml
deleted file mode 100644
index 4a91992f6a..0000000000
--- a/indra/newview/skins/default/xui/fr/floater_preview_gesture_info.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Gesture" title="RACCOURCI DU GESTE"/>
diff --git a/indra/newview/skins/default/xui/fr/floater_preview_gesture_shortcut.xml b/indra/newview/skins/default/xui/fr/floater_preview_gesture_shortcut.xml
deleted file mode 100644
index d866c32882..0000000000
--- a/indra/newview/skins/default/xui/fr/floater_preview_gesture_shortcut.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Gesture" title="RACCOURCI DU GESTE">
- <text name="trigger_label">
- Chat :
- </text>
- <text name="key_label">
- Clavier :
- </text>
- <combo_box label="Aucun" name="modifier_combo" width="62"/>
- <combo_box label="Aucun" name="key_combo" width="62"/>
- <text name="replace_text" tool_tip="Remplacez le ou les mots-clés par ces mots. Par exemple, si vous remplacez le mot-clé &quot; bonjour &quot; par &quot; salut &quot;, le chat &quot; Je voulais te dire bonjour &quot; devient &quot; Je voulais te dire salut &quot; et le geste correspondant s&apos;affiche.">
- Remplacer :
- </text>
- <line_editor name="replace_editor" tool_tip="Remplacez le ou les mots-clés par ces mots. Par exemple, si vous remplacez le mot-clé &quot; bonjour &quot; par &quot; salut &quot;, le chat &quot; Je voulais te dire bonjour &quot; devient &quot; Je voulais te dire salut &quot; et le geste correspondant s&apos;affiche."/>
-</floater>
diff --git a/indra/newview/skins/default/xui/fr/floater_preview_gesture_steps.xml b/indra/newview/skins/default/xui/fr/floater_preview_gesture_steps.xml
deleted file mode 100644
index 4a91992f6a..0000000000
--- a/indra/newview/skins/default/xui/fr/floater_preview_gesture_steps.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Gesture" title="RACCOURCI DU GESTE"/>
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 39a2b086f1..d4d8652434 100644
--- a/indra/newview/skins/default/xui/fr/floater_publish_classified.xml
+++ b/indra/newview/skins/default/xui/fr/floater_publish_classified.xml
@@ -5,7 +5,7 @@
Rappel : les frais liés aux annonces passées ne sont pas remboursables.
</text>
- <spinner label="Coût de l&apos;annonce :" name="price_for_listing" tool_tip="Coût de l’annonce." value="50"/>
+ <spinner label="Prix : L$" name="price_for_listing" tool_tip="Coût de l’annonce." value="50"/>
<text name="l$_text" value="L$"/>
<text name="more_info_text">
En savoir plus (lien vers l&apos;aide sur les annonces)
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 d79726e8e2..b5ffc8f9c7 100644
--- a/indra/newview/skins/default/xui/fr/floater_sell_land.xml
+++ b/indra/newview/skins/default/xui/fr/floater_sell_land.xml
@@ -45,7 +45,7 @@
</combo_box>
<button label="Sélectionner" name="sell_to_select_agent" width="100"/>
<text name="sell_objects_label">
- 3. Vendez-vous les objets avec ce terrain ?
+ 3. Vendre les objets avec ce terrain ?
</text>
<text name="sell_objects_text">
Les objets transférables se trouvant sur la parcelle changeront de propriétaire.
diff --git a/indra/newview/skins/default/xui/fr/floater_snapshot.xml b/indra/newview/skins/default/xui/fr/floater_snapshot.xml
index 381a513bda..34d0957b46 100644
--- a/indra/newview/skins/default/xui/fr/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/fr/floater_snapshot.xml
@@ -1,16 +1,75 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Snapshot" title="Photo" width="247">
+<floater name="Snapshot" title="APERÇU DE LA PHOTO" width="247">
<floater.string name="unknown">
inconnu
</floater.string>
+ <radio_group label="Type de photo" name="snapshot_type_radio">
+ <radio_item label="E-mail" name="postcard"/>
+ <radio_item label="Mon inventaire ([AMOUNT] L$)" name="texture"/>
+ <radio_item label="Enregistrer sur mon ordinateur" name="local"/>
+ </radio_group>
+ <text name="file_size_label">
+ [SIZE] Ko
+ </text>
<button label="Rafraîchir" name="new_snapshot_btn"/>
- <line_editor label="Description" name="description"/>
- <button label="Partager" name="share"/>
- <button label="Partage Web" name="share_to_web"/>
- <button label="Dans mon inventaire" name="save_to_inventory"/>
- <button label="Enregistrer" name="save"/>
- <button label="Envoi par e-mail" name="share_to_email"/>
- <button label="Sur mon ordinateur" name="save_to_computer"/>
- <button label="Image de profil" name="set_profile_pic"/>
- <button label="Précédent" name="cancel"/>
+ <button label="Envoyer" name="send_btn"/>
+ <button label="Enreg. ([AMOUNT] L$)" name="upload_btn"/>
+ <flyout_button label="Enregistrer" name="save_btn" tool_tip="Enregistrer l&apos;image sous forme de fichier">
+ <flyout_button.item label="Enregistrer" name="save_item"/>
+ <flyout_button.item label="Enregistrer sous..." name="saveas_item"/>
+ </flyout_button>
+ <button label="Plus" name="more_btn" tool_tip="Options avancées"/>
+ <button label="Moins" name="less_btn" tool_tip="Options avancées"/>
+ <button label="Annuler" name="discard_btn"/>
+ <text name="type_label2">
+ Taille
+ </text>
+ <text name="format_label">
+ Format
+ </text>
+ <combo_box label="Résolution" name="postcard_size_combo">
+ <combo_box.item label="Fenêtre actuelle" name="CurrentWindow"/>
+ <combo_box.item label="640 x 480" name="640x480"/>
+ <combo_box.item label="800 x 600" name="800x600"/>
+ <combo_box.item label="1 024 x 768" name="1024x768"/>
+ <combo_box.item label="Personnalisée" name="Custom"/>
+ </combo_box>
+ <combo_box label="Résolution" name="texture_size_combo">
+ <combo_box.item label="Fenêtre actuelle" name="CurrentWindow"/>
+ <combo_box.item label="Petite (128 x 128)" name="Small(128x128)"/>
+ <combo_box.item label="Moyenne (256 x 256)" name="Medium(256x256)"/>
+ <combo_box.item label="Grande (512 x 512)" name="Large(512x512)"/>
+ <combo_box.item label="Personnalisée" name="Custom"/>
+ </combo_box>
+ <combo_box label="Résolution" name="local_size_combo">
+ <combo_box.item label="Fenêtre actuelle" name="CurrentWindow"/>
+ <combo_box.item label="320 x 240" name="320x240"/>
+ <combo_box.item label="640 x 480" name="640x480"/>
+ <combo_box.item label="800 x 600" name="800x600"/>
+ <combo_box.item label="1 024 x 768" name="1024x768"/>
+ <combo_box.item label="1 280 x 1 024" name="1280x1024"/>
+ <combo_box.item label="1 600 x 1 200" name="1600x1200"/>
+ <combo_box.item label="Personnalisée" name="Custom"/>
+ </combo_box>
+ <combo_box label="Format" name="local_format_combo">
+ <combo_box.item label="PNG" name="PNG"/>
+ <combo_box.item label="JPEG" name="JPEG"/>
+ <combo_box.item label="BMP" name="BMP"/>
+ </combo_box>
+ <spinner label="Larg." name="snapshot_width"/>
+ <spinner label="Haut." name="snapshot_height"/>
+ <check_box label="Contraindre les proportions" name="keep_aspect_check"/>
+ <slider label="Qualité de l&apos;image" name="image_quality_slider"/>
+ <text name="layer_type_label">
+ Capturer :
+ </text>
+ <combo_box label="Couches d&apos;images" name="layer_types">
+ <combo_box.item label="Couleurs" name="Colors"/>
+ <combo_box.item label="Profondeur" name="Depth"/>
+ </combo_box>
+ <check_box label="Interface" name="ui_check"/>
+ <check_box label="HUD" name="hud_check"/>
+ <check_box label="Garder ouvert après enregistrement" name="keep_open_check"/>
+ <check_box label="Arrêt sur image (plein écran)" name="freeze_frame_check"/>
+ <check_box label="Actualisation automatique" name="auto_snapshot_check"/>
</floater>
diff --git a/indra/newview/skins/default/xui/fr/floater_statistics.xml b/indra/newview/skins/default/xui/fr/floater_statistics.xml
deleted file mode 100644
index a2e3c199ab..0000000000
--- a/indra/newview/skins/default/xui/fr/floater_statistics.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="stats floater" title="STATISTIQUES"/>
diff --git a/indra/newview/skins/default/xui/fr/floater_tools.xml b/indra/newview/skins/default/xui/fr/floater_tools.xml
index 26d097d549..b0c8636ea3 100644
--- a/indra/newview/skins/default/xui/fr/floater_tools.xml
+++ b/indra/newview/skins/default/xui/fr/floater_tools.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="toolbox floater" short_title="OUTILS POUR LA CONSTRUCTION" title="">
<floater.string name="status_rotate">
- Pour faire tourner l&apos;objet, faîtes glisser les bandes de couleur.
+ Pour faire tourner l&apos;objet, faites glisser les bandes de couleur.
</floater.string>
<floater.string name="status_scale">
Pour étirer le côté sélectionné, cliquez et faites glisser.
@@ -48,13 +48,13 @@
Glissez pour déplacer, Maj-glissez pour copier.
</text>
<radio_group name="focus_radio_group">
- <radio_item label="Zoom" name="radio zoom"/>
- <radio_item label="Orbite (Ctrl)" name="radio orbit"/>
+ <radio_item label="Zoomer" name="radio zoom"/>
+ <radio_item label="Faire tourner la caméra (Ctrl)" name="radio orbit"/>
<radio_item label="Faire un panoramique (Ctrl+Maj)" name="radio pan"/>
</radio_group>
<radio_group name="move_radio_group">
<radio_item label="Déplacer" name="radio move"/>
- <radio_item label="Orbite (Ctrl)" name="radio lift"/>
+ <radio_item label="Soulever (Ctrl)" name="radio lift"/>
<radio_item label="Faire tourner (Ctrl+Maj)" name="radio spin"/>
</radio_group>
<radio_group name="edit_radio_group">
@@ -190,7 +190,7 @@
Cliquer pour :
</text>
<combo_box name="clickaction" width="178">
- <combo_box.item label="Toucher (défaut)" name="Touch/grab(default)"/>
+ <combo_box.item label="Toucher (par défaut)" name="Touch/grab(default)"/>
<combo_box.item label="S&apos;asseoir sur l&apos;objet" name="Sitonobject"/>
<combo_box.item label="Acheter l&apos;objet" name="Buyobject"/>
<combo_box.item label="Payer l&apos;objet" name="Payobject"/>
@@ -402,8 +402,8 @@
Application
</text>
<combo_box name="combobox texgen">
- <combo_box.item label="Défaut" name="Default"/>
- <combo_box.item label="Planar" name="Planar"/>
+ <combo_box.item label="Par défaut" name="Default"/>
+ <combo_box.item label="Plan" name="Planar"/>
</combo_box>
<text name="label shininess">
Brillance
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 1a7bc228fa..8397dc4263 100644
--- a/indra/newview/skins/default/xui/fr/floater_voice_controls.xml
+++ b/indra/newview/skins/default/xui/fr/floater_voice_controls.xml
@@ -19,8 +19,12 @@
<layout_panel name="my_panel">
<text name="user_text" value="Mon avatar :"/>
</layout_panel>
- <layout_panel name="leave_call_btn_panel">
- <button label="Quitter l&apos;appel" name="leave_call_btn"/>
+ <layout_panel name="leave_call_panel">
+ <layout_stack name="voice_effect_and_leave_call_stack">
+ <layout_panel name="leave_call_btn_panel">
+ <button label="Quitter l&apos;appel" name="leave_call_btn"/>
+ </layout_panel>
+ </layout_stack>
</layout_panel>
</layout_stack>
</floater>
diff --git a/indra/newview/skins/default/xui/fr/floater_voice_effect.xml b/indra/newview/skins/default/xui/fr/floater_voice_effect.xml
new file mode 100644
index 0000000000..56cb654440
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/floater_voice_effect.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater label="Endroits" name="voice_effects" title="EFFET DE VOIX">
+ <string name="no_voice_effect">
+ (Aucun effet de voix)
+ </string>
+ <string name="active_voice_effect">
+ (Actif)
+ </string>
+ <string name="unsubscribed_voice_effect">
+ (Pas d&apos;abonnement)
+ </string>
+ <string name="new_voice_effect">
+ (Nouveau !)
+ </string>
+ <text name="preview_text">
+ Aperçu
+ </text>
+ <text name="status_text">
+ Enregistrez un extrait et cliquez sur un effet pour obtenir un aperçu.
+ </text>
+ <button label="Enregistrer" name="record_btn" tool_tip="Enregistrez un extrait de votre voix."/>
+ <button label="Arrêter" name="record_stop_btn"/>
+ <text name="voice_morphing_link">
+ [[URL] S&apos;abonner]
+ </text>
+ <scroll_list name="voice_effect_list" tool_tip="Enregistrez un extrait de votre voix, puis cliquez sur un effet pour obtenir un aperçu.">
+ <scroll_list.columns label="Nom de l&apos;effet" name="name"/>
+ <scroll_list.columns label="Date d&apos;expiration" name="expires"/>
+ </scroll_list>
+</floater>
diff --git a/indra/newview/skins/default/xui/fr/floater_water.xml b/indra/newview/skins/default/xui/fr/floater_water.xml
index 96723b0fe6..7d1e3cd65c 100644
--- a/indra/newview/skins/default/xui/fr/floater_water.xml
+++ b/indra/newview/skins/default/xui/fr/floater_water.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="Water Floater" title="ÉDITEUR D&apos;EAU AVANCÉ">
<floater.string name="WLDefaultWaterNames">
- Default:Glassy:Pond:Murky:Second Plague:SNAKE!!!:Valdez
+ Valeur par défaut:Transparente:Bassin:Trouble:Première plaie:SERPENT !!!:Valdez
</floater.string>
<text name="KeyFramePresetsText" width="120">
Préréglages :
diff --git a/indra/newview/skins/default/xui/fr/floater_wearable_save_as.xml b/indra/newview/skins/default/xui/fr/floater_wearable_save_as.xml
deleted file mode 100644
index 5dda347fcf..0000000000
--- a/indra/newview/skins/default/xui/fr/floater_wearable_save_as.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="modal container">
- <button label="Enregistrer" label_selected="Enregistrer" name="Save"/>
- <button label="Annuler" label_selected="Annuler" name="Cancel"/>
- <text name="Save item as:">
- Enregistrer l&apos;objet dans mon inventaire comme :
- </text>
- <line_editor name="name ed">
- Nouveau [DESC]
- </line_editor>
-</floater>
diff --git a/indra/newview/skins/default/xui/fr/floater_windlight_options.xml b/indra/newview/skins/default/xui/fr/floater_windlight_options.xml
index 74f1697449..657e5f5051 100644
--- a/indra/newview/skins/default/xui/fr/floater_windlight_options.xml
+++ b/indra/newview/skins/default/xui/fr/floater_windlight_options.xml
@@ -184,6 +184,6 @@
</panel>
</tab_container>
<string name="WLDefaultSkyNames">
- A-12AM:A-12PM:A-3AM:A-3PM:A-4.30PM:A-6AM:A-6PM:A-9AM:A-9PM:Barcelona:Blizzard:Blue Midday:Coastal Afternoon:Coastal Sunset:Default:Desert Sunset:Fine Day:Fluffy Big Clouds:Foggy:Funky Funky:Funky Funky Funky:Gelatto:Ghost:Incongruent Truths:Midday 1:Midday 2:Midday 3:Midday 4:Night:Pirate:Purple:Sailor&apos;s Delight:Sheer Sensuality
+ A-Minuit:A-Midi:A-3h:A-15h:A-16h30:A-6h:A-18h:A-9h:A-21h:Barcelone:Blizzard:Bleu mi-journée:Après-midi sur la côte:Coucher de soleil (côte):Valeur par défaut:Coucher de soleil (désert):Belle journée:Gros nuages floconneux:Brumeux:Funky Funky:Funky Funky Funky:Gelatto:Fantôme:Vérités incohérentes:Mi-journée 1:Mi-journée 2:Mi-journée 3:Mi-journée 4:Nuit:Pirate:Mauve:Rêve de navigateur:Sensualité pure
</string>
</floater>
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 4d500857ea..f5dab91924 100644
--- a/indra/newview/skins/default/xui/fr/floater_world_map.xml
+++ b/indra/newview/skins/default/xui/fr/floater_world_map.xml
@@ -19,12 +19,12 @@
<text name="land_sale_label">
Vente de terrains
</text>
- <text name="by_owner_label">
- propriétaire
- </text>
<text name="auction_label">
enchères
</text>
+ <text name="by_owner_label">
+ propriétaire
+ </text>
<button name="Go Home" tool_tip="Me téléporter jusqu’à mon domicile"/>
<text name="Home_label">
Domicile
@@ -35,11 +35,11 @@
<text name="pg_label">
Général
</text>
- <check_box initial_value="true" name="event_mature_chk"/>
- <text name="mature_label">
+ <check_box initial_value="true" name="events_mature_chk"/>
+ <text name="events_mature_label">
Modéré
</text>
- <text name="adult_label">
+ <text name="events_adult_label">
Adulte
</text>
</panel>
@@ -58,6 +58,9 @@
<search_editor label="Régions par nom" name="location" tool_tip="Tapez le nom d&apos;une région"/>
<button label="Trouver" name="DoSearch" tool_tip="Rechercher une région"/>
<button name="Clear" tool_tip="Effacer les lignes de suivi et réinitialiser la carte"/>
+ <text name="events_label">
+ Endroit :
+ </text>
<button label="Téléporter" name="Teleport" tool_tip="Me téléporter à l&apos;emplacement sélectionné"/>
<button label="Copier la SLurl" name="copy_slurl" tool_tip="Copie l’emplacement actuel sous la forme d’une SLurl à utiliser sur le Web."/>
<button label="Afficher la sélection" name="Show Destination" tool_tip="Centrer la carte sur l&apos;emplacement sélectionné"/>
diff --git a/indra/newview/skins/default/xui/fr/inspect_object.xml b/indra/newview/skins/default/xui/fr/inspect_object.xml
index e50de400fd..b66af7a2bf 100644
--- a/indra/newview/skins/default/xui/fr/inspect_object.xml
+++ b/indra/newview/skins/default/xui/fr/inspect_object.xml
@@ -8,8 +8,8 @@
Par [CREATOR]
</string>
<string name="CreatorAndOwner">
- par [CREATOR]
-propriétaire [OWNER]
+ De [CREATOR]
+Propriétaire [OWNER]
</string>
<string name="Price">
[AMOUNT] L$
@@ -23,16 +23,16 @@ propriétaire [OWNER]
<string name="Sit">
M&apos;asseoir
</string>
- <text name="object_name" value="Nom d&apos;objet de test vraiment très long"/>
+ <text name="object_name" value="Test Object Name That Is actually two lines and Really Long"/>
<text name="object_creator">
par secondlife:///app/agent/0e346d8b-4433-4d66-a6b0-fd37083abc4c/about
owner secondlife:///app/agent/0e346d8b-4433-4d66-a6b0-fd37083abc4c/about
</text>
<text name="price_text">
- 300 000 L$
+ 30 000 L$
</text>
<text name="object_description">
- Cette description d&apos;objet est vraiment très longue : elle compte au moins 80 caractères, voire plus de 120, vraiment très très longue. Who knows, really?
+ This is a really long description for an object being as how it is at least 80 characters in length and so but maybe more like 120 at this point. Who knows, really?
</text>
<text name="object_media_url">
http://www.superdupertest.com
diff --git a/indra/newview/skins/default/xui/fr/language_settings.xml b/indra/newview/skins/default/xui/fr/language_settings.xml
index 117ae16ee8..bd272e1f28 100644
--- a/indra/newview/skins/default/xui/fr/language_settings.xml
+++ b/indra/newview/skins/default/xui/fr/language_settings.xml
@@ -17,6 +17,7 @@
datetimeToCodes["month"] = "%B"; // August
datetimeToCodes["mthnum"] = "%m"; // 08
datetimeToCodes["day"] = "%d"; // 31
+ datetimeToCodes["sday"] = "%-d"; // 9
datetimeToCodes["hour24"] = "%H"; // 14
datetimeToCodes["hour"] = "%H"; // 14
datetimeToCodes["hour12"] = "%I"; // 02
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 ff87d90d4d..4516b624b8 100644
--- a/indra/newview/skins/default/xui/fr/menu_attachment_self.xml
+++ b/indra/newview/skins/default/xui/fr/menu_attachment_self.xml
@@ -1,13 +1,15 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Attachment Pie">
<menu_item_call label="Toucher" name="Attachment Object Touch"/>
- <menu_item_call label="Éditer" name="Edit..."/>
+ <menu_item_call label="Modifier" name="Edit..."/>
<menu_item_call label="Détacher" name="Detach"/>
- <menu_item_call label="Lâcher" name="Drop"/>
<menu_item_call label="Me lever" name="Stand Up"/>
<menu_item_call label="Changer de tenue" name="Change Outfit"/>
+ <menu_item_call label="Modifier ma tenue" name="Edit Outfit"/>
+ <menu_item_call label="Modifier ma silhouette" name="Edit My Shape"/>
<menu_item_call label="Mes amis" name="Friends..."/>
<menu_item_call label="Mes groupes" name="Groups..."/>
<menu_item_call label="Mon profil" name="Profile..."/>
<menu_item_call label="Déboguer les textures" name="Debug..."/>
+ <menu_item_call label="Lâcher" name="Drop"/>
</context_menu>
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 3620dc72b0..bcf2757b58 100644
--- a/indra/newview/skins/default/xui/fr/menu_avatar_self.xml
+++ b/indra/newview/skins/default/xui/fr/menu_avatar_self.xml
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Self Pie">
<menu_item_call label="Me lever" name="Stand Up"/>
- <context_menu label="Enlever â–¶" name="Take Off &gt;">
- <context_menu label="Habits â–¶" name="Clothes &gt;">
+ <context_menu label="Enlever" name="Take Off &gt;">
+ <context_menu label="Habits" name="Clothes &gt;">
<menu_item_call label="Chemise" name="Shirt"/>
<menu_item_call label="Pantalon" name="Pants"/>
<menu_item_call label="Jupe" name="Skirt"/>
@@ -16,8 +16,8 @@
<menu_item_call label="Alpha" name="Self Alpha"/>
<menu_item_call label="Tous les habits" name="All Clothes"/>
</context_menu>
- <context_menu label="HUD â–¶" name="Object Detach HUD"/>
- <context_menu label="Détacher ▶" name="Object Detach"/>
+ <context_menu label="HUD" name="Object Detach HUD"/>
+ <context_menu label="Détacher" name="Object Detach"/>
<menu_item_call label="Tout détacher" name="Detach All"/>
</context_menu>
<menu_item_call label="Changer de tenue" name="Chenge Outfit"/>
diff --git a/indra/newview/skins/default/xui/fr/menu_bottomtray.xml b/indra/newview/skins/default/xui/fr/menu_bottomtray.xml
index e058c66a17..bfdc89c5bb 100644
--- a/indra/newview/skins/default/xui/fr/menu_bottomtray.xml
+++ b/indra/newview/skins/default/xui/fr/menu_bottomtray.xml
@@ -2,7 +2,7 @@
<menu name="hide_camera_move_controls_menu">
<menu_item_check label="Bouton Geste" name="ShowGestureButton"/>
<menu_item_check label="Bouton Bouger" name="ShowMoveButton"/>
- <menu_item_check label="Bouton Afficher" name="ShowCameraButton"/>
+ <menu_item_check label="Bouton Affichage" name="ShowCameraButton"/>
<menu_item_check label="Bouton Photo" name="ShowSnapshotButton"/>
<menu_item_check label="Bouton Panneau latéral" name="ShowSidebarButton"/>
<menu_item_check label="Bouton Construire" name="ShowBuildButton"/>
diff --git a/indra/newview/skins/default/xui/fr/menu_cof_attachment.xml b/indra/newview/skins/default/xui/fr/menu_cof_attachment.xml
new file mode 100644
index 0000000000..a4ead48b6b
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/menu_cof_attachment.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<context_menu name="COF Attachment">
+ <menu_item_call label="Détacher" name="detach"/>
+</context_menu>
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
new file mode 100644
index 0000000000..4b6907fcc6
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/menu_cof_body_part.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<context_menu name="COF Body">
+ <menu_item_call label="Remplacer" name="replace"/>
+ <menu_item_call label="Modifier" name="edit"/>
+</context_menu>
diff --git a/indra/newview/skins/default/xui/fr/menu_cof_clothing.xml b/indra/newview/skins/default/xui/fr/menu_cof_clothing.xml
new file mode 100644
index 0000000000..03cc569704
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/menu_cof_clothing.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<context_menu name="COF Clothing">
+ <menu_item_call label="Enlever" name="take_off"/>
+ <menu_item_call label="Modifier" name="edit"/>
+ <menu_item_call label="Remplacer" name="replace"/>
+</context_menu>
diff --git a/indra/newview/skins/default/xui/fr/menu_cof_gear.xml b/indra/newview/skins/default/xui/fr/menu_cof_gear.xml
new file mode 100644
index 0000000000..8276d57025
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/menu_cof_gear.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<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>
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 02d734045a..062dd0f005 100644
--- a/indra/newview/skins/default/xui/fr/menu_gesture_gear.xml
+++ b/indra/newview/skins/default/xui/fr/menu_gesture_gear.xml
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu name="menu_gesture_gear">
- <menu_item_call label="Ajouter/Supprimer des Favoris" name="activate"/>
+ <menu_item_call label="Ajouter/Supprimer des favoris" name="activate"/>
<menu_item_call label="Copier" name="copy_gesture"/>
<menu_item_call label="Coller" name="paste"/>
<menu_item_call label="Copier l&apos;UUID" name="copy_uuid"/>
<menu_item_call label="Enregistrer dans la tenue actuelle" name="save_to_outfit"/>
- <menu_item_call label="Éditer" name="edit_gesture"/>
+ <menu_item_call label="Modifier" name="edit_gesture"/>
<menu_item_call label="Inspecter" name="inspect"/>
</menu>
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 3a7126fe50..86a2ddd185 100644
--- a/indra/newview/skins/default/xui/fr/menu_hide_navbar.xml
+++ b/indra/newview/skins/default/xui/fr/menu_hide_navbar.xml
@@ -2,4 +2,5 @@
<menu name="hide_navbar_menu">
<menu_item_check label="Afficher la barre de navigation" name="ShowNavbarNavigationPanel"/>
<menu_item_check label="Afficher la barre des Favoris" name="ShowNavbarFavoritesPanel"/>
+ <menu_item_check label="Afficher la mini-barre d&apos;emplacement" name="ShowMiniLocationPanel"/>
</menu>
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 0ecce069bd..e2b215cbb8 100644
--- a/indra/newview/skins/default/xui/fr/menu_inspect_object_gear.xml
+++ b/indra/newview/skins/default/xui/fr/menu_inspect_object_gear.xml
@@ -7,7 +7,7 @@
<menu_item_call label="Prendre" name="take"/>
<menu_item_call label="Prendre une copie" name="take_copy"/>
<menu_item_call label="Ouvrir" name="open"/>
- <menu_item_call label="Éditer" name="edit"/>
+ <menu_item_call label="Modifier" name="edit"/>
<menu_item_call label="Porter" name="wear"/>
<menu_item_call label="Signaler" name="report"/>
<menu_item_call label="Ignorer" name="block"/>
diff --git a/indra/newview/skins/default/xui/fr/menu_inventory.xml b/indra/newview/skins/default/xui/fr/menu_inventory.xml
index 4b9a05edd6..a2279cf0ac 100644
--- a/indra/newview/skins/default/xui/fr/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/fr/menu_inventory.xml
@@ -61,7 +61,7 @@
<menu_item_call label="Copier" name="Copy"/>
<menu_item_call label="Coller" name="Paste"/>
<menu_item_call label="Coller comme lien" name="Paste As Link"/>
- <menu_item_call label="Supprimer le lien" name="Remove Link"/>
+ <menu_item_call label="Supprimer" name="Remove Link"/>
<menu_item_call label="Supprimer" name="Delete"/>
<menu_item_call label="Supprimer le dossier système" name="Delete System Folder"/>
<menu_item_call label="Démarrer le chat conférence" name="Conference Chat Folder"/>
@@ -76,11 +76,11 @@
<menu_item_call label="Désactiver" name="Deactivate"/>
<menu_item_call label="Enregistrer sous" name="Save As"/>
<menu_item_call label="Détacher de vous" name="Detach From Yourself"/>
- <menu_item_call label="Porter" name="Object Wear"/>
+ <menu_item_call label="Porter" name="Wearable And Object Wear"/>
<menu label="Attacher à" name="Attach To"/>
<menu label="Attacher au HUD " name="Attach To HUD"/>
- <menu_item_call label="Éditer" name="Wearable Edit"/>
- <menu_item_call label="Porter" name="Wearable Wear"/>
+ <menu_item_call label="Modifier" name="Wearable Edit"/>
+ <menu_item_call label="Ajouter" name="Wearable Add"/>
<menu_item_call label="Enlever" name="Take Off"/>
<menu_item_call label="--aucune option--" name="--no options--"/>
</menu>
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 57b0a768c2..fe096b4a7e 100644
--- a/indra/newview/skins/default/xui/fr/menu_inventory_add.xml
+++ b/indra/newview/skins/default/xui/fr/menu_inventory_add.xml
@@ -5,6 +5,7 @@
<menu_item_call label="Son ([COST] L$)..." name="Upload Sound"/>
<menu_item_call label="Animation ([COST] L$)..." name="Upload Animation"/>
<menu_item_call label="Lot ([COST] L$ par fichier)..." name="Bulk Upload"/>
+ <menu_item_call label="Définir les droits de chargement par défaut" name="perm prefs"/>
</menu>
<menu_item_call label="Nouveau dossier" name="New Folder"/>
<menu_item_call label="Nouveau script" name="New Script"/>
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 4cfdfd2614..73770dce5f 100644
--- a/indra/newview/skins/default/xui/fr/menu_inventory_gear_default.xml
+++ b/indra/newview/skins/default/xui/fr/menu_inventory_gear_default.xml
@@ -6,9 +6,10 @@
<menu_item_call label="Afficher les filtres" name="show_filters"/>
<menu_item_call label="Réinitialiser les filtres" name="reset_filters"/>
<menu_item_call label="Fermer tous les dossiers" name="close_folders"/>
- <menu_item_call label="Vider la corbeille" name="empty_trash"/>
<menu_item_call label="Vider les objets trouvés" name="empty_lostnfound"/>
<menu_item_call label="Enregistrer la texture sous" name="Save Texture As"/>
+ <menu_item_call label="Partager" name="Share"/>
<menu_item_call label="Trouver l&apos;original" name="Find Original"/>
<menu_item_call label="Trouver tous les liens" name="Find All Links"/>
+ <menu_item_call label="Vider la corbeille" name="empty_trash"/>
</menu>
diff --git a/indra/newview/skins/default/xui/fr/menu_landmark.xml b/indra/newview/skins/default/xui/fr/menu_landmark.xml
index 2e0cafa227..73eaa4af7e 100644
--- a/indra/newview/skins/default/xui/fr/menu_landmark.xml
+++ b/indra/newview/skins/default/xui/fr/menu_landmark.xml
@@ -2,6 +2,6 @@
<toggleable_menu name="landmark_overflow_menu">
<menu_item_call label="Copier la SLurl" name="copy"/>
<menu_item_call label="Supprimer" name="delete"/>
- <menu_item_call label="Créer une préférence" name="pick"/>
- <menu_item_call label="Ajouter à la barre des Favoris" name="add_to_favbar"/>
+ <menu_item_call label="Créer un favori" name="pick"/>
+ <menu_item_call label="Ajouter à la barre des favoris" name="add_to_favbar"/>
</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/fr/menu_object.xml b/indra/newview/skins/default/xui/fr/menu_object.xml
index 6492a83e06..f7fe0ae71f 100644
--- a/indra/newview/skins/default/xui/fr/menu_object.xml
+++ b/indra/newview/skins/default/xui/fr/menu_object.xml
@@ -1,19 +1,21 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Object Pie">
- <menu_item_call label="Toucher" name="Object Touch"/>
- <menu_item_call label="Éditer" name="Edit..."/>
+ <menu_item_call label="Toucher" name="Object Touch">
+ <on_enable parameter="Toucher" name="EnableTouch"/>
+ </menu_item_call>
+ <menu_item_call label="Modifier" name="Edit..."/>
<menu_item_call label="Construire" name="Build"/>
<menu_item_call label="Ouvrir" name="Open"/>
<menu_item_call label="M&apos;asseoir ici" name="Object Sit"/>
<menu_item_call label="Me lever" name="Object Stand Up"/>
<menu_item_call label="Profil de l&apos;objet" name="Object Inspect"/>
<menu_item_call label="Zoomer en avant" name="Zoom In"/>
- <context_menu label="Porter â–¶" name="Put On">
+ <context_menu label="Porter" name="Put On">
<menu_item_call label="Porter" name="Wear"/>
- <context_menu label="Attacher â–¶" name="Object Attach"/>
- <context_menu label="Attacher les éléments HUD ▶" name="Object Attach HUD"/>
+ <context_menu label="Attacher" name="Object Attach"/>
+ <context_menu label="Attacher les éléments HUD" name="Object Attach HUD"/>
</context_menu>
- <context_menu label="Supprimer â–¶" name="Remove">
+ <context_menu label="Supprimer" name="Remove">
<menu_item_call label="Signaler une infraction" name="Report Abuse..."/>
<menu_item_call label="Ignorer" name="Object Mute"/>
<menu_item_call label="Retour" name="Return..."/>
diff --git a/indra/newview/skins/default/xui/fr/menu_outfit_gear.xml b/indra/newview/skins/default/xui/fr/menu_outfit_gear.xml
new file mode 100644
index 0000000000..5db7f176b5
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/menu_outfit_gear.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="Gear Outfit">
+ <menu_item_call label="Porter - Remplacer la tenue actuelle" name="wear"/>
+ <menu_item_call label="Porter - Ajouter à la tenue actuelle" name="wear_add"/>
+ <menu_item_call label="Enlever - Supprimer de la tenue actuelle" name="take_off"/>
+ <menu label="Nouveaux habits" name="New Clothes">
+ <menu_item_call label="Nouvelle chemise" name="New Shirt"/>
+ <menu_item_call label="Nouveau pantalon" name="New Pants"/>
+ <menu_item_call label="Nouvelles chaussures" name="New Shoes"/>
+ <menu_item_call label="Nouvelles chaussettes" name="New Socks"/>
+ <menu_item_call label="Nouvelle veste" name="New Jacket"/>
+ <menu_item_call label="Nouvelle jupe" name="New Skirt"/>
+ <menu_item_call label="Nouveaux gants" name="New Gloves"/>
+ <menu_item_call label="Nouveau débardeur" name="New Undershirt"/>
+ <menu_item_call label="Nouveau caleçon" name="New Underpants"/>
+ <menu_item_call label="Nouvel alpha" name="New Alpha"/>
+ <menu_item_call label="Nouveau tatouage" name="New Tattoo"/>
+ </menu>
+ <menu label="Nouvelles parties du corps" name="New Body Parts">
+ <menu_item_call label="Nouvelle silhouette" name="New Shape"/>
+ <menu_item_call label="Nouvelle peau" name="New Skin"/>
+ <menu_item_call label="Nouveaux cheveux" name="New Hair"/>
+ <menu_item_call label="Nouveaux yeux" name="New Eyes"/>
+ </menu>
+ <menu_item_call label="Renommer la tenue" name="rename"/>
+ <menu_item_call label="Supprimer la tenue" name="delete_outfit"/>
+</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
new file mode 100644
index 0000000000..2a7f618e07
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/menu_outfit_tab.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<context_menu name="Outfit">
+ <menu_item_call label="Porter - Remplacer la tenue actuelle" name="wear_replace"/>
+ <menu_item_call label="Porter - Ajouter à la tenue actuelle" name="wear_add"/>
+ <menu_item_call label="Enlever - Supprimer de la tenue actuelle" name="take_off"/>
+ <menu_item_call label="Modifier la tenue" name="edit"/>
+ <menu_item_call label="Renommer la tenue" name="rename"/>
+ <menu_item_call label="Supprimer la tenue" name="delete"/>
+</context_menu>
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 63d3d39f9c..f91a30f6bb 100644
--- a/indra/newview/skins/default/xui/fr/menu_participant_list.xml
+++ b/indra/newview/skins/default/xui/fr/menu_participant_list.xml
@@ -11,7 +11,7 @@
<menu_item_check label="Afficher les icônes des résidents" name="View Icons"/>
<menu_item_check label="Bloquer le chat vocal" name="Block/Unblock"/>
<menu_item_check label="Ignorer le texte" name="MuteText"/>
- <context_menu label="Options du modérateur &gt;" name="Moderator Options">
+ <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"/>
diff --git a/indra/newview/skins/default/xui/fr/menu_picks.xml b/indra/newview/skins/default/xui/fr/menu_picks.xml
index adb1cec8f5..7d7174d43c 100644
--- a/indra/newview/skins/default/xui/fr/menu_picks.xml
+++ b/indra/newview/skins/default/xui/fr/menu_picks.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Picks">
<menu_item_call label="Infos" name="pick_info"/>
- <menu_item_call label="Éditer" name="pick_edit"/>
+ <menu_item_call label="Modifier" name="pick_edit"/>
<menu_item_call label="Téléporter" name="pick_teleport"/>
<menu_item_call label="Carte" name="pick_map"/>
<menu_item_call label="Supprimer" name="pick_delete"/>
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 a3b4fb4f55..b6cde6d6e2 100644
--- a/indra/newview/skins/default/xui/fr/menu_picks_plus.xml
+++ b/indra/newview/skins/default/xui/fr/menu_picks_plus.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<toggleable_menu name="picks_plus_menu">
- <menu_item_call label="Nouveau Favori" name="create_pick"/>
+ <menu_item_call label="Nouveau favori" name="create_pick"/>
<menu_item_call label="Nouvelle petite annonce" name="create_classified"/>
</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/fr/menu_place.xml b/indra/newview/skins/default/xui/fr/menu_place.xml
index beaf37011f..6b0f4db752 100644
--- a/indra/newview/skins/default/xui/fr/menu_place.xml
+++ b/indra/newview/skins/default/xui/fr/menu_place.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<toggleable_menu name="place_overflow_menu">
<menu_item_call label="Enregistrer comme repère" name="landmark"/>
- <menu_item_call label="Créer une préférence" name="pick"/>
+ <menu_item_call label="Créer un favori" name="pick"/>
<menu_item_call label="Acheter un pass" name="pass"/>
- <menu_item_call label="Éditer" name="edit"/>
+ <menu_item_call label="Modifier" name="edit"/>
</toggleable_menu>
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 2ad007c142..5491c1b3fc 100644
--- a/indra/newview/skins/default/xui/fr/menu_places_gear_landmark.xml
+++ b/indra/newview/skins/default/xui/fr/menu_places_gear_landmark.xml
@@ -14,5 +14,5 @@
<menu_item_call label="Développer tous les dossiers" name="expand_all"/>
<menu_item_call label="Réduire tous les dossiers" name="collapse_all"/>
<menu_item_check label="Trier par date" name="sort_by_date"/>
- <menu_item_call label="Créer une préférence" name="create_pick"/>
+ <menu_item_call label="Créer un favori" name="create_pick"/>
</menu>
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 fbec933382..f78db411b3 100644
--- a/indra/newview/skins/default/xui/fr/menu_save_outfit.xml
+++ b/indra/newview/skins/default/xui/fr/menu_save_outfit.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<toggleable_menu name="save_outfit_menu">
<menu_item_call label="Enregistrer" name="save_outfit"/>
- <menu_item_call label="Enregistrer comme nouvelle" name="save_as_new_outfit"/>
+ <menu_item_call label="Enregistrer sous" name="save_as_new_outfit"/>
</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/fr/menu_topinfobar.xml b/indra/newview/skins/default/xui/fr/menu_topinfobar.xml
new file mode 100644
index 0000000000..dc68f40fe7
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/menu_topinfobar.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="menu_topinfobar">
+ <menu_item_check label="Afficher les coordonnées" name="Show Coordinates"/>
+ <menu_item_check label="Afficher les propriétés de la parcelle" name="Show Parcel Properties"/>
+ <menu_item_call label="Repère" name="Landmark"/>
+ <menu_item_call label="Copier" name="Copy"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/fr/menu_viewer.xml b/indra/newview/skins/default/xui/fr/menu_viewer.xml
index 4c7cdefbe8..cd0e41e496 100644
--- a/indra/newview/skins/default/xui/fr/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/fr/menu_viewer.xml
@@ -11,6 +11,7 @@
<menu_item_check label="Mon inventaire" name="Inventory"/>
<menu_item_check label="Mon inventaire" name="ShowSidetrayInventory"/>
<menu_item_check label="Mes gestes" name="Gestures"/>
+ <menu_item_check label="Ma voix" name="ShowVoice"/>
<menu label="Mon statut" name="Status">
<menu_item_call label="Absent" name="Set Away"/>
<menu_item_call label="Occupé" name="Set Busy"/>
@@ -60,8 +61,8 @@
</menu>
<menu label="Construire" name="BuildTools">
<menu_item_check label="Construire" name="Show Build Tools"/>
- <menu label="Sélectionner l&apos;outil de construction" name="Select Tool">
- <menu_item_call label="Outil de zoom" name="Focus"/>
+ <menu label="Sélectionner un outil de construction" name="Select Tool">
+ <menu_item_call label="Outil de mise au point" name="Focus"/>
<menu_item_call label="Outil de déplacement" name="Move"/>
<menu_item_call label="Outil de modification" name="Edit"/>
<menu_item_call label="Outil de création" name="Create"/>
@@ -70,6 +71,12 @@
<menu_item_call label="Lien" name="Link"/>
<menu_item_call label="Annuler le lien" name="Unlink"/>
<menu_item_check label="Modifier les parties liées" name="Edit Linked Parts"/>
+ <menu label="Sélectionner les parties liées" name="Select Linked Parts">
+ <menu_item_call label="Sélectionner la partie suivante" name="Select Next Part"/>
+ <menu_item_call label="Sélectionner la partie précédente" name="Select Previous Part"/>
+ <menu_item_call label="Inclure la partie suivante" name="Include Next Part"/>
+ <menu_item_call label="Inclure la partie précédente" name="Include Previous Part"/>
+ </menu>
<menu_item_call label="Point central sur la sélection" name="Focus on Selection"/>
<menu_item_call label="Zoomer sur la sélection" name="Zoom to Selection"/>
<menu label="Objet" name="Object">
@@ -100,11 +107,11 @@
<menu_item_call label="Utiliser la sélection pour la grille" name="Use Selection for Grid"/>
<menu_item_call label="Options de la grille" name="Grid Options"/>
</menu>
- <menu label="Sélectionner les parties liées" name="Select Linked Parts">
- <menu_item_call label="Sélectionner la partie suivante" name="Select Next Part"/>
- <menu_item_call label="Sélectionner la partie précédente" name="Select Previous Part"/>
- <menu_item_call label="Inclure la partie suivante" name="Include Next Part"/>
- <menu_item_call label="Inclure la partie précédente" name="Include Previous Part"/>
+ <menu label="Charger" name="Upload">
+ <menu_item_call label="Image ([COST] L$)..." name="Upload Image"/>
+ <menu_item_call label="Son ([COST] L$)..." name="Upload Sound"/>
+ <menu_item_call label="Animation ([COST] L$)..." name="Upload Animation"/>
+ <menu_item_call label="Lot ([COST] L$ par fichier)..." name="Bulk Upload"/>
</menu>
</menu>
<menu label="Aide" name="Help">
@@ -170,6 +177,7 @@
<menu_item_check label="Rechercher" name="Search"/>
<menu_item_call label="Relâcher les touches" name="Release Keys"/>
<menu_item_call label="Taille de l&apos;interface par défaut" name="Set UI Size to Default"/>
+ <menu_item_check label="Afficher le menu Avancé - raccourci existant" name="Show Advanced Menu - legacy shortcut"/>
<menu_item_check label="Toujours courir" name="Always Run"/>
<menu_item_check label="Voler" name="Fly"/>
<menu_item_call label="Fermer la fenêtre" name="Close Window"/>
@@ -179,8 +187,8 @@
<menu_item_check label="Joystick Flycam" name="Joystick Flycam"/>
<menu_item_call label="Réinitialiser la vue" name="Reset View"/>
<menu_item_call label="Regarder la dernière conversation" name="Look at Last Chatter"/>
- <menu label="Sélectionner l&apos;outil de construction" name="Select Tool">
- <menu_item_call label="Outil de zoom" name="Focus"/>
+ <menu label="Sélectionner un outil de construction" name="Select Tool">
+ <menu_item_call label="Outil de mise au point" name="Focus"/>
<menu_item_call label="Outil de déplacement" name="Move"/>
<menu_item_call label="Outil de modification" name="Edit"/>
<menu_item_call label="Outil de création" name="Create"/>
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
new file mode 100644
index 0000000000..e2eeb39782
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/menu_wearable_list_item.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<context_menu name="Outfit Wearable Context Menu">
+ <menu_item_call label="Remplacer" name="wear_replace"/>
+ <menu_item_call label="Porter" name="wear_wear"/>
+ <menu_item_call label="Ajouter" name="wear_add"/>
+ <menu_item_call label="Enlever / Détacher" name="take_off_or_detach"/>
+ <menu_item_call label="Détacher" name="detach"/>
+ <context_menu label="Attacher à" name="wearable_attach_to"/>
+ <context_menu label="Attacher au HUD" name="wearable_attach_to_hud"/>
+ <menu_item_call label="Enlever" name="take_off"/>
+ <menu_item_call label="Modifier" name="edit"/>
+ <menu_item_call label="Profil de l&apos;objet" name="object_profile"/>
+ <menu_item_call label="Afficher l&apos;original" name="show_original"/>
+</context_menu>
diff --git a/indra/newview/skins/default/xui/fr/menu_wearing_gear.xml b/indra/newview/skins/default/xui/fr/menu_wearing_gear.xml
new file mode 100644
index 0000000000..d5330c2417
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/menu_wearing_gear.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="Gear Wearing">
+ <menu_item_call label="Modifier la tenue" name="edit"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/fr/menu_wearing_tab.xml b/indra/newview/skins/default/xui/fr/menu_wearing_tab.xml
new file mode 100644
index 0000000000..b99f751fae
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/menu_wearing_tab.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<context_menu name="Wearing">
+ <menu_item_call label="Modifier la tenue" name="edit"/>
+</context_menu>
diff --git a/indra/newview/skins/default/xui/fr/notifications.xml b/indra/newview/skins/default/xui/fr/notifications.xml
index bb1c4242ee..259ac4cee6 100644
--- a/indra/newview/skins/default/xui/fr/notifications.xml
+++ b/indra/newview/skins/default/xui/fr/notifications.xml
@@ -168,7 +168,7 @@ Ajouter ce pouvoir à « [ROLE_NAME] » ?
<notification name="AttachmentDrop">
Vous êtes sur le point d&apos;abandonner l&apos;élément joint.
Voulez-vous vraiment continuer ?
- <usetemplate ignoretext="Confirmez avant d&apos;abandonner les éléments joints." name="okcancelignore" notext="Non" yestext="Oui"/>
+ <usetemplate ignoretext="Confirmer avant d&apos;abandonner les éléments joints" name="okcancelignore" notext="Non" yestext="Oui"/>
</notification>
<notification name="JoinGroupCanAfford">
Rejoindre ce groupe coûte [COST] L$.
@@ -357,6 +357,10 @@ Voulez-vous vraiment continuer ?
Supprimer la sélection &lt;nolink&gt;[PICK]&lt;/nolink&gt; ?
<usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
</notification>
+ <notification name="DeleteOutfits">
+ Supprimer la ou les tenues sélectionnées ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
+ </notification>
<notification name="PromptGoToEventsPage">
Aller à la page web de [SECOND_LIFE] réservée aux événements ?
<url name="url">
@@ -474,7 +478,9 @@ La qualité des graphiques peut être augmentée à la section Préférences &gt
Le terraformage est interdit dans la région [REGION].
</notification>
<notification name="CannotCopyWarning">
- Vous n&apos;êtes pas autorisé à copier cet objet et il disparaîtra de votre inventaire si vous le donnez. Souhaitez-vous vraiment offrir cet objet ?
+ Vous n&apos;êtes pas autorisé à copier les articles suivants :
+[ITEMS].
+Ceux-ci disparaîtront donc de votre inventaire si vous les donnez. Voulez-vous vraiment offrir ces articles ?
<usetemplate name="okcancelbuttons" notext="Non" yestext="Oui"/>
</notification>
<notification name="CannotGiveItem">
@@ -612,8 +618,7 @@ Assurez-vous que le fichier a l&apos;extension correcte.
Impossible d&apos;encoder le fichier : [FILE]
</notification>
<notification name="CorruptedProtectedDataStore">
- Impossible de lire vos données protégées ; elles sont en cours de réinitialisation.
- Cette situation peut se produire lorsque vous changez la configuration du réseau.
+ Impossible de renseigner votre nom d&apos;utilisateur et mot de passe. Cette situation peut se produire lorsque vous changez la configuration du réseau.
<usetemplate name="okbutton" yestext="OK"/>
</notification>
<notification name="CorruptResourceFile">
@@ -904,7 +909,7 @@ Fusionner le terrain ?
</notification>
<notification name="CannotSaveToAssetStore">
Impossible de sauvegarder le fichier [NAME] dans la base de données centrale.
-Cette erreur est généralement temporaire. Veuillez éditer et sauvegarder l&apos;élément endossable à nouveau d&apos;ici quelques minutes.
+Cette erreur est généralement temporaire. Veuillez modifier et sauvegarder l&apos;élément endossable à nouveau d&apos;ici quelques minutes.
</notification>
<notification name="YouHaveBeenLoggedOut">
Zut. Vous avez été déconnecté(e) de [SECOND_LIFE]
@@ -943,6 +948,26 @@ Proposer à [NAME] de devenir votre ami(e) ?
<button name="Cancel" text="Annuler"/>
</form>
</notification>
+ <notification label="Enregistrer l&apos;article à porter" name="SaveWearableAs">
+ Enregistrer l&apos;article dans mon inventaire comme :
+ <form name="form">
+ <input name="message">
+ [DESC] (nouv.)
+ </input>
+ <button name="Offer" text="OK"/>
+ <button name="Cancel" text="Annuler"/>
+ </form>
+ </notification>
+ <notification label="Renommer la tenue" name="RenameOutfit">
+ Nouveau nom de la tenue :
+ <form name="form">
+ <input name="new_name">
+ [NAME]
+ </input>
+ <button name="Offer" text="OK"/>
+ <button name="Cancel" text="Annuler"/>
+ </form>
+ </notification>
<notification name="RemoveFromFriends">
Voulez-vous supprimer [FIRST_NAME] [LAST_NAME] de votre liste d&apos;amis ?
<usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
@@ -1325,7 +1350,7 @@ Télécharger vers le dossier Applications ?
</notification>
<notification name="WebLaunchQAWiki">
Consultez le Wiki sur l&apos;Assurance Qualité de [SECOND_LIFE].
- <usetemplate ignoretext="Lancer mon navigateur web pour consulter la page Wiki sur l&apos;Assurance Qualité." name="okcancelignore" notext="Annuler" yestext="OK"/>
+ <usetemplate ignoretext="Lancer mon navigateur web pour consulter la page Wiki sur l&apos;Assurance Qualité" name="okcancelignore" notext="Annuler" yestext="OK"/>
</notification>
<notification name="WebLaunchPublicIssue">
Pour signaler des bugs et autres problèmes, utilisez le JIRA de [SECOND_LIFE].
@@ -1555,7 +1580,7 @@ Souhaitez-vous en savoir plus sur les différentes catégories d&apos;accès ?
<notification name="RegionEntryAccessBlocked_Change">
La catégorie de contenu définie dans vos préférences ne vous permet pas de pénétrer dans cette région.
-Pour cela, cliquez sur Modifier les préférences afin de spécifier une catégorie plus élevée. Vous pourrez alors rechercher du contenu [REGIONMATURITY] et y accéder. Pour modifier ce paramètre ultérieurement, accédez à Moi &gt; Préférences &gt; Général, le moment voulu.
+Pour cela, vous devez modifier votre paramètre de catégorie de contenu. Vous pourrez alors rechercher du contenu [REGIONMATURITY] et y accéder. Pour annuler vos modifications, accédez à Moi &gt; Préférences &gt; Général.
<form name="form">
<button name="OK" text="Modifier les préférences"/>
<button default="true" name="Cancel" text="Fermer"/>
@@ -1658,7 +1683,7 @@ Publier cette petite annonce maintenant pour [AMOUNT] L$ ?
<usetemplate name="okcancelbuttons" notext="Annuler" yestext="OK"/>
</notification>
<notification label="Envoyer un message à la région" name="MessageRegion">
- Saisissez une message qui sera envoyé à tous les résidents présents dans cette région.
+ Saisissez un message qui sera envoyé à tous les résidents présents dans cette région.
<form name="form">
<input name="message"/>
<button name="OK" text="OK"/>
@@ -1892,7 +1917,7 @@ Liez-la à partir d&apos;une page web pour permettre aux autres résidents d&apo
<usetemplate name="okcancelbuttons" notext="Non" yestext="Oui"/>
</notification>
<notification name="WLNoEditDefault">
- Vous ne pouvez pas éditer ou supprimer un préréglage par défaut.
+ Vous ne pouvez pas modifier ou supprimer un préréglage par défaut.
</notification>
<notification name="WLMissingSky">
Une dossier semble manquer au Cycle du jour : [SKY].
@@ -1928,7 +1953,7 @@ Liez-la à partir d&apos;une page web pour permettre aux autres résidents d&apo
Ce préréglage existe déjà !
</notification>
<notification name="WaterNoEditDefault">
- Vous ne pouvez pas éditer ou supprimer un préréglage par défaut.
+ Vous ne pouvez pas modifier ou supprimer un préréglage par défaut.
</notification>
<notification name="ChatterBoxSessionStartError">
Impossible de démarrer une nouvelle session de chat avec [RECIPIENT].
@@ -2011,11 +2036,6 @@ Liez-la à partir d&apos;une page web pour permettre aux autres résidents d&apo
Importation de photos SL et Web en cours...
(prend environ 5 minutes.)
</notification>
- <notification name="UploadConfirmation">
- Le chargement coûte [AMOUNT] L$.
-Continuer ?
- <usetemplate name="okcancelbuttons" notext="Annuler" yestext="Charger"/>
- </notification>
<notification name="UploadPayment">
Le chargement a coûté [AMOUNT] L$.
</notification>
@@ -2439,9 +2459,6 @@ Venant de l&apos;objet : [OBJECTNAME], appartenant à : [NAME]?
<notification name="FailedToFindWearable">
La recherche du [TYPE] nommé(e) [DESC] dans la base de données a échoué.
</notification>
- <notification name="ShareToWebFailed">
- Échec de chargement de l&apos;image sur le Web.
- </notification>
<notification name="InvalidWearable">
L&apos;objet que vous essayez de porter utilise une fonctionnalité que le client ne peut lire. Pour porter cet objet, veuillez télécharger une mise à jour de [APP_NAME].
</notification>
@@ -2573,6 +2590,21 @@ Pour y participer, cliquez sur Accepter. Sinon, cliquez sur Refuser. Pour ignore
<notification name="VoiceLoginRetry">
Nous sommes en train de créer un canal vocal pour vous. Veuillez patienter quelques instants.
</notification>
+ <notification name="VoiceEffectsExpired">
+ Au moins l&apos;un des effets de voix auxquels vous êtes abonné a expiré.
+[[URL] Cliquez ici] pour renouveler votre abonnement.
+ </notification>
+ <notification name="VoiceEffectsExpiredInUse">
+ L&apos;effet de voix actif a expiré. Vos paramètres de voix normaux ont été rétablis.
+[[URL] Cliquez ici] pour renouveler votre abonnement.
+ </notification>
+ <notification name="VoiceEffectsWillExpire">
+ Au moins l&apos;un de vos effets de voix expirera dans moins de [INTERVAL] jours.
+[[URL] Cliquez ici] pour renouveler votre abonnement.
+ </notification>
+ <notification name="VoiceEffectsNew">
+ De nouveaux effets de voix sont disponibles !
+ </notification>
<notification name="Cannot enter parcel: not a group member">
Seuls les membres d&apos;un certain groupe peuvent visiter cette zone.
</notification>
@@ -2609,7 +2641,7 @@ Elles vont être bloquées pendant quelques secondes pour votre sécurité.
</notification>
<notification name="ConfirmCloseAll">
Êtes-vous certain de vouloir fermer tous les IM ?
- <usetemplate ignoretext="Confirmer avant de fermer tous les IM." name="okcancelignore" notext="Annuler" yestext="OK"/>
+ <usetemplate ignoretext="Confirmer avant de fermer tous les IM" name="okcancelignore" notext="Annuler" yestext="OK"/>
</notification>
<notification name="AttachmentSaved">
L&apos;élément joint a été sauvegardé.
@@ -2639,18 +2671,36 @@ Elles vont être bloquées pendant quelques secondes pour votre sécurité.
Le bouton sera affiché quand il y aura suffisamment de place.
</notification>
<notification name="ShareNotification">
- Faire glisser des articles de l&apos;inventaire sur une personne dans le sélecteur de résident
+ Sélectionnez les résidents avec lesquels partager l&apos;élément.
+ </notification>
+ <notification name="ShareItemsConfirmation">
+ Voulez-vous vraiment partager les articles suivants :
+
+[ITEMS]
+
+avec les résidents suivants :
+
+[RESIDENTS] ?
+ <usetemplate name="okcancelbuttons" notext="Annuler" yestext="Ok"/>
+ </notification>
+ <notification name="ItemsShared">
+ Articles partagés.
</notification>
<notification name="DeedToGroupFail">
Échec de cession au groupe.
</notification>
<notification name="AvatarRezNotification">
([EXISTENCE] secondes d&apos;existence)
-Nuage de l&apos;avatar [NAME] disparu en [TIME] secondes.
+Nuage de l&apos;avatar [NAME] disparu au bout de [TIME] secondes.
</notification>
- <notification name="AvatarRezSelfNotification">
+ <notification name="AvatarRezSelfBakedDoneNotification">
([EXISTENCE] secondes d&apos;existence)
-Vous avez terminé de figer votre tenue en [TIME] secondes.
+Tenue figée au bout de [TIME] secondes.
+ </notification>
+ <notification name="AvatarRezSelfBakedUpdateNotification">
+ ([EXISTENCE] secondes d&apos;existence)
+Mise à jour de votre apparence transmise au bout de [TIME] secondes.
+[STATUS]
</notification>
<notification name="AvatarRezCloudNotification">
([EXISTENCE] secondes d&apos;existence)
@@ -2672,10 +2722,32 @@ L&apos;avatar [NAME] est entré en mode Apparence.
([EXISTENCE] secondes d&apos;existence)
L&apos;avatar [NAME] a quitté le mode Apparence.
</notification>
+ <notification name="NoConnect">
+ Problèmes de connexion via [PROTOCOL] [HOSTID].
+Veuillez vérifier la configuration de votre réseau et de votre pare-feu.
+ <form name="form">
+ <button name="OK" text="OK"/>
+ </form>
+ </notification>
+ <notification name="NoVoiceConnect">
+ Problèmes de connexion à votre serveur vocal :
+
+[HOSTID]
+
+Aucune communication vocale n&apos;est disponible.
+Veuillez vérifier la configuration de votre réseau et de votre pare-feu.
+ <form name="form">
+ <button name="OK" text="OK"/>
+ </form>
+ </notification>
<notification name="AvatarRezLeftNotification">
([EXISTENCE] secondes d&apos;existence)
Départ de l&apos;avatar [NAME] entièrement chargé.
</notification>
+ <notification name="AvatarRezSelfBakeNotification">
+ ([EXISTENCE] secondes d&apos;existence)
+Vous avez [ACTION] une texture figée de [RESOLUTION] pour [BODYREGION] au bout de [TIME] secondes.
+ </notification>
<notification name="ConfirmLeaveCall">
Voulez-vous vraiment quitter cet appel ?
<usetemplate ignoretext="Confirmer avant de quitter l&apos;appel" name="okcancelignore" notext="Non" yestext="Oui"/>
@@ -2686,7 +2758,7 @@ Les résidents rejoignant l&apos;appel ultérieurement seront également
ignorés, même si vous quittez l&apos;appel.
Ignorer les autres ?
- <usetemplate ignoretext="Confirmer avant d&apos;ignorer les autres lors d&apos;un appel de groupe" name="okcancelignore" notext="Ok" yestext="Annuler"/>
+ <usetemplate ignoretext="Confirmer avant d&apos;ignorer les autres lors d&apos;un appel de groupe" name="okcancelignore" notext="Annuler" yestext="Ok"/>
</notification>
<global name="UnsupportedCPU">
- Votre processeur ne remplit pas les conditions minimum requises.
@@ -2712,4 +2784,7 @@ Si vous avez toujours des problèmes, veuillez consulter la page [SUPPORT_SITE].
Si vous possédez un terrain, vous pouvez le définir comme domicile.
Sinon, consultez la carte et trouvez les &quot; infohubs &quot;.
</global>
+ <global name="You died and have been teleported to your home location">
+ Vous êtes mort et avez été téléporté à votre domicile.
+ </global>
</notifications>
diff --git a/indra/newview/skins/default/xui/fr/panel_audio_device.xml b/indra/newview/skins/default/xui/fr/panel_audio_device.xml
deleted file mode 100644
index 2caa013f54..0000000000
--- a/indra/newview/skins/default/xui/fr/panel_audio_device.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="device_settings">
- <text name="Audio Devices">
- Matériel audio
- </text>
- <text name="Input device (microphone):">
- Périphérique d&apos;entrée (micro) :
- </text>
- <text name="Output device (speakers):" width="300">
- Périphérique de sortie (haut-parleurs) :
- </text>
- <text name="Input level:">
- Volume d&apos;entrée
- </text>
- <text_editor name="voice_intro_text1">
- Pour que les autres résidents vous entendent plus ou moins fort, utilisez le curseur. Pour tester le volume, parlez dans le micro.
- </text_editor>
- <volume_slider name="mic_volume_slider" tool_tip="Réglez le volume avec ce curseur."/>
- <text name="wait_text">
- Veuillez patienter
- </text>
- <string name="default_text">
- Défaut
- </string>
-</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 de764d8025..377f85368f 100644
--- 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
@@ -1,4 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="wearable_item">
<text name="item_name" value="..."/>
+ <panel name="btn_lock" tool_tip="Vous ne disposez pas de droits de modification."/>
+ <panel name="btn_edit_panel">
+ <button name="btn_edit" tool_tip="Modifier cette silhouette"/>
+ </panel>
</panel>
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 de764d8025..b23cb91c6f 100644
--- a/indra/newview/skins/default/xui/fr/panel_clothing_list_item.xml
+++ b/indra/newview/skins/default/xui/fr/panel_clothing_list_item.xml
@@ -1,4 +1,9 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="wearable_item">
+ <button name="btn_delete" tool_tip="Enlever de la tenue"/>
<text name="item_name" value="..."/>
+ <panel name="btn_lock" tool_tip="Vous ne disposez pas de droits de modification."/>
+ <panel name="btn_edit_panel">
+ <button name="btn_edit" tool_tip="Modifier cet article à porter"/>
+ </panel>
</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 91d90a5660..e1fa769f2f 100644
--- 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
@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="deletable_wearable_item">
+ <button name="btn_delete" tool_tip="Enlever de la tenue"/>
<text name="item_name" value="..."/>
</panel>
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 6af84de0c7..bc0edda5b6 100644
--- 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
@@ -1,4 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="dummy_clothing_item">
<text name="item_name" value="..."/>
+ <panel name="btn_add_panel">
+ <button name="btn_add" tool_tip="Ajouter plus d&apos;articles de ce type"/>
+ </panel>
</panel>
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 88f0635d97..6a5f71a36b 100644
--- a/indra/newview/skins/default/xui/fr/panel_edit_shape.xml
+++ b/indra/newview/skins/default/xui/fr/panel_edit_shape.xml
@@ -1,8 +1,15 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="edit_shape_panel">
- <text name="avatar_height">
- Taille : [HEIGHT] mètres
- </text>
+ <string name="meters">
+ mètres
+ </string>
+ <string name="feet">
+ pieds
+ </string>
+ <string name="height">
+ Taille :
+ </string>
+ <text name="avatar_height"/>
<panel label="Chemise" name="accordion_panel">
<accordion name="wearable_accordion">
<accordion_tab name="shape_body_tab" title="Corps"/>
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 9a6939e6b7..086542dee2 100644
--- a/indra/newview/skins/default/xui/fr/panel_edit_tattoo.xml
+++ b/indra/newview/skins/default/xui/fr/panel_edit_tattoo.xml
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="edit_tattoo_panel">
<panel name="avatar_tattoo_color_panel">
- <texture_picker label="Tatouage tête" name="Head Tattoo" tool_tip="Cliquez pour sélectionner une image" width="76"/>
- <texture_picker label="Tatouage haut" name="Upper Tattoo" tool_tip="Cliquez pour sélectionner une image" width="80"/>
- <texture_picker label="Tatouage bas" name="Lower Tattoo" tool_tip="Cliquez pour sélectionner une image" width="76"/>
+ <texture_picker label="Tatouage tête" name="Head Tattoo" tool_tip="Cliquez pour sélectionner une image"/>
+ <texture_picker label="Tatouage haut" name="Upper Tattoo" tool_tip="Cliquez pour sélectionner une image"/>
+ <texture_picker label="Tatouage bas" name="Lower Tattoo" tool_tip="Cliquez pour sélectionner une image"/>
<color_swatch label="Coul./Teinte" name="Color/Tint" tool_tip="Cliquez pour ouvrir le sélecteur de couleurs"/>
</panel>
</panel>
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 e0762bd791..624026efbb 100644
--- a/indra/newview/skins/default/xui/fr/panel_edit_wearable.xml
+++ b/indra/newview/skins/default/xui/fr/panel_edit_wearable.xml
@@ -72,8 +72,8 @@
<string name="jacket_desc_text">
Veste :
</string>
- <string name="skirt_skirt_desc_text">
- Jupe :
+ <string name="skirt_desc_text">
+ Jupe :
</string>
<string name="gloves_desc_text">
Gants :
@@ -90,6 +90,7 @@
<string name="tattoo_desc_text">
Tatouage :
</string>
+ <labeled_back_button label="Enregistrer" name="back_btn" tool_tip="Revenir à Modifier la tenue"/>
<text name="edit_wearable_title" value="Modification de la silhouette"/>
<panel label="Chemise" name="wearable_type_panel">
<text name="description_text" value="Silhouette :"/>
@@ -100,13 +101,8 @@
<icon name="male_icon" tool_tip="Homme"/>
<icon name="female_icon" tool_tip="Femme"/>
</panel>
- <panel label="gear_buttom_panel" name="gear_buttom_panel">
- <button name="friends_viewsort_btn" tool_tip="Options"/>
- <button name="add_btn" tool_tip="TODO"/>
- <button name="del_btn" tool_tip="TODO"/>
- </panel>
<panel name="button_panel">
<button label="Enregistrer sous" name="save_as_button"/>
- <button label="Rétablir" name="revert_button" width="130"/>
+ <button label="Annuler" name="revert_button" width="130"/>
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/fr/panel_friends.xml b/indra/newview/skins/default/xui/fr/panel_friends.xml
deleted file mode 100644
index ad9e3daf3d..0000000000
--- a/indra/newview/skins/default/xui/fr/panel_friends.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="friends">
- <string name="Multiple">
- Amis multiples
- </string>
- <scroll_list name="friend_list" tool_tip="Pour sélectionner plusieurs amis, cliquez en maintenant la touche Maj ou Ctrl appuyée">
- <column name="icon_online_status" tool_tip="Statut en ligne"/>
- <column label="Nom" name="friend_name" tool_tip="Nom"/>
- <column name="icon_visible_online" tool_tip="Votre ami voit si vous êtes connecté(e)"/>
- <column name="icon_visible_map" tool_tip="Votre ami peut vous situer sur la carte"/>
- <column name="icon_edit_mine" tool_tip="Votre ami peut modifier, supprimer ou prendre vos objets"/>
- <column name="icon_edit_theirs" tool_tip="Vous pouvez modifier les objets de cet ami"/>
- </scroll_list>
- <button label="IM/Appel" name="im_btn" tool_tip="Envoyez un IM à ce résident"/>
- <button label="Profil" name="profile_btn" tool_tip="Consultez le profil de ce résident (photos, groupes et autres infos)"/>
- <button label="Téléporter" name="offer_teleport_btn" tool_tip="Proposez à cet ami d&apos;être téléporté là où vous êtes"/>
- <button label="Payer" name="pay_btn" tool_tip="Donnez des L$ à cet ami"/>
- <button label="Supprimer" name="remove_btn" tool_tip="Supprimez ce résident de votre liste d&apos;amis"/>
- <button label="Ajouter" name="add_btn" tool_tip="Proposer à un résident de devenir votre ami"/>
-</panel>
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 20cb5bd974..a2655dcd45 100644
--- a/indra/newview/skins/default/xui/fr/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/fr/panel_group_general.xml
@@ -48,7 +48,7 @@ Faites glisser le pointeur de la souris sur les options pour en savoir plus.
<spinner label="L$" name="spin_enrollment_fee" tool_tip="Les nouveaux membres doivent payer ces frais pour rejoindre le groupe quand l&apos;option Frais d&apos;inscription est cochée."/>
<combo_box name="group_mature_check" tool_tip="Définit si votre groupe contient des informations de type Modéré" width="195">
<combo_item name="select_mature">
- - Catégorie d&apos;accès -
+ - Catégorie de contenu -
</combo_item>
<combo_box.item label="Contenu Modéré" name="mature"/>
<combo_box.item label="Contenu Général" name="pg"/>
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 192dd799ba..dcc27a9be4 100644
--- a/indra/newview/skins/default/xui/fr/panel_group_land_money.xml
+++ b/indra/newview/skins/default/xui/fr/panel_group_land_money.xml
@@ -23,7 +23,7 @@
<scroll_list.columns label="Parcelle" name="name"/>
<scroll_list.columns label="Région" name="location"/>
<scroll_list.columns label="Type" name="type"/>
- <scroll_list.columns label="Surface" name="area"/>
+ <scroll_list.columns label="Surf." name="area"/>
</scroll_list>
<text name="total_contributed_land_label">
Total des contributions :
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 5ea7ba192b..3364dd9dbc 100644
--- a/indra/newview/skins/default/xui/fr/panel_group_notices.xml
+++ b/indra/newview/skins/default/xui/fr/panel_group_notices.xml
@@ -21,7 +21,7 @@ Vous pouvez désactiver la réception des notices dans l&apos;onglet Général.
<text name="notice_list_none_found">
Aucun résultat
</text>
- <button label="Créer une notice" label_selected="Créer une notice" name="create_new_notice" tool_tip="Créer une notice"/>
+ <button label="Nouv. notice" label_selected="Créer une notice" name="create_new_notice" tool_tip="Créer une notice"/>
<button label="Rafraîchir" label_selected="Rafraîchir la liste" name="refresh_notices" tool_tip="Actualiser la liste des notices"/>
<panel label="Créer une notice" name="panel_create_new_notice">
<text name="lbl">
@@ -52,7 +52,7 @@ Vous pouvez désactiver la réception des notices dans l&apos;onglet Général.
Détails
</text>
<text name="lbl2">
- Pour envoyer une nouvelle notice, cliquez sur le bouton +
+ Pour envoyer une nouvelle notice, cliquez sur +.
</text>
<text name="lbl3">
Sujet :
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 e1eeaa8601..0bd2e0bdab 100644
--- a/indra/newview/skins/default/xui/fr/panel_group_roles.xml
+++ b/indra/newview/skins/default/xui/fr/panel_group_roles.xml
@@ -12,6 +12,9 @@
Vous pouvez ajouter ou supprimer les rôles assignés aux membres.
Pour sélectionner plusieurs membres, cliquez sur leurs noms en maintenant la touche Ctrl enfoncée.
</panel.string>
+ <panel.string name="donation_area">
+ [AREA] m²
+ </panel.string>
<filter_editor label="Filtrer les membres" name="filter_input"/>
<name_list name="member_list">
<name_list.columns label="Membre" name="name"/>
diff --git a/indra/newview/skins/default/xui/fr/panel_groups.xml b/indra/newview/skins/default/xui/fr/panel_groups.xml
deleted file mode 100644
index 4cda98b9f7..0000000000
--- a/indra/newview/skins/default/xui/fr/panel_groups.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="groups">
- <scroll_list bottom="50" name="group list"/>
- <text name="groupdesc">
- Le groupe actif est en gras.
- </text>
- <text name="groupcount" width="280">
- Vous appartenez à [COUNT] groupes ([MAX] max).
- </text>
- <button label="IM/Appel" name="IM" tool_tip="Ouvrir une session de messagerie instantanée"/>
- <button label="Infos" name="Info"/>
- <button label="Activer" name="Activate"/>
- <button label="Quitter" name="Leave"/>
- <button label="Créer..." name="Create"/>
- <button label="Rechercher..." name="Search..."/>
-</panel>
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 bd29bd676c..60507f191d 100644
--- a/indra/newview/skins/default/xui/fr/panel_landmark_info.xml
+++ b/indra/newview/skins/default/xui/fr/panel_landmark_info.xml
@@ -16,7 +16,7 @@
Les informations sur ce lieu ne sont pas disponibles car l&apos;accès y est restreint. Veuillez vérifier vos droits avec le propriétaire de la parcelle.
</string>
<string name="acquired_date">
- [wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local]
+ [weekday,datetime,local] [sday,datetime,local] [month,datetime,local] [year,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local]
</string>
<button name="back_btn" tool_tip="Précédent"/>
<text name="title" value="Profil du lieu"/>
diff --git a/indra/newview/skins/default/xui/fr/panel_landmarks.xml b/indra/newview/skins/default/xui/fr/panel_landmarks.xml
index 9c15b0bbd3..9e0d08958b 100644
--- a/indra/newview/skins/default/xui/fr/panel_landmarks.xml
+++ b/indra/newview/skins/default/xui/fr/panel_landmarks.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="Landmarks">
<accordion name="landmarks_accordion">
- <accordion_tab name="tab_favorites" title="Barre des Favoris"/>
+ <accordion_tab name="tab_favorites" title="Barre des favoris"/>
<accordion_tab name="tab_landmarks" title="Mes repères"/>
<accordion_tab name="tab_inventory" title="Mon inventaire"/>
<accordion_tab name="tab_library" title="Bibliothèque"/>
diff --git a/indra/newview/skins/default/xui/fr/panel_login.xml b/indra/newview/skins/default/xui/fr/panel_login.xml
index f5847e0ee0..b3ab2f4f90 100644
--- a/indra/newview/skins/default/xui/fr/panel_login.xml
+++ b/indra/newview/skins/default/xui/fr/panel_login.xml
@@ -20,10 +20,10 @@
<text name="start_location_text">
Lieu de départ :
</text>
- <combo_box name="start_location_combo" width="152">
+ <combo_box name="start_location_combo">
<combo_box.item label="Dernier emplacement" name="MyLastLocation"/>
<combo_box.item label="Domicile" name="MyHome"/>
- <combo_box.item label="&lt;Saisissez le nom de la région&gt;" name="Typeregionname"/>
+ <combo_box.item label="&lt;Saisir le nom de la région&gt;" name="Typeregionname"/>
</combo_box>
</layout_panel>
<layout_panel name="links">
diff --git a/indra/newview/skins/default/xui/fr/panel_me.xml b/indra/newview/skins/default/xui/fr/panel_me.xml
index 2521967bc6..219e5801f2 100644
--- a/indra/newview/skins/default/xui/fr/panel_me.xml
+++ b/indra/newview/skins/default/xui/fr/panel_me.xml
@@ -2,6 +2,6 @@
<panel label="Mon profil" name="panel_me">
<tab_container name="tabs">
<panel label="MON PROFIL" name="panel_profile"/>
- <panel label="MES PRÉFÉRENCES" name="panel_picks"/>
+ <panel label="MES FAVORIS" name="panel_picks"/>
</tab_container>
</panel>
diff --git a/indra/newview/skins/default/xui/fr/panel_nearby_chat.xml b/indra/newview/skins/default/xui/fr/panel_nearby_chat.xml
deleted file mode 100644
index b506a202bd..0000000000
--- a/indra/newview/skins/default/xui/fr/panel_nearby_chat.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<!-- All our XML is utf-8 encoded. -->
-<panel name="nearby_chat">
- <panel name="chat_caption">
- <text
- name="sender_name"
-width="170">CHAT PRÈS DE MOI</text>
- </panel>
-</panel>
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 36388b0bc1..66bfd01a2a 100644
--- a/indra/newview/skins/default/xui/fr/panel_nearby_media.xml
+++ b/indra/newview/skins/default/xui/fr/panel_nearby_media.xml
@@ -23,6 +23,12 @@
<button label="Plus &gt;&gt;" label_selected="Moins &lt;&lt;" name="less_btn" tool_tip="Options avancées"/>
</panel>
<panel name="nearby_media_panel">
+ <text name="nearby_media_title">
+ Médias proches
+ </text>
+ <text name="show_text">
+ Voir :
+ </text>
<combo_box name="show_combo">
<combo_box.item label="Tout" name="All"/>
<combo_box.item label="Sur cette parcelle" name="WithinParcel"/>
@@ -36,7 +42,7 @@
<scroll_list.columns label="Nom" name="media_name"/>
<scroll_list.columns label="Débogage" name="media_debug"/>
</scroll_list>
- <panel>
+ <panel name="media_controls_panel">
<layout_stack name="media_controls">
<layout_panel name="stop">
<button name="stop_btn" tool_tip="Arrêter le média sélectionné"/>
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 5beb71981c..110e017050 100644
--- a/indra/newview/skins/default/xui/fr/panel_notifications_channel.xml
+++ b/indra/newview/skins/default/xui/fr/panel_notifications_channel.xml
@@ -1,15 +1,19 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="notifications_panel">
<layout_stack name="stack1">
- <scroll_list name="notifications_list">
- <column label="Nom" name="name"/>
- <column label="Contenu" name="content"/>
- <column label="Date" name="date"/>
- </scroll_list>
- <scroll_list name="notification_rejects_list">
- <column label="Nom" name="name"/>
- <column label="Contenu" name="content"/>
- <column label="Date" name="date"/>
- </scroll_list>
+ <layout_panel name="notifications_list_panel" >
+ <scroll_list name="notifications_list">
+ <column label="Nom" name="name"/>
+ <column label="Contenu" name="content"/>
+ <column label="Date" name="date"/>
+ </scroll_list>
+ </layout_panel>
+ <layout_panel name="rejects_list_panel" >
+ <scroll_list name="notification_rejects_list">
+ <column label="Nom" name="name"/>
+ <column label="Contenu" name="content"/>
+ <column label="Date" name="date"/>
+ </scroll_list>
+ </layout_panel>
</layout_stack>
</panel>
diff --git a/indra/newview/skins/default/xui/fr/panel_online_status.xml b/indra/newview/skins/default/xui/fr/panel_online_status.xml
deleted file mode 100644
index fdc489f375..0000000000
--- a/indra/newview/skins/default/xui/fr/panel_online_status.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="friend_online_status" name="friend_online_status"/>
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 4c869d05c8..a3d23b0e70 100644
--- a/indra/newview/skins/default/xui/fr/panel_outfit_edit.xml
+++ b/indra/newview/skins/default/xui/fr/panel_outfit_edit.xml
@@ -13,7 +13,9 @@
<string name="Filter.All" value="Tout"/>
<string name="Filter.Clothes/Body" value="Habits/Corps"/>
<string name="Filter.Objects" value="Objets"/>
- <button label="modifier" name="edit_wearable_btn"/>
+ <string name="Filter.Clothing" value="Habits"/>
+ <string name="Filter.Bodyparts" value="Parties du corps"/>
+ <string name="replace_body_part" value="Cliquer pour remplacer la silhouette existante"/>
<text name="title" value="Modifier la tenue"/>
<panel label="bottom_panel" name="header_panel">
<panel label="bottom_panel" name="outfit_name_and_status">
@@ -23,23 +25,27 @@
</panel>
<layout_stack name="im_panels">
<layout_panel label="Panneau de contrôle IM" name="outfit_wearables_panel">
- <panel label="bottom_panel" name="edit_panel"/>
- </layout_panel>
- <layout_panel name="add_wearables_panel">
- <text name="add_to_outfit_label" value="Ajouter à la tenue :"/>
<layout_stack name="filter_panels">
- <layout_panel label="Panneau de contrôle IM" name="filter_panel">
- <filter_editor label="Filtre" name="look_item_filter"/>
+ <layout_panel name="add_button_and_combobox">
+ <button label="Ajouter plus..." name="show_add_wearables_btn" tool_tip="Ouvrir/Fermer"/>
+ </layout_panel>
+ <layout_panel name="filter_panel">
+ <filter_editor label="Filtrer ce qui peut être porté dans l&apos;inventaire" name="look_item_filter"/>
</layout_panel>
</layout_stack>
- <panel label="add_wearables_button_bar" name="add_wearables_button_bar">
- <button label="D" name="folder_view_btn"/>
- <button label="L" name="list_view_btn"/>
- </panel>
+ </layout_panel>
+ <layout_panel name="add_wearables_panel">
+ <button label="Porter l&apos;article" name="plus_btn"/>
</layout_panel>
</layout_stack>
+ <panel name="no_add_wearables_button_bar">
+ <button name="shop_btn_1" tool_tip="Visiter la Place du marché SL. Vous pouvez également sélectionner quelque chose que vous portez, puis cliquer ici pour consulter d&apos;autres articles similaires."/>
+ </panel>
+ <panel name="add_wearables_button_bar">
+ <button name="shop_btn_2" tool_tip="Visiter la Place du marché SL. Vous pouvez également sélectionner quelque chose que vous portez, puis cliquer ici pour consulter d&apos;autres articles similaires."/>
+ </panel>
<panel name="save_revert_button_bar">
<button label="Enregistrer" name="save_btn"/>
- <button label="Rétablir" name="revert_btn"/>
+ <button label="Annuler les modifications" name="revert_btn" tool_tip="Rétablir la dernière version enregistrée"/>
</panel>
</panel>
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 f4fa3a2838..791a0bcf2e 100644
--- a/indra/newview/skins/default/xui/fr/panel_outfits_inventory.xml
+++ b/indra/newview/skins/default/xui/fr/panel_outfits_inventory.xml
@@ -1,14 +1,17 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Choses" name="Outfits">
+ <panel.string name="wear_outfit_tooltip">
+ Porter la tenue sélectionnée
+ </panel.string>
+ <panel.string name="wear_items_tooltip">
+ Porter les articles sélectionnés
+ </panel.string>
<tab_container name="appearance_tabs">
<panel label="MES TENUES" name="outfitslist_tab"/>
- <inventory_panel label="PORTÉ" name="cof_tab"/>
+ <panel label="PORTÉ" name="cof_tab"/>
</tab_container>
<panel name="bottom_panel">
- <button name="options_gear_btn" tool_tip="Afficher d&apos;autres options"/>
- <dnd_button name="trash_btn" tool_tip="Supprimer l&apos;objet sélectionné"/>
- <button label="Enregistrer la tenue" name="make_outfit_btn" tool_tip="Enregistrer l&apos;apparence comme tenue"/>
+ <button label="Enregistrer sous" name="save_btn"/>
<button label="Porter" name="wear_btn" tool_tip="Porter la tenue sélectionnée"/>
- <button label="Modifier tenue" name="edit_current_outfit_btn"/>
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/fr/panel_outfits_list.xml b/indra/newview/skins/default/xui/fr/panel_outfits_list.xml
new file mode 100644
index 0000000000..ab352deec4
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/panel_outfits_list.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="Outfits">
+ <panel name="bottom_panel">
+ <button name="options_gear_btn" tool_tip="Afficher d&apos;autres options"/>
+ <button name="trash_btn" tool_tip="Supprimer la tenue sélectionnée"/>
+ </panel>
+</panel>
diff --git a/indra/newview/skins/default/xui/fr/panel_outfits_wearing.xml b/indra/newview/skins/default/xui/fr/panel_outfits_wearing.xml
new file mode 100644
index 0000000000..874bab2daa
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/panel_outfits_wearing.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="Wearing">
+ <panel name="bottom_panel">
+ <button name="options_gear_btn" tool_tip="Afficher d&apos;autres options"/>
+ </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 e9572caac7..3ca1e9a21b 100644
--- a/indra/newview/skins/default/xui/fr/panel_pick_info.xml
+++ b/indra/newview/skins/default/xui/fr/panel_pick_info.xml
@@ -11,6 +11,6 @@
<panel name="buttons">
<button label="Téléporter" name="teleport_btn"/>
<button label="Carte" name="show_on_map_btn"/>
- <button label="Éditer" name="edit_btn"/>
+ <button label="Modifier" name="edit_btn"/>
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/fr/panel_picks.xml b/indra/newview/skins/default/xui/fr/panel_picks.xml
index e33281defc..78acf929ba 100644
--- a/indra/newview/skins/default/xui/fr/panel_picks.xml
+++ b/indra/newview/skins/default/xui/fr/panel_picks.xml
@@ -7,7 +7,7 @@
<accordion_tab name="tab_classifieds" title="Petites annonces"/>
</accordion>
<panel label="bottom_panel" name="edit_panel">
- <button name="new_btn" tool_tip="Créer une nouvelle préférence ou petite annonce à l&apos;emplacement actuel"/>
+ <button name="new_btn" tool_tip="Créer un nouveau favori ou une nouvelle petite annonce à l&apos;endroit actuel"/>
</panel>
<panel name="buttons_cucks">
<button label="Infos" name="info_btn" tool_tip="Afficher les informations du Favori"/>
diff --git a/indra/newview/skins/default/xui/fr/panel_places.xml b/indra/newview/skins/default/xui/fr/panel_places.xml
index 9990c4612d..52a69db23c 100644
--- a/indra/newview/skins/default/xui/fr/panel_places.xml
+++ b/indra/newview/skins/default/xui/fr/panel_places.xml
@@ -5,12 +5,12 @@
<filter_editor label="Filtrer les endroits" name="Filter"/>
<panel name="button_panel">
<button label="Téléporter" name="teleport_btn" tool_tip="Me téléporter jusqu&apos;à la zone sélectionnée"/>
- <button label="Carte" name="map_btn"/>
- <button label="Éditer" name="edit_btn" tool_tip="Modifier les informations du repère"/>
+ <button label="Carte" name="map_btn" tool_tip="Afficher la zone correspondante sur la carte du monde"/>
+ <button label="Modifier" name="edit_btn" tool_tip="Modifier les informations du repère"/>
<button label="â–¼" name="overflow_btn" tool_tip="Afficher d&apos;autres options"/>
<button label="Enregistrer" name="save_btn"/>
<button label="Annuler" name="cancel_btn"/>
<button label="Fermer" name="close_btn"/>
- <button label="Profil" name="profile_btn"/>
+ <button label="Profil" name="profile_btn" tool_tip="Afficher le profil de l&apos;endroit"/>
</panel>
</panel>
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 6b8e68bd98..9af3a8a5d8 100644
--- a/indra/newview/skins/default/xui/fr/panel_preferences_advanced.xml
+++ b/indra/newview/skins/default/xui/fr/panel_preferences_advanced.xml
@@ -13,7 +13,7 @@
</text>
<check_box label="Construire/Modifier" name="edit_camera_movement" tool_tip="Utilisez le positionnement automatique de la caméra quand vous accédez au mode de modification et quand vous le quittez"/>
<check_box label="Apparence" name="appearance_camera_movement" tool_tip="Utiliser le positionnement automatique de la caméra quand je suis en mode Édition"/>
- <check_box label="Panneau latéral" name="appearance_sidebar_positioning" tool_tip="Positionnement auto de la caméra pour le panneau latéral"/>
+ <check_box initial_value="true" label="Panneau latéral" name="appearance_sidebar_positioning" tool_tip="Positionnement auto de la caméra pour le panneau latéral"/>
<check_box label="Afficher en vue subjective" name="first_person_avatar_visible"/>
<check_box label="Les touches de direction me font toujours me déplacer" name="arrow_keys_move_avatar_check"/>
<check_box label="Appuyer deux fois et maintenir enfoncé pour courir" name="tap_tap_hold_to_run"/>
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 76f3319525..ed1107f5e6 100644
--- a/indra/newview/skins/default/xui/fr/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/fr/panel_preferences_chat.xml
@@ -56,4 +56,27 @@
<radio_item label="Plusieurs fenêtres" name="radio" value="0"/>
<radio_item label="Onglets" name="radio2" value="1"/>
</radio_group>
+ <check_box label="Traduire Chat" name="translate_chat_checkbox" />
+ <text name="translate_language_text">
+ Langue de chat :
+ </text>
+ <combo_box name="translate_language_combobox">
+ <combo_box.item name="System Default Language" label="Choix par défaut" />
+ <combo_box.item name="English" label="English (Anglais)" />
+ <combo_box.item name="Danish" label="Dansk (Danois)" />
+ <combo_box.item name="German" label="Deutsch (Allemand)" />
+ <combo_box.item name="Spanish" label="Español (Espagnol)" />
+ <combo_box.item name="French" label="Français" />
+ <combo_box.item name="Italian" label="Italiano (Italien)" />
+ <combo_box.item name="Hungarian" label="Magyar (Hongrois)" />
+ <combo_box.item name="Dutch" label="Nederlands (Néerlandais)" />
+ <combo_box.item name="Polish" label="Polski (Polonais)" />
+ <combo_box.item name="Portugese" label="Português (Portugais)" />
+ <combo_box.item name="Russian" label="РуÑÑкий (Russe)" />
+ <combo_box.item name="Turkish" label="Türkçe (Turc)" />
+ <combo_box.item name="Ukrainian" label="УкраїнÑька (Ukrainien)" />
+ <combo_box.item name="Chinese" label="中文 (简体) (Chinois)" />
+ <combo_box.item name="Japanese" label="日本語 (Japonais)" />
+ <combo_box.item name="Korean" label="한국어 (Coréen)" />
+ </combo_box>
</panel>
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 8e8ee26af4..20d5f754ce 100644
--- a/indra/newview/skins/default/xui/fr/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/fr/panel_preferences_general.xml
@@ -13,7 +13,7 @@
<combo_box.item label="Italiano (Italien) - Bêta" name="Italian"/>
<combo_box.item label="Nederlands (Néerlandais) - Bêta" name="Dutch"/>
<combo_box.item label="Polski (Polonais) - Bêta" name="Polish"/>
- <combo_box.item label="Portugués (Portugais) - Bêta" name="Portugese"/>
+ <combo_box.item label="Português (Portugais) - Bêta" name="Portugese"/>
<combo_box.item label="日本語 (Japonais) - Bêta" name="(Japanese)"/>
</combo_box>
<text name="language_textbox2">
@@ -59,7 +59,7 @@
<combo_box.item label="5 minutes" name="item1"/>
<combo_box.item label="10 minutes" name="item2"/>
<combo_box.item label="30 minutes" name="item3"/>
- <combo_box.item label="jamais" name="item4"/>
+ <combo_box.item label="Jamais" name="item4"/>
</combo_box>
<text name="text_box3">
Réponse si occupé(e) :
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 c7caf5c2ff..23dc2f6e89 100644
--- a/indra/newview/skins/default/xui/fr/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/fr/panel_preferences_graphics1.xml
@@ -13,10 +13,10 @@
Faible
</text>
<text name="ShadersPrefText2">
- Moyen
+ Moyenne
</text>
<text name="ShadersPrefText3">
- Élevé
+ Élevée
</text>
<text name="ShadersPrefText4">
Ultra
@@ -49,10 +49,7 @@
m
</text>
<slider label="Nombre de particules max. :" label_width="147" name="MaxParticleCount"/>
- <slider label="Limite d&apos;affichage max des avatars :" name="MaxAvatarDrawDistance"/>
- <text name="DrawDistanceMeterText3">
- m
- </text>
+ <slider label="Nb max d&apos;avatars non éloignés en 2D :" name="MaxNumberAvatarDrawn"/>
<slider label="Qualité post-traitement :" name="RenderPostProcess"/>
<text name="MeshDetailText">
Détails des rendus :
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 c9676c898b..b82d8bcd18 100644
--- a/indra/newview/skins/default/xui/fr/panel_preferences_sound.xml
+++ b/indra/newview/skins/default/xui/fr/panel_preferences_sound.xml
@@ -11,8 +11,8 @@
<check_box label="Activé" name="enable_media"/>
<slider label="Chat vocal" name="Voice Volume"/>
<check_box label="Activé" name="enable_voice_check"/>
- <check_box label="Autoriser la lecture automatique du média" name="media_auto_play_btn" tool_tip="Cochez pour autoriser la lecture automatique du média"/>
- <check_box label="Jouer le média aux autres avatars" name="media_show_on_others_btn" tool_tip="Décochez pour masquer le média aux autres avatars près de vous"/>
+ <check_box label="Autoriser la lecture automatique du média" name="media_auto_play_btn" tool_tip="Cochez pour autoriser la lecture automatique du média" value="true"/>
+ <check_box label="Jouer le média aux autres avatars" name="media_show_on_others_btn" tool_tip="Décochez pour masquer le média aux autres avatars près de vous" value="true"/>
<text name="voice_chat_settings">
Paramètres du chat vocal
</text>
@@ -28,6 +28,12 @@
<panel.string name="default_text">
Défaut
</panel.string>
+ <panel.string name="default system device">
+ Périphérique système par défaut
+ </panel.string>
+ <panel.string name="no device">
+ Aucun périphérique
+ </panel.string>
<text name="Input">
Entrée
</text>
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 f6b9bdcb81..f16fcebd02 100644
--- a/indra/newview/skins/default/xui/fr/panel_prim_media_controls.xml
+++ b/indra/newview/skins/default/xui/fr/panel_prim_media_controls.xml
@@ -7,9 +7,9 @@
0.2
</string>
<layout_stack name="progress_indicator_area">
- <panel name="media_progress_indicator">
+ <layout_panel name="media_progress_indicator">
<progress_bar name="media_progress_bar" tool_tip="Le média est en cours de chargement"/>
- </panel>
+ </layout_panel>
</layout_stack>
<layout_stack name="media_controls">
<layout_panel name="back">
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 925f4375da..ada4583648 100644
--- a/indra/newview/skins/default/xui/fr/panel_region_general.xml
+++ b/indra/newview/skins/default/xui/fr/panel_region_general.xml
@@ -39,5 +39,5 @@
<button label="Téléporter un résident chez lui…" name="kick_btn"/>
<button label="Téléporter tous les résidents chez eux…" name="kick_all_btn"/>
<button label="Envoyer un message à la région..." name="im_btn"/>
- <button label="Gérer le Téléhub..." name="manage_telehub_btn"/>
+ <button label="Gérer le téléhub..." name="manage_telehub_btn"/>
</panel>
diff --git a/indra/newview/skins/default/xui/fr/panel_region_general_layout.xml b/indra/newview/skins/default/xui/fr/panel_region_general_layout.xml
deleted file mode 100644
index 663ae55134..0000000000
--- a/indra/newview/skins/default/xui/fr/panel_region_general_layout.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="Région" name="General">
- <text name="region_text_lbl">
- Région :
- </text>
- <text left_delta="56" name="region_text">
- inconnu
- </text>
- <text name="version_channel_text_lbl">
- Version :
- </text>
- <text left_delta="56" name="version_channel_text">
- inconnu
- </text>
- <text name="region_type_lbl">
- Type :
- </text>
- <text left_delta="56" name="region_type">
- inconnu
- </text>
- <check_box label="Interdire le terraformage" name="block_terraform_check"/>
- <check_box label="Interdire le vol" name="block_fly_check"/>
- <check_box label="Autoriser les dégâts" name="allow_damage_check"/>
- <check_box label="Interdire les bousculades" name="restrict_pushobject"/>
- <check_box label="Autoriser la revente de terrains" name="allow_land_resell_check"/>
- <check_box label="Autoriser la fusion/division de terrains" name="allow_parcel_changes_check"/>
- <check_box label="Interdire l&apos;affichage du terrain dans les recherches" name="block_parcel_search_check" tool_tip="Permettre aux autres résidents de voir cette région et ses parcelles dans les résultats de recherche"/>
- <spinner label="Nombre maximum d&apos;avatars" label_width="160" name="agent_limit_spin" width="240"/>
- <spinner label="Bonus objet" label_width="160" name="object_bonus_spin" width="240"/>
- <text label="Accès" name="access_text">
- Catégorie :
- </text>
- <combo_box label="Modéré" name="access_combo">
- <combo_box.item label="Adulte" name="Adult"/>
- <combo_box.item label="Modéré" name="Mature"/>
- <combo_box.item label="Général" name="PG"/>
- </combo_box>
- <button label="Appliquer" name="apply_btn"/>
- <button label="Téléporter un résident chez lui…" name="kick_btn"/>
- <button label="Téléporter tous les résidents chez eux…" name="kick_all_btn"/>
- <button label="Envoyer un message à la région..." name="im_btn"/>
- <button label="Gérer le téléhub..." name="manage_telehub_btn"/>
-</panel>
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 ea161ecae8..3b3b676aa1 100644
--- a/indra/newview/skins/default/xui/fr/panel_script_ed.xml
+++ b/indra/newview/skins/default/xui/fr/panel_script_ed.xml
@@ -25,7 +25,7 @@
<menu_item_call label="Enregistrer" name="Save"/>
<menu_item_call label="Annuler tous les changements" name="Revert All Changes"/>
</menu>
- <menu label="Éditer" name="Edit">
+ <menu label="Modifier" name="Edit">
<menu_item_call label="Annuler" name="Undo"/>
<menu_item_call label="Refaire" name="Redo"/>
<menu_item_call label="Couper" name="Cut"/>
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 dffb1d4238..85429a18c7 100644
--- a/indra/newview/skins/default/xui/fr/panel_status_bar.xml
+++ b/indra/newview/skins/default/xui/fr/panel_status_bar.xml
@@ -16,13 +16,15 @@
[hour12, datetime, slt]:[min, datetime, slt] [ampm, datetime, slt] [timezone,datetime, slt]
</panel.string>
<panel.string name="timeTooltip">
- [weekday, datetime, slt], [day, datetime, slt] [month, datetime, slt] [year, datetime, slt]
+ [weekday, datetime, slt] [sday, datetime, slt] [month, datetime, slt] [year, datetime, slt]
</panel.string>
<panel.string name="buycurrencylabel">
[AMT] L$
</panel.string>
- <button label="" label_selected="" name="buycurrency" tool_tip="Mon solde"/>
- <button label="Acheter L$" name="buyL" tool_tip="Cliquez pour acheter plus de L$"/>
+ <panel name="balance_bg">
+ <text name="balance" tool_tip="Mon solde" value="20 L$"/>
+ <button label="ACHETER L$" name="buyL" tool_tip="Cliquer pour acheter plus de L$"/>
+ </panel>
<text name="TimeText" tool_tip="Heure actuelle (Pacifique)">
00h00 PST
</text>
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 bfd7a869c5..1586c201da 100644
--- a/indra/newview/skins/default/xui/fr/panel_teleport_history.xml
+++ b/indra/newview/skins/default/xui/fr/panel_teleport_history.xml
@@ -1,6 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="Teleport History">
<accordion name="history_accordion">
+ <no_matched_tabs_text name="no_matched_teleports_msg" value="Vous n&apos;avez pas trouvé ce que vous cherchiez ? Essayez [secondlife:///app/search/places/Rechercher [SEARCH_TERM]]."/>
+ <no_visible_tabs_text name="no_teleports_msg" value="L&apos;historique des téléportations est vide. Essayez [secondlife:///app/search/places/ Rechercher]."/>
<accordion_tab name="today" title="Aujourd&apos;hui"/>
<accordion_tab name="yesterday" title="Hier"/>
<accordion_tab name="2_days_ago" title="Il y a 2 jours"/>
diff --git a/indra/newview/skins/default/xui/fr/panel_voice_effect.xml b/indra/newview/skins/default/xui/fr/panel_voice_effect.xml
new file mode 100644
index 0000000000..a134854706
--- /dev/null
+++ b/indra/newview/skins/default/xui/fr/panel_voice_effect.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="panel_voice_effect">
+ <string name="no_voice_effect">
+ Effet de voix désactivé
+ </string>
+ <string name="preview_voice_effects">
+ Aperçu des effets de voix ▶
+ </string>
+ <string name="get_voice_effects">
+ Obtenir un effet de voix â–¶
+ </string>
+ <combo_box name="voice_effect" tool_tip="Sélectionner un effet pour modifier le son de votre voix">
+ <combo_box.item label="Effet de voix désactivé" name="no_voice_effect"/>
+ </combo_box>
+</panel>
diff --git a/indra/newview/skins/default/xui/fr/role_actions.xml b/indra/newview/skins/default/xui/fr/role_actions.xml
index c049de48b1..d731fa6896 100644
--- a/indra/newview/skins/default/xui/fr/role_actions.xml
+++ b/indra/newview/skins/default/xui/fr/role_actions.xml
@@ -3,12 +3,12 @@
<action_set description="Ces pouvoirs permettent d&apos;ajouter et de supprimer des membres du groupe et permettent aux nouveaux membres de rejoindre le groupe sans recevoir d&apos;invitation." name="Membership">
<action description="Inviter des membres dans ce groupe" longdescription="Invitez des personnes à rejoindre ce groupe en utilisant le bouton Inviter dans l&apos;onglet Membres de la section Rôles." name="member invite" value="1"/>
<action description="Expulser des membres du groupe" longdescription="Expulsez des personnes de ce groupe en utilisant le bouton Expulser dans l&apos;onglet Membres de la section Rôles. Un propriétaire peut expulser tout le monde à l&apos;exception des autres propriétaires. Si vous n&apos;êtes pas propriétaire, vous pouvez expulser un membre d&apos;un groupe uniquement si il n&apos;a que le rôle Tous et AUCUN autre rôle. Pour supprimer des membres des rôles, vous devez disposer du pouvoir correspondant." name="member eject" value="2"/>
- <action description="Activez Inscription libre et modifiez les frais d&apos;inscription" longdescription="Activez Inscription libre pour permettre aux nouveaux membres de s&apos;inscrire sans invitation, et changez les frais d&apos;inscription dans la section Général." name="member options" value="3"/>
+ <action description="Activer Inscription libre et modifier les frais d&apos;inscription" longdescription="Activez Inscription libre pour permettre aux nouveaux membres de s&apos;inscrire sans invitation, et changez les frais d&apos;inscription dans la section Général." name="member options" value="3"/>
</action_set>
<action_set description="Ces pouvoirs permettent d&apos;ajouter, de supprimer et de modifier les rôles dans le groupe et d&apos;y assigner des membres et des pouvoirs." name="Roles">
<action description="Créer des rôles" longdescription="Créez de nouveaux rôles dans l&apos;onglet Rôles de la section Rôles." name="role create" value="4"/>
<action description="Supprimer des rôles" longdescription="Supprimez des rôles dans l&apos;onglet Rôles de la section Rôles." name="role delete" value="5"/>
- <action description="Changez les noms, les titres et les descriptions des rôles, et indiquez si les membres des rôles sont rendus publics" longdescription="Changez les noms, les titres et les descriptions des rôles, et indiquez si les membres des rôles sont rendus publics. Vous pouvez le faire au bas de l&apos;onglet Rôles dans la section Rôles, après avoir sélectionné un rôle." name="role properties" value="6"/>
+ <action description="Changer les noms, les titres et les descriptions des rôles et indiquer si les membres des rôles sont rendus publics" longdescription="Changez les noms, les titres et les descriptions des rôles, et indiquez si les membres des rôles sont rendus publics. Vous pouvez le faire au bas de l&apos;onglet Rôles dans la section Rôles, après avoir sélectionné un rôle." name="role properties" value="6"/>
<action description="Attribuer des rôles limités" longdescription="Assignez des membres aux rôles dans la liste Rôles assignés (section Rôles &gt; onglet Membres). Un membre avec ce pouvoir peut uniquement ajouter des membres à un rôle dans lequel le responsable de l&apos;assignation est déjà présent." name="role assign member limited" value="7"/>
<action description="Attribuer tous les rôles" longdescription="Assignez des membres à n&apos;importe quel rôle dans la liste Rôles assignés (section Rôles &gt; onglet Membres). *AVERTISSEMENT* Tout membre disposant de ce pouvoir peut s&apos;assigner lui-même, ainsi que tout autre membre non-propriétaire, à des rôles disposant de pouvoirs plus importants, et accéder potentiellement à des pouvoirs proches de ceux d&apos;un propriétaire. Assurez-vous de bien comprendre ce que vous faites avant d&apos;attribuer ce pouvoir." name="role assign member" value="8"/>
<action description="Destituer des membres de leurs rôles" longdescription="Supprimez des membres des rôles dans la liste Rôles assignés (section Rôles &gt; onglet Membres). Les propriétaires ne peuvent pas être supprimés." name="role remove member" value="9"/>
@@ -24,8 +24,8 @@
<action description="Diviser et fusionner des parcelles" longdescription="Divisez et fusionnez des parcelles. Pour ce faire, cliquez sur le sol avec le bouton droit de la souris, sélectionnez Modifier le terrain et faites glisser la souris sur le terrain pour faire une sélection. Pour diviser une parcelle, sélectionnez ce que vous souhaitez diviser et cliquez sur Sous-diviser. Pour fusionner des parcelles, sélectionnez-en deux ou plus qui sont contiguës et cliquez sur Fusionner." name="land divide join" value="15"/>
</action_set>
<action_set description="Ces pouvoirs permettent de modifier le nom de la parcelle, son référencement dans la recherche et le lieu de téléportation." name="Parcel Identity">
- <action description="Activez Afficher le lieu dans la recherche et définissez la catégorie" longdescription="Activez Afficher le lieu dans la recherche et définissez la catégorie d&apos;une parcelle dans l&apos;onglet À propos du terrain &gt; Options." name="land find places" value="17"/>
- <action description="Modifiez le nom et la description de la parcelle, ainsi que les paramètres d&apos;affichage du lieu dans la recherche" longdescription="Modifiez le nom et la description de la parcelle, ainsi que les paramètres d&apos;affichage du lieu dans la recherche. Pour ce faire, utilisez l&apos;onglet À propos du terrain &gt; Options." name="land change identity" value="18"/>
+ <action description="Activer Afficher le lieu dans la recherche et définir la catégorie" longdescription="Activez Afficher le lieu dans la recherche et définissez la catégorie d&apos;une parcelle dans l&apos;onglet À propos du terrain &gt; Options." name="land find places" value="17"/>
+ <action description="Modifier le nom et la description de la parcelle, ainsi que les paramètres d&apos;affichage du lieu dans la recherche" longdescription="Modifiez le nom et la description de la parcelle, ainsi que les paramètres d&apos;affichage du lieu dans la recherche. Pour ce faire, utilisez l&apos;onglet À propos du terrain &gt; Options." name="land change identity" value="18"/>
<action description="Définir le lieu d&apos;arrivée et le routage des téléportations" longdescription="Définissez le lieu d&apos;arrivée des téléportations et le routage à partir du menu À propos du terrain &gt; Options." name="land set landing point" value="19"/>
</action_set>
<action_set description="Ces pouvoirs permettent de définir les options de la parcelle concernant la musique, les médias, la création d&apos;objets et le relief." name="Parcel Settings">
@@ -43,7 +43,7 @@
<action_set description="Ces pouvoirs permettent d&apos;autoriser ou d&apos;interdire l&apos;accès à des parcelles du groupe et de figer ou d&apos;expulser des résidents." name="Parcel Access">
<action description="Gérer la liste d&apos;accès à la parcelle" longdescription="Gérez la liste des résidents autorisés sur la parcelle à partir du menu À propos du terrain &gt; Accès." name="land manage allowed" value="29"/>
<action description="Gérer la liste noire de cette parcelle" longdescription="Gérez les listes des résidents bannis des parcelles dans l&apos;onglet À propos du terrain &gt; Accès." name="land manage banned" value="30"/>
- <action description="Modifiez les paramètres Vendre des pass à" longdescription="Modifiez les paramètres Vendre des pass à dans l&apos;onglet À propos du terrain &gt; Accès." name="land manage passes" value="31"/>
+ <action description="Modifier les paramètres Vendre des pass à" longdescription="Modifiez les paramètres Vendre des pass à dans l&apos;onglet À propos du terrain &gt; Accès." name="land manage passes" value="31"/>
<action description="Expulser et figer des résidents" longdescription="Les membres dans un rôle avec ce pouvoir peuvent se charger des résidents indésirables sur une parcelle appartenant au groupe en cliquant dessus, puis en sélectionnant Expulser ou Figer." name="land admin" value="32"/>
</action_set>
<action_set description="Ces pouvoirs permettent de renvoyer des objets du groupe et de placer ou déplacer des plantes Linden pour aménager le paysage. Utilisez ce pouvoir avec précaution car les objets renvoyés le sont définitivement." name="Parcel Content">
diff --git a/indra/newview/skins/default/xui/fr/sidepanel_appearance.xml b/indra/newview/skins/default/xui/fr/sidepanel_appearance.xml
index 69cb6cd53d..5e1ac55a97 100644
--- a/indra/newview/skins/default/xui/fr/sidepanel_appearance.xml
+++ b/indra/newview/skins/default/xui/fr/sidepanel_appearance.xml
@@ -3,6 +3,7 @@
<string name="No Outfit" value="Aucune tenue"/>
<string name="Unsaved Changes" value="Modifications non enregistrées"/>
<string name="Now Wearing" value="Vous portez désormais..."/>
+ <string name="Changing outfits" value="Changement de tenue"/>
<panel name="panel_currentlook">
<button label="M" name="editappearance_btn"/>
<button label="O" name="openoutfit_btn"/>
@@ -12,6 +13,7 @@
<text name="currentlook_name">
Ma tenue avec un nom très long comme ORIGNAL
</text>
+ <button label="" name="edit_outfit_btn" tool_tip="Modifier cette tenue"/>
</panel>
<filter_editor label="Filtrer les tenues" name="Filter"/>
</panel>
diff --git a/indra/newview/skins/default/xui/fr/sidepanel_inventory.xml b/indra/newview/skins/default/xui/fr/sidepanel_inventory.xml
index 893b64d4b2..ebee1af45b 100644
--- a/indra/newview/skins/default/xui/fr/sidepanel_inventory.xml
+++ b/indra/newview/skins/default/xui/fr/sidepanel_inventory.xml
@@ -2,12 +2,12 @@
<panel label="Choses" name="objects panel">
<panel label="" name="sidepanel__inventory_panel">
<panel name="button_panel">
- <button label="Profil" name="info_btn"/>
- <button label="Partager" name="share_btn"/>
- <button label="Acheter" name="shop_btn"/>
- <button label="Porter" name="wear_btn"/>
+ <button label="Profil" name="info_btn" tool_tip="Afficher le profil de l&apos;objet"/>
+ <button label="Partager" name="share_btn" tool_tip="Partager un article de l&apos;inventaire"/>
+ <button label="Acheter" name="shop_btn" tool_tip="Accéder à la place du marché sur le Web"/>
+ <button label="Porter" name="wear_btn" tool_tip="Porter la tenue sélectionnée"/>
<button label="Jouer" name="play_btn"/>
- <button label="Téléporter" name="teleport_btn"/>
+ <button label="Téléporter" name="teleport_btn" tool_tip="Me téléporter jusqu&apos;à la zone sélectionnée"/>
</panel>
</panel>
</panel>
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 31a0534b2d..77c6f4877c 100644
--- a/indra/newview/skins/default/xui/fr/sidepanel_item_info.xml
+++ b/indra/newview/skins/default/xui/fr/sidepanel_item_info.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="item properties" title="Profil de l&apos;objet">
+<panel name="item properties" title="Profil de l&apos;article">
<panel.string name="unknown">
(inconnu)
</panel.string>
@@ -15,11 +15,17 @@
<panel.string name="acquiredDate">
[wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local]
</panel.string>
- <text name="title" value="Profil de l&apos;objet"/>
- <text name="where" value="(inventaire)"/>
- <panel label="">
+ <panel.string name="origin_inventory">
+ (inventaire)
+ </panel.string>
+ <panel.string name="origin_inworld">
+ (dans Second Life)
+ </panel.string>
+ <text name="title" value="Profil de l&apos;article"/>
+ <text name="origin" value="(inventaire)"/>
+ <panel label="" name="item_profile">
<text name="LabelItemNameTitle">
- Nom :
+ Nom :
</text>
<text name="LabelItemDescTitle">
Description :
@@ -27,23 +33,17 @@
<text name="LabelCreatorTitle">
Créateur :
</text>
- <text name="LabelCreatorName">
- Nicole Linden
- </text>
+ <text name="LabelCreatorName"/>
<button label="Profil" name="BtnCreator"/>
<text name="LabelOwnerTitle">
- Propriétaire :
- </text>
- <text name="LabelOwnerName">
- Thrax Linden
+ Propriétaire :
</text>
+ <text name="LabelOwnerName"/>
<button label="Profil" name="BtnOwner"/>
<text name="LabelAcquiredTitle">
- Acquis :
- </text>
- <text name="LabelAcquiredDate">
- Wed May 24 12:50:46 2006
+ Acquis le :
</text>
+ <text name="LabelAcquiredDate"/>
<panel name="perms_inv">
<text name="perm_modify">
Vous pouvez :
@@ -52,26 +52,26 @@
<check_box label="Copier" name="CheckOwnerCopy"/>
<check_box label="Transférer" name="CheckOwnerTransfer"/>
<text name="AnyoneLabel">
- N&apos;importe qui :
+ N&apos;importe qui :
</text>
<check_box label="Copier" name="CheckEveryoneCopy"/>
<text name="GroupLabel">
- Groupe :
+ Groupe :
</text>
- <check_box label="Partager" name="CheckShareWithGroup" tool_tip="Autorisez tous les membres du groupe choisi à utiliser et à partager vos droits pour cet objet. Pour activer les restrictions de rôles, vous devez d&apos;abord cliquer sur Transférer."/>
+ <check_box label="Partager" name="CheckShareWithGroup" tool_tip="Autoriser tous les membres du groupe choisi à partager vos droits de modification pour cet objet. Pour activer les restrictions de rôles, vous devez d&apos;abord cliquer sur Céder."/>
<text name="NextOwnerLabel">
- Le prochain propriétaire :
+ Prochain propriétaire :
</text>
<check_box label="Modifier" name="CheckNextOwnerModify"/>
<check_box label="Copier" name="CheckNextOwnerCopy"/>
- <check_box label="Transférer" name="CheckNextOwnerTransfer" tool_tip="Le prochain propriétaire peut donner ou revendre cet objet"/>
+ <check_box label="Transférer" name="CheckNextOwnerTransfer" tool_tip="Le prochain propriétaire peut donner ou revendre cet objet."/>
</panel>
<check_box label="À vendre" name="CheckPurchase"/>
<combo_box name="combobox sale copy">
<combo_box.item label="Copier" name="Copy"/>
<combo_box.item label="Original" name="Original"/>
</combo_box>
- <spinner label="Prix : L$" name="Edit Cost"/>
+ <spinner label="Prix : L$" name="Edit Cost"/>
</panel>
<panel name="button_panel">
<button label="Annuler" name="cancel_btn"/>
diff --git a/indra/newview/skins/default/xui/fr/strings.xml b/indra/newview/skins/default/xui/fr/strings.xml
index 15d5847c58..159281f97f 100644
--- a/indra/newview/skins/default/xui/fr/strings.xml
+++ b/indra/newview/skins/default/xui/fr/strings.xml
@@ -107,7 +107,7 @@
Nom d&apos;hôte non valide utilisé pour accéder au serveur. Vérifiez votre nom d&apos;hôte de grille ou SLURL.
</string>
<string name="CertExpired">
- Il semble que le certificat renvoyé par la grille ait expiré. Vérifiez votre horloge système ou contactez l&apos;administrateur de la grille.
+ Il semble que le certificat renvoyé par la grille ait expiré. Vérifiez votre horloge système ou contactez l&apos;administrateur de la grille.
</string>
<string name="CertKeyUsage">
Impossible d&apos;utiliser le certificat renvoyé par le serveur pour SSL. Contactez l&apos;administrateur de la grille.
@@ -116,7 +116,7 @@
Certificats trop nombreux dans la chaîne des certificats du serveur. Contactez l&apos;administrateur de la grille.
</string>
<string name="CertInvalidSignature">
- Impossible de vérifier la signature de certificat renvoyée par le serveur de la grille. Contactez l&apos;administrateur de la grille.
+ Impossible de vérifier la signature de certificat renvoyée par le serveur de la grille. Contactez l&apos;administrateur de la grille.
</string>
<string name="LoginFailedNoNetwork">
Erreur réseau : impossible d&apos;établir la connexion. Veuillez vérifier votre connexion réseau.
@@ -196,6 +196,7 @@
<string name="TooltipMustSingleDrop">
Impossible de faire glisser plus d&apos;un objet ici
</string>
+ <string name="TooltipPrice" value="[AMOUNT] L$ :"/>
<string name="TooltipHttpUrl">
Cliquez pour afficher cette page web
</string>
@@ -248,7 +249,6 @@
Cliquez pour exécuter la commande secondlife:// command
</string>
<string name="CurrentURL" value=" URL actuelle : [CurrentURL]"/>
- <string name="TooltipPrice" value="[PRICE] L$-"/>
<string name="SLurlLabelTeleport">
Me téléporter vers
</string>
@@ -309,6 +309,9 @@
<string name="ReleaseNotes">
Notes de version
</string>
+ <string name="RELEASE_NOTES_BASE_URL">
+ http://wiki.secondlife.com/wiki/Release_Notes/
+ </string>
<string name="LoadingData">
Chargement...
</string>
@@ -412,7 +415,7 @@
image targa
</string>
<string name="trash">
- Poubelle
+ Corbeille
</string>
<string name="jpeg image">
image jpeg
@@ -538,7 +541,7 @@
Va te faire voir !
</string>
<string name="anim_express_kiss">
- Baiser
+ Envoyer un baiser
</string>
<string name="anim_laugh_short">
Rire
@@ -660,6 +663,9 @@
<string name="worldmap_offline">
Hors ligne
</string>
+ <string name="worldmap_item_tooltip_format">
+ [AREA] m² [PRICE] L$
+ </string>
<string name="worldmap_results_none_found">
Aucun résultat.
</string>
@@ -753,6 +759,12 @@
<string name="land_type_unknown">
(inconnu)
</string>
+ <string name="Estate / Full Region">
+ Domaine / Région entière
+ </string>
+ <string name="Mainland / Full Region">
+ Continent / Région entière
+ </string>
<string name="all_files">
Tous fichiers
</string>
@@ -858,6 +870,9 @@
<string name="invalid">
non valide
</string>
+ <string name="none">
+ aucun
+ </string>
<string name="shirt_not_worn">
Chemise non portée
</string>
@@ -894,6 +909,54 @@
<string name="invalid_not_worn">
non valide
</string>
+ <string name="create_new_shape">
+ Créer une nouvelle silhouette
+ </string>
+ <string name="create_new_skin">
+ Créer une nouvelle peau
+ </string>
+ <string name="create_new_hair">
+ Créer de nouveaux cheveux
+ </string>
+ <string name="create_new_eyes">
+ Créer de nouveaux yeux
+ </string>
+ <string name="create_new_shirt">
+ Créer une nouvelle chemise
+ </string>
+ <string name="create_new_pants">
+ Créer un nouveau pantalon
+ </string>
+ <string name="create_new_shoes">
+ Créer de nouvelles chaussures
+ </string>
+ <string name="create_new_socks">
+ Créer de nouvelles chaussettes
+ </string>
+ <string name="create_new_jacket">
+ Créer une nouvelle veste
+ </string>
+ <string name="create_new_gloves">
+ Créer de nouveaux gants
+ </string>
+ <string name="create_new_undershirt">
+ Créer un nouveau débardeur
+ </string>
+ <string name="create_new_underpants">
+ Créer un nouveau caleçon
+ </string>
+ <string name="create_new_skirt">
+ Créer une nouvelle jupe
+ </string>
+ <string name="create_new_alpha">
+ Créer un nouvel alpha
+ </string>
+ <string name="create_new_tattoo">
+ Créer un nouveau tatouage
+ </string>
+ <string name="create_new_invalid">
+ non valide
+ </string>
<string name="NewWearable">
Nouv. [WEARABLE_ITEM]
</string>
@@ -999,8 +1062,9 @@
<string name="Sound" value=" Son :"/>
<string name="Wait" value=" --- Attendre :"/>
<string name="AnimFlagStop" value=" Arrêter l&apos;animation :"/>
- <string name="AnimFlagStart" value=" Démarrer l&apos;animation :"/>
+ <string name="AnimFlagStart" value=" Lancer l&apos;animation :"/>
<string name="Wave" value=" Faire signe"/>
+ <string name="GestureActionNone" value="À choisir"/>
<string name="HelloAvatar" value=" Bonjour, avatar !"/>
<string name="ViewAllGestures" value=" Tout afficher &gt;&gt;"/>
<string name="GetMoreGestures" value="Plus &gt;&gt;"/>
@@ -1063,7 +1127,7 @@
Parties du corps
</string>
<string name="InvFolder Trash">
- Poubelle
+ Corbeille
</string>
<string name="InvFolder Photo Album">
Albums photo
@@ -1080,12 +1144,18 @@
<string name="InvFolder Gestures">
Gestes
</string>
+ <string name="InvFolder Favorite">
+ Favoris
+ </string>
<string name="InvFolder favorite">
Favoris
</string>
<string name="InvFolder Current Outfit">
Tenue actuelle
</string>
+ <string name="InvFolder Initial Outfits">
+ Tenues initiales
+ </string>
<string name="InvFolder My Outfits">
Mes tenues
</string>
@@ -1405,11 +1475,12 @@
<string name="SummaryForTheWeek" value="Récapitulatif de la semaine, début le "/>
<string name="NextStipendDay" value="Prochaine prime le "/>
<string name="GroupIndividualShare" value=" Groupe Part individuelle"/>
+ <string name="GroupColumn" value="Groupe"/>
<string name="Balance">
Solde
</string>
<string name="Credits">
- Remerciements
+ Crédits
</string>
<string name="Debits">
Débits
@@ -1600,6 +1671,9 @@
<string name="ATTACH_HUD_BOTTOM_RIGHT">
HUD en bas à droite
</string>
+ <string name="Bad attachment point">
+ Point d&apos;attache non valide
+ </string>
<string name="CursorPos">
Ligne [LINE], colonne [COLUMN]
</string>
@@ -1612,15 +1686,21 @@
<string name="PanelDirEventsDateText">
[mthnum,datetime,slt]/[day,datetime,slt]
</string>
- <string name="PanelContentsNewScript">
- Nouveau script
- </string>
<string name="PanelContentsTooltip">
Contenu de l&apos;objet
</string>
+ <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>
+ <string name="NoOutfits">
+ Aucune tenue n&apos;est actuellement en votre possession. Essayez [secondlife:///app/search/all Rechercher].
+ </string>
+ <string name="NoOutfitsTabsMatched">
+ Vous n&apos;avez pas trouvé ce que vous cherchiez ? Essayez [secondlife:///app/search/all/Rechercher [SEARCH_TERM]].
+ </string>
<string name="MuteByName">
(par nom)
</string>
@@ -1721,7 +1801,7 @@
Solde
</string>
<string name="GroupMoneyCredits">
- Remerciements
+ Crédits
</string>
<string name="GroupMoneyDebits">
Débits
@@ -3550,6 +3630,9 @@ Si ce message persiste, veuillez aller sur la page [SUPPORT_SITE].
<string name="session_initialization_timed_out_error">
Expiration du délai d&apos;initialisation de la session
</string>
+ <string name="voice_morphing_url">
+ http://secondlife.com/landing/voicemorphing
+ </string>
<string name="paid_you_ldollars">
[NAME] vous a payé [AMOUNT] L$
</string>
@@ -3607,6 +3690,9 @@ Si ce message persiste, veuillez aller sur la page [SUPPORT_SITE].
<string name="group_role_owners">
Propriétaires
</string>
+ <string name="group_member_status_online">
+ En ligne
+ </string>
<string name="uploading_abuse_report">
Chargement en cours...
@@ -3660,9 +3746,15 @@ de l&apos;infraction signalée
<string name="Invalid Wearable">
Objet à porter non valide
</string>
+ <string name="New Gesture">
+ Nouveau geste
+ </string>
<string name="New Script">
Nouveau script
</string>
+ <string name="New Note">
+ Nouvelle note
+ </string>
<string name="New Folder">
Nouveau dossier
</string>
@@ -3691,7 +3783,7 @@ de l&apos;infraction signalée
Homme - Demander pardon
</string>
<string name="Male - Get lost">
- Homme - Dire d&apos;aller au diable
+ Homme - Get lost
</string>
<string name="Male - Blow kiss">
Homme - Envoyer un baiser
@@ -3720,16 +3812,25 @@ de l&apos;infraction signalée
<string name="Male - Wow">
Homme - Ouah !
</string>
- <string name="FeMale - Excuse me">
+ <string name="Female - Chuckle">
+ Femme - Glousser
+ </string>
+ <string name="Female - Cry">
+ Femme - Pleurer
+ </string>
+ <string name="Female - Embarrassed">
+ Femme - Gêne
+ </string>
+ <string name="Female - Excuse me">
Femme - Demander pardon
</string>
- <string name="FeMale - Get lost">
- Femme - Dire d&apos;aller au diable
+ <string name="Female - Get lost">
+ Femme - Get lost
</string>
- <string name="FeMale - Blow kiss">
+ <string name="Female - Blow kiss">
Femme - Envoyer un baiser
</string>
- <string name="FeMale - Boo">
+ <string name="Female - Boo">
Femme - Hou !
</string>
<string name="Female - Bored">
@@ -3738,9 +3839,21 @@ de l&apos;infraction signalée
<string name="Female - Hey">
Femme - Hé !
</string>
+ <string name="Female - Hey baby">
+ Femme - Hey baby
+ </string>
<string name="Female - Laugh">
Femme - Rire
</string>
+ <string name="Female - Looking good">
+ Femme - Looking good
+ </string>
+ <string name="Female - Over here">
+ Femme - Over here
+ </string>
+ <string name="Female - Please">
+ Femme - Please
+ </string>
<string name="Female - Repulsed">
Femme - Dégoût
</string>
@@ -3762,4 +3875,74 @@ de l&apos;infraction signalée
<string name="texture_load_dimensions_error">
Impossible de charger des images de taille supérieure à [WIDTH]*[HEIGHT]
</string>
+ <string name="words_separator" value=","/>
+ <string name="server_is_down">
+ Malgré nos efforts, une erreur inattendue s&apos;est produite.
+
+ Veuillez vous reporter à status.secondlifegrid.net afin de déterminer si un problème connu existe avec ce service.
+ Si le problème persiste, vérifiez la configuration de votre réseau et de votre pare-feu.
+ </string>
+ <string name="dateTimeWeekdaysNames">
+ Sunday:Monday:Tuesday:Wednesday:Thursday:Friday:Saturday
+ </string>
+ <string name="dateTimeWeekdaysShortNames">
+ Sun:Mon:Tue:Wed:Thu:Fri:Sat
+ </string>
+ <string name="dateTimeMonthNames">
+ January:February:March:April:May:June:July:August:September:October:November:December
+ </string>
+ <string name="dateTimeMonthShortNames">
+ Jan:Feb:Mar:Apr:May:Jun:Jul:Aug:Sep:Oct:Nov:Dec
+ </string>
+ <string name="dateTimeDayFormat">
+ [MDAY]
+ </string>
+ <string name="dateTimeAM">
+ AM
+ </string>
+ <string name="dateTimePM">
+ PM
+ </string>
+ <string name="LocalEstimateUSD">
+ [AMOUNT] US$
+ </string>
+ <string name="Membership">
+ Inscription
+ </string>
+ <string name="Roles">
+ Rôles
+ </string>
+ <string name="Group Identity">
+ Identité du groupe
+ </string>
+ <string name="Parcel Management">
+ Gestion des parcelles
+ </string>
+ <string name="Parcel Identity">
+ Identité des parcelles
+ </string>
+ <string name="Parcel Settings">
+ Paramètres des parcelles
+ </string>
+ <string name="Parcel Powers">
+ Pouvoirs sur les parcelles
+ </string>
+ <string name="Parcel Access">
+ Accès aux parcelles
+ </string>
+ <string name="Parcel Content">
+ Contenu des parcelles
+ </string>
+ <string name="Object Management">
+ Gestion des objets
+ </string>
+ <string name="Accounting">
+ Comptabilité
+ </string>
+ <string name="Notices">
+ Notices
+ </string>
+ <string name="Chat">
+ Chat
+ </string>
</strings>
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 942b79b7d3..d6834fa70a 100644
--- a/indra/newview/skins/default/xui/it/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/it/floater_about_land.xml
@@ -222,62 +222,62 @@ o suddivisa.
Fattore bonus degli oggetti della regione: [BONUS]
</text>
<text name="Simulator primitive usage:">
- Uso dei Prim:
+ Uso delle primitive:
</text>
- <text left="214" name="objects_available" width="230">
+ <text name="objects_available">
[COUNT] dei [MAX] ([AVAILABLE] dsponibili)
</text>
- <text name="Primitives parcel supports:" width="200">
+ <text name="Primitives parcel supports:">
Oggetti che il terreno supporta:
</text>
- <text left="214" name="object_contrib_text" width="152">
+ <text name="object_contrib_text">
[COUNT]
</text>
<text name="Primitives on parcel:">
Oggetti sul terreno:
</text>
- <text left="214" name="total_objects_text" width="48">
+ <text name="total_objects_text">
[COUNT]
</text>
- <text left="14" name="Owned by parcel owner:" width="180">
+ <text name="Owned by parcel owner:">
Posseduti dal proprietario:
</text>
- <text left="214" name="owner_objects_text" width="48">
+ <text name="owner_objects_text">
[COUNT]
</text>
- <button label="Mostra" label_selected="Mostra" name="ShowOwner" right="-135" width="60"/>
- <button label="Restituisci" name="ReturnOwner..." right="-10" tool_tip="Restituisci gli oggetti ai loro proprietari." width="119"/>
- <text left="14" name="Set to group:" width="180">
+ <button label="Mostra" label_selected="Mostra" name="ShowOwner"/>
+ <button label="Restituisci" name="ReturnOwner..." tool_tip="Restituisci gli oggetti ai loro proprietari."/>
+ <text name="Set to group:">
Imposta al gruppo:
</text>
- <text left="214" name="group_objects_text" width="48">
+ <text name="group_objects_text">
[COUNT]
</text>
- <button label="Mostra" label_selected="Mostra" name="ShowGroup" right="-135" width="60"/>
- <button label="Restituisci" name="ReturnGroup..." right="-10" tool_tip="Restituisci gli oggetti ai loro proprietari." width="119"/>
- <text left="14" name="Owned by others:" width="180">
+ <button label="Mostra" label_selected="Mostra" name="ShowGroup"/>
+ <button label="Restituisci" name="ReturnGroup..." tool_tip="Restituisci gli oggetti ai loro proprietari."/>
+ <text name="Owned by others:">
Posseduti da altri:
</text>
- <text left="214" name="other_objects_text" width="48">
+ <text name="other_objects_text">
[COUNT]
</text>
- <button label="Mostra" label_selected="Mostra" name="ShowOther" right="-135" width="60"/>
- <button label="Restituisci" name="ReturnOther..." right="-10" tool_tip="Restituisci gli oggetti ai loro proprietari." width="119"/>
- <text left="14" name="Selected / sat upon:" width="193">
+ <button label="Mostra" label_selected="Mostra" name="ShowOther"/>
+ <button label="Restituisci" name="ReturnOther..." tool_tip="Restituisci gli oggetti ai loro proprietari."/>
+ <text name="Selected / sat upon:">
Selezionati / sui quali sei sopra:
</text>
- <text left="214" name="selected_objects_text" width="48">
+ <text name="selected_objects_text">
[COUNT]
</text>
<text name="Autoreturn">
Restituzione automatica degli oggetti di altri residenti (minuti, 0 per disattivarla):
</text>
- <line_editor name="clean other time" right="-20"/>
- <text name="Object Owners:" width="150">
+ <line_editor name="clean other time"/>
+ <text name="Object Owners:">
Proprietari degli oggetti:
</text>
- <button label="Aggiorna Elenco" label_selected="Aggiorna Elenco" left="158" name="Refresh List" tool_tip="Refresh Object List"/>
- <button label="Restituisci oggetti..." label_selected="Restituisci oggetti..." left="270" name="Return objects..." width="164"/>
+ <button label="Aggiorna Elenco" label_selected="Aggiorna Elenco" name="Refresh List" tool_tip="Refresh Object List"/>
+ <button label="Restituisci oggetti..." label_selected="Restituisci oggetti..." name="Return objects..."/>
<name_list name="owner list">
<name_list.columns label="Tipo" name="type"/>
<name_list.columns label="Nome" name="name"/>
@@ -320,7 +320,7 @@ Solamente terreni più grandi possono essere abilitati nella ricerca.
<text name="allow_label">
Permetti ad altri residenti di:
</text>
- <check_box label="Modificare il terreno" name="edit land check" tool_tip="Se spuntato, chiunque può terraformare il tuo terreno. E&apos; preferibile lasciare questo quadrato non spuntato, dato che sarai sempre in grado di modificare il tuo terreno."/>
+ <check_box label="Modificare il terreno" name="edit land check" tool_tip="Se spuntata, chiunque può terraformare il tuo terreno. È preferibile lasciare questa opzione non spuntata, dato che sarai comunque in grado di modificare il tuo terreno."/>
<check_box label="Permetti il volo" name="check fly" tool_tip="Se spuntato, gli altri residenti potranno volare sul tuo terreno. Se non spuntato, potranno solamente arrivare in volo o sorvolare il terreno."/>
<text name="allow_label2">
Creare oggetti:
@@ -328,7 +328,7 @@ Solamente terreni più grandi possono essere abilitati nella ricerca.
<check_box label="Tutti i residenti" name="edit objects check"/>
<check_box label="Gruppo" name="edit group objects check"/>
<text name="allow_label3">
- Entrata oggetti:
+ Immissione oggetti:
</text>
<check_box label="Tutti i residenti" name="all object entry check"/>
<check_box label="Gruppo" name="group object entry check"/>
@@ -340,9 +340,9 @@ Solamente terreni più grandi possono essere abilitati nella ricerca.
<text name="land_options_label">
Opzioni per il terreno:
</text>
- <check_box label="Sicuro (senza danno)" name="check safe" tool_tip="Se spuntato, imposta il terreno su &apos;sicuro&apos;, disabilitando i danni da combattimento. Se non spuntato, viene abilitato il combattimento a morte."/>
+ <check_box label="Sicuro (senza danno)" name="check safe" tool_tip="Se spuntato, imposta il terreno su &apos;sicuro&apos;, disabilitando i danni da combattimento. Se non spuntato, viene abilitato il combattimento con danni."/>
<check_box label="Nessuna spinta" name="PushRestrictCheck" tool_tip="Previeni i colpi. Selezionare questa opzione può essere utile per prevenire comportamenti dannosi sul tuo terreno."/>
- <check_box label="Mostra luogo nella ricerca (30 L$/settimana)" name="ShowDirectoryCheck" tool_tip="Lascia che questa terra sia vista dagli altri nei risultati di ricerca"/>
+ <check_box label="Mostra luogo nella ricerca (30 L$/settimana)" name="ShowDirectoryCheck" tool_tip="Consenti che il lotto sia visto nei risultati di ricerca"/>
<combo_box name="land category with adult">
<combo_box.item label="Tutte le categorie" name="item0"/>
<combo_box.item label="Luogo dei Linden" name="item1"/>
@@ -421,7 +421,7 @@ Texture:
<spinner left_delta="104" name="media_size_width" tool_tip="Aumenta larghezza per far vedere meglio i media web, lascia a 0 per impostare il default."/>
<spinner name="media_size_height" tool_tip="Aumenta altezza per far vedere meglio i media web, lascia a 0 per impostare il default."/>
<text name="pixels">
- pixels
+ pixel
</text>
<text name="Options:">
Opzioni
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 1327e8b172..0a499a6c44 100644
--- a/indra/newview/skins/default/xui/it/floater_buy_currency.xml
+++ b/indra/newview/skins/default/xui/it/floater_buy_currency.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="buy currency" title="ACQUISTA L$">
<floater.string name="buy_currency">
- Acquista [LINDENS] L$ per circa [LOCALAMOUNT]
+ acquistare [LINDENS] L$ per circa [LOCALAMOUNT]
</floater.string>
<text font="SansSerifLarge" left="5" name="info_need_more" right="-5">
Ti servono più L$
@@ -57,8 +57,8 @@
<text bottom_delta="16" name="purchase_warning_notenough">
Non stai acquistando abbastanza L$. Aumenta l&apos;importo.
</text>
- <button label="Acquista adesso" name="buy_btn"/>
- <button label="Cancella" name="cancel_btn"/>
+ <button label="Acquista" name="buy_btn"/>
+ <button label="Annulla" name="cancel_btn"/>
<text left="5" name="info_cannot_buy" right="-5">
Non in grado di acquistare
</text>
diff --git a/indra/newview/skins/default/xui/it/floater_camera.xml b/indra/newview/skins/default/xui/it/floater_camera.xml
index f524bf9874..3fdf4f48a2 100644
--- a/indra/newview/skins/default/xui/it/floater_camera.xml
+++ b/indra/newview/skins/default/xui/it/floater_camera.xml
@@ -22,6 +22,35 @@
Vedi oggetto
</floater.string>
<panel name="controls">
+ <panel name="preset_views_list">
+ <panel_camera_item name="front_view">
+ <panel_camera_item.text name="front_view_text">
+ Visuale frontale
+ </panel_camera_item.text>
+ </panel_camera_item>
+ <panel_camera_item name="group_view">
+ <panel_camera_item.text name="side_view_text">
+ Visuale laterale
+ </panel_camera_item.text>
+ </panel_camera_item>
+ <panel_camera_item name="rear_view">
+ <panel_camera_item.text name="rear_view_text">
+ Visuale posteriore
+ </panel_camera_item.text>
+ </panel_camera_item>
+ </panel>
+ <panel name="camera_modes_list">
+ <panel_camera_item name="object_view">
+ <panel_camera_item.text name="object_view_text">
+ Visuale oggetto
+ </panel_camera_item.text>
+ </panel_camera_item>
+ <panel_camera_item name="mouselook_view">
+ <panel_camera_item.text name="mouselook_view_text">
+ Visuale soggettiva
+ </panel_camera_item.text>
+ </panel_camera_item>
+ </panel>
<panel name="zoom" tool_tip="Avvicina la telecamera nell&apos;inquadratura">
<joystick_rotate name="cam_rotate_stick" tool_tip="Ruota la visuale intorno al punto focale"/>
<slider_bar name="zoom_slider" tool_tip="Zoom verso il centro focale"/>
diff --git a/indra/newview/skins/default/xui/it/floater_customize.xml b/indra/newview/skins/default/xui/it/floater_customize.xml
deleted file mode 100644
index 63c26b4d73..0000000000
--- a/indra/newview/skins/default/xui/it/floater_customize.xml
+++ /dev/null
@@ -1,530 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater customize" title="ASPETTO">
- <tab_container name="customize tab container" tab_min_width="120">
- <text label="Parti del corpo" name="body_parts_placeholder">
- Parti del corpo
- </text>
- <panel label="Forma del corpo" left="124" name="Shape">
- <button label="Crea una nuova forma del corpo" label_selected="Crea una nuova forma del corpo" name="Create New" width="190"/>
- <button label="Corpo" label_selected="Corpo" name="Body"/>
- <button label="Testa" label_selected="Testa" name="Head"/>
- <button label="Occhi" label_selected="Occhi" name="Eyes"/>
- <button label="Orecchie" label_selected="Orecchie" name="Ears"/>
- <button label="Naso" label_selected="Naso" name="Nose"/>
- <button label="Bocca" label_selected="Bocca" name="Mouth"/>
- <button label="Mento" label_selected="Mento" name="Chin"/>
- <button label="Torso" label_selected="Torso" name="Torso"/>
- <button label="Gambe" label_selected="Gambe" name="Legs"/>
- <radio_group name="sex radio">
- <radio_item label="Femmina" name="radio" value="0"/>
- <radio_item label="Maschio" name="radio2" value="1"/>
- </radio_group>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: immodificabile
- </text>
- <text name="title_loading">
- [DESC]: in caricamento...
- </text>
- <text name="title_not_worn">
- [DESC]: non indossato
- </text>
- <text name="path">
- Ubicato in [PATH]
- </text>
- <text name="not worn instructions">
- Metti una nuova figura corporea trascinandola dal tuo inventario sul tuo avatar. Oppure, crea un nuovo tatuaggio e indossalo.
- </text>
- <text name="no modify instructions">
- Non hai il permesso di modificare questo indumento.
- </text>
- <text name="Item Action Label">
- Forma del corpo:
- </text>
- <button label="Salva" label_selected="Salva" name="Save"/>
- <button label="Salva come..." label_selected="Salva come..." name="Save As"/>
- <button font="SansSerifSmall" label="Annulla le modifiche" label_selected="Annulla le modifiche" name="Revert"/>
- </panel>
- <panel label="Pelle" name="Skin">
- <button label="Colore della pelle" label_selected="Colore della pelle" name="Skin Color" width="115"/>
- <button label="Dettagli della faccia" label_selected="Dettagli della faccia" name="Face Detail" width="115"/>
- <button label="Trucco" label_selected="Trucco" name="Makeup" width="115"/>
- <button label="Dettagli del corpo" label_selected="Dettagli del corpo" name="Body Detail" width="115"/>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: immodificabile
- </text>
- <text name="title_loading">
- [DESC]: in caricamento...
- </text>
- <text name="title_not_worn">
- [DESC]: non indossata
- </text>
- <text name="path">
- Ubicata in [PATH]
- </text>
- <text name="not worn instructions">
- Per mettere una nuova pelle, trascinala dal tuo inventario sul tuo avatar. Oppure, crea un nuovo tatuaggio e indossalo.
- </text>
- <text name="no modify instructions">
- Non hai il permesso di modificare questo indumento.
- </text>
- <text name="Item Action Label" right="89">
- Pelle:
- </text>
- <texture_picker label="Tatuaggi: testa" name="Head Tattoos" tool_tip="Clicca per scegliere un&apos;immagine" width="96"/>
- <texture_picker label="Tatuaggi: superiori" name="Upper Tattoos" tool_tip="Clicca per scegliere un&apos;immagine" width="96"/>
- <texture_picker label="Tatuaggi: inferiori" name="Lower Tattoos" tool_tip="Clicca per scegliere un&apos;immagine" width="96"/>
- <button label="Crea una nuova pelle" label_selected="Crea una nuova pelle" name="Create New"/>
- <button label="Salva" label_selected="Salva" name="Save"/>
- <button label="Salva come..." label_selected="Salva come..." name="Save As"/>
- <button font="SansSerifSmall" label="Annulla le modifiche" label_selected="Annulla le modifiche" name="Revert"/>
- </panel>
- <panel label="Capelli" name="Hair">
- <button label="Capelli" label_selected="Colore" name="Color"/>
- <button label="Stile" label_selected="Stile" name="Style"/>
- <button label="Sopracciglia" label_selected="Sopracciglia" name="Eyebrows"/>
- <button label="Facciale" label_selected="Facciale" name="Facial"/>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: immodificabili
- </text>
- <text name="title_loading">
- [DESC]: in caricamento...
- </text>
- <text name="title_not_worn">
- [DESC]: non indossati
- </text>
- <text name="path">
- Ubicati in [PATH]
- </text>
- <text name="not worn instructions">
- Per cambiare capelli, trascinali dal tuo inventario sul tuo avatar. Oppure, crea un nuovo tatuaggio e indossalo.
- </text>
- <text name="no modify instructions">
- Non hai il permesso per modificare questo indumento.
- </text>
- <text name="Item Action Label" right="89">
- Capelli:
- </text>
- <texture_picker label="Texture" name="Texture" tool_tip="Clicca per scegliere un&apos;immagine"/>
- <button label="Crea nuovi capelli" label_selected="Crea nuovi capelli" name="Create New"/>
- <button label="Salva" label_selected="Salva" name="Save"/>
- <button label="Salva come..." label_selected="Salva come..." left="171" name="Save As"/>
- <button font="SansSerifSmall" label="Annulla le modifiche" label_selected="Annulla le modifiche" name="Revert" width="120"/>
- </panel>
- <panel label="Occhi" name="Eyes">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: immodificabili
- </text>
- <text name="title_loading">
- [DESC]: in caricamento...
- </text>
- <text name="title_not_worn">
- [DESC]: non indossati
- </text>
- <text name="path">
- Ubicati in [PATH]
- </text>
- <text name="not worn instructions">
- Puoi cambiare gli occhi trascinandoli dal tuo inventario al tuo avatar. Oppure, crea un nuovo tatuaggio e indossalo.
- </text>
- <text name="no modify instructions">
- Non hai il permesso di modificare questo indumento.
- </text>
- <text name="Item Action Label" right="89">
- Occhi:
- </text>
- <texture_picker label="Iride" name="Iris" tool_tip="Clicca per scegliere un&apos;immagine"/>
- <button label="Crea nuovi occhi" label_selected="Crea nuovi occhi" name="Create New"/>
- <button label="Salva" label_selected="Salva" name="Save"/>
- <button label="Salva come..." label_selected="Salva come..." left="171" name="Save As"/>
- <button font="SansSerifSmall" label="Annulla le modifiche" label_selected="Annulla le modifiche" name="Revert" width="120"/>
- </panel>
- <text label="Vestiti" name="clothes_placeholder">
- Abiti
- </text>
- <panel label="Camicia" name="Shirt">
- <texture_picker label="Tessuto" name="Fabric" tool_tip="Clicca per scegliere un&apos;immagine"/>
- <color_swatch label="Colore/Tinta" name="Color/Tint" tool_tip="Clicca per aprire il selettore dei colori"/>
- <button label="Togli" label_selected="Togli" name="Take Off"/>
- <button label="Crea una nuova camicia" label_selected="Crea una nuova camicia" name="Create New"/>
- <button label="Salva" label_selected="Salva" name="Save"/>
- <button label="Salva come..." label_selected="Salva come..." left="171" name="Save As"/>
- <button font="SansSerifSmall" label="Annulla le modifiche" label_selected="Annulla le modifiche" name="Revert" width="120"/>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: immodificabile
- </text>
- <text name="title_loading">
- [DESC]: in caricamento...
- </text>
- <text name="title_not_worn">
- [DESC]: non indossata
- </text>
- <text name="path">
- Ubicata in [PATH]
- </text>
- <text name="not worn instructions">
- Metti una nuova camicia trascinandola dal tuo inventario al tuo avatar. Oppure, crea un nuovo tatuaggio e indossalo.
- </text>
- <text name="no modify instructions">
- Non hai il permesso di modificare questo indumento.
- </text>
- <text name="Item Action Label" right="89">
- Camicia:
- </text>
- </panel>
- <panel label="Pantaloni" name="Pants">
- <texture_picker label="Tessuto" name="Fabric" tool_tip="Clicca per scegliere un&apos;immagine"/>
- <color_swatch label="Colore/Tinta" name="Color/Tint" tool_tip="Clicca per aprire il selettore dei colori"/>
- <button label="Togli" label_selected="Togli" name="Take Off"/>
- <button label="Crea nuovi pantaloni" label_selected="Crea nuovi pantaloni" name="Create New"/>
- <button label="Salva" label_selected="Salva" name="Save"/>
- <button label="Salva come..." label_selected="Salva come..." left="171" name="Save As"/>
- <button font="SansSerifSmall" label="Annulla le modifiche" label_selected="Annulla le modifiche" name="Revert" width="120"/>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: immodificabile
- </text>
- <text name="title_loading">
- [DESC]: in caricamento...
- </text>
- <text name="title_not_worn">
- [DESC]: non indossato
- </text>
- <text name="path">
- Ubicati in [PATH]
- </text>
- <text name="not worn instructions">
- Metti dei nuovi pantaloni trascinandoli dal tuo inventario al tuo avatar. Oppure, crea un nuovo tatuaggio e indossalo.
- </text>
- <text name="no modify instructions">
- Non hai il permesso di modificare questo indumento.
- </text>
- <text name="Item Action Label" right="89">
- Pantaloni:
- </text>
- </panel>
- <panel label="Scarpe" name="Shoes">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: immodificabili
- </text>
- <text name="title_loading">
- [DESC]: in caricamento...
- </text>
- <text name="title_not_worn">
- [DESC]: non indossate
- </text>
- <text name="path">
- Ubicate in [PATH]
- </text>
- <text name="not worn instructions">
- Metti delle nuove scarpe trascinandole dal tuo inventario al tuo avatar. Oppure, crea un nuovo tatuaggio e indossalo.
- </text>
- <button label="Crea nuove scarpe" label_selected="Crea nuove scarpe" name="Create New"/>
- <text name="no modify instructions">
- Non hai il permesso di modificare questo indumento.
- </text>
- <text name="Item Action Label" right="89">
- Scarpe:
- </text>
- <texture_picker label="Tessuto" name="Fabric" tool_tip="Clicca per scegliere un&apos;immagine"/>
- <color_swatch label="Colore/Tinta" name="Color/Tint" tool_tip="Clicca per aprire il selettore dei colori"/>
- <button label="Togli" label_selected="Togli" name="Take Off"/>
- <button label="Salva" label_selected="Salva" name="Save"/>
- <button label="Salva come..." label_selected="Salva come..." left="171" name="Save As"/>
- <button font="SansSerifSmall" label="Annulla le modifiche" label_selected="Annulla le modifiche" name="Revert" width="120"/>
- </panel>
- <panel label="Calze" name="Socks">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: immodificabili
- </text>
- <text name="title_loading">
- [DESC]: in caricamento...
- </text>
- <text name="title_not_worn">
- [DESC]: non indossate
- </text>
- <text name="path">
- Ubicato in [PATH]
- </text>
- <text name="not worn instructions">
- Metti delle nuove calze trascinandole dal tuo inventario al tuo avatar. Oppure, crea un nuovo tatuaggio e indossalo.
- </text>
- <button label="Crea nuove calze" label_selected="Crea nuove calze" name="Create New"/>
- <text name="no modify instructions">
- Non hai il permesso di modificare questo indumento.
- </text>
- <text name="Item Action Label" right="89">
- Calze:
- </text>
- <texture_picker label="Tessuto" name="Fabric" tool_tip="Clicca per scegliere un&apos;immagine"/>
- <color_swatch label="Colore/Tinta" name="Color/Tint" tool_tip="Clicca per aprire il selettore dei colori"/>
- <button label="Togli" label_selected="Togli" name="Take Off"/>
- <button label="Salva" label_selected="Salva" name="Save"/>
- <button label="Salva come..." label_selected="Salva come..." left="171" name="Save As"/>
- <button font="SansSerifSmall" label="Annulla le modifiche" label_selected="Annulla le modifiche" name="Revert" width="120"/>
- </panel>
- <panel label="Giacca" name="Jacket">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: immodificabile
- </text>
- <text name="title_loading">
- [DESC]: in caricamento...
- </text>
- <text name="title_not_worn">
- [DESC]: non indossata
- </text>
- <text name="path">
- Ubicata in [PATH]
- </text>
- <text name="not worn instructions">
- Metti una nuova giacca trascinandola dal tuo inventario al tuo avatar. Oppure, crea un nuovo tatuaggio e indossalo.
- </text>
- <button label="Crea una nuova giacca" label_selected="Crea una nuova giacca" name="Create New"/>
- <text name="no modify instructions">
- Non hai il permesso di modificare questo indumento.
- </text>
- <text name="Item Action Label" right="89">
- Giacca:
- </text>
- <texture_picker label="Tessuto: superiore" name="Upper Fabric" tool_tip="Clicca per scegliere un&apos;immagine" width="96"/>
- <texture_picker label="Tessuto: inferiore" name="Lower Fabric" tool_tip="Clicca per scegliere un&apos;immagine" width="96"/>
- <color_swatch label="Colore/Tinta" name="Color/Tint" tool_tip="Clicca per aprire il selettore dei colori"/>
- <button label="Togli" label_selected="Togli" name="Take Off"/>
- <button label="Salva" label_selected="Salva" name="Save"/>
- <button label="Salva come..." label_selected="Salva come..." left="171" name="Save As"/>
- <button font="SansSerifSmall" label="Annulla le modifiche" label_selected="Annulla le modifiche" name="Revert" width="120"/>
- </panel>
- <panel label="Guanti" name="Gloves">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: immodificabili
- </text>
- <text name="title_loading">
- [DESC]: in caricamento...
- </text>
- <text name="title_not_worn">
- [DESC]: non indossati
- </text>
- <text name="path">
- Ubicati in [PATH]
- </text>
- <text name="not worn instructions">
- Metti dei nuovi guanti trascinandoli dal tuo inventario al tuo avatar. Oppure, crea un nuovo tatuaggio e indossalo.
- </text>
- <button label="Crea nuovi guanti" label_selected="Crea nuovi guanti" name="Create New"/>
- <text name="no modify instructions">
- Non hai il permesso di modificare questo indumento.
- </text>
- <text name="Item Action Label" right="89">
- Guanti:
- </text>
- <texture_picker label="Tessuto" name="Fabric" tool_tip="Clicca per scegliere un&apos;immagine"/>
- <color_swatch label="Colore/Tinta" name="Color/Tint" tool_tip="Clicca per aprire il selettore dei colori"/>
- <button font="SansSerifSmall" label="Rimuovi l&apos;indumento" label_selected="Rimuovi l&apos;indumento" name="Take Off" width="115"/>
- <button label="Salva" label_selected="Salva" name="Save"/>
- <button label="Salva come..." label_selected="Salva come..." left="171" name="Save As"/>
- <button font="SansSerifSmall" label="Annulla le modifiche" label_selected="Annulla le modifiche" name="Revert" width="120"/>
- </panel>
- <panel label="Canottiera" name="Undershirt">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: immodificabile
- </text>
- <text name="title_loading">
- [DESC]: in caricamento...
- </text>
- <text name="title_not_worn">
- [DESC]: non indossata
- </text>
- <text name="path">
- Ubicata in [PATH]
- </text>
- <text name="not worn instructions">
- Metti una nuova maglietta intima trascinandola dal tuo inventario al tuo avatar. Oppure, crea un nuovo tatuaggio e indossalo.
- </text>
- <button label="Crea una nuova canottiera" label_selected="Crea una nuova canottiera" name="Create New"/>
- <text name="no modify instructions">
- Non hai il permesso di modificare questo indumento.
- </text>
- <text name="Item Action Label" right="89">
- Canottiera:
- </text>
- <texture_picker label="Tessuto" name="Fabric" tool_tip="Clicca per scegliere un&apos;immagine"/>
- <color_swatch label="Colore/Tinta" name="Color/Tint" tool_tip="Clicca per aprire il selettore dei colori"/>
- <button font="SansSerifSmall" label="Rimuovi l&apos;indumento" label_selected="Rimuovi l&apos;indumento" name="Take Off" width="115"/>
- <button label="Salva" label_selected="Salva" name="Save"/>
- <button label="Salva come..." label_selected="Salva come..." left="171" name="Save As"/>
- <button font="SansSerifSmall" label="Annulla le modifiche" label_selected="Annulla le modifiche" name="Revert" width="120"/>
- </panel>
- <panel label="Mutande" name="Underpants">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: immodificabili
- </text>
- <text name="title_loading">
- [DESC]: in caricamento...
- </text>
- <text name="title_not_worn">
- [DESC]: non indossate
- </text>
- <text name="path">
- Ubicato in [PATH]
- </text>
- <text name="not worn instructions">
- Metti dei nuovi slip trascinandoli dal tuo inventario al tuo avatar. Oppure, crea un nuovo tatuaggio e indossalo.
- </text>
- <button label="Crea nuove mutande" label_selected="Crea nuove mutande" name="Create New"/>
- <text name="no modify instructions">
- Non hai il permesso di modificare questo indumento.
- </text>
- <text name="Item Action Label" right="89">
- Mutande:
- </text>
- <texture_picker label="Tessuto" name="Fabric" tool_tip="Clicca per scegliere un&apos;immagine"/>
- <color_swatch label="Colore/Tinta" name="Color/Tint" tool_tip="Clicca per aprire il selettore dei colori"/>
- <button font="SansSerifSmall" label="Rimuovi l&apos;indumento" label_selected="Rimuovi l&apos;indumento" name="Take Off" width="115"/>
- <button label="Salva" label_selected="Salva" name="Save"/>
- <button label="Salva come..." label_selected="Salva come..." left="171" name="Save As"/>
- <button font="SansSerifSmall" label="Annulla le modifiche" label_selected="Annulla le modifiche" name="Revert" width="120"/>
- </panel>
- <panel label="Gonna" name="Skirt">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: immodificabile
- </text>
- <text name="title_loading">
- [DESC]: in caricamento...
- </text>
- <text name="title_not_worn">
- [DESC]: non indossata
- </text>
- <text name="path">
- Ubicata in [PATH]
- </text>
- <text name="not worn instructions">
- Metti una nuova gonna trascinandola dal tuo inventario al tuo avatar. Oppure, crea un nuovo tatuaggio e indossalo.
- </text>
- <button label="Crea una nuova gonna" label_selected="Crea una nuova gonna" name="Create New"/>
- <text name="no modify instructions">
- Non hai il permesso di modificare questo indumento.
- </text>
- <text name="Item Action Label" right="89">
- Gonna:
- </text>
- <texture_picker label="Tessuto" name="Fabric" tool_tip="Clicca per scegliere un&apos;immagine"/>
- <color_swatch label="Colore/Tinta" name="Color/Tint" tool_tip="Clicca per aprire il selettore dei colori"/>
- <button font="SansSerifSmall" label="Rimuovi l&apos;indumento" label_selected="Rimuovi l&apos;indumento" name="Take Off" width="115"/>
- <button label="Salva" label_selected="Salva" name="Save"/>
- <button label="Salva come..." label_selected="Salva come..." left="171" name="Save As"/>
- <button font="SansSerifSmall" label="Annulla le modifiche" label_selected="Annulla le modifiche" name="Revert" width="120"/>
- </panel>
- <panel label="Tatuaggio" name="Tattoo">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: non può essere modificato
- </text>
- <text name="title_loading">
- [DESC]: caricamento in corso...
- </text>
- <text name="title_not_worn">
- [DESC]: non indossato
- </text>
- <text name="path">
- Collocato in [PATH]
- </text>
- <text name="not worn instructions">
- Metti un nuovo tatuaggio trascinandolo dal tuo inventario al avatar. Oppure, crea un nuovo tatuaggio e indossalo.
- </text>
- <button label="Crea un nuovo tatuaggio" label_selected="Crea un nuovo tatuaggio" name="Create New"/>
- <text name="no modify instructions">
- Non hai i permessi per modificare questo capo.
- </text>
- <text name="Item Action Label">
- Tatuaggio:
- </text>
- <texture_picker label="Tatuaggio della testa" name="Head Tattoo" tool_tip="Clicca per scegliere una fotografia"/>
- <texture_picker label="Tatuaggio superiore" name="Upper Tattoo" tool_tip="Clicca per scegliere una fotografia"/>
- <texture_picker label="Tattuaggio inferiore" name="Lower Tattoo" tool_tip="Clicca per scegliere una fotografia"/>
- <button label="Togli" label_selected="Togli" name="Take Off"/>
- <button label="Salva" label_selected="Salva" name="Save"/>
- <button label="Salva con nome..." label_selected="Salva con nome..." name="Save As"/>
- <button label="Ripristina" label_selected="Ripristina" name="Revert"/>
- </panel>
- <panel label="Alpha (Trasparenza)" name="Alpha">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: non può essere modificato
- </text>
- <text name="title_loading">
- [DESC]: caricamento in corso...
- </text>
- <text name="title_not_worn">
- [DESC]: non indossato
- </text>
- <text name="path">
- Collocato in [PATH]
- </text>
- <text name="not worn instructions">
- Metti una nuova alpha mask trascinandola dal tuo inventario al tuo avatar. Oppure, crea un nuovo tatuaggio e indossalo.
- </text>
- <button label="Crea nuovo Alpha" label_selected="Crea nuovo Alpha" name="Create New"/>
- <text name="no modify instructions">
- Non hai i permessi per modificare questo capo.
- </text>
- <text name="Item Action Label">
- Alpha:
- </text>
- <texture_picker label="Alpha inferiore" name="Lower Alpha" tool_tip="Clicca per scegliere una fotografia"/>
- <texture_picker label="Alpha superiore" name="Upper Alpha" tool_tip="Clicca per scegliere una fotografia"/>
- <texture_picker label="Alpha della testa" name="Head Alpha" tool_tip="Clicca per scegliere una fotografia"/>
- <texture_picker label="Alpha dell&apos;occhio" name="Eye Alpha" tool_tip="Clicca per scegliere una fotografia"/>
- <texture_picker label="Alpha dei capelli" name="Hair Alpha" tool_tip="Clicca per scegliere una fotografia"/>
- <button label="Togli" label_selected="Togli" name="Take Off"/>
- <button label="Salva" label_selected="Salva" name="Save"/>
- <button label="Salva con nome..." label_selected="Salva con nome..." name="Save As"/>
- <button label="Ripristina" label_selected="Ripristina" name="Revert"/>
- </panel>
- </tab_container>
- <scroll_container name="panel_container"/>
- <button label="Informazioni script" label_selected="Informazioni script" name="script_info" tool_tip="Mostra gli script collegati al tuo avatar"/>
- <button label="Crea vestiario" label_selected="Crea vestiario" name="make_outfit_btn"/>
- <button label="Annulla" label_selected="Annulla" name="Cancel"/>
- <button label="OK" label_selected="OK" name="Ok"/>
-</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_device_settings.xml b/indra/newview/skins/default/xui/it/floater_device_settings.xml
deleted file mode 100644
index 97aa64086d..0000000000
--- a/indra/newview/skins/default/xui/it/floater_device_settings.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_device_settings" title="OPZIONI CHAT VOCALE"/>
diff --git a/indra/newview/skins/default/xui/it/floater_im.xml b/indra/newview/skins/default/xui/it/floater_im.xml
deleted file mode 100644
index aa916adf2c..0000000000
--- a/indra/newview/skins/default/xui/it/floater_im.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<multi_floater name="im_floater" title="">
- <string name="only_user_message">
- Sei il solo residente presente nella sessione.
- </string>
- <string name="offline_message">
- [FIRST] [LAST] è offline.
- </string>
- <string name="invite_message">
- Clicca il tasto [BUTTON NAME] per accettare/connetterti a questa voice chat.
- </string>
- <string name="muted_message">
- Hai bloccato questo residente. Quando gli invii un messaggio, verrà automaticamente sbloccato.
- </string>
- <string name="generic_request_error">
- Errore durante la richiesta, riprova più tardi.
- </string>
- <string name="insufficient_perms_error">
- Non hai sufficienti permessi.
- </string>
- <string name="session_does_not_exist_error">
- Questa sessione non esiste più
- </string>
- <string name="no_ability_error">
- Non hai questa abilitazione.
- </string>
- <string name="not_a_mod_error">
- Non sei un moderatore.
- </string>
- <string name="muted_error">
- Un moderatore di gruppo ti ha disabilitato dalla chat di testo.
- </string>
- <string name="add_session_event">
- Impossibile aggiungere residenti alla sessione chat con [RECIPIENT].
- </string>
- <string name="message_session_event">
- Impossibile inviare il messaggio nella chat con [RECIPIENT].
- </string>
- <string name="removed_from_group">
- Sei stato espulso dal gruppo.
- </string>
- <string name="close_on_no_ability">
- Non hai più le abilitazioni per rimanere nella sessione chat.
- </string>
-</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 8d395ea04b..3d9d17fc81 100644
--- a/indra/newview/skins/default/xui/it/floater_im_session.xml
+++ b/indra/newview/skins/default/xui/it/floater_im_session.xml
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="panel_im">
<layout_stack name="im_panels">
- <layout_panel label="Pannello di controllo IM" name="panel_im_control_panel"/>
<layout_panel>
<line_editor label="A" name="chat_editor"/>
</layout_panel>
diff --git a/indra/newview/skins/default/xui/it/floater_map.xml b/indra/newview/skins/default/xui/it/floater_map.xml
index d1e9c98e79..ca537efba9 100644
--- a/indra/newview/skins/default/xui/it/floater_map.xml
+++ b/indra/newview/skins/default/xui/it/floater_map.xml
@@ -24,6 +24,9 @@
<floater.string name="mini_map_northwest">
NO
</floater.string>
+ <floater.string name="mini_map_caption">
+ MINI MAPPA
+ </floater.string>
<text label="N" name="floater_map_north" text="N">
N
</text>
diff --git a/indra/newview/skins/default/xui/it/floater_my_friends.xml b/indra/newview/skins/default/xui/it/floater_my_friends.xml
deleted file mode 100644
index faeba0a6d9..0000000000
--- a/indra/newview/skins/default/xui/it/floater_my_friends.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_my_friends" title="CONTATTI">
- <tab_container name="friends_and_groups">
- <panel label="Amici" name="friends_panel"/>
- <panel label="Gruppi" name="groups_panel"/>
- </tab_container>
-</floater>
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
deleted file mode 100644
index dff5f33e57..0000000000
--- a/indra/newview/skins/default/xui/it/floater_outfit_save_as.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="modal container" title="Salva vestiario">
- <button label="Salva" label_selected="Salva" name="Save"/>
- <button label="Annulla" label_selected="Annulla" name="Cancel"/>
- <text name="Save item as:">
- Salva quello che indosso
-come nuovo vestiario:
- </text>
- <line_editor name="name ed">
- [DESC] (nuovo)
- </line_editor>
-</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_preview_classified.xml b/indra/newview/skins/default/xui/it/floater_preview_classified.xml
deleted file mode 100644
index c617f81f7b..0000000000
--- a/indra/newview/skins/default/xui/it/floater_preview_classified.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="classified_preview" title="INFORMAZIONI RISERVATE">
- <floater.string name="Title">
- Riservato: [NAME]
- </floater.string>
-</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_preview_event.xml b/indra/newview/skins/default/xui/it/floater_preview_event.xml
deleted file mode 100644
index 1e1653e758..0000000000
--- a/indra/newview/skins/default/xui/it/floater_preview_event.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="event_preview" title="INFORMAZIONI SULL&apos;EVENTO">
- <floater.string name="Title">
- Evento: [NAME]
- </floater.string>
-</floater>
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 4e926cedc9..7e29db6336 100644
--- a/indra/newview/skins/default/xui/it/floater_preview_gesture.xml
+++ b/indra/newview/skins/default/xui/it/floater_preview_gesture.xml
@@ -24,28 +24,30 @@
<floater.string name="Title">
Gesture: [NAME]
</floater.string>
- <text name="name_text">
- Nome:
- </text>
<text name="desc_label">
Descrizione:
</text>
<text name="trigger_label">
Parole chiave:
</text>
- <text left="208" name="replace_text" tool_tip="Sostituisci le parole chiave con questi termini. Per esempio, sostituire la parola chiave &apos;salve&apos; con &apos;ciao&apos; modificherà la chat &apos;Volevo solo dire salve&apos; in &apos;Volevo solo dire ciao&apos; e avvierà la gesture!">
+ <text name="replace_text" tool_tip="Sostituisci le parole chiave con questi termini. Per esempio, sostituire la parola chiave &apos;salve&apos; con &apos;ciao&apos; modificherà la chat &apos;Volevo solo dire salve&apos; in &apos;Volevo solo dire ciao&apos; e avvierà la gesture!">
Sostituisci con:
</text>
<line_editor name="replace_editor" tool_tip="Sostituisci le parole chiave con questi termini. Per esempio, sostituire la parola chiave &apos;salve&apos; con &apos;ciao&apos; modificherà la chat &apos;Volevo solo dire salve&apos; in &apos;Volevo solo dire ciao&apos; e avvierà la gesture!"/>
<text name="key_label">
Scorciatoia da tastiera:
</text>
- <combo_box label="Nessuno" left="156" name="modifier_combo" width="76"/>
- <combo_box label="Nessuno" left_delta="80" name="key_combo" width="76"/>
+ <combo_box label="Nessuno" name="modifier_combo" />
+ <combo_box label="Nessuno" name="key_combo" />
<text name="library_label">
Libreria:
</text>
- <scroll_list name="library_list"/>
+ <scroll_list name="library_list">
+ <scroll_list.rows name="action_animation" value="Animazione"/>
+ <scroll_list.rows name="action_sound" value="Suono"/>
+ <scroll_list.rows name="action_chat" value="Chat"/>
+ <scroll_list.rows name="action_wait" value="Attendi"/>
+ </scroll_list>
<button label="Aggiungi &gt;&gt;" name="add_btn"/>
<text name="steps_label">
Fasi:
@@ -53,13 +55,16 @@
<button label="Su" name="up_btn"/>
<button label="Giù" name="down_btn"/>
<button label="Elimina" name="delete_btn"/>
+ <text name="options_text">
+ (opzioni)
+ </text>
<radio_group name="animation_trigger_type">
<radio_item label="Attiva" name="start"/>
<radio_item label="Ferma" name="stop"/>
</radio_group>
- <check_box label="finché le animazioni sono eseguite" left="226" name="wait_anim_check"/>
- <check_box label="tempo in secondi" name="wait_time_check"/>
- <line_editor left_delta="114" name="wait_time_editor"/>
+ <check_box label="finché le animazioni sono eseguite" name="wait_anim_check"/>
+ <check_box label="durata in secondi:" name="wait_time_check"/>
+ <line_editor name="wait_time_editor"/>
<text name="help_label">
Tutte le fasi avvengono contemporaneamente, a meno che non aggiungi fasi di attesa.
</text>
diff --git a/indra/newview/skins/default/xui/it/floater_preview_gesture_info.xml b/indra/newview/skins/default/xui/it/floater_preview_gesture_info.xml
deleted file mode 100644
index d490416cc7..0000000000
--- a/indra/newview/skins/default/xui/it/floater_preview_gesture_info.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Gesture" title="SCORCIATOIA GESTURE"/>
diff --git a/indra/newview/skins/default/xui/it/floater_preview_gesture_shortcut.xml b/indra/newview/skins/default/xui/it/floater_preview_gesture_shortcut.xml
deleted file mode 100644
index eb0bc4d868..0000000000
--- a/indra/newview/skins/default/xui/it/floater_preview_gesture_shortcut.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Gesture" title="SCORCIATOIA GESTURE">
- <text name="trigger_label">
- Chat:
- </text>
- <text name="key_label">
- Tastiera:
- </text>
- <combo_box label="Nessuno" name="modifier_combo"/>
- <combo_box label="Nessuno" name="key_combo"/>
- <text name="replace_text" tool_tip="Sostituisci la parola chiave con queste parole. Per esempio, se si sceglie di sostituire la parola chiave &apos;ciao&apos; con &apos;buongiorno&apos;, nella chat il testo &apos;Volevo dire ciao&apos; diventerà &apos;Volevo dire buongiorno&apos; e verrà attivata la gesture.">
- Sostituisci:
- </text>
- <line_editor name="replace_editor" tool_tip="Sostituisci la parola chiave con queste parole. Per esempio, se si sceglie di sostituire la parola chiave &apos;ciao&apos; con &apos;buongiorno&apos;, nella chat il testo &apos;Volevo dire ciao&apos; diventerà &apos;Volevo dire buongiorno&apos; e verrà attivata la gesture"/>
-</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_preview_gesture_steps.xml b/indra/newview/skins/default/xui/it/floater_preview_gesture_steps.xml
deleted file mode 100644
index d490416cc7..0000000000
--- a/indra/newview/skins/default/xui/it/floater_preview_gesture_steps.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Gesture" title="SCORCIATOIA GESTURE"/>
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 6984412728..c371e28caa 100644
--- a/indra/newview/skins/default/xui/it/floater_publish_classified.xml
+++ b/indra/newview/skins/default/xui/it/floater_publish_classified.xml
@@ -5,7 +5,7 @@
Ricordiamo che i costi per gli annunci non possono essere rimborsati
</text>
- <spinner label="Prezzo per inserzione:" name="price_for_listing" tool_tip="Prezzo per inserzione:" value="50"/>
+ <spinner label="Prezzo: L$" name="price_for_listing" tool_tip="Prezzo per inserzione:" value="50"/>
<text name="l$_text" value="L$"/>
<text name="more_info_text">
Maggiori informazioni (link alla guida sugli annunci)
diff --git a/indra/newview/skins/default/xui/it/floater_snapshot.xml b/indra/newview/skins/default/xui/it/floater_snapshot.xml
index d2ba980f62..5bff19e8d7 100644
--- a/indra/newview/skins/default/xui/it/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/it/floater_snapshot.xml
@@ -1,23 +1,75 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Snapshot" title="Istantanea" width="247">
+<floater name="Snapshot" title="ANTEPRIMA FOTOGRAFIA" width="247">
<floater.string name="unknown">
sconosciuto
</floater.string>
+ <radio_group label="Tipo di fotografia" name="snapshot_type_radio">
+ <radio_item label="E-mail" name="postcard"/>
+ <radio_item label="Il mio inventario (L$[AMOUNT])" name="texture"/>
+ <radio_item label="Salva sul mio computer" name="local"/>
+ </radio_group>
+ <text name="file_size_label">
+ [SIZE] KB
+ </text>
<button label="Aggiorna la fotografia" name="new_snapshot_btn"/>
- <line_editor label="Descrizione" name="description"/>
- <panel name="panel_snapshot_main">
- <button label="Condividi foto" name="share"/>
- <button label="Salva foto" name="save"/>
- <button label="Imposta come foto del profilo" name="set_profile_pic"/>
- </panel>
- <panel name="panel_snapshot_share">
- <button label="Condividi su Web" name="share_to_web"/>
- <button label="Invia foto via e-mail" name="share_to_email"/>
- <button label="Indietro" name="cancel_share"/>
- </panel>
- <panel name="panel_snapshot_save">
- <button label="Salva nell&apos;inventario" name="save_to_inventory"/>
- <button label="Salva sul mio computer" name="save_to_computer"/>
- <button label="Indietro" name="cancel_save"/>
- </panel>
+ <button label="Invia" name="send_btn"/>
+ <button label="Salva ([AMOUNT] L$)" name="upload_btn"/>
+ <flyout_button label="Salva" name="save_btn" tool_tip="Salva immagine come file">
+ <flyout_button.item label="Salva" name="save_item"/>
+ <flyout_button.item label="Salva con nome..." name="saveas_item"/>
+ </flyout_button>
+ <button label="Altro" name="more_btn" tool_tip="Opzioni Avanzate"/>
+ <button label="Meno" name="less_btn" tool_tip="Opzioni Avanzate"/>
+ <button label="Annulla" name="discard_btn"/>
+ <text name="type_label2">
+ Dimensioni
+ </text>
+ <text name="format_label">
+ Formato
+ </text>
+ <combo_box label="Risoluzione" name="postcard_size_combo">
+ <combo_box.item label="Finestra attuale" name="CurrentWindow"/>
+ <combo_box.item label="640x480" name="640x480"/>
+ <combo_box.item label="800x600" name="800x600"/>
+ <combo_box.item label="1024x768" name="1024x768"/>
+ <combo_box.item label="Personalizza" name="Custom"/>
+ </combo_box>
+ <combo_box label="Risoluzione" name="texture_size_combo">
+ <combo_box.item label="Finestra attuale" name="CurrentWindow"/>
+ <combo_box.item label="Piccola (128x128)" name="Small(128x128)"/>
+ <combo_box.item label="Media (256x256)" name="Medium(256x256)"/>
+ <combo_box.item label="Grande (512x512)" name="Large(512x512)"/>
+ <combo_box.item label="Personalizza" name="Custom"/>
+ </combo_box>
+ <combo_box label="Risoluzione" name="local_size_combo">
+ <combo_box.item label="Finestra attuale" name="CurrentWindow"/>
+ <combo_box.item label="320x240" name="320x240"/>
+ <combo_box.item label="640x480" name="640x480"/>
+ <combo_box.item label="800x600" name="800x600"/>
+ <combo_box.item label="1024x768" name="1024x768"/>
+ <combo_box.item label="1280x1024" name="1280x1024"/>
+ <combo_box.item label="1600x1200" name="1600x1200"/>
+ <combo_box.item label="Personalizza" name="Custom"/>
+ </combo_box>
+ <combo_box label="Formato" name="local_format_combo">
+ <combo_box.item label="PNG" name="PNG"/>
+ <combo_box.item label="JPEG" name="JPEG"/>
+ <combo_box.item label="BMP" name="BMP"/>
+ </combo_box>
+ <spinner label="Larghezza" name="snapshot_width"/>
+ <spinner label="Altezza" name="snapshot_height"/>
+ <check_box label="Mantieni le proporzioni" name="keep_aspect_check"/>
+ <slider label="Qualità dell&apos;immagine" name="image_quality_slider"/>
+ <text name="layer_type_label">
+ Cattura:
+ </text>
+ <combo_box label="Layer dell&apos;immagine" name="layer_types">
+ <combo_box.item label="Colori" name="Colors"/>
+ <combo_box.item label="Profondità" name="Depth"/>
+ </combo_box>
+ <check_box label="Interfaccia" name="ui_check"/>
+ <check_box label="HUD" name="hud_check"/>
+ <check_box label="Tieni aperta dopo il salvataggio" name="keep_open_check"/>
+ <check_box label="Congela il frame (tutto schermo)" name="freeze_frame_check"/>
+ <check_box label="Aggiornamento automatico" name="auto_snapshot_check"/>
</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_statistics.xml b/indra/newview/skins/default/xui/it/floater_statistics.xml
deleted file mode 100644
index 00df1ff994..0000000000
--- a/indra/newview/skins/default/xui/it/floater_statistics.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="stats floater" title="STATISTICHE"/>
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 d2fd462062..4741d8d32f 100644
--- a/indra/newview/skins/default/xui/it/floater_voice_controls.xml
+++ b/indra/newview/skins/default/xui/it/floater_voice_controls.xml
@@ -19,10 +19,12 @@
<layout_panel name="my_panel">
<text name="user_text" value="Il mio avatar:"/>
</layout_panel>
- <layout_stack name="voice_effect_and_leave_call_stack">
- <layout_panel name="leave_call_btn_panel">
- <button label="Abbandona chiamata" name="leave_call_btn"/>
- </layout_panel>
- </layout_stack>
+ <layout_panel name="leave_call_panel">
+ <layout_stack name="voice_effect_and_leave_call_stack">
+ <layout_panel name="leave_call_btn_panel">
+ <button label="Abbandona chiamata" name="leave_call_btn"/>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
</layout_stack>
</floater>
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 202be752c9..4c440c45b6 100644
--- 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="ANTEPRIMA MANIPOLAZIONE VOCE">
+<floater label="Luoghi" name="voice_effects" title="MANIPOLAZIONE VOCE">
<string name="no_voice_effect">
(Nessuna manipolazione voce)
</string>
@@ -12,18 +12,19 @@
<string name="new_voice_effect">
(Nuovo!)
</string>
+ <text name="preview_text">
+ Per l&apos;anteprima
+ </text>
<text name="status_text">
- Per ascoltare un&apos;anteprima degli effetti di manipolazione della voce, clicca sul pulsante Registra per registrare un campione di voce, quindi fai clic su uno degli effetti per ascoltare il risultato.
-
-Per ricollegarti alla voce nei dintorni, chiudi la finestra.
+ Registra un campione di voce, quindi fai clic su un effetto per ascoltare il risultato.
</text>
- <button label="Registra campione" name="record_btn" tool_tip="Registra un campione della tua voce."/>
+ <button label="Registra" name="record_btn" tool_tip="Registra un campione della tua voce."/>
<button label="Ferma" name="record_stop_btn"/>
<text name="voice_morphing_link">
- [[URL] Ottieni manipolazione voce]
+ [[URL] Subscribe Now]
</text>
<scroll_list name="voice_effect_list" tool_tip="Registra un campione della tua voce, quindi fai clic su uno degli effetti per un&apos;anteprima del risultato.">
- <scroll_list.columns label="Manipolazione voce" name="name"/>
+ <scroll_list.columns label="Nome effetto" name="name"/>
<scroll_list.columns label="Scade il" name="expires"/>
</scroll_list>
</floater>
diff --git a/indra/newview/skins/default/xui/it/floater_wearable_save_as.xml b/indra/newview/skins/default/xui/it/floater_wearable_save_as.xml
deleted file mode 100644
index 7c3754f004..0000000000
--- a/indra/newview/skins/default/xui/it/floater_wearable_save_as.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="modal container" title="">
- <button label="Salva" label_selected="Salva" name="Save"/>
- <button label="Annulla" label_selected="Annulla" name="Cancel"/>
- <text name="Save item as:">
- Salva oggetto nel mio inventario come:
- </text>
- <line_editor name="name ed">
- Nuovo [DESC]
- </line_editor>
-</floater>
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 b07daac6fb..8da17a4034 100644
--- a/indra/newview/skins/default/xui/it/floater_world_map.xml
+++ b/indra/newview/skins/default/xui/it/floater_world_map.xml
@@ -19,12 +19,12 @@
<text name="land_sale_label">
Vendita terreno
</text>
- <text name="by_owner_label">
- da parte del proprietario
- </text>
<text name="auction_label">
asta di terreni
</text>
+ <text name="by_owner_label">
+ da parte del proprietario
+ </text>
<button name="Go Home" tool_tip="Teleport a casa"/>
<text name="Home_label">
Home
@@ -35,11 +35,11 @@
<text name="pg_label">
Generale
</text>
- <check_box name="event_mature_chk"/>
- <text name="mature_label">
+ <check_box initial_value="true" name="events_mature_chk"/>
+ <text name="events_mature_label">
Moderato
</text>
- <text name="adult_label">
+ <text name="events_adult_label">
Adulto
</text>
</panel>
@@ -58,6 +58,9 @@
<search_editor label="Regioni secondo il nome" name="location" tool_tip="Digita il nome di una regione"/>
<button label="Trova" name="DoSearch" tool_tip="Cerca la regione"/>
<button name="Clear" tool_tip="Elimina le linee di monitoraggio e reimposta la mappa"/>
+ <text name="events_label">
+ Luogo:
+ </text>
<button label="Teleport" name="Teleport" tool_tip="Teleport al luogo selezionato"/>
<button label="Copia SLurl" name="copy_slurl" tool_tip="Copia la posizione attuale come un SLurl da usare nel Web."/>
<button label="Mostra la selezione" name="Show Destination" tool_tip="Centra la mappa sul luogo selezionato"/>
diff --git a/indra/newview/skins/default/xui/it/language_settings.xml b/indra/newview/skins/default/xui/it/language_settings.xml
index 82cf789a6b..312b8e21aa 100644
--- a/indra/newview/skins/default/xui/it/language_settings.xml
+++ b/indra/newview/skins/default/xui/it/language_settings.xml
@@ -17,6 +17,7 @@
datetimeToCodes["month"] = "%B"; // August
datetimeToCodes["mthnum"] = "%m"; // 08
datetimeToCodes["day"] = "%d"; // 31
+ datetimeToCodes["sday"] = "%-d"; // 9
datetimeToCodes["hour24"] = "%H"; // 14
datetimeToCodes["hour"] = "%H"; // 14
datetimeToCodes["hour12"] = "%I"; // 02
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 c480a2fe0e..fe5464b156 100644
--- a/indra/newview/skins/default/xui/it/menu_attachment_self.xml
+++ b/indra/newview/skins/default/xui/it/menu_attachment_self.xml
@@ -3,11 +3,13 @@
<menu_item_call label="Tocca" name="Attachment Object Touch"/>
<menu_item_call label="Modifica" name="Edit..."/>
<menu_item_call label="Stacca" name="Detach"/>
- <menu_item_call label="Lascia" name="Drop"/>
<menu_item_call label="Alzati" name="Stand Up"/>
<menu_item_call label="Cambia vestiario" name="Change Outfit"/>
+ <menu_item_call label="Modifica il mio vestiario" name="Edit Outfit"/>
+ <menu_item_call label="Modifica la figura corporea" name="Edit My Shape"/>
<menu_item_call label="I miei amici..." name="Friends..."/>
<menu_item_call label="I miei gruppi" name="Groups..."/>
<menu_item_call label="Il mio profilo" name="Profile..."/>
<menu_item_call label="Debug delle texture" name="Debug..."/>
+ <menu_item_call label="Lascia" name="Drop"/>
</context_menu>
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 7796d41286..7d918423c3 100644
--- a/indra/newview/skins/default/xui/it/menu_avatar_self.xml
+++ b/indra/newview/skins/default/xui/it/menu_avatar_self.xml
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Self Pie">
<menu_item_call label="Alzati" name="Stand Up"/>
- <context_menu label="Togli â–¶" name="Take Off &gt;">
- <context_menu label="Abiti â–¶" name="Clothes &gt;">
+ <context_menu label="Togli" name="Take Off &gt;">
+ <context_menu label="Abiti" name="Clothes &gt;">
<menu_item_call label="Camicia" name="Shirt"/>
<menu_item_call label="Pantaloni" name="Pants"/>
<menu_item_call label="Gonna" name="Skirt"/>
@@ -16,8 +16,8 @@
<menu_item_call label="Alpha (Trasparenza)" name="Self Alpha"/>
<menu_item_call label="Tutti gli abiti" name="All Clothes"/>
</context_menu>
- <context_menu label="HUD â–¶" name="Object Detach HUD"/>
- <context_menu label="Stacca â–¶" name="Object Detach"/>
+ <context_menu label="HUD" name="Object Detach HUD"/>
+ <context_menu label="Stacca" name="Object Detach"/>
<menu_item_call label="Stacca tutto" name="Detach All"/>
</context_menu>
<menu_item_call label="Cambia vestiario" name="Chenge Outfit"/>
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 5b4f8c0642..1e16ce8ed1 100644
--- a/indra/newview/skins/default/xui/it/menu_cof_clothing.xml
+++ b/indra/newview/skins/default/xui/it/menu_cof_clothing.xml
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="COF Clothing">
<menu_item_call label="Togli" name="take_off"/>
- <menu_item_call label="Un livello in alto" name="move_up"/>
- <menu_item_call label="Un livello in basso" name="move_down"/>
<menu_item_call label="Modifica" name="edit"/>
+ <menu_item_call label="Sostituisci" name="replace"/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/it/menu_inventory.xml b/indra/newview/skins/default/xui/it/menu_inventory.xml
index fb8361ad05..f2eb8b1bf7 100644
--- a/indra/newview/skins/default/xui/it/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/it/menu_inventory.xml
@@ -61,7 +61,7 @@
<menu_item_call label="Copia" name="Copy"/>
<menu_item_call label="Incolla" name="Paste"/>
<menu_item_call label="Incolla come link" name="Paste As Link"/>
- <menu_item_call label="Rimuovi link" name="Remove Link"/>
+ <menu_item_call label="Elimina" name="Remove Link"/>
<menu_item_call label="Cancella" name="Delete"/>
<menu_item_call label="Elimina la cartella di sistema" name="Delete System Folder"/>
<menu_item_call label="Inizia la conferenza chat" name="Conference Chat Folder"/>
@@ -76,11 +76,10 @@
<menu_item_call label="Disattiva" name="Deactivate"/>
<menu_item_call label="Salva con nome" name="Save As"/>
<menu_item_call label="Stacca da te" name="Detach From Yourself"/>
- <menu_item_call label="Indossa" name="Object Wear"/>
+ <menu_item_call label="Indossa" name="Wearable And Object Wear"/>
<menu label="Attacca a" name="Attach To"/>
<menu label="Attacca all&apos;HUD" name="Attach To HUD"/>
<menu_item_call label="Modifica" name="Wearable Edit"/>
- <menu_item_call label="Indossa" name="Wearable Wear"/>
<menu_item_call label="Aggiungi" name="Wearable Add"/>
<menu_item_call label="Togli" name="Take Off"/>
<menu_item_call label="--nessuna opzione--" name="--no options--"/>
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 05f53f44ba..5e61625f84 100644
--- a/indra/newview/skins/default/xui/it/menu_inventory_add.xml
+++ b/indra/newview/skins/default/xui/it/menu_inventory_add.xml
@@ -5,6 +5,7 @@
<menu_item_call label="Suono ([COST]L$)..." name="Upload Sound"/>
<menu_item_call label="Animazione ([COST]L$)..." name="Upload Animation"/>
<menu_item_call label="In blocco ([COST]L$ per file)..." name="Bulk Upload"/>
+ <menu_item_call label="Definisci diritti di caricamento predefiniti" name="perm prefs"/>
</menu>
<menu_item_call label="Nuova cartella" name="New Folder"/>
<menu_item_call label="Nuovo script" name="New Script"/>
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 cf87148f2e..9f1b413276 100644
--- a/indra/newview/skins/default/xui/it/menu_inventory_gear_default.xml
+++ b/indra/newview/skins/default/xui/it/menu_inventory_gear_default.xml
@@ -6,9 +6,10 @@
<menu_item_call label="Mostra filtri" name="show_filters"/>
<menu_item_call label="Ripristina filtri" name="reset_filters"/>
<menu_item_call label="Chiudi tutte le cartelle" name="close_folders"/>
- <menu_item_call label="Svuota cestino" name="empty_trash"/>
<menu_item_call label="Svuota oggetti smarriti" name="empty_lostnfound"/>
<menu_item_call label="Salva texture come" name="Save Texture As"/>
+ <menu_item_call label="Condividi" name="Share"/>
<menu_item_call label="Trova originale" name="Find Original"/>
<menu_item_call label="Trova tutti i link" name="Find All Links"/>
+ <menu_item_call label="Svuota cestino" name="empty_trash"/>
</menu>
diff --git a/indra/newview/skins/default/xui/it/menu_object.xml b/indra/newview/skins/default/xui/it/menu_object.xml
index 237b6b3a0e..413fcfdc8a 100644
--- a/indra/newview/skins/default/xui/it/menu_object.xml
+++ b/indra/newview/skins/default/xui/it/menu_object.xml
@@ -1,6 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Object Pie">
- <menu_item_call label="Tocca" name="Object Touch"/>
+ <menu_item_call label="Tocca" name="Object Touch">
+ <on_enable parameter="Tocca" name="EnableTouch"/>
+ </menu_item_call>
<menu_item_call label="Modifica" name="Edit..."/>
<menu_item_call label="Costruisci" name="Build"/>
<menu_item_call label="Apri" name="Open"/>
@@ -8,12 +10,12 @@
<menu_item_call label="Alzati" name="Object Stand Up"/>
<menu_item_call label="Profilo dell&apos;oggetto" name="Object Inspect"/>
<menu_item_call label="Zoom avanti" name="Zoom In"/>
- <context_menu label="Indossa â–¶" name="Put On">
+ <context_menu label="Indossa" name="Put On">
<menu_item_call label="Indossa" name="Wear"/>
- <context_menu label="Attacca â–¶" name="Object Attach"/>
- <context_menu label="Attacca HUD â–¶" name="Object Attach HUD"/>
+ <context_menu label="Attacca" name="Object Attach"/>
+ <context_menu label="Attacca HUD" name="Object Attach HUD"/>
</context_menu>
- <context_menu label="Togli â–¶" name="Remove">
+ <context_menu label="Togli" name="Remove">
<menu_item_call label="Segnala abuso" name="Report Abuse..."/>
<menu_item_call label="Blocca" name="Object Mute"/>
<menu_item_call label="Restituisci" name="Return..."/>
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 cf39779b67..a02d4ad429 100644
--- a/indra/newview/skins/default/xui/it/menu_outfit_gear.xml
+++ b/indra/newview/skins/default/xui/it/menu_outfit_gear.xml
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu name="Gear Outfit">
<menu_item_call label="Indossa - Sostituisci vestiario attuale" name="wear"/>
+ <menu_item_call label="Indossa - Aggiungi al vestiario attuale" name="wear_add"/>
<menu_item_call label="Togli - Rimuovi dal vestiario attuale" name="take_off"/>
<menu label="Nuovi abiti" name="New Clothes">
<menu_item_call label="Nuova camicia" name="New Shirt"/>
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 4e0caf832c..8166cf20ed 100644
--- a/indra/newview/skins/default/xui/it/menu_outfit_tab.xml
+++ b/indra/newview/skins/default/xui/it/menu_outfit_tab.xml
@@ -4,6 +4,6 @@
<menu_item_call label="Indossa - Aggiungi al vestiario attuale" name="wear_add"/>
<menu_item_call label="Togli - Rimuovi dal vestiario attuale" name="take_off"/>
<menu_item_call label="Modifica vestiario" name="edit"/>
- <menu_item_call label="Modifica nome" name="rename"/>
+ <menu_item_call label="Cambia nome del vestiario" name="rename"/>
<menu_item_call label="Elimina vestito" name="delete"/>
</context_menu>
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 f70b886a1e..52e3c933da 100644
--- a/indra/newview/skins/default/xui/it/menu_participant_list.xml
+++ b/indra/newview/skins/default/xui/it/menu_participant_list.xml
@@ -11,7 +11,7 @@
<menu_item_check label="Icone persone" name="View Icons"/>
<menu_item_check label="Blocca voce" name="Block/Unblock"/>
<menu_item_check label="Blocca testo" name="MuteText"/>
- <context_menu label="Opzioni moderatore &gt;" name="Moderator Options">
+ <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 participante" name="ModerateVoiceMuteSelected"/>
<menu_item_call label="Riattiva audio di questo participante" name="ModerateVoiceUnMuteSelected"/>
diff --git a/indra/newview/skins/default/xui/it/menu_topinfobar.xml b/indra/newview/skins/default/xui/it/menu_topinfobar.xml
new file mode 100644
index 0000000000..0beb9314de
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/menu_topinfobar.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="menu_topinfobar">
+ <menu_item_check label="Mostra le coordinate" name="Show Coordinates"/>
+ <menu_item_check label="Mostra proprietà del lotto" name="Show Parcel Properties"/>
+ <menu_item_call label="Punto di riferimento" name="Landmark"/>
+ <menu_item_call label="Copia" name="Copy"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/it/menu_viewer.xml b/indra/newview/skins/default/xui/it/menu_viewer.xml
index 693f4f158e..6290b79211 100644
--- a/indra/newview/skins/default/xui/it/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/it/menu_viewer.xml
@@ -177,6 +177,7 @@
<menu_item_check label="Cerca" name="Search"/>
<menu_item_call label="Rilascia tasti" name="Release Keys"/>
<menu_item_call label="Imposta dimensioni dell&apos;interfaccia sui valori predefiniti" name="Set UI Size to Default"/>
+ <menu_item_check label="Mostra menu Avanzato - tasti di scelta rapida esistenti" name="Show Advanced Menu - legacy shortcut"/>
<menu_item_check label="Corri sempre" name="Always Run"/>
<menu_item_check label="Vola" name="Fly"/>
<menu_item_call label="Chiudi finestra" name="Close Window"/>
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 79ef188993..b0bd68966d 100644
--- a/indra/newview/skins/default/xui/it/menu_wearable_list_item.xml
+++ b/indra/newview/skins/default/xui/it/menu_wearable_list_item.xml
@@ -1,11 +1,12 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Outfit Wearable Context Menu">
- <menu_item_call label="Indossa" name="wear"/>
+ <menu_item_call label="Sostituisci" name="wear_replace"/>
+ <menu_item_call label="Indossa" name="wear_wear"/>
<menu_item_call label="Aggiungi" name="wear_add"/>
<menu_item_call label="Togli / Stacca" name="take_off_or_detach"/>
<menu_item_call label="Stacca" name="detach"/>
- <context_menu label="Attacca a â–¶" name="wearable_attach_to"/>
- <context_menu label="Attacca a HUD â–¶" name="wearable_attach_to_hud"/>
+ <context_menu label="Attacca a" name="wearable_attach_to"/>
+ <context_menu label="Attacca a HUD" name="wearable_attach_to_hud"/>
<menu_item_call label="Togli" name="take_off"/>
<menu_item_call label="Modifica" name="edit"/>
<menu_item_call label="Profilo dell&apos;oggetto" name="object_profile"/>
diff --git a/indra/newview/skins/default/xui/it/menu_wearing_gear.xml b/indra/newview/skins/default/xui/it/menu_wearing_gear.xml
new file mode 100644
index 0000000000..40eea8f03c
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/menu_wearing_gear.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="Gear Wearing">
+ <menu_item_call label="Modifica vestiario" name="edit"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/it/menu_wearing_tab.xml b/indra/newview/skins/default/xui/it/menu_wearing_tab.xml
new file mode 100644
index 0000000000..48ff0a2160
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/menu_wearing_tab.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<context_menu name="Wearing">
+ <menu_item_call label="Modifica vestiario" name="edit"/>
+</context_menu>
diff --git a/indra/newview/skins/default/xui/it/notifications.xml b/indra/newview/skins/default/xui/it/notifications.xml
index 9f1472fc6f..474bdca55f 100644
--- a/indra/newview/skins/default/xui/it/notifications.xml
+++ b/indra/newview/skins/default/xui/it/notifications.xml
@@ -358,6 +358,10 @@ Vuoi continuare?
Elimina preferito &lt;nolink&gt;[PICK]&lt;/nolink&gt;?
<usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
</notification>
+ <notification name="DeleteOutfits">
+ Elimina il vestiario selezionato?
+ <usetemplate name="okcancelbuttons" notext="Annulla" yestext="OK"/>
+ </notification>
<notification name="PromptGoToEventsPage">
Vai alla pagina degli eventi di [SECOND_LIFE]?
<url name="url">
@@ -613,8 +617,7 @@ Attese [VALIDS]
Impossibile codificare il file: [FILE]
</notification>
<notification name="CorruptedProtectedDataStore">
- Poiché non è possibile leggere i dati protetti, ora verranno ripristinati.
- Ciò può succedere alla modifica delle impostazioni di rete.
+ Impossibile inserire nome utente e password. Ciò può succedere alla modifica delle impostazioni di rete.
<usetemplate name="okbutton" yestext="OK"/>
</notification>
<notification name="CorruptResourceFile">
@@ -2040,11 +2043,6 @@ Inseriscilo in una pagina web per dare ad altri un accesso facile a questa ubica
Sto importando le fotografie per l&apos;uso inworld e per il web...
(Durata circa 5 minuti.)
</notification>
- <notification name="UploadConfirmation">
- Il costo per il caricamento è di L$ [AMOUNT].
-Continuare?
- <usetemplate name="okcancelbuttons" notext="Annulla" yestext="Carica nel server"/>
- </notification>
<notification name="UploadPayment">
Hai pagato [AMOUNT]L$ per il caricamento.
</notification>
@@ -2464,9 +2462,6 @@ Dall&apos;oggetto: [OBJECTNAME], di: [NAME]?
<notification name="FailedToFindWearable">
Impossibile trovare [TYPE] chiamato [DESC] nel database.
</notification>
- <notification name="ShareToWebFailed">
- Caricamento dell&apos;immagine su Web non riuscita.
- </notification>
<notification name="InvalidWearable">
L&apos;elemento che stai tentando di indossare usa delle caratteristiche che il tuo viewer non può leggere. Aggiorna la versione di [APP_NAME] per poterlo indossare.
</notification>
@@ -2754,7 +2749,7 @@ Avatar &apos;[NAME]&apos; è partito completamente caricato.
</notification>
<notification name="AvatarRezSelfBakeNotification">
( in esistenza da [EXISTENCE] secondi )
-Hai caricato una texture [RESOLUTION] completata per &apos;[BODYREGION]&apos; dopo [TIME] secondi.
+Effettuata l&apos;azione: [ACTION] di una texture [RESOLUTION] completata per &apos;[BODYREGION]&apos; dopo [TIME] secondi.
</notification>
<notification name="ConfirmLeaveCall">
Sei sicuro di volere uscire dalla chiamata?
@@ -2792,4 +2787,7 @@ Se continui ad avere problemi, visita la pagina [SUPPORT_SITE].
Se sei proprietario di un appezzamento di terreno, puoi definirlo come la tua posizione iniziale.
In alternativa, puoi guardare sulla mappa e trovare luoghi segnalati come &quot;Infohub&quot;.
</global>
+ <global name="You died and have been teleported to your home location">
+ Sei deceduto e sei stato teleportato a casa tua.
+ </global>
</notifications>
diff --git a/indra/newview/skins/default/xui/it/panel_audio_device.xml b/indra/newview/skins/default/xui/it/panel_audio_device.xml
deleted file mode 100644
index 166db81999..0000000000
--- a/indra/newview/skins/default/xui/it/panel_audio_device.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="device_settings">
- <text name="Audio Devices">
- Periferiche audio
- </text>
- <text name="Input device (microphone):">
- Periferica di input (microfono):
- </text>
- <text name="Output device (speakers):">
- Periferica di Output (altoparlanti):
- </text>
- <text name="Input level:">
- Livello d&apos;ingresso
- </text>
- <text_editor name="voice_intro_text1">
- Sposta il cursore per impostare il livello della tua voce per gli altri residenti. Per controllare il livello di ingresso, parla semplicemente nel microfono.
- </text_editor>
- <volume_slider name="mic_volume_slider" tool_tip="Cambia il volume usando il cursore"/>
- <text name="wait_text">
- Attendi
- </text>
- <string name="default_text">
- Default
- </string>
-</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 de764d8025..b44c4c29e6 100644
--- 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
@@ -1,4 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="wearable_item">
<text name="item_name" value="..."/>
+ <panel name="btn_lock" tool_tip="Non hai diritti di modifica"/>
+ <panel name="btn_edit_panel">
+ <button name="btn_edit" tool_tip="Modifica figura"/>
+ </panel>
</panel>
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 de764d8025..7667e95663 100644
--- a/indra/newview/skins/default/xui/it/panel_clothing_list_item.xml
+++ b/indra/newview/skins/default/xui/it/panel_clothing_list_item.xml
@@ -1,4 +1,9 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="wearable_item">
+ <button name="btn_delete" tool_tip="Rimuovi dal vestiario"/>
<text name="item_name" value="..."/>
+ <panel name="btn_lock" tool_tip="Non hai diritti di modifica"/>
+ <panel name="btn_edit_panel">
+ <button name="btn_edit" tool_tip="Modifica questo capo"/>
+ </panel>
</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 91d90a5660..cbcaa0689a 100644
--- 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
@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="deletable_wearable_item">
+ <button name="btn_delete" tool_tip="Rimuovi dal vestiario"/>
<text name="item_name" value="..."/>
</panel>
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 6af84de0c7..eb3af5f2a5 100644
--- 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
@@ -1,4 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="dummy_clothing_item">
<text name="item_name" value="..."/>
+ <panel name="btn_add_panel">
+ <button name="btn_add" tool_tip="Aggiungi altri capi di questo tipo"/>
+ </panel>
</panel>
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 5eaae828d8..19456281bb 100644
--- a/indra/newview/skins/default/xui/it/panel_edit_wearable.xml
+++ b/indra/newview/skins/default/xui/it/panel_edit_wearable.xml
@@ -90,6 +90,7 @@
<string name="tattoo_desc_text">
Tatuaggio:
</string>
+ <labeled_back_button label="Salva" name="back_btn" tool_tip="Torna alla modifica del vestiario"/>
<text name="edit_wearable_title" value="Modifica della figura corporea"/>
<panel label="Camicia" name="wearable_type_panel">
<text name="description_text" value="Figura corporea:"/>
@@ -102,6 +103,6 @@
</panel>
<panel name="button_panel">
<button label="Salva con nome" name="save_as_button"/>
- <button label="Ripristina" name="revert_button"/>
+ <button label="Annulla modifiche" name="revert_button"/>
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_friends.xml b/indra/newview/skins/default/xui/it/panel_friends.xml
deleted file mode 100644
index cfe162a67b..0000000000
--- a/indra/newview/skins/default/xui/it/panel_friends.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="friends">
- <string name="Multiple">
- Più amici
- </string>
- <scroll_list name="friend_list" tool_tip="Tieni premuto shift o control mentre clicchi per selezionare più di un amico">
- <column name="icon_online_status" tool_tip="Stato Online"/>
- <column label="Nome" name="friend_name" tool_tip="Nome"/>
- <column name="icon_visible_online" tool_tip="Questo amico può vedere quando sei online"/>
- <column name="icon_visible_map" tool_tip="Questo amico può localizzarti sulla mappa"/>
- <column name="icon_edit_mine" tool_tip="Questo amico può modificare, cancellare o prendere i tuoi oggetti"/>
- <column name="icon_edit_theirs" tool_tip="Puoi modificare gli oggetti di questo amico"/>
- </scroll_list>
- <button label="IM/Chiama" name="im_btn" tool_tip="Apri una sessione di IM - Messaggio Privato"/>
- <button label="Profilo" name="profile_btn" tool_tip="Mostra foto, gruppi, ed altre informazioni"/>
- <button label="Teleport" name="offer_teleport_btn" tool_tip="Offri a questo amico un teleport per dove sei tu ora"/>
- <button label="Paga" name="pay_btn" tool_tip="Dai Linden dollar (L$) a questo amico"/>
- <button label="Rimuovi" name="remove_btn" tool_tip="Rimuovi questa persona dalla tua lista amici"/>
- <button label="Aggiungi" name="add_btn" tool_tip="Offri amicizia a un residente"/>
-</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 8dd945830e..2e2f0dc7b0 100644
--- a/indra/newview/skins/default/xui/it/panel_group_notices.xml
+++ b/indra/newview/skins/default/xui/it/panel_group_notices.xml
@@ -19,7 +19,7 @@ Massimo 200 per gruppo al giorno
<text name="notice_list_none_found">
Nessuno trovato
</text>
- <button label="Crea un nuovo avviso" label_selected="Crea una nuova notice" name="create_new_notice" tool_tip="Crea un nuovo avviso"/>
+ <button label="Nuovo avviso" label_selected="Crea una nuova notice" name="create_new_notice" tool_tip="Crea un nuovo avviso"/>
<button label="Aggiorna" label_selected="Aggiorna l&apos;elenco" name="refresh_notices" tool_tip="Aggiorna la lista degli avvisi"/>
<panel label="Crea una nuova notice" name="panel_create_new_notice">
<text name="lbl">
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 1769ef748d..478b35e628 100644
--- a/indra/newview/skins/default/xui/it/panel_group_roles.xml
+++ b/indra/newview/skins/default/xui/it/panel_group_roles.xml
@@ -13,6 +13,9 @@
Seleziona più membri tenendo premuto il tasto Ctrl e
cliccando sui loro nomi.
</panel.string>
+ <panel.string name="donation_area">
+ [AREA] m²
+ </panel.string>
<filter_editor label="Filtra Membri" name="filter_input"/>
<name_list name="member_list">
<name_list.columns label="Socio" name="name"/>
@@ -66,21 +69,15 @@ in questo gruppo. C&apos;è una vasta gamma di abilità.
<text name="static">
Nome del ruolo
</text>
- <line_editor name="role_name">
- Addetti
- </line_editor>
+ <line_editor name="role_name"/>
<text name="static3">
Titolo del ruolo
</text>
- <line_editor name="role_title">
- (attendi)
- </line_editor>
+ <line_editor name="role_title"/>
<text name="static2">
Descrizione
</text>
- <text_editor name="role_description">
- (attendi)
- </text_editor>
+ <text_editor name="role_description"/>
<text name="static4">
Ruoli assegnati
</text>
@@ -91,9 +88,6 @@ in questo gruppo. C&apos;è una vasta gamma di abilità.
<scroll_list name="role_allowed_actions" tool_tip="Per i dettagli di ogni abilità consentita vedi la scheda abilità."/>
</panel>
<panel name="actions_footer">
- <text name="static">
- Descrizione abilità
- </text>
<text_editor name="action_description">
Questa abilità è &apos;Espelli i membri dal gruppo&apos;. Solo un Capogruppo puo espellere un&apos;altro Capogruppo.
</text_editor>
diff --git a/indra/newview/skins/default/xui/it/panel_groups.xml b/indra/newview/skins/default/xui/it/panel_groups.xml
deleted file mode 100644
index 43fd36710e..0000000000
--- a/indra/newview/skins/default/xui/it/panel_groups.xml
+++ /dev/null
@@ -1,17 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="groups">
- <scroll_list bottom="50" name="group list"/>
- <text bottom="16" height="32" name="groupdesc" width="268">
- Il tuo gruppo attualmente attivo è visualizzato
-in grassetto.
- </text>
- <text bottom="3" name="groupcount" width="268">
- Appartieni a [COUNT] gruppo/i (su un massimo di [MAX]).
- </text>
- <button label="IM/Chiama" name="IM" tool_tip="Apri una sessione di IM/Instant Messages"/>
- <button label="Informazioni" name="Info"/>
- <button label="Attiva" name="Activate"/>
- <button label="Abbandona" name="Leave"/>
- <button label="Crea..." name="Create"/>
- <button label="Cerca..." name="Search..."/>
-</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_nearby_chat.xml b/indra/newview/skins/default/xui/it/panel_nearby_chat.xml
deleted file mode 100644
index 7ffe972181..0000000000
--- a/indra/newview/skins/default/xui/it/panel_nearby_chat.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<!-- All our XML is utf-8 encoded. -->
-<panel name="nearby_chat">
- <panel name="chat_caption">
- <text name="sender_name">
- CHAT NEI DINTORNI
- </text>
- </panel>
-</panel>
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 01e21d520a..40312f76b4 100644
--- a/indra/newview/skins/default/xui/it/panel_nearby_media.xml
+++ b/indra/newview/skins/default/xui/it/panel_nearby_media.xml
@@ -23,6 +23,12 @@
<button label="Più &gt;&gt;" label_selected="Meno &lt;&lt;" name="less_btn" tool_tip="Opzioni avanzate"/>
</panel>
<panel name="nearby_media_panel">
+ <text name="nearby_media_title">
+ Multimedia vicini
+ </text>
+ <text name="show_text">
+ Mostra:
+ </text>
<combo_box name="show_combo">
<combo_box.item label="Tutto" name="All"/>
<combo_box.item label="In questo lotto" name="WithinParcel"/>
@@ -36,7 +42,7 @@
<scroll_list.columns label="Nome" name="media_name"/>
<scroll_list.columns label="Debug" name="media_debug"/>
</scroll_list>
- <panel>
+ <panel name="media_controls_panel">
<layout_stack name="media_controls">
<layout_panel name="stop">
<button name="stop_btn" tool_tip="Interrompi supporto selezionato"/>
diff --git a/indra/newview/skins/default/xui/it/panel_notes.xml b/indra/newview/skins/default/xui/it/panel_notes.xml
index 9ce6b47a32..945bff1603 100644
--- a/indra/newview/skins/default/xui/it/panel_notes.xml
+++ b/indra/newview/skins/default/xui/it/panel_notes.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Note e Privacy" name="panel_notes">
<layout_stack name="layout">
- <panel name="notes_stack">
+ <layout_panel name="notes_stack">
<scroll_container name="profile_scroll">
<panel name="profile_scroll_panel">
<text name="status_message" value="Le mie note private:"/>
@@ -11,13 +11,13 @@
<check_box label="Modificare, eliminare o prendere i miei oggetti" name="objects_check"/>
</panel>
</scroll_container>
- </panel>
- <panel name="notes_buttons_panel">
+ </layout_panel>
+ <layout_panel name="notes_buttons_panel">
<button label="Aggiungi amico" name="add_friend" tool_tip="Offri amicizia a questo residente"/>
<button label="IM" name="im" tool_tip="Apri una sessione messaggio istantaneo"/>
<button label="Chiama" name="call" tool_tip="Chiama questo residente"/>
<button label="Mappa" name="show_on_map_btn" tool_tip="Mostra il residente sulla mappa"/>
<button label="Teleport" name="teleport" tool_tip="Offri teleport"/>
- </panel>
+ </layout_panel>
</layout_stack>
</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_online_status.xml b/indra/newview/skins/default/xui/it/panel_online_status.xml
deleted file mode 100644
index fdc489f375..0000000000
--- a/indra/newview/skins/default/xui/it/panel_online_status.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="friend_online_status" name="friend_online_status"/>
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 57168096d5..6628d4f730 100644
--- a/indra/newview/skins/default/xui/it/panel_outfit_edit.xml
+++ b/indra/newview/skins/default/xui/it/panel_outfit_edit.xml
@@ -13,7 +13,9 @@
<string name="Filter.All" value="Tutto"/>
<string name="Filter.Clothes/Body" value="Abiti/corpo"/>
<string name="Filter.Objects" value="Oggetti"/>
- <string name="Filter.Custom" value="Filtro personalizzato"/>
+ <string name="Filter.Clothing" value="Vestiario"/>
+ <string name="Filter.Bodyparts" value="Parti del corpo"/>
+ <string name="replace_body_part" value="Fai clic per sostituire la forma corporea esistente"/>
<text name="title" value="Modifica vestiario"/>
<panel label="bottom_panel" name="header_panel">
<panel label="bottom_panel" name="outfit_name_and_status">
@@ -25,17 +27,25 @@
<layout_panel label="Pannello di controllo IM" name="outfit_wearables_panel">
<layout_stack name="filter_panels">
<layout_panel name="add_button_and_combobox">
- <button label="Aggiungi altri..." name="show_add_wearables_btn"/>
+ <button label="Aggiungi altri..." name="show_add_wearables_btn" tool_tip="Apri/chiudi"/>
</layout_panel>
<layout_panel name="filter_panel">
<filter_editor label="Filtra capi da indossare dell&apos;inventario" name="look_item_filter"/>
</layout_panel>
</layout_stack>
</layout_panel>
- <layout_panel name="add_wearables_panel"/>
+ <layout_panel name="add_wearables_panel">
+ <button label="Indossa capo" name="plus_btn"/>
+ </layout_panel>
</layout_stack>
+ <panel name="no_add_wearables_button_bar">
+ <button name="shop_btn_1" tool_tip="Visita Marketplace di SL. In alternativa puoi scegliere un capo che stai indossando, poi fare clic qui per vedere altri capi simili"/>
+ </panel>
+ <panel name="add_wearables_button_bar">
+ <button name="shop_btn_2" tool_tip="Visita Marketplace di SL. In alternativa puoi scegliere un capo che stai indossando, poi fare clic qui per vedere altri capi simili"/>
+ </panel>
<panel name="save_revert_button_bar">
<button label="Salva" name="save_btn"/>
- <button label="Ripristina" name="revert_btn"/>
+ <button label="Annulla modifiche" name="revert_btn" tool_tip="Ripristina l&apos;ultima versione salvata"/>
</panel>
</panel>
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 8f8f7a25f4..8f6ca38767 100644
--- a/indra/newview/skins/default/xui/it/panel_outfits_inventory.xml
+++ b/indra/newview/skins/default/xui/it/panel_outfits_inventory.xml
@@ -1,12 +1,16 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Cose" name="Outfits">
+ <panel.string name="wear_outfit_tooltip">
+ Indossa il vestiario selezionato
+ </panel.string>
+ <panel.string name="wear_items_tooltip">
+ Indossa capi selezionati
+ </panel.string>
<tab_container name="appearance_tabs">
<panel label="I MIEI ABITI" name="outfitslist_tab"/>
- <inventory_panel label="INDOSSA" name="cof_tab"/>
+ <panel label="INDOSSA" name="cof_tab"/>
</tab_container>
<panel name="bottom_panel">
- <button name="options_gear_btn" tool_tip="Mostra opzioni addizionali"/>
- <dnd_button name="trash_btn" tool_tip="Rimuovi l&apos;articolo selezionato"/>
<button label="Salva con nome" name="save_btn"/>
<button label="Indossa" name="wear_btn" tool_tip="Indossa il vestiario selezionato"/>
</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_outfits_list.xml b/indra/newview/skins/default/xui/it/panel_outfits_list.xml
new file mode 100644
index 0000000000..e5194e95d7
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/panel_outfits_list.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="Outfits">
+ <panel name="bottom_panel">
+ <button name="options_gear_btn" tool_tip="Mostra ulteriori opzioni"/>
+ <button name="trash_btn" tool_tip="Elimina il vestiario selezionato"/>
+ </panel>
+</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_outfits_wearing.xml b/indra/newview/skins/default/xui/it/panel_outfits_wearing.xml
new file mode 100644
index 0000000000..3bbf2446f5
--- /dev/null
+++ b/indra/newview/skins/default/xui/it/panel_outfits_wearing.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="Wearing">
+ <panel name="bottom_panel">
+ <button name="options_gear_btn" tool_tip="Mostra ulteriori opzioni"/>
+ </panel>
+</panel>
diff --git a/indra/newview/skins/default/xui/it/panel_people.xml b/indra/newview/skins/default/xui/it/panel_people.xml
index 056e424436..3d07ff45ba 100644
--- a/indra/newview/skins/default/xui/it/panel_people.xml
+++ b/indra/newview/skins/default/xui/it/panel_people.xml
@@ -3,7 +3,7 @@
<panel label="Persone" name="people_panel">
<string name="no_recent_people" value="Nessuna persona recente. Stai cercando persone da frequentare? Prova la [secondlife:///app/search/people Ricerca] o la [secondlife:///app/worldmap Mappa del mondo]."/>
<string name="no_filtered_recent_people" value="Non riesci a trovare quello che cerchi? Prova [secondlife:///app/search/people/[SEARCH_TERM] Cerca]."/>
- <string name="no_one_near" value="Nessuno vicino. Stai cercando persone da frequentare? Try la [secondlife:///app/search/people Ricerca] o la [secondlife:///app/worldmap Mappa del mondo]."/>
+ <string name="no_one_near" value="Nessuno vicino. Stai cercando persone da frequentare? Prova a vedere la [secondlife:///app/search/people Ricerca] o la [secondlife:///app/worldmap Mappa del mondo]."/>
<string name="no_one_filtered_near" value="Non riesci a trovare quello che cerchi? Prova [secondlife:///app/search/people/[SEARCH_TERM] Cerca]."/>
<string name="no_friends_online" value="Nessun amico online"/>
<string name="no_friends" value="Nessun amico"/>
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 fb8ddf607d..d28ed41698 100644
--- a/indra/newview/skins/default/xui/it/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/it/panel_preferences_chat.xml
@@ -56,4 +56,27 @@
<radio_item label="Finestre separate" name="radio" value="0"/>
<radio_item label="Schede" name="radio2" value="1"/>
</radio_group>
+ <check_box label="Traduci Chat" name="translate_chat_checkbox" />
+ <text name="translate_language_text" width="110">
+ Chat Lingua:
+ </text>
+ <combo_box name="translate_language_combobox" width="146">
+ <combo_box.item name="System Default Language" label="Default di sistema" />
+ <combo_box.item name="English" label="English" />
+ <combo_box.item name="Danish" label="Dansk (Danese)" />
+ <combo_box.item name="German" label="Deutsch (Tedesco)" />
+ <combo_box.item name="Spanish" label="Español (Spagnolo)" />
+ <combo_box.item name="French" label="Français (Francese)" />
+ <combo_box.item name="Italian" label="Italiano" />
+ <combo_box.item name="Hungarian" label="Magyar (Ungherese)" />
+ <combo_box.item name="Dutch" label="Nederlands (Olandese)" />
+ <combo_box.item name="Polish" label="Polski (Polacco)" />
+ <combo_box.item name="Portugese" label="Português (Portoghese)" />
+ <combo_box.item name="Russian" label="РуÑÑкий (Russo)" />
+ <combo_box.item name="Turkish" label="Türkçe (Turco)" />
+ <combo_box.item name="Ukrainian" label="УкраїнÑька (Ukraino)" />
+ <combo_box.item name="Chinese" label="中文 (简体) (Cinese)" />
+ <combo_box.item name="Japanese" label="日本語 (Giapponese)" />
+ <combo_box.item name="Korean" label="한국어 (Coreano)" />
+ </combo_box>
</panel>
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 e8c826609c..60c4ed5211 100644
--- a/indra/newview/skins/default/xui/it/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/it/panel_preferences_general.xml
@@ -13,7 +13,7 @@
<combo_box.item label="Italiano - Beta" name="Italian"/>
<combo_box.item label="Nederlands (Olandese) - Beta" name="Dutch"/>
<combo_box.item label="Polski (Polacco) - Beta" name="Polish"/>
- <combo_box.item label="Portugués (Portoghese) - Beta" name="Portugese"/>
+ <combo_box.item label="Português (Portoghese) - Beta" name="Portugese"/>
<combo_box.item label="日本語 (Giapponese) - Beta" name="(Japanese)"/>
</combo_box>
<text name="language_textbox2">
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 37857473aa..71980695b6 100644
--- a/indra/newview/skins/default/xui/it/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/it/panel_preferences_graphics1.xml
@@ -49,10 +49,7 @@
m
</text>
<slider label="Conteggio massimo particelle:" name="MaxParticleCount"/>
- <slider label="Distanza visual. max avatar:" name="MaxAvatarDrawDistance"/>
- <text name="DrawDistanceMeterText3">
- m
- </text>
+ <slider label="N. max di avatar non impostori:" name="MaxNumberAvatarDrawn"/>
<slider label="Qualità in post-produzione:" name="RenderPostProcess"/>
<text name="MeshDetailText">
Dettagli reticolo:
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 9f8a13fedc..2ddb226020 100644
--- a/indra/newview/skins/default/xui/it/panel_preferences_sound.xml
+++ b/indra/newview/skins/default/xui/it/panel_preferences_sound.xml
@@ -11,8 +11,8 @@
<check_box label="Abilitato" name="enable_media"/>
<slider label="Chat vocale" name="Voice Volume"/>
<check_box label="Abilitato" name="enable_voice_check"/>
- <check_box label="Consenti riproduzione multimediale automatica" name="media_auto_play_btn" tool_tip="Seleziona qui per consentire la riproduzione multimediale automatica"/>
- <check_box label="Riproduci media in uso da altri avatar" name="media_show_on_others_btn" tool_tip="Deseleziona qui per nascondere i media in uso dagli altri avatar nei dintorni"/>
+ <check_box label="Consenti riproduzione multimediale automatica" name="media_auto_play_btn" tool_tip="Seleziona qui per consentire la riproduzione multimediale automatica" value="true"/>
+ <check_box label="Riproduci media in uso da altri avatar" name="media_show_on_others_btn" tool_tip="Deseleziona qui per nascondere i media in uso dagli altri avatar nei dintorni" value="true"/>
<text name="voice_chat_settings">
Impostazioni Chat vocale
</text>
@@ -28,6 +28,12 @@
<panel.string name="default_text">
Predefinito
</panel.string>
+ <panel.string name="default system device">
+ Dispositivo di sistema predefinito
+ </panel.string>
+ <panel.string name="no device">
+ Nessun dispositivo
+ </panel.string>
<text name="Input">
Input
</text>
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 ef7aaf2e8c..4620d72977 100644
--- a/indra/newview/skins/default/xui/it/panel_prim_media_controls.xml
+++ b/indra/newview/skins/default/xui/it/panel_prim_media_controls.xml
@@ -13,9 +13,9 @@
50
</string>
<layout_stack name="progress_indicator_area">
- <panel name="media_progress_indicator">
+ <layout_panel name="media_progress_indicator">
<progress_bar name="media_progress_bar" tool_tip="L&apos;elemento multimediale è in caricamento"/>
- </panel>
+ </layout_panel>
</layout_stack>
<layout_stack name="media_controls">
<layout_panel name="back">
diff --git a/indra/newview/skins/default/xui/it/panel_region_general_layout.xml b/indra/newview/skins/default/xui/it/panel_region_general_layout.xml
deleted file mode 100644
index 4cf31f4b6e..0000000000
--- a/indra/newview/skins/default/xui/it/panel_region_general_layout.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="Regione" name="General">
- <text name="region_text_lbl">
- Regione:
- </text>
- <text name="region_text">
- sconosciuto
- </text>
- <text name="version_channel_text_lbl">
- Versione:
- </text>
- <text name="version_channel_text">
- sconosciuto
- </text>
- <text name="region_type_lbl">
- Tipo:
- </text>
- <text name="region_type">
- sconosciuto
- </text>
- <check_box label="Impedisci Terraform" name="block_terraform_check"/>
- <check_box label="Impedisci volo" name="block_fly_check"/>
- <check_box label="Permetti danni" name="allow_damage_check"/>
- <check_box label="Limita spinte" name="restrict_pushobject"/>
- <check_box label="Permetti la rivendita dei terreni" name="allow_land_resell_check"/>
- <check_box label="Permetti l&apos;unione/divisione del terreno" name="allow_parcel_changes_check"/>
- <check_box label="Impedisci la visualizzazione del terreno nelle ricerche" name="block_parcel_search_check" tool_tip="Permetti alla gente di vedere questa regione e i suoi lotti nei risultati dellla ricerca"/>
- <spinner label="N. massimo di avatar" name="agent_limit_spin"/>
- <spinner label="Bonus oggetto" name="object_bonus_spin"/>
- <text label="Categoria di accesso" name="access_text">
- Categoria:
- </text>
- <combo_box label="Moderato" name="access_combo">
- <combo_box.item label="Adulti" name="Adult"/>
- <combo_box.item label="Moderato" name="Mature"/>
- <combo_box.item label="Generale" name="PG"/>
- </combo_box>
- <button label="Applica" name="apply_btn"/>
- <button label="Teleport a casa un residente..." name="kick_btn"/>
- <button label="Teleport a casa tutti i residenti..." name="kick_all_btn"/>
- <button label="Invia messaggio alla regione..." name="im_btn"/>
- <button label="Gestisci telehub..." name="manage_telehub_btn"/>
-</panel>
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 85f8f87e68..f4fa59babe 100644
--- a/indra/newview/skins/default/xui/it/panel_teleport_history.xml
+++ b/indra/newview/skins/default/xui/it/panel_teleport_history.xml
@@ -1,10 +1,11 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="Teleport History">
<accordion name="history_accordion">
+ <no_matched_tabs_text name="no_matched_teleports_msg" value="Non riesci a trovare quello che cerchi? Prova [secondlife:///app/search/places/[SEARCH_TERM] Cerca]."/>
+ <no_visible_tabs_text name="no_teleports_msg" value="La cronologia dei teleport è vuota. Prova [secondlife:///app/search/places/ Cerca]."/>
<accordion_tab name="today" title="Oggi"/>
<accordion_tab name="yesterday" title="Ieri"/>
<accordion_tab name="2_days_ago" title="2 giorni fa"/>
- 5
<accordion_tab name="3_days_ago" title="3 giorni fa"/>
<accordion_tab name="4_days_ago" title="4 giorni fa"/>
<accordion_tab name="5_days_ago" title="5 giorni fa"/>
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 78ce1ff24a..b43f766e5e 100644
--- a/indra/newview/skins/default/xui/it/panel_voice_effect.xml
+++ b/indra/newview/skins/default/xui/it/panel_voice_effect.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="panel_voice_effect">
<string name="no_voice_effect">
- Nessuna manipolazione voce
+ Disattiva manipolazione voce
</string>
<string name="preview_voice_effects">
Anteprima manipolazione voce â–¶
@@ -9,7 +9,7 @@
<string name="get_voice_effects">
Ottieni manipolazione voce â–¶
</string>
- <combo_box name="voice_effect" tool_tip="Scegli un effetto di manipolazione per modificare il suono della tua voce.">
- <combo_box.item label="Nessuna manipolazione voce" name="no_voice_effect"/>
+ <combo_box name="voice_effect" tool_tip="Scegli un effetto di manipolazione per modificare il suono della tua voce">
+ <combo_box.item label="Disattiva manipolazione voce" name="no_voice_effect"/>
</combo_box>
</panel>
diff --git a/indra/newview/skins/default/xui/it/sidepanel_appearance.xml b/indra/newview/skins/default/xui/it/sidepanel_appearance.xml
index df25772ffb..220a6f84af 100644
--- a/indra/newview/skins/default/xui/it/sidepanel_appearance.xml
+++ b/indra/newview/skins/default/xui/it/sidepanel_appearance.xml
@@ -3,12 +3,14 @@
<string name="No Outfit" value="Nessun vestiario"/>
<string name="Unsaved Changes" value="Modifiche non salvate"/>
<string name="Now Wearing" value="Abbigliamento attuale..."/>
+ <string name="Changing outfits" value="Cambio vestiti"/>
<panel name="panel_currentlook">
<button label="M" name="editappearance_btn"/>
<button label="A" name="openoutfit_btn"/>
<text name="currentlook_status">
(Stato)
</text>
+ <button label="" name="edit_outfit_btn" tool_tip="Modifica questo vestiario"/>
</panel>
<filter_editor label="Filtri per il vestiario" name="Filter"/>
</panel>
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 e1ad1452ff..6f650ea55d 100644
--- a/indra/newview/skins/default/xui/it/sidepanel_item_info.xml
+++ b/indra/newview/skins/default/xui/it/sidepanel_item_info.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="item properties" title="Profilo dell&apos;oggetto">
+<panel name="item properties" title="Profilo articolo">
<panel.string name="unknown">
(sconosciuto)
</panel.string>
@@ -15,9 +15,15 @@
<panel.string name="acquiredDate">
[wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local]
</panel.string>
- <text name="title" value="Profilo dell&apos;oggetto"/>
- <text name="where" value="(Inventario)"/>
- <panel label="">
+ <panel.string name="origin_inventory">
+ (Inventario)
+ </panel.string>
+ <panel.string name="origin_inworld">
+ (in Second Life)
+ </panel.string>
+ <text name="title" value="Profilo articolo"/>
+ <text name="origin" value="(Inventario)"/>
+ <panel label="" name="item_profile">
<text name="LabelItemNameTitle">
Nome:
</text>
@@ -35,9 +41,7 @@
<text name="LabelAcquiredTitle">
Acquisito:
</text>
- <text name="LabelAcquiredDate">
- mer 24 maggio 12:50:46 2006
- </text>
+ <text name="LabelAcquiredDate"/>
<panel name="perms_inv">
<text name="perm_modify">
Tu puoi:
diff --git a/indra/newview/skins/default/xui/it/strings.xml b/indra/newview/skins/default/xui/it/strings.xml
index d601c27d28..fa465ee9c2 100644
--- a/indra/newview/skins/default/xui/it/strings.xml
+++ b/indra/newview/skins/default/xui/it/strings.xml
@@ -190,6 +190,7 @@
<string name="TooltipMustSingleDrop">
Solo un singolo oggetto può essere creato qui
</string>
+ <string name="TooltipPrice" value="L$ [AMOUNT]:"/>
<string name="TooltipHttpUrl">
Clicca per visitare questa pagina web
</string>
@@ -242,7 +243,6 @@
Clicca per avviare il comando secondlife://
</string>
<string name="CurrentURL" value="URL attuale: [CurrentURL]"/>
- <string name="TooltipPrice" value="L$ [PRICE]-"/>
<string name="SLurlLabelTeleport">
Teleportati a
</string>
@@ -303,6 +303,9 @@
<string name="ReleaseNotes">
Note sulla versione
</string>
+ <string name="RELEASE_NOTES_BASE_URL">
+ http://wiki.secondlife.com/wiki/Release_Notes/
+ </string>
<string name="LoadingData">
In caricamento...
</string>
@@ -648,6 +651,9 @@
<string name="worldmap_offline">
Offline
</string>
+ <string name="worldmap_item_tooltip_format">
+ L$ [PRICE] - [AREA] m²
+ </string>
<string name="worldmap_results_none_found">
Nessun risultato.
</string>
@@ -849,6 +855,9 @@
<string name="invalid">
non valido
</string>
+ <string name="none">
+ nessuno
+ </string>
<string name="shirt_not_worn">
Camicia non indossata
</string>
@@ -885,12 +894,57 @@
<string name="invalid_not_worn">
non valido
</string>
+ <string name="create_new_shape">
+ Crea nuova figura corporea
+ </string>
+ <string name="create_new_skin">
+ Crea nuova pelle
+ </string>
+ <string name="create_new_hair">
+ Crea nuovi capelli
+ </string>
+ <string name="create_new_eyes">
+ Crea nuovi occhi
+ </string>
+ <string name="create_new_shirt">
+ Crea nuova camicia
+ </string>
+ <string name="create_new_pants">
+ Crea nuovi pantaloni
+ </string>
+ <string name="create_new_shoes">
+ Crea nuove scarpe
+ </string>
+ <string name="create_new_socks">
+ Crea nuove calze
+ </string>
+ <string name="create_new_jacket">
+ Crea nuova giacca
+ </string>
+ <string name="create_new_gloves">
+ Crea nuovi guanti
+ </string>
+ <string name="create_new_undershirt">
+ Crea nuova maglietta intima
+ </string>
+ <string name="create_new_underpants">
+ Crea nuovi slip
+ </string>
+ <string name="create_new_skirt">
+ Crea nuova gonna
+ </string>
+ <string name="create_new_alpha">
+ Crea nuovo Alpha
+ </string>
+ <string name="create_new_tattoo">
+ Crea un nuovo tatuaggio
+ </string>
+ <string name="create_new_invalid">
+ non valido
+ </string>
<string name="NewWearable">
Nuovo [WEARABLE_ITEM]
</string>
- <string name="CreateNewWearable">
- Crea [WEARABLE_TYPE]
- </string>
<string name="next">
Avanti
</string>
@@ -989,6 +1043,7 @@
<string name="AnimFlagStop" value="Ferma l&apos;animazione :"/>
<string name="AnimFlagStart" value="Inizia l&apos;animazione :"/>
<string name="Wave" value="Saluta con la mano"/>
+ <string name="GestureActionNone" value="Nessuna"/>
<string name="HelloAvatar" value="Ciao, avatar!"/>
<string name="ViewAllGestures" value="Visualizza tutto &gt;&gt;"/>
<string name="GetMoreGestures" value="Altre &gt;&gt;"/>
@@ -1068,12 +1123,18 @@
<string name="InvFolder Gestures">
Gesture
</string>
+ <string name="InvFolder Favorite">
+ Preferiti
+ </string>
<string name="InvFolder favorite">
Preferiti
</string>
<string name="InvFolder Current Outfit">
Abbigliamento attuale
</string>
+ <string name="InvFolder Initial Outfits">
+ Vestiario iniziale
+ </string>
<string name="InvFolder My Outfits">
Il mio vestiario
</string>
@@ -1393,6 +1454,7 @@
<string name="SummaryForTheWeek" value="Riassunto della settimana, partendo dal"/>
<string name="NextStipendDay" value="Il prossimo giorno di stipendio è"/>
<string name="GroupIndividualShare" value="Gruppo Dividendi individuali"/>
+ <string name="GroupColumn" value="Gruppo"/>
<string name="Balance">
Saldo
</string>
@@ -1588,21 +1650,30 @@
<string name="ATTACH_HUD_BOTTOM_RIGHT">
HUD basso a destra
</string>
+ <string name="Bad attachment point">
+ Punto di collegamento non valido
+ </string>
<string name="CursorPos">
Riga [LINE], Colonna [COLUMN]
</string>
<string name="PanelDirCountFound">
[COUNT] trovato/i
</string>
- <string name="PanelContentsNewScript">
- Nuovo script
- </string>
<string name="PanelContentsTooltip">
Contenuto dell&apos;oggetto
</string>
+ <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>
+ <string name="NoOutfits">
+ Non hai ancora vestiario da indossare. Prova [secondlife:///app/search/all Cerca].
+ </string>
+ <string name="NoOutfitsTabsMatched">
+ Non riesci a trovare quello che cerchi? Prova [secondlife:///app/search/all/[SEARCH_TERM] Cerca].
+ </string>
<string name="MuteByName">
(In base al nome)
</string>
@@ -3523,6 +3594,9 @@ Se il messaggio persiste, contatta [SUPPORT_SITE].
<string name="group_role_owners">
Proprietari
</string>
+ <string name="group_member_status_online">
+ Online
+ </string>
<string name="uploading_abuse_report">
Caricamento in corso...
@@ -3576,9 +3650,15 @@ Segnala abuso
<string name="Invalid Wearable">
Capo da indossare non valido
</string>
+ <string name="New Gesture">
+ Nuova gesture
+ </string>
<string name="New Script">
Nuovo script
</string>
+ <string name="New Note">
+ Nuovo appunto
+ </string>
<string name="New Folder">
Nuova cartella
</string>
@@ -3636,6 +3716,15 @@ Segnala abuso
<string name="Male - Wow">
Maschio - Accipicchia
</string>
+ <string name="Female - Chuckle">
+ Femmina - Risatina
+ </string>
+ <string name="Female - Cry">
+ Femmina - Pianto
+ </string>
+ <string name="Female - Embarrassed">
+ Femmina - Imbarazzata
+ </string>
<string name="Female - Excuse me">
Femmina - Chiedere scusa
</string>
@@ -3654,9 +3743,21 @@ Segnala abuso
<string name="Female - Hey">
Femmina - Ehi
</string>
+ <string name="Female - Hey baby">
+ Femmina - Ehi tu
+ </string>
<string name="Female - Laugh">
Femmina - Ridere
</string>
+ <string name="Female - Looking good">
+ Femmina - Sei in forma
+ </string>
+ <string name="Female - Over here">
+ Femmina - Per di qua
+ </string>
+ <string name="Female - Please">
+ Femmina - Per cortesia
+ </string>
<string name="Female - Repulsed">
Femmina - Disgustata
</string>
@@ -3706,4 +3807,46 @@ Segnala abuso
<string name="dateTimePM">
pomeridiane
</string>
+ <string name="LocalEstimateUSD">
+ US$ [AMOUNT]
+ </string>
+ <string name="Membership">
+ Abbonamento
+ </string>
+ <string name="Roles">
+ Ruoli
+ </string>
+ <string name="Group Identity">
+ Identità gruppo
+ </string>
+ <string name="Parcel Management">
+ Gestione lotto
+ </string>
+ <string name="Parcel Identity">
+ Identità lotto
+ </string>
+ <string name="Parcel Settings">
+ Impostazioni lotto
+ </string>
+ <string name="Parcel Powers">
+ Poteri lotto
+ </string>
+ <string name="Parcel Access">
+ Accesso al lotto
+ </string>
+ <string name="Parcel Content">
+ Contenuto lotto
+ </string>
+ <string name="Object Management">
+ Gestione oggetti
+ </string>
+ <string name="Accounting">
+ Contabilità
+ </string>
+ <string name="Notices">
+ Avvisi
+ </string>
+ <string name="Chat">
+ Chat
+ </string>
</strings>
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 2f5065c05f..2de9e781d4 100644
--- a/indra/newview/skins/default/xui/ja/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/ja/floater_about_land.xml
@@ -109,7 +109,7 @@
<text name="For Sale: Price L$[PRICE].">
価格: L$ [PRICE] (L$ [PRICE_PER_SQM] / 平方メートル)
</text>
- <button label="土地を売る" label_selected="土地を販売..." name="Sell Land..." width="100"/>
+ <button label="土地を売る" label_selected="土地を販売..." name="Sell Land..."/>
<text name="For sale to">
販売先:[BUYER]
</text>
@@ -119,7 +119,7 @@
<text name="Selling with no objects in parcel.">
オブジェクトã¯è²©å£²ã—ãªã„
</text>
- <button label="土地販売ã®å–り消ã—" label_selected="土地販売ã®å–り消ã—" name="Cancel Land Sale" width="100"/>
+ <button label="土地販売ã®å–り消ã—" label_selected="土地販売ã®å–り消ã—" name="Cancel Land Sale"/>
<text name="Claimed:">
å–得日時:
</text>
@@ -210,72 +210,72 @@
</text>
</panel>
<panel label="オブジェクト" name="land_objects_panel">
- <panel.string left="200" name="objects_available_text">
+ <panel.string name="objects_available_text">
[MAX] ã®å†… [COUNT]([AVAILABLE] 利用å¯èƒ½ï¼‰
</panel.string>
- <panel.string left="200" name="objects_deleted_text">
+ <panel.string name="objects_deleted_text">
[MAX] ã®å†… [COUNT]([DELETED] を削除)
</panel.string>
<text name="parcel_object_bonus">
オブジェクトボーナス: [BONUS]
</text>
- <text name="Simulator primitive usage:" width="500">
+ <text name="Simulator primitive usage:">
プリム使用状æ³ï¼š
</text>
- <text left="200" name="objects_available">
+ <text name="objects_available">
[MAX] ã®å†… [COUNT] ([AVAILABLE] 利用å¯èƒ½ï¼‰
</text>
- <text name="Primitives parcel supports:" width="200">
+ <text name="Primitives parcel supports:">
区画ã§ã‚µãƒãƒ¼ãƒˆã•れるプリム数:
</text>
- <text left="200" name="object_contrib_text">
+ <text name="object_contrib_text">
[COUNT]
</text>
<text name="Primitives on parcel:">
区画上ã®ãƒ—リム数:
</text>
- <text left="200" name="total_objects_text">
+ <text name="total_objects_text">
[COUNT]
</text>
- <text name="Owned by parcel owner:" width="300">
+ <text name="Owned by parcel owner:">
åŒºç”»æ‰€æœ‰è€…ã®æ‰€æœ‰ç‰©ï¼š
</text>
- <text left="200" name="owner_objects_text">
+ <text name="owner_objects_text">
[COUNT]
</text>
- <button label="表示" label_selected="表示" name="ShowOwner" right="-145"/>
- <button label="è¿”å´" label_selected="è¿”å´..." name="ReturnOwner..." right="-15" tool_tip="オブジェクトを所有者ã«è¿”å´ã—ã¾ã™"/>
+ <button label="表示" label_selected="表示" name="ShowOwner"/>
+ <button label="è¿”å´" label_selected="è¿”å´..." name="ReturnOwner..." tool_tip="オブジェクトを所有者ã«è¿”å´ã—ã¾ã™"/>
<text name="Set to group:">
グループã«è¨­å®šï¼š
</text>
- <text left="200" name="group_objects_text">
+ <text name="group_objects_text">
[COUNT]
</text>
- <button label="表示" label_selected="表示" name="ShowGroup" right="-145"/>
- <button label="è¿”å´" label_selected="è¿”å´..." name="ReturnGroup..." right="-15" tool_tip="オブジェクトを所有者ã«è¿”å´ã—ã¾ã™"/>
+ <button label="表示" label_selected="表示" name="ShowGroup"/>
+ <button label="è¿”å´" label_selected="è¿”å´..." name="ReturnGroup..." tool_tip="オブジェクトを所有者ã«è¿”å´ã—ã¾ã™"/>
<text name="Owned by others:">
ä»–äººã®æ‰€æœ‰ç‰©ï¼š
</text>
- <text left="200" name="other_objects_text">
+ <text name="other_objects_text">
[COUNT]
</text>
- <button label="表示" label_selected="表示" name="ShowOther" right="-145"/>
- <button label="è¿”å´" label_selected="è¿”å´..." name="ReturnOther..." right="-15" tool_tip="オブジェクトを所有者ã«è¿”å´ã—ã¾ã™"/>
+ <button label="表示" label_selected="表示" name="ShowOther"/>
+ <button label="è¿”å´" label_selected="è¿”å´..." name="ReturnOther..." tool_tip="オブジェクトを所有者ã«è¿”å´ã—ã¾ã™"/>
<text name="Selected / sat upon:">
é¸æŠžæ¸ˆã¿ãƒ»æ±ºå®šæ¸ˆã¿ï¼š
</text>
- <text left="200" name="selected_objects_text">
+ <text name="selected_objects_text">
[COUNT]
</text>
<text name="Autoreturn">
他人ã®ã‚ªãƒ–ジェクトを自動返å´ï¼ˆåˆ†å˜ä½ã€0 ã§è‡ªå‹•è¿”å´ãªã—):
</text>
- <line_editor left_delta="5" name="clean other time" right="-80"/>
- <text name="Object Owners:" width="150">
+ <line_editor left_delta="5" name="clean other time"/>
+ <text name="Object Owners:">
ã‚ªãƒ–ã‚¸ã‚§ã‚¯ãƒˆã®æ‰€æœ‰è€…:
</text>
- <button label="リスト更新" label_selected="リスト更新" left="146" name="Refresh List" tool_tip="オブジェクトã®ãƒªã‚¹ãƒˆã‚’æ›´æ–°ã—ã¾ã™"/>
- <button label="オブジェクトを返å´ã™ã‚‹" label_selected="オブジェクトã®è¿”å´..." left="256" name="Return objects..."/>
+ <button label="リスト更新" label_selected="リスト更新" name="Refresh List" tool_tip="オブジェクトã®ãƒªã‚¹ãƒˆã‚’æ›´æ–°ã—ã¾ã™"/>
+ <button label="オブジェクトを返å´ã™ã‚‹" label_selected="オブジェクトã®è¿”å´..." name="Return objects..."/>
<name_list label="カウント" name="owner list">
<name_list.columns label="タイプ" name="type"/>
<name_list.columns name="online_status"/>
diff --git a/indra/newview/skins/default/xui/ja/floater_camera.xml b/indra/newview/skins/default/xui/ja/floater_camera.xml
index ec5c2a64a5..71a20c8e18 100644
--- a/indra/newview/skins/default/xui/ja/floater_camera.xml
+++ b/indra/newview/skins/default/xui/ja/floater_camera.xml
@@ -22,6 +22,35 @@
オブジェクトを見る
</floater.string>
<panel name="controls">
+ <panel name="preset_views_list">
+ <panel_camera_item name="front_view">
+ <panel_camera_item.text name="front_view_text">
+ 剿–¹è¦–界
+ </panel_camera_item.text>
+ </panel_camera_item>
+ <panel_camera_item name="group_view">
+ <panel_camera_item.text name="side_view_text">
+ グループ視界
+ </panel_camera_item.text>
+ </panel_camera_item>
+ <panel_camera_item name="rear_view">
+ <panel_camera_item.text name="rear_view_text">
+ 後方視界
+ </panel_camera_item.text>
+ </panel_camera_item>
+ </panel>
+ <panel name="camera_modes_list">
+ <panel_camera_item name="object_view">
+ <panel_camera_item.text name="object_view_text">
+ オブジェクト視点
+ </panel_camera_item.text>
+ </panel_camera_item>
+ <panel_camera_item name="mouselook_view">
+ <panel_camera_item.text name="mouselook_view_text">
+ 一人称視点
+ </panel_camera_item.text>
+ </panel_camera_item>
+ </panel>
<panel name="zoom" tool_tip="å‘ã„ã¦ã„る方法ã«ã‚«ãƒ¡ãƒ©ã‚’ズーム">
<joystick_rotate name="cam_rotate_stick" tool_tip="自分を軸ã«ã‚«ãƒ¡ãƒ©ã‚’回ã™"/>
<slider_bar name="zoom_slider" tool_tip="å‘ã„ã¦ã„ã‚‹æ–¹å‘ã«ã‚«ãƒ¡ãƒ©ã‚’ズーム"/>
diff --git a/indra/newview/skins/default/xui/ja/floater_customize.xml b/indra/newview/skins/default/xui/ja/floater_customize.xml
deleted file mode 100644
index cc0032e1ab..0000000000
--- a/indra/newview/skins/default/xui/ja/floater_customize.xml
+++ /dev/null
@@ -1,529 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater customize" title="容姿">
- <tab_container name="customize tab container">
- <text label="身体部ä½" name="body_parts_placeholder">
- 身体部ä½
- </text>
- <panel label="シェイプ" name="Shape">
- <button label="戻ã™" label_selected="戻ã™" name="Revert"/>
- <button label="身体" label_selected="身体" name="Body"/>
- <button label="é ­" label_selected="é ­" name="Head"/>
- <button label="眼" label_selected="眼" name="Eyes"/>
- <button label="耳" label_selected="耳" name="Ears"/>
- <button label="é¼»" label_selected="é¼»" name="Nose"/>
- <button label="å£" label_selected="å£" name="Mouth"/>
- <button label="ã‚ã”" label_selected="ã‚ã”" name="Chin"/>
- <button label="胴体" label_selected="胴体" name="Torso"/>
- <button label="両脚" label_selected="両脚" name="Legs"/>
- <radio_group name="sex radio">
- <radio_item label="女性" name="radio" value="0"/>
- <radio_item label="男性" name="radio2" value="1"/>
- </radio_group>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: 修正ã§ãã¾ã›ã‚“。
- </text>
- <text name="title_loading">
- [DESC]: ロード中...
- </text>
- <text name="title_not_worn">
- [DESC]: 未装ç€ã€‚
- </text>
- <text name="path">
- [PATH] ã«æ‰€åœ¨
- </text>
- <text name="not worn instructions">
- æŒã¡ç‰©ã‹ã‚‰ã‚ãªãŸã®ã‚¢ãƒã‚¿ãƒ¼ã« 1 ã¤ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦ã€æ–°ã—ã„シェイプをã¤ã‘ã¾ã™ã€‚ 代ã‚りã«ã€ã¯ã˜ã‚ã‹ã‚‰æ–°ã—ã作æˆã—ã¦ç€ç”¨ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚
- </text>
- <text name="no modify instructions">
- ã‚ãªãŸã¯ã“ã®æœã®ä¿®æ­£ã‚’許ã•れã¦ã„ã¾ã›ã‚“。
- </text>
- <text name="Item Action Label">
- シェイプ:
- </text>
- <button label="æ–°ã—ã„シェイプ(体型)を作æˆ" label_selected="æ–°ã—ã„シェイプ(体型)を作æˆ" name="Create New"/>
- <button label="ä¿å­˜" label_selected="ä¿å­˜" name="Save"/>
- <button label="別åã§ä¿å­˜..." label_selected="別åã§ä¿å­˜..." name="Save As"/>
- </panel>
- <panel label="スキン" name="Skin">
- <button label="スキンã®è‰²" label_selected="スキンã®è‰²" name="Skin Color"/>
- <button label="é¡”ã®ç´°éƒ¨" label_selected="é¡”ã®ç´°éƒ¨" name="Face Detail"/>
- <button label="メイク" label_selected="メイク" name="Makeup"/>
- <button label="身体細部" label_selected="身体細部" name="Body Detail"/>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: 修正ã§ãã¾ã›ã‚“。
- </text>
- <text name="title_loading">
- [DESC]: ロード中...
- </text>
- <text name="title_not_worn">
- [DESC]: 未装ç€ã€‚
- </text>
- <text name="path">
- [PATH] ã«æ‰€åœ¨
- </text>
- <text name="not worn instructions">
- æŒã¡ç‰©ã‹ã‚‰ã‚ãªãŸã®ã‚¢ãƒã‚¿ãƒ¼ã« 1 ã¤ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦ã€æ–°ã—ã„スキンをã¤ã‘ã¾ã™ã€‚ 代ã‚りã«ã€ã¯ã˜ã‚ã‹ã‚‰æ–°ã—ã作æˆã—ã¦ç€ç”¨ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚
- </text>
- <text name="no modify instructions">
- ã‚ãªãŸã¯ã“ã®æœã®ä¿®æ­£ã‚’許ã•れã¦ã„ã¾ã›ã‚“。
- </text>
- <text name="Item Action Label">
- スキン:
- </text>
- <texture_picker label="頭部ã®ã‚¿ãƒˆã‚¥ãƒ¼" name="Head Tattoos" tool_tip="写真をクリックã—ã¦é¸æŠž"/>
- <texture_picker label="上åŠèº«ã®ã‚¿ãƒˆã‚¥ãƒ¼" name="Upper Tattoos" tool_tip="写真をクリックã—ã¦é¸æŠž"/>
- <texture_picker label="下部ã®ã‚¿ãƒˆã‚¥ãƒ¼" name="Lower Tattoos" tool_tip="写真をクリックã—ã¦é¸æŠž"/>
- <button label="æ–°ã—ã„スキンを作æˆ" label_selected="æ–°ã—ã„スキンを作æˆ" name="Create New"/>
- <button label="ä¿å­˜" label_selected="ä¿å­˜" name="Save"/>
- <button label="別åã§ä¿å­˜..." label_selected="別åã§ä¿å­˜..." name="Save As"/>
- <button label="戻ã™" label_selected="戻ã™" name="Revert"/>
- </panel>
- <panel label="髪" name="Hair">
- <button label="色" label_selected="色" name="Color"/>
- <button label="スタイル" label_selected="スタイル" name="Style"/>
- <button label="眉毛" label_selected="眉毛" name="Eyebrows"/>
- <button label="é¡”" label_selected="é¡”" name="Facial"/>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: 修正ã§ãã¾ã›ã‚“。
- </text>
- <text name="title_loading">
- [DESC]: ロード中...
- </text>
- <text name="title_not_worn">
- [DESC]: 未装ç€ã€‚
- </text>
- <text name="path">
- [PATH] ã«æ‰€åœ¨
- </text>
- <text name="not worn instructions">
- æŒã¡ç‰©ã‹ã‚‰ã‚ãªãŸã®ã‚¢ãƒã‚¿ãƒ¼ã« 1 ã¤ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦ã€æ–°ã—ã„髪をã¤ã‘ã¾ã™ã€‚ 代ã‚りã«ã€ã¯ã˜ã‚ã‹ã‚‰æ–°ã—ã作æˆã—ã¦ç€ç”¨ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚
- </text>
- <text name="no modify instructions">
- ã‚ãªãŸã¯ã“ã®æœã®ä¿®æ­£ã‚’許ã•れã¦ã„ã¾ã›ã‚“。
- </text>
- <text name="Item Action Label">
- 髪型:
- </text>
- <texture_picker label="テクスãƒãƒ£" name="Texture" tool_tip="写真をクリックã—ã¦é¸æŠž"/>
- <button label="æ–°ã—ã„髪を作æˆ" label_selected="æ–°ã—ã„髪を作æˆ" name="Create New"/>
- <button label="ä¿å­˜" label_selected="ä¿å­˜" name="Save"/>
- <button label="別åã§ä¿å­˜..." label_selected="別åã§ä¿å­˜..." name="Save As"/>
- <button label="戻ã™" label_selected="戻ã™" name="Revert"/>
- </panel>
- <panel label="眼" name="Eyes">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: 修正ã§ãã¾ã›ã‚“。
- </text>
- <text name="title_loading">
- [DESC]: ロード中...
- </text>
- <text name="title_not_worn">
- [DESC]: 未装ç€ã€‚
- </text>
- <text name="path">
- [PATH] ã«æ‰€åœ¨
- </text>
- <text name="not worn instructions">
- ã‚ãªãŸã®æŒã¡ç‰©ã‹ã‚‰ã‚¢ãƒã‚¿ãƒ¼ã«ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦ã€æ–°ã—ã„目をã¤ã‘ã¾ã™ã€‚ 代ã‚りã«ã€ã¯ã˜ã‚ã‹ã‚‰æ–°ã—ã作æˆã—ã¦ç€ç”¨ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚
- </text>
- <text name="no modify instructions">
- ã‚ãªãŸã¯ã“ã®æœã®ä¿®æ­£ã‚’許ã•れã¦ã„ã¾ã›ã‚“。
- </text>
- <text name="Item Action Label">
- 目:
- </text>
- <texture_picker label="虹彩" name="Iris" tool_tip="写真をクリックã—ã¦é¸æŠž"/>
- <button label="æ–°ã—ã„眼を作æˆ" label_selected="æ–°ã—ã„眼を作æˆ" name="Create New"/>
- <button label="ä¿å­˜" label_selected="ä¿å­˜" name="Save"/>
- <button label="別åã§ä¿å­˜..." label_selected="別åã§ä¿å­˜..." name="Save As"/>
- <button label="戻ã™" label_selected="戻ã™" name="Revert"/>
- </panel>
- <text label="æœ" name="clothes_placeholder">
- 衣類
- </text>
- <panel label="シャツ" name="Shirt">
- <texture_picker label="生地" name="Fabric" tool_tip="写真をクリックã—ã¦é¸æŠž"/>
- <color_swatch label="è‰²ï¼æ˜Žæš—" name="Color/Tint" tool_tip="クリックã—ã¦ã‚«ãƒ©ãƒ¼ãƒ”ッカーを開ãã¾ã™"/>
- <button label="å–り外ã™" label_selected="å–り外ã™" name="Take Off"/>
- <button label="æ–°ã—ã„シャツを作æˆ" label_selected="æ–°ã—ã„シャツを作æˆ" name="Create New"/>
- <button label="ä¿å­˜" label_selected="ä¿å­˜" name="Save"/>
- <button label="別åã§ä¿å­˜..." label_selected="別åã§ä¿å­˜..." name="Save As"/>
- <button label="戻ã™" label_selected="戻ã™" name="Revert"/>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: 修正ã§ãã¾ã›ã‚“。
- </text>
- <text name="title_loading">
- [DESC]: ロード中...
- </text>
- <text name="title_not_worn">
- [DESC]: 未装ç€ã€‚
- </text>
- <text name="path">
- [PATH] ã«æ‰€åœ¨
- </text>
- <text name="not worn instructions">
- æŒã¡ç‰©ã‹ã‚‰ã‚ãªãŸã®ã‚¢ãƒã‚¿ãƒ¼ã« 1 ã¤ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦ã€æ–°ã—ã„シャツをç€ã¾ã™ã€‚ 代ã‚りã«ã€ã¯ã˜ã‚ã‹ã‚‰æ–°ã—ã作æˆã—ã¦ç€ç”¨ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚
- </text>
- <text name="no modify instructions">
- ã‚ãªãŸã¯ã“ã®æœã®ä¿®æ­£ã‚’許ã•れã¦ã„ã¾ã›ã‚“。
- </text>
- <text name="Item Action Label">
- シャツ:
- </text>
- </panel>
- <panel label="パンツ" name="Pants">
- <texture_picker label="生地" name="Fabric" tool_tip="写真をクリックã—ã¦é¸æŠž"/>
- <color_swatch label="è‰²ï¼æ˜Žæš—" name="Color/Tint" tool_tip="クリックã—ã¦ã‚«ãƒ©ãƒ¼ãƒ”ッカーを開ãã¾ã™"/>
- <button label="å–り外ã™" label_selected="å–り外ã™" name="Take Off"/>
- <button label="æ–°ã—ã„パンツを作æˆ" label_selected="æ–°ã—ã„パンツを作æˆ" name="Create New"/>
- <button label="ä¿å­˜" label_selected="ä¿å­˜" name="Save"/>
- <button label="別åã§ä¿å­˜..." label_selected="別åã§ä¿å­˜..." name="Save As"/>
- <button label="戻ã™" label_selected="戻ã™" name="Revert"/>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: 修正ã§ãã¾ã›ã‚“。
- </text>
- <text name="title_loading">
- [DESC]: ロード中...
- </text>
- <text name="title_not_worn">
- [DESC]: 未装ç€ã€‚
- </text>
- <text name="path">
- [PATH] ã«æ‰€åœ¨
- </text>
- <text name="not worn instructions">
- ã‚ãªãŸã®æŒã¡ç‰©ã‹ã‚‰ã‚¢ãƒã‚¿ãƒ¼ã«ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦ã€æ–°ã—ã„パンツを履ãã¾ã™ã€‚ 代ã‚りã«ã€ã¯ã˜ã‚ã‹ã‚‰æ–°ã—ã作æˆã—ã¦ç€ç”¨ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚
- </text>
- <text name="no modify instructions">
- ã‚ãªãŸã¯ã“ã®æœã®ä¿®æ­£ã‚’許ã•れã¦ã„ã¾ã›ã‚“。
- </text>
- <text name="Item Action Label">
- パンツ:
- </text>
- </panel>
- <panel label="é´" name="Shoes">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: 修正ã§ãã¾ã›ã‚“。
- </text>
- <text name="title_loading">
- [DESC]: ロード中...
- </text>
- <text name="title_not_worn">
- [DESC]: 未装ç€ã€‚
- </text>
- <text name="path">
- [PATH] ã«æ‰€åœ¨
- </text>
- <text name="not worn instructions">
- ã‚ãªãŸã®æŒã¡ç‰©ã‹ã‚‰ã‚¢ãƒã‚¿ãƒ¼ã«ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦ã€æ–°ã—ã„é´ã‚’å±¥ãã¾ã™ã€‚ 代ã‚りã«ã€ã¯ã˜ã‚ã‹ã‚‰æ–°ã—ã作æˆã—ã¦ç€ç”¨ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚
- </text>
- <button label="æ–°ã—ã„é´ã‚’作æˆ" label_selected="æ–°ã—ã„é´ã‚’作æˆ" name="Create New"/>
- <text name="no modify instructions">
- ã‚ãªãŸã¯ã“ã®æœã®ä¿®æ­£ã‚’許ã•れã¦ã„ã¾ã›ã‚“。
- </text>
- <text name="Item Action Label">
- é´ï¼š
- </text>
- <texture_picker label="生地" name="Fabric" tool_tip="写真をクリックã—ã¦é¸æŠž"/>
- <color_swatch label="è‰²ï¼æ˜Žæš—" name="Color/Tint" tool_tip="クリックã—ã¦ã‚«ãƒ©ãƒ¼ãƒ”ッカーを開ãã¾ã™"/>
- <button label="å–り外ã™" label_selected="å–り外ã™" name="Take Off"/>
- <button label="ä¿å­˜" label_selected="ä¿å­˜" name="Save"/>
- <button label="別åã§ä¿å­˜..." label_selected="別åã§ä¿å­˜..." name="Save As"/>
- <button label="戻ã™" label_selected="戻ã™" name="Revert"/>
- </panel>
- <panel label="é´ä¸‹" name="Socks">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: 修正ã§ãã¾ã›ã‚“。
- </text>
- <text name="title_loading">
- [DESC]: ロード中...
- </text>
- <text name="title_not_worn">
- [DESC]: 未装ç€ã€‚
- </text>
- <text name="path">
- [PATH] ã«æ‰€åœ¨
- </text>
- <text name="not worn instructions">
- ã‚ãªãŸã®æŒã¡ç‰©ã‹ã‚‰ã‚¢ãƒã‚¿ãƒ¼ã«ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦ã€æ–°ã—ã„é´ä¸‹ã‚’å±¥ãã¾ã™ã€‚ 代ã‚りã«ã€ã¯ã˜ã‚ã‹ã‚‰æ–°ã—ã作æˆã—ã¦ç€ç”¨ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚
- </text>
- <button label="æ–°ã—ã„é´ä¸‹ã‚’作æˆ" label_selected="æ–°ã—ã„é´ä¸‹ã‚’作æˆ" name="Create New"/>
- <text name="no modify instructions">
- ã‚ãªãŸã¯ã“ã®æœã®ä¿®æ­£ã‚’許ã•れã¦ã„ã¾ã›ã‚“。
- </text>
- <text name="Item Action Label">
- é´ä¸‹ï¼š
- </text>
- <texture_picker label="生地" name="Fabric" tool_tip="写真をクリックã—ã¦é¸æŠž"/>
- <color_swatch label="è‰²ï¼æ˜Žæš—" name="Color/Tint" tool_tip="クリックã—ã¦ã‚«ãƒ©ãƒ¼ãƒ”ッカーを開ãã¾ã™"/>
- <button label="å–り外ã™" label_selected="å–り外ã™" name="Take Off"/>
- <button label="ä¿å­˜" label_selected="ä¿å­˜" name="Save"/>
- <button label="別åã§ä¿å­˜..." label_selected="別åã§ä¿å­˜..." name="Save As"/>
- <button label="戻ã™" label_selected="戻ã™" name="Revert"/>
- </panel>
- <panel label="上ç€" name="Jacket">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: 修正ã§ãã¾ã›ã‚“。
- </text>
- <text name="title_loading">
- [DESC]: ロード中...
- </text>
- <text name="title_not_worn">
- [DESC]: 未装ç€ã€‚
- </text>
- <text name="path">
- [PATH] ã«æ‰€åœ¨
- </text>
- <text name="not worn instructions">
- æŒã¡ç‰©ã‹ã‚‰ã‚ãªãŸã®ã‚¢ãƒã‚¿ãƒ¼ã« 1 ã¤ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦ã€æ–°ã—ã„ジャケットをç€ã¾ã™ã€‚ 代ã‚りã«ã€ã¯ã˜ã‚ã‹ã‚‰æ–°ã—ã作æˆã—ã¦ç€ç”¨ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚
- </text>
- <button label="æ–°ã—ã„上ç€ã‚’作æˆ" label_selected="æ–°ã—ã„上ç€ã‚’作æˆ" name="Create New"/>
- <text name="no modify instructions">
- ã‚ãªãŸã¯ã“ã®æœã®ä¿®æ­£ã‚’許ã•れã¦ã„ã¾ã›ã‚“。
- </text>
- <text name="Item Action Label">
- 上ç€ï¼š
- </text>
- <texture_picker label="上åŠèº«ã®ç”Ÿåœ°" name="Upper Fabric" tool_tip="写真をクリックã—ã¦é¸æŠž"/>
- <texture_picker label="下層生地" name="Lower Fabric" tool_tip="写真をクリックã—ã¦é¸æŠž"/>
- <color_swatch label="è‰²ï¼æ˜Žæš—" name="Color/Tint" tool_tip="クリックã—ã¦ã‚«ãƒ©ãƒ¼ãƒ”ッカーを開ãã¾ã™"/>
- <button label="å–り外ã™" label_selected="å–り外ã™" name="Take Off"/>
- <button label="ä¿å­˜" label_selected="ä¿å­˜" name="Save"/>
- <button label="別åã§ä¿å­˜..." label_selected="別åã§ä¿å­˜..." name="Save As"/>
- <button label="戻ã™" label_selected="戻ã™" name="Revert"/>
- </panel>
- <panel label="手袋" name="Gloves">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: 修正ã§ãã¾ã›ã‚“。
- </text>
- <text name="title_loading">
- [DESC]: ロード中...
- </text>
- <text name="title_not_worn">
- [DESC]: 未装ç€ã€‚
- </text>
- <text name="path">
- [PATH] ã«æ‰€åœ¨
- </text>
- <text name="not worn instructions">
- ã‚ãªãŸã®æŒã¡ç‰©ã‹ã‚‰ã‚¢ãƒã‚¿ãƒ¼ã«ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦ã€æ–°ã—ã„æ‰‹è¢‹ã‚’ã¤ã‘ã¾ã™ã€‚ 代ã‚りã«ã€ã¯ã˜ã‚ã‹ã‚‰æ–°ã—ã作æˆã—ã¦ç€ç”¨ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚
- </text>
- <button label="æ–°ã—ã„æ‰‹è¢‹ã‚’作æˆ" label_selected="æ–°ã—ã„æ‰‹è¢‹ã‚’作æˆ" name="Create New"/>
- <text name="no modify instructions">
- ã‚ãªãŸã¯ã“ã®æœã®ä¿®æ­£ã‚’許ã•れã¦ã„ã¾ã›ã‚“。
- </text>
- <text name="Item Action Label">
- 手袋:
- </text>
- <texture_picker label="生地" name="Fabric" tool_tip="写真をクリックã—ã¦é¸æŠž"/>
- <color_swatch label="è‰²ï¼æ˜Žæš—" name="Color/Tint" tool_tip="クリックã—ã¦ã‚«ãƒ©ãƒ¼ãƒ”ッカーを開ãã¾ã™"/>
- <button label="å–り外ã™" label_selected="å–り外ã™" name="Take Off"/>
- <button label="ä¿å­˜" label_selected="ä¿å­˜" name="Save"/>
- <button label="別åã§ä¿å­˜..." label_selected="別åã§ä¿å­˜..." name="Save As"/>
- <button label="戻ã™" label_selected="戻ã™" name="Revert"/>
- </panel>
- <panel label="下ç€ã‚·ãƒ£ãƒ„" name="Undershirt">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: 修正ã§ãã¾ã›ã‚“。
- </text>
- <text name="title_loading">
- [DESC]: ロード中...
- </text>
- <text name="title_not_worn">
- [DESC]: 未装ç€ã€‚
- </text>
- <text name="path">
- [PATH] ã«æ‰€åœ¨
- </text>
- <text name="not worn instructions">
- æŒã¡ç‰©ã‹ã‚‰ã‚ãªãŸã®ã‚¢ãƒã‚¿ãƒ¼ã«1ã¤ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦ã€æ–°ã—ã„下ç€ï¼ˆä¸Šï¼‰ã‚’ç€ã¾ã™ã€‚ 代ã‚りã«ã€ã¯ã˜ã‚ã‹ã‚‰æ–°ã—ã作æˆã—ã¦ç€ç”¨ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚
- </text>
- <button label="æ–°ã—ã„下ç€ã‚·ãƒ£ãƒ„を作æˆ" label_selected="æ–°ã—ã„下ç€ã‚·ãƒ£ãƒ„を作æˆ" name="Create New"/>
- <text name="no modify instructions">
- ã‚ãªãŸã¯ã“ã®æœã®ä¿®æ­£ã‚’許ã•れã¦ã„ã¾ã›ã‚“。
- </text>
- <text name="Item Action Label">
- 下ç€ã‚·ãƒ£ãƒ„:
- </text>
- <texture_picker label="生地" name="Fabric" tool_tip="写真をクリックã—ã¦é¸æŠž"/>
- <color_swatch label="è‰²ï¼æ˜Žæš—" name="Color/Tint" tool_tip="クリックã—ã¦ã‚«ãƒ©ãƒ¼ãƒ”ッカーを開ãã¾ã™"/>
- <button label="å–り外ã™" label_selected="å–り外ã™" name="Take Off"/>
- <button label="ä¿å­˜" label_selected="ä¿å­˜" name="Save"/>
- <button label="別åã§ä¿å­˜..." label_selected="別åã§ä¿å­˜..." name="Save As"/>
- <button label="戻ã™" label_selected="戻ã™" name="Revert"/>
- </panel>
- <panel label="下ç€ãƒ‘ンツ" name="Underpants">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: 修正ã§ãã¾ã›ã‚“。
- </text>
- <text name="title_loading">
- [DESC]: ロード中...
- </text>
- <text name="title_not_worn">
- [DESC]: 未装ç€ã€‚
- </text>
- <text name="path">
- [PATH] ã«æ‰€åœ¨
- </text>
- <text name="not worn instructions">
- ã‚ãªãŸã®æŒã¡ç‰©ã‹ã‚‰ã‚¢ãƒã‚¿ãƒ¼ã«ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦ã€æ–°ã—ã„下ç€ï¼ˆä¸‹ï¼‰ã‚’å±¥ãã¾ã™ã€‚ 代ã‚りã«ã€ã¯ã˜ã‚ã‹ã‚‰æ–°ã—ã作æˆã—ã¦ç€ç”¨ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚
- </text>
- <button label="æ–°ã—ã„パンツを作æˆ" label_selected="æ–°ã—ã„パンツを作æˆ" name="Create New"/>
- <text name="no modify instructions">
- ã‚ãªãŸã¯ã“ã®æœã®ä¿®æ­£ã‚’許ã•れã¦ã„ã¾ã›ã‚“。
- </text>
- <text name="Item Action Label">
- 下ç€ãƒ‘ンツ:
- </text>
- <texture_picker label="生地" name="Fabric" tool_tip="写真をクリックã—ã¦é¸æŠž"/>
- <color_swatch label="è‰²ï¼æ˜Žæš—" name="Color/Tint" tool_tip="クリックã—ã¦ã‚«ãƒ©ãƒ¼ãƒ”ッカーを開ãã¾ã™"/>
- <button label="å–り外ã™" label_selected="å–り外ã™" name="Take Off"/>
- <button label="ä¿å­˜" label_selected="ä¿å­˜" name="Save"/>
- <button label="別åã§ä¿å­˜..." label_selected="別åã§ä¿å­˜..." name="Save As"/>
- <button label="戻ã™" label_selected="戻ã™" name="Revert"/>
- </panel>
- <panel label="スカート" name="Skirt">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: 修正ã§ãã¾ã›ã‚“。
- </text>
- <text name="title_loading">
- [DESC]: ロード中...
- </text>
- <text name="title_not_worn">
- [DESC]: 未装ç€ã€‚
- </text>
- <text name="path">
- [PATH] ã«æ‰€åœ¨
- </text>
- <text name="not worn instructions">
- æŒã¡ç‰©ã‹ã‚‰ã‚ãªãŸã®ã‚¢ãƒã‚¿ãƒ¼ã« 1 ã¤ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦ã€æ–°ã—ã„スカートを履ãã¾ã™ã€‚ 代ã‚りã«ã€ã¯ã˜ã‚ã‹ã‚‰æ–°ã—ã作æˆã—ã¦ç€ç”¨ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚
- </text>
- <button label="スカートを作æˆ" label_selected="スカートを作æˆ" name="Create New"/>
- <text name="no modify instructions">
- ã‚ãªãŸã¯ã“ã®æœã®ä¿®æ­£ã‚’許ã•れã¦ã„ã¾ã›ã‚“。
- </text>
- <text name="Item Action Label">
- スカート:
- </text>
- <texture_picker label="生地" name="Fabric" tool_tip="写真をクリックã—ã¦é¸æŠž"/>
- <color_swatch label="è‰²ï¼æ˜Žæš—" name="Color/Tint" tool_tip="クリックã—ã¦ã‚«ãƒ©ãƒ¼ãƒ”ッカーを開ãã¾ã™"/>
- <button label="å–り外ã™" label_selected="å–り外ã™" name="Take Off"/>
- <button label="ä¿å­˜" label_selected="ä¿å­˜" name="Save"/>
- <button label="別åã§ä¿å­˜..." label_selected="別åã§ä¿å­˜..." name="Save As"/>
- <button label="戻ã™" label_selected="戻ã™" name="Revert"/>
- </panel>
- <panel label="タトゥ" name="Tattoo">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: 修正ä¸å¯
- </text>
- <text name="title_loading">
- [DESC]: ローディング...
- </text>
- <text name="title_not_worn">
- [DESC]: 未ç€ç”¨
- </text>
- <text name="path">
- å‚ç…§ [PATH]
- </text>
- <text name="not worn instructions">
- ã‚ãªãŸã®æŒã¡ç‰©ã‹ã‚‰ã‚¢ãƒã‚¿ãƒ¼ã«ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦ã€æ–°ã—ã„タトゥをã¤ã‘ã¾ã™ã€‚ 代ã‚りã«ã€ã¯ã˜ã‚ã‹ã‚‰æ–°ã—ã作æˆã—ã¦ç€ç”¨ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚
- </text>
- <button label="æ–°ã—ã„タトゥを作æˆ" label_selected="æ–°ã—ã„タトゥを作æˆ" name="Create New"/>
- <text name="no modify instructions">
- ã“ã®ç€ç”¨ç‰©ã‚’修正ã™ã‚‹æ¨©é™ãŒã‚りã¾ã›ã‚“。
- </text>
- <text name="Item Action Label">
- タトゥ:
- </text>
- <texture_picker label="頭部ã®ã‚¿ãƒˆã‚¥ãƒ¼" name="Head Tattoo" tool_tip="クリックã—ã¦å†™çœŸã‚’é¸æŠžã—ã¾ã™"/>
- <texture_picker label="上部ã®ã‚¿ãƒˆã‚¥ãƒ¼" name="Upper Tattoo" tool_tip="クリックã—ã¦å†™çœŸã‚’é¸æŠžã—ã¾ã™"/>
- <texture_picker label="下部ã®ã‚¿ãƒˆã‚¥ãƒ¼" name="Lower Tattoo" tool_tip="クリックã—ã¦å†™çœŸã‚’é¸æŠžã—ã¾ã™"/>
- <button label="å–り外ã™" label_selected="å–り外ã™" name="Take Off"/>
- <button label="ä¿å­˜" label_selected="ä¿å­˜" name="Save"/>
- <button label="別åã§ä¿å­˜..." label_selected="別åã§ä¿å­˜..." name="Save As"/>
- <button label="å…ƒã«æˆ»ã™" label_selected="å…ƒã«æˆ»ã™" name="Revert"/>
- </panel>
- <panel label="アルファ" name="Alpha">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: 修正ä¸å¯
- </text>
- <text name="title_loading">
- [DESC]: ローディング...
- </text>
- <text name="title_not_worn">
- [DESC]: 未ç€ç”¨
- </text>
- <text name="path">
- å‚ç…§ [PATH]
- </text>
- <text name="not worn instructions">
- ã‚ãªãŸã®æŒã¡ç‰©ã‹ã‚‰ã‚¢ãƒã‚¿ãƒ¼ã«ãƒ‰ãƒ©ãƒƒã‚°ã—ã¦ã€æ–°ã—ã„アルファマスクをã¤ã‘ã¾ã™ã€‚ 代ã‚りã«ã€ã¯ã˜ã‚ã‹ã‚‰æ–°ã—ã作æˆã—ã¦ç€ç”¨ã™ã‚‹ã“ã¨ã‚‚ã§ãã¾ã™ã€‚
- </text>
- <button label="æ–°ã—ã„アルファを作æˆ" label_selected="æ–°ã—ã„アルファを作æˆ" name="Create New"/>
- <text name="no modify instructions">
- ã“ã®ç€ç”¨ç‰©ã‚’修正ã™ã‚‹æ¨©é™ãŒã‚りã¾ã›ã‚“。
- </text>
- <text name="Item Action Label">
- アルファ:
- </text>
- <texture_picker label="アルファ(下)" name="Lower Alpha" tool_tip="クリックã—ã¦å†™çœŸã‚’é¸æŠžã—ã¾ã™"/>
- <texture_picker label="アルファ(上)" name="Upper Alpha" tool_tip="クリックã—ã¦å†™çœŸã‚’é¸æŠžã—ã¾ã™"/>
- <texture_picker label="頭部ã®ã‚¢ãƒ«ãƒ•ã‚¡" name="Head Alpha" tool_tip="クリックã—ã¦å†™çœŸã‚’é¸æŠžã—ã¾ã™"/>
- <texture_picker label="ç›®ã®ã‚¢ãƒ«ãƒ•ã‚¡" name="Eye Alpha" tool_tip="クリックã—ã¦å†™çœŸã‚’é¸æŠžã—ã¾ã™"/>
- <texture_picker label="髪ã®ã‚¢ãƒ«ãƒ•ã‚¡" name="Hair Alpha" tool_tip="クリックã—ã¦å†™çœŸã‚’é¸æŠžã—ã¾ã™"/>
- <button label="å–り外ã™" label_selected="å–り外ã™" name="Take Off"/>
- <button label="ä¿å­˜" label_selected="ä¿å­˜" name="Save"/>
- <button label="別åã§ä¿å­˜..." label_selected="別åã§ä¿å­˜..." name="Save As"/>
- <button label="å…ƒã«æˆ»ã™" label_selected="å…ƒã«æˆ»ã™" name="Revert"/>
- </panel>
- </tab_container>
- <button label="スクリプト情報" label_selected="スクリプト情報" name="script_info" tool_tip="ã‚ãªãŸã®ã‚¢ãƒã‚¿ãƒ¼ã«ä»˜ã„ã¦ã„るスクリプトを表示ã—ã¾ã™"/>
- <button label="アウトフィット作æˆ" label_selected="アウトフィット作æˆ" name="make_outfit_btn"/>
- <button label="キャンセル" label_selected="キャンセル" name="Cancel"/>
- <button label="OK" label_selected="OK" name="Ok"/>
-</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_device_settings.xml b/indra/newview/skins/default/xui/ja/floater_device_settings.xml
deleted file mode 100644
index 3ae7356fb6..0000000000
--- a/indra/newview/skins/default/xui/ja/floater_device_settings.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_device_settings" title="ボイスãƒãƒ£ãƒƒãƒˆæ©Ÿå™¨ã®è¨­å®š"/>
diff --git a/indra/newview/skins/default/xui/ja/floater_first_time_tip.xml b/indra/newview/skins/default/xui/ja/floater_first_time_tip.xml
deleted file mode 100644
index fce9185b8a..0000000000
--- a/indra/newview/skins/default/xui/ja/floater_first_time_tip.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="set_name_in_the_cladd">
- <check_box label="クイックヒントをオフã«ã™ã‚‹" name="DontShowFirstTimeTip_checkbox"/>
-</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_im.xml b/indra/newview/skins/default/xui/ja/floater_im.xml
deleted file mode 100644
index 2e8993ec21..0000000000
--- a/indra/newview/skins/default/xui/ja/floater_im.xml
+++ /dev/null
@@ -1,46 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<multi_floater name="im_floater" title="インスタント・メッセージ">
- <string name="only_user_message">
- ã“ã®ã‚»ãƒƒã‚·ãƒ§ãƒ³ã«ã¯ã€ã‚ãªãŸã—ã‹ã„ã¾ã›ã‚“。
- </string>
- <string name="offline_message">
- [FIRST] [LAST]ã¯ã‚ªãƒ•ラインã§ã™ã€‚
- </string>
- <string name="invite_message">
- ã“ã®ãƒœã‚¤ã‚¹ãƒãƒ£ãƒƒãƒˆã«å¿œç­”/接続ã™ã‚‹å ´åˆã¯ã€[BUTTON NAME]をクリックã—ã¦ãã ã•ã„。
- </string>
- <string name="muted_message">
- ã“ã®ä½äººã‚’ブロックã—ã¦ã„ã¾ã™ã€‚ メッセージをé€ã‚‹ã¨ã€ãƒ–ロックãŒè‡ªå‹•çš„ã«è§£é™¤ã•れã¾ã™ã€‚
- </string>
- <string name="generic_request_error">
- è¦æ±‚中ã«ã‚¨ãƒ©ãƒ¼ãŒç™ºç”Ÿã—ã¾ã—ãŸã€‚後ã§ã‚‚ã†ä¸€åº¦è©¦ã—ã¦ãã ã•ã„。
- </string>
- <string name="insufficient_perms_error">
- ã‚ãªãŸã«ã¯å……åˆ†ãªæ¨©é™ãŒã‚りã¾ã›ã‚“。
- </string>
- <string name="session_does_not_exist_error">
- ã“ã®ã‚»ãƒƒã‚·ãƒ§ãƒ³ã¯æ—¢ã«åˆ‡æ–­ã•れã¦ã„ã¾ã™ã€‚
- </string>
- <string name="no_ability_error">
- ã‚ãªãŸã«ã¯ãã®èƒ½åŠ›ãŒã‚りã¾ã›ã‚“。
- </string>
- <string name="not_a_mod_error">
- ã‚ãªãŸã¯ã‚»ãƒƒã‚·ãƒ§ãƒ³ãƒ»ãƒ¢ãƒ‡ãƒ¬ãƒ¼ã‚¿ã§ã¯ã‚りã¾ã›ã‚“。
- </string>
- <string name="muted_error">
- グループモデレータãŒã‚ãªãŸã®ãƒ†ã‚­ã‚¹ãƒˆãƒãƒ£ãƒƒãƒˆã‚’無効化ã—ã¾ã—ãŸ
- </string>
- <!-- ALL of the event strings should have [RECIPIENT] in them -->
- <string name="add_session_event">
- [RECIPIENT] ã¨ã®ãƒãƒ£ãƒƒãƒˆã‚»ãƒƒã‚·ãƒ§ãƒ³ã«ä½äººã‚’追加ã§ãã¾ã›ã‚“。
- </string>
- <string name="message_session_event">
- [RECIPIENT] ã¨ã®ãƒãƒ£ãƒƒãƒˆãƒ»ã‚»ãƒƒã‚·ãƒ§ãƒ³ã«ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã‚’é€ã‚‹ã“ã¨ãŒã§ãã¾ã›ã‚“
- </string>
- <string name="removed_from_group">
- ã‚ãªãŸã¯ã‚°ãƒ«ãƒ¼ãƒ—ã‹ã‚‰å‰Šé™¤ã•れã¾ã—ãŸã€‚
- </string>
- <string name="close_on_no_ability">
- ã“ã®ãƒãƒ£ãƒƒãƒˆãƒ»ã‚»ãƒƒã‚·ãƒ§ãƒ³ã‚’継続ã™ã‚‹ã“ã¨ã¯ã§ãã¾ã›ã‚“
- </string>
-</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 6646cc0b25..dfa1c85ca2 100644
--- a/indra/newview/skins/default/xui/ja/floater_im_session.xml
+++ b/indra/newview/skins/default/xui/ja/floater_im_session.xml
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="panel_im">
<layout_stack name="im_panels">
- <layout_panel label="IM コントロールパãƒãƒ«" name="panel_im_control_panel"/>
<layout_panel>
<line_editor label="宛先" name="chat_editor"/>
</layout_panel>
diff --git a/indra/newview/skins/default/xui/ja/floater_map.xml b/indra/newview/skins/default/xui/ja/floater_map.xml
index 79e211c31e..0676e86703 100644
--- a/indra/newview/skins/default/xui/ja/floater_map.xml
+++ b/indra/newview/skins/default/xui/ja/floater_map.xml
@@ -27,6 +27,9 @@
<floater.string name="ToolTipMsg">
[AGENT][REGION] (ダブルクリックã§åœ°å›³ã‚’é–‹ãã¾ã™ï¼‰
</floater.string>
+ <floater.string name="mini_map_caption">
+ ミニマップ
+ </floater.string>
<text label="北" name="floater_map_north" text="北">
北
</text>
diff --git a/indra/newview/skins/default/xui/ja/floater_my_friends.xml b/indra/newview/skins/default/xui/ja/floater_my_friends.xml
deleted file mode 100644
index b55cdde5b5..0000000000
--- a/indra/newview/skins/default/xui/ja/floater_my_friends.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater min_width="500" name="floater_my_friends" title="連絡先">
- <tab_container name="friends_and_groups">
- <panel label="フレンド" name="friends_panel"/>
- <panel label="グループ" name="groups_panel"/>
- </tab_container>
-</floater>
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
deleted file mode 100644
index 70555e6ded..0000000000
--- a/indra/newview/skins/default/xui/ja/floater_outfit_save_as.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="modal container" title="アウトフィットをä¿å­˜ã™ã‚‹">
- <button label="ä¿å­˜" label_selected="ä¿å­˜" name="Save"/>
- <button label="キャンセル" label_selected="キャンセル" name="Cancel"/>
- <text name="Save item as:">
- ç€ç”¨ã—ã¦ã„ã‚‹ã‚‚ã®ã‚’
-æ–°ã—ã„アウトフィットã«ä¿å­˜ï¼š
- </text>
- <line_editor name="name ed">
- [DESC] (新)
- </line_editor>
-</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_preview_classified.xml b/indra/newview/skins/default/xui/ja/floater_preview_classified.xml
deleted file mode 100644
index ba3bb028b2..0000000000
--- a/indra/newview/skins/default/xui/ja/floater_preview_classified.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="classified_preview" title="クラシファイド広告情報">
- <floater.string name="Title">
- クラシファイド広告: [NAME]
- </floater.string>
-</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_preview_event.xml b/indra/newview/skins/default/xui/ja/floater_preview_event.xml
deleted file mode 100644
index 21f57ca7a3..0000000000
--- a/indra/newview/skins/default/xui/ja/floater_preview_event.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="event_preview" title="イベント情報">
- <floater.string name="Title">
- イベント: [NAME]
- </floater.string>
-</floater>
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 64c577b879..59ce36b022 100644
--- a/indra/newview/skins/default/xui/ja/floater_preview_gesture.xml
+++ b/indra/newview/skins/default/xui/ja/floater_preview_gesture.xml
@@ -24,9 +24,6 @@
<floater.string name="Title">
ジェスãƒãƒ£ãƒ¼ï¼š [NAME]
</floater.string>
- <text name="name_text">
- åå‰ï¼š
- </text>
<text name="desc_label">
説明:
</text>
@@ -45,7 +42,12 @@
<text name="library_label">
ライブラリ:
</text>
- <scroll_list name="library_list"/>
+ <scroll_list name="library_list">
+ <scroll_list.rows name="action_animation" value="アニメーション"/>
+ <scroll_list.rows name="action_sound" value="サウンド"/>
+ <scroll_list.rows name="action_chat" value="ãƒãƒ£ãƒƒãƒˆ"/>
+ <scroll_list.rows name="action_wait" value="待機"/>
+ </scroll_list>
<button label="追加>>" name="add_btn"/>
<text name="steps_label">
手順:
@@ -53,12 +55,15 @@
<button label="上" name="up_btn"/>
<button label="下" name="down_btn"/>
<button label="削除" name="delete_btn"/>
+ <text name="options_text">
+ (オプション)
+ </text>
<radio_group name="animation_trigger_type">
<radio_item label="é–‹å§‹" name="start"/>
<radio_item label="åœæ­¢" name="stop"/>
</radio_group>
<check_box label="アニメーションãŒå®Œäº†ã™ã‚‹ã¾ã§" name="wait_anim_check"/>
- <check_box label="ç§’è¡¨ç¤ºã®æ™‚é–“" name="wait_time_check"/>
+ <check_box label="時間(秒):" name="wait_time_check"/>
<text name="help_label">
待機ステップを入れãªã„é™ã‚Šã¯ã€ã™ã¹ã¦ã®ã‚¹ãƒ†ãƒƒãƒ—ãŒåŒæ™‚ã«èµ·ã“りã¾ã™ã€‚
</text>
diff --git a/indra/newview/skins/default/xui/ja/floater_preview_gesture_info.xml b/indra/newview/skins/default/xui/ja/floater_preview_gesture_info.xml
deleted file mode 100644
index 682b295a14..0000000000
--- a/indra/newview/skins/default/xui/ja/floater_preview_gesture_info.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Gesture" title="ジェスãƒãƒ£ãƒ¼ã®ã‚·ãƒ§ãƒ¼ãƒˆã‚«ãƒƒãƒˆ"/>
diff --git a/indra/newview/skins/default/xui/ja/floater_preview_gesture_shortcut.xml b/indra/newview/skins/default/xui/ja/floater_preview_gesture_shortcut.xml
deleted file mode 100644
index e96a43d0c1..0000000000
--- a/indra/newview/skins/default/xui/ja/floater_preview_gesture_shortcut.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Gesture" title="ジェスãƒãƒ£ãƒ¼ã®ã‚·ãƒ§ãƒ¼ãƒˆã‚«ãƒƒãƒˆ">
- <text name="trigger_label">
- ãƒãƒ£ãƒƒãƒˆï¼š
- </text>
- <text name="key_label">
- キーボード:
- </text>
- <combo_box label="ãªã—" name="modifier_combo" width="60"/>
- <combo_box label="ãªã—" name="key_combo" width="60"/>
- <text name="replace_text" tool_tip="ã“れらã®å˜èªžã«ãƒˆãƒªã‚¬ãƒ¼ã¨ãªã‚‹å˜èªžã‚’ç½®ãæ›ãˆã¾ã™ã€‚ 例ãˆã°ã€ã€Œhowdyã€ã¨ã€Œhelloã€ã‚’ç½®ãæ›ãˆã‚‹ã¨ã€ã€ŒI wanted to say helloã€ã¨ã„ã†ãƒãƒ£ãƒƒãƒˆã¯ã€ã‚¸ã‚§ã‚¹ãƒãƒ£ãƒ¼ã‚’交ãˆãªãŒã‚‰ã®ã€ŒI wanted to say howdyã€ã«å¤‰ã‚りã¾ã™ã€‚">
- ç½®ãæ›ãˆï¼š
- </text>
- <line_editor name="replace_editor" tool_tip="ã“れらã®å˜èªžã«ãƒˆãƒªã‚¬ãƒ¼ã¨ãªã‚‹å˜èªžã‚’ç½®ãæ›ãˆã¾ã™ã€‚ 例ãˆã°ã€ã€Œhowdyã€ã¨ã€Œhelloã€ã‚’ç½®ãæ›ãˆã‚‹ã¨ã€ã€ŒI wanted to say helloã€ã¨ã„ã†ãƒãƒ£ãƒƒãƒˆã¯ã€ã‚¸ã‚§ã‚¹ãƒãƒ£ãƒ¼ã‚’交ãˆãªãŒã‚‰ã®ã€ŒI wanted to say howdyã€ã«å¤‰ã‚りã¾ã™ã€‚"/>
-</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_preview_gesture_steps.xml b/indra/newview/skins/default/xui/ja/floater_preview_gesture_steps.xml
deleted file mode 100644
index 682b295a14..0000000000
--- a/indra/newview/skins/default/xui/ja/floater_preview_gesture_steps.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Gesture" title="ジェスãƒãƒ£ãƒ¼ã®ã‚·ãƒ§ãƒ¼ãƒˆã‚«ãƒƒãƒˆ"/>
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 ca6204424e..f33406da51 100644
--- a/indra/newview/skins/default/xui/ja/floater_publish_classified.xml
+++ b/indra/newview/skins/default/xui/ja/floater_publish_classified.xml
@@ -5,7 +5,7 @@
クラシファイド広告ã¯è¿”金ã§ãã¾ã›ã‚“ã®ã§ã”了承ãã ã•ã„。
</text>
- <spinner label="広告費:" name="price_for_listing" tool_tip="掲載価格" value="50"/>
+ <spinner label="価格:L$" name="price_for_listing" tool_tip="掲載価格" value="50"/>
<text name="l$_text" value="L$"/>
<text name="more_info_text">
詳ã—ã„æƒ…報(クラシファイドヘルプã¸ã®ãƒªãƒ³ã‚¯ï¼‰
diff --git a/indra/newview/skins/default/xui/ja/floater_snapshot.xml b/indra/newview/skins/default/xui/ja/floater_snapshot.xml
index c6e315fe48..05a10f9f6d 100644
--- a/indra/newview/skins/default/xui/ja/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/ja/floater_snapshot.xml
@@ -1,23 +1,75 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Snapshot" title="スナップショット">
+<floater name="Snapshot" title="スナップショットã®ãƒ—レビュー">
<floater.string name="unknown">
䏿˜Ž
</floater.string>
+ <radio_group label="スナップショットã®ç¨®é¡ž" name="snapshot_type_radio">
+ <radio_item label="メール" name="postcard"/>
+ <radio_item label="æŒã¡ç‰©ï¼ˆL$[AMOUNT])" name="texture"/>
+ <radio_item label="コンピューターã«ä¿å­˜" name="local"/>
+ </radio_group>
+ <text name="file_size_label">
+ [SIZE] キロãƒã‚¤ãƒˆ
+ </text>
<button label="スナップショットを更新" name="new_snapshot_btn"/>
- <line_editor label="説明" name="description"/>
- <panel name="panel_snapshot_main">
- <button label="共有" name="share"/>
- <button label="ä¿å­˜" name="save"/>
- <button label="プロフィールã«è¨­å®š" name="set_profile_pic"/>
- </panel>
- <panel name="panel_snapshot_share">
- <button label="Web ã§å…±æœ‰" name="share_to_web"/>
- <button label="スナップショットをメール" name="share_to_email"/>
- <button label="戻る" name="cancel_share"/>
- </panel>
- <panel name="panel_snapshot_save">
- <button label="「æŒã¡ç‰©ã€ã«ä¿å­˜" name="save_to_inventory"/>
- <button label="コンピューターã«ä¿å­˜" name="save_to_computer"/>
- <button label="戻る" name="cancel_save"/>
- </panel>
+ <button label="é€ä¿¡" name="send_btn"/>
+ <button label="ä¿å­˜ï¼ˆL$[AMOUNT])" name="upload_btn"/>
+ <flyout_button label="ä¿å­˜" name="save_btn" tool_tip="ç”»åƒã‚’ファイルã«ä¿å­˜">
+ <flyout_button.item label="ä¿å­˜" name="save_item"/>
+ <flyout_button.item label="別åã§ä¿å­˜..." name="saveas_item"/>
+ </flyout_button>
+ <button label="詳細" name="more_btn" tool_tip="詳ã—ã„設定"/>
+ <button label="簡易" name="less_btn" tool_tip="詳ã—ã„設定"/>
+ <button label="å–り消ã—" name="discard_btn"/>
+ <text name="type_label2">
+ サイズ
+ </text>
+ <text name="format_label">
+ 書å¼
+ </text>
+ <combo_box label="è§£åƒåº¦" name="postcard_size_combo">
+ <combo_box.item label="ç¾åœ¨ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦" name="CurrentWindow"/>
+ <combo_box.item label="640x480" name="640x480"/>
+ <combo_box.item label="800x600" name="800x600"/>
+ <combo_box.item label="1024x768" name="1024x768"/>
+ <combo_box.item label="カスタム" name="Custom"/>
+ </combo_box>
+ <combo_box label="è§£åƒåº¦" name="texture_size_combo">
+ <combo_box.item label="ç¾åœ¨ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦" name="CurrentWindow"/>
+ <combo_box.item label="å°ï¼ˆ128x128)" name="Small(128x128)"/>
+ <combo_box.item label="中(256x256)" name="Medium(256x256)"/>
+ <combo_box.item label="大(512x512)" name="Large(512x512)"/>
+ <combo_box.item label="カスタム" name="Custom"/>
+ </combo_box>
+ <combo_box label="è§£åƒåº¦" name="local_size_combo">
+ <combo_box.item label="ç¾åœ¨ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦" name="CurrentWindow"/>
+ <combo_box.item label="320x240" name="320x240"/>
+ <combo_box.item label="640x480" name="640x480"/>
+ <combo_box.item label="800x600" name="800x600"/>
+ <combo_box.item label="1024x768" name="1024x768"/>
+ <combo_box.item label="1280x1024" name="1280x1024"/>
+ <combo_box.item label="1600x1200" name="1600x1200"/>
+ <combo_box.item label="カスタム" name="Custom"/>
+ </combo_box>
+ <combo_box label="書å¼" name="local_format_combo">
+ <combo_box.item label="PNG" name="PNG"/>
+ <combo_box.item label="JPEG" name="JPEG"/>
+ <combo_box.item label="BMP" name="BMP"/>
+ </combo_box>
+ <spinner label="å¹…" name="snapshot_width"/>
+ <spinner label="高ã•" name="snapshot_height"/>
+ <check_box label="縦横比ã®å›ºå®š" name="keep_aspect_check"/>
+ <slider label="画質" name="image_quality_slider"/>
+ <text name="layer_type_label">
+ キャプãƒãƒ£ï¼š
+ </text>
+ <combo_box label="ç”»åƒãƒ¬ã‚¤ãƒ¤ãƒ¼" name="layer_types">
+ <combo_box.item label="色" name="Colors"/>
+ <combo_box.item label="深度" name="Depth"/>
+ </combo_box>
+ <check_box label="インターフェース" name="ui_check"/>
+ <check_box label="HUD" name="hud_check"/>
+ <check_box label="ä¿å­˜å¾Œã‚‚ã“ã®ã¾ã¾" name="keep_open_check"/>
+ <check_box label="ç”»é¢å…¨ä½“ã‚’é™æ­¢" name="freeze_frame_check"/>
+ <check_box label="自動更新" name="auto_snapshot_check"/>
</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_statistics.xml b/indra/newview/skins/default/xui/ja/floater_statistics.xml
deleted file mode 100644
index de83e97b80..0000000000
--- a/indra/newview/skins/default/xui/ja/floater_statistics.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="stats floater" title="統計"/>
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 4b95aa544f..0caca22bc1 100644
--- a/indra/newview/skins/default/xui/ja/floater_voice_controls.xml
+++ b/indra/newview/skins/default/xui/ja/floater_voice_controls.xml
@@ -19,10 +19,12 @@
<layout_panel name="my_panel">
<text name="user_text" value="マイ ã‚¢ãƒã‚¿ãƒ¼ï¼š"/>
</layout_panel>
- <layout_stack name="voice_effect_and_leave_call_stack">
- <layout_panel name="leave_call_btn_panel">
- <button label="コール終了" name="leave_call_btn"/>
- </layout_panel>
- </layout_stack>
+ <layout_panel name="leave_call_panel">
+ <layout_stack name="voice_effect_and_leave_call_stack">
+ <layout_panel name="leave_call_btn_panel">
+ <button label="コール終了" name="leave_call_btn"/>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
</layout_stack>
</floater>
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 dd7294718c..4557815129 100644
--- 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>
@@ -12,18 +12,19 @@
<string name="new_voice_effect">
(新登場ï¼ï¼‰
</string>
+ <text name="preview_text">
+ プレビュー
+ </text>
<text name="status_text">
- ボイスモーフィングをプレビューã—ã¦ã‚¨ãƒ•ェクトを確ã‹ã‚ã‚‹ã«ã¯ã€éŒ²éŸ³ãƒœã‚¿ãƒ³ã‚’押ã—ã¦ã”自分ã®å£°ã‚’å°‘ã—録音ã—ã¦ã‹ã‚‰ã€ãƒªã‚¹ãƒˆã«ã‚るボイスモーフィングを1ã¤ã‚¯ãƒªãƒƒã‚¯ã—ã¾ã™ã€‚
-
-ã“ã®ã‚¦ã‚¤ãƒ³ãƒ‰ã‚¦ã‚’é–‰ã˜ã‚‹ã¨ã€ã€Œè¿‘ãã®ãƒœã‚¤ã‚¹ãƒãƒ£ãƒƒãƒˆã€ã«å†æŽ¥ç¶šã•れã¾ã™ã€‚
+ 声をテスト録音ã—ã¦ã‹ã‚‰ãƒœã‚¤ã‚¹ã‚¨ãƒ•ェクトを1ã¤ã‚¯ãƒªãƒƒã‚¯ã—ã¦èžã„ã¦ã¿ã¾ã™ã€‚
</text>
- <button label="声を録音" name="record_btn" tool_tip="ã‚ãªãŸã®å£°ã‚’録音ã—ã¾ã™ã€‚"/>
+ <button label="録音" name="record_btn" tool_tip="ã‚ãªãŸã®å£°ã‚’録音ã—ã¾ã™ã€‚"/>
<button label="åœæ­¢" name="record_stop_btn"/>
<text name="voice_morphing_link">
- [[URL]ボイスモーフィングをå–å¾—]
+ [[URL] 今ã™ã申ã—込む]
</text>
<scroll_list name="voice_effect_list" tool_tip="声を録音ã—ã¦ãƒœã‚¤ã‚¹ãƒ¢ãƒ¼ãƒ•ィングを1ã¤ã‚¯ãƒªãƒƒã‚¯ã™ã‚‹ã¨ã€ãã®ã‚¨ãƒ•ェクトをプレビューã§ãã¾ã™ã€‚">
- <scroll_list.columns label="ボイスモーフィング" name="name"/>
+ <scroll_list.columns label="ボイスå" name="name"/>
<scroll_list.columns label="有効期é™" name="expires"/>
</scroll_list>
</floater>
diff --git a/indra/newview/skins/default/xui/ja/floater_wearable_save_as.xml b/indra/newview/skins/default/xui/ja/floater_wearable_save_as.xml
deleted file mode 100644
index de8b590a80..0000000000
--- a/indra/newview/skins/default/xui/ja/floater_wearable_save_as.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="modal container" title=" ">
- <button label="ä¿å­˜" label_selected="ä¿å­˜" name="Save"/>
- <button label="å–り消ã—" label_selected="å–り消ã—" name="Cancel"/>
- <text name="Save item as:">
- アイテムを別åã§æŒã¡ç‰©ã«ä¿å­˜ï¼š
- </text>
- <line_editor name="name ed">
- New [DESC]
- </line_editor>
-</floater>
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 ce9e7d0777..cc07596adc 100644
--- a/indra/newview/skins/default/xui/ja/floater_world_map.xml
+++ b/indra/newview/skins/default/xui/ja/floater_world_map.xml
@@ -22,12 +22,12 @@
<text name="land_sale_label">
土地販売
</text>
- <text name="by_owner_label">
- 所有者ã®è²©å£²
- </text>
<text name="auction_label">
土地オークション
</text>
+ <text name="by_owner_label">
+ 所有者ã®è²©å£²
+ </text>
<button label="ホームã¸" label_selected="ホームã¸" name="Go Home" tool_tip="「ホームã€ã«ãƒ†ãƒ¬ãƒãƒ¼ãƒˆã—ã¾ã™"/>
<text name="Home_label">
ホーム
@@ -39,12 +39,12 @@
<text name="pg_label">
General
</text>
- <check_box initial_value="true" label="Mature" name="event_mature_chk"/>
- <text name="mature_label">
+ <check_box initial_value="true" label="Mature" name="events_mature_chk"/>
+ <text name="events_mature_label">
Moderate
</text>
- <check_box label="Adult" name="event_adult_chk"/>
- <text name="adult_label">
+ <check_box label="Adult" name="events_adult_chk"/>
+ <text name="events_adult_label">
Adult
</text>
</panel>
@@ -67,6 +67,9 @@
<scroll_list.columns label="" name="icon"/>
<scroll_list.columns label="" name="sim_name"/>
</scroll_list>
+ <text name="events_label">
+ 場所:
+ </text>
<button label="テレãƒãƒ¼ãƒˆ" label_selected="テレãƒãƒ¼ãƒˆ" name="Teleport" tool_tip="é¸æŠžã—ãŸå ´æ‰€ã«ãƒ†ãƒ¬ãƒãƒ¼ãƒˆã—ã¾ã™"/>
<button label="SLurl をコピー" name="copy_slurl" tool_tip="ç¾åœ¨åœ°ã® SLurl をコピーã—㦠Web ã§ä½¿ç”¨ã—ã¾ã™"/>
<button label="é¸æŠžã‚’è¡¨ç¤ºã™ã‚‹" label_selected="目的地を表示" name="Show Destination" tool_tip="é¸æŠžã—ãŸå ´æ‰€ã‚’地図ã®ä¸­å¿ƒã«è¡¨ç¤ºã—ã¾ã™"/>
diff --git a/indra/newview/skins/default/xui/ja/language_settings.xml b/indra/newview/skins/default/xui/ja/language_settings.xml
index 72382417d9..a6023f9b56 100644
--- a/indra/newview/skins/default/xui/ja/language_settings.xml
+++ b/indra/newview/skins/default/xui/ja/language_settings.xml
@@ -17,6 +17,7 @@
datetimeToCodes["month"] = "%B"; // August
datetimeToCodes["mthnum"] = "%m"; // 08
datetimeToCodes["day"] = "%d"; // 31
+ datetimeToCodes["sday"] = "%-d"; // 9
datetimeToCodes["hour24"] = "%H"; // 14
datetimeToCodes["hour"] = "%H"; // 14
datetimeToCodes["hour12"] = "%I"; // 02
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 48200cb53f..6b1319e584 100644
--- a/indra/newview/skins/default/xui/ja/menu_attachment_self.xml
+++ b/indra/newview/skins/default/xui/ja/menu_attachment_self.xml
@@ -3,11 +3,13 @@
<menu_item_call label="触る" name="Attachment Object Touch"/>
<menu_item_call label="編集" name="Edit..."/>
<menu_item_call label="å–り外ã™" name="Detach"/>
- <menu_item_call label="下ã«è½ã¨ã™" name="Drop"/>
<menu_item_call label="ç«‹ã¡ä¸ŠãŒã‚‹" name="Stand Up"/>
<menu_item_call label="アウトフィットを変更" name="Change Outfit"/>
+ <menu_item_call label="アウトフィットã®ç·¨é›†" name="Edit Outfit"/>
+ <menu_item_call label="シェイプã®ç·¨é›†" name="Edit My Shape"/>
<menu_item_call label="フレンド" name="Friends..."/>
<menu_item_call label="グループ" name="Groups..."/>
<menu_item_call label="プロフィール" name="Profile..."/>
<menu_item_call label="テクスãƒãƒ£ã®ãƒ‡ãƒãƒƒã‚°" name="Debug..."/>
+ <menu_item_call label="下ã«è½ã¨ã™" name="Drop"/>
</context_menu>
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 6899a819b8..bca90cf5e4 100644
--- a/indra/newview/skins/default/xui/ja/menu_avatar_self.xml
+++ b/indra/newview/skins/default/xui/ja/menu_avatar_self.xml
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Self Pie">
<menu_item_call label="ç«‹ã¡ä¸ŠãŒã‚‹" name="Stand Up"/>
- <context_menu label="脱ã â–¶" name="Take Off &gt;">
- <context_menu label="衣類 ▶" name="Clothes &gt;">
+ <context_menu label="脱ã" name="Take Off &gt;">
+ <context_menu label="衣類" name="Clothes &gt;">
<menu_item_call label="シャツ" name="Shirt"/>
<menu_item_call label="パンツ" name="Pants"/>
<menu_item_call label="スカート" name="Skirt"/>
@@ -16,8 +16,8 @@
<menu_item_call label="アルファ" name="Self Alpha"/>
<menu_item_call label="ã™ã¹ã¦ã®è¡£é¡ž" name="All Clothes"/>
</context_menu>
- <context_menu label="HUD â–¶" name="Object Detach HUD"/>
- <context_menu label="å–り外㙠▶" name="Object Detach"/>
+ <context_menu label="HUD" name="Object Detach HUD"/>
+ <context_menu label="å–り外ã™" name="Object Detach"/>
<menu_item_call label="ã™ã¹ã¦å–り外ã™" name="Detach All"/>
</context_menu>
<menu_item_call label="アウトフィットを変更" name="Chenge Outfit"/>
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 9da909fa17..d984342896 100644
--- a/indra/newview/skins/default/xui/ja/menu_cof_clothing.xml
+++ b/indra/newview/skins/default/xui/ja/menu_cof_clothing.xml
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="COF Clothing">
<menu_item_call label="å–り外ã™" name="take_off"/>
- <menu_item_call label="上ã®ãƒ¬ã‚¤ãƒ¤ãƒ¼ã«ç§»å‹•" name="move_up"/>
- <menu_item_call label="下ã®ãƒ¬ã‚¤ãƒ¤ãƒ¼ã«ç§»å‹•" name="move_down"/>
<menu_item_call label="編集" name="edit"/>
+ <menu_item_call label="交æ›" name="replace"/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_inventory.xml b/indra/newview/skins/default/xui/ja/menu_inventory.xml
index 782b9ea5a5..6999f9a3f3 100644
--- a/indra/newview/skins/default/xui/ja/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/ja/menu_inventory.xml
@@ -61,7 +61,7 @@
<menu_item_call label="コピー" name="Copy"/>
<menu_item_call label="貼り付ã‘" name="Paste"/>
<menu_item_call label="リンクを貼り付ã‘ã‚‹" name="Paste As Link"/>
- <menu_item_call label="リンクを外ã™" name="Remove Link"/>
+ <menu_item_call label="削除" name="Remove Link"/>
<menu_item_call label="削除" name="Delete"/>
<menu_item_call label="システムフォルダを削除ã™ã‚‹" name="Delete System Folder"/>
<menu_item_call label="コンファレンスãƒãƒ£ãƒƒãƒˆã‚’é–‹å§‹ã™ã‚‹" name="Conference Chat Folder"/>
@@ -76,11 +76,10 @@
<menu_item_call label="éžã‚¢ã‚¯ãƒ†ã‚£ãƒ–" name="Deactivate"/>
<menu_item_call label="別åã§ä¿å­˜ã™ã‚‹" name="Save As"/>
<menu_item_call label="自分ã‹ã‚‰å–り外ã™" name="Detach From Yourself"/>
- <menu_item_call label="装ç€" name="Object Wear"/>
+ <menu_item_call label="装ç€" name="Wearable And Object Wear"/>
<menu label="装ç€å…ˆ" name="Attach To"/>
<menu label="HUD 装ç€å…ˆ" name="Attach To HUD"/>
<menu_item_call label="編集" name="Wearable Edit"/>
- <menu_item_call label="装ç€" name="Wearable Wear"/>
<menu_item_call label="追加" name="Wearable Add"/>
<menu_item_call label="å–り外ã™" name="Take Off"/>
<menu_item_call label="ï¼ï¼ã‚ªãƒ—ションãªã—ï¼ï¼" name="--no options--"/>
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 14ad7900e1..42dcd06a07 100644
--- a/indra/newview/skins/default/xui/ja/menu_inventory_add.xml
+++ b/indra/newview/skins/default/xui/ja/menu_inventory_add.xml
@@ -5,6 +5,7 @@
<menu_item_call label="サウンド (L$[COST] )..." name="Upload Sound"/>
<menu_item_call label="アニメーション (L$ [COST] )..." name="Upload Animation"/>
<menu_item_call label="一括 (ファイルã«ã¤ã L$[COST] )..." name="Bulk Upload"/>
+ <menu_item_call label="デフォルトã®ã‚¢ãƒƒãƒ—ロード権é™ã‚’設定" name="perm prefs"/>
</menu>
<menu_item_call label="æ–°è¦ãƒ•ォルダ" name="New Folder"/>
<menu_item_call label="æ–°è¦ã‚¹ã‚¯ãƒªãƒ—ト" name="New Script"/>
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 e3114327a0..f0e5e936ca 100644
--- a/indra/newview/skins/default/xui/ja/menu_inventory_gear_default.xml
+++ b/indra/newview/skins/default/xui/ja/menu_inventory_gear_default.xml
@@ -6,9 +6,10 @@
<menu_item_call label="フィルターを表示" name="show_filters"/>
<menu_item_call label="フィルターをリセット" name="reset_filters"/>
<menu_item_call label="ã™ã¹ã¦ã®ãƒ•ォルダを閉ã˜ã‚‹" name="close_folders"/>
- <menu_item_call label="ã”ã¿ç®±ã‚’空ã«ã™ã‚‹" name="empty_trash"/>
<menu_item_call label="紛失物を空ã«ã™ã‚‹" name="empty_lostnfound"/>
<menu_item_call label="別åã§ãƒ†ã‚¯ã‚¹ãƒãƒ£ã‚’ä¿å­˜" name="Save Texture As"/>
+ <menu_item_call label="共有" name="Share"/>
<menu_item_call label="オリジナルを表示" name="Find Original"/>
<menu_item_call label="ã™ã¹ã¦ã®ãƒªãƒ³ã‚¯ã‚’表示" name="Find All Links"/>
+ <menu_item_call label="ã”ã¿ç®±ã‚’空ã«ã™ã‚‹" name="empty_trash"/>
</menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_object.xml b/indra/newview/skins/default/xui/ja/menu_object.xml
index e59a500534..6724f2d109 100644
--- a/indra/newview/skins/default/xui/ja/menu_object.xml
+++ b/indra/newview/skins/default/xui/ja/menu_object.xml
@@ -1,6 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Object Pie">
- <menu_item_call label="触る" name="Object Touch"/>
+ <menu_item_call label="触る" name="Object Touch">
+ <on_enable parameter="触る" name="EnableTouch"/>
+ </menu_item_call>
<menu_item_call label="編集" name="Edit..."/>
<menu_item_call label="制作" name="Build"/>
<menu_item_call label="é–‹ã" name="Open"/>
@@ -8,12 +10,12 @@
<menu_item_call label="ç«‹ã¡ä¸ŠãŒã‚‹" name="Object Stand Up"/>
<menu_item_call label="オブジェクトã®ãƒ—ロフィール" name="Object Inspect"/>
<menu_item_call label="ズームイン" name="Zoom In"/>
- <context_menu label="è£…ç€ â–¶" name="Put On">
+ <context_menu label="装ç€" name="Put On">
<menu_item_call label="装ç€" name="Wear"/>
- <context_menu label="å–り付ã‘ã‚‹ â–¶" name="Object Attach"/>
- <context_menu label="HUD ã‚’å–り付ã‘ã‚‹ â–¶" name="Object Attach HUD"/>
+ <context_menu label="å–り付ã‘ã‚‹" name="Object Attach"/>
+ <context_menu label="HUD ã‚’å–り付ã‘ã‚‹" name="Object Attach HUD"/>
</context_menu>
- <context_menu label="å–り除ã â–¶" name="Remove">
+ <context_menu label="å–り除ã" name="Remove">
<menu_item_call label="嫌ãŒã‚‰ã›ã®å ±å‘Š" name="Report Abuse..."/>
<menu_item_call label="ブロック" name="Object Mute"/>
<menu_item_call label="è¿”å´" name="Return..."/>
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 e68ed5ccc7..d31b34deeb 100644
--- a/indra/newview/skins/default/xui/ja/menu_outfit_gear.xml
+++ b/indra/newview/skins/default/xui/ja/menu_outfit_gear.xml
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu name="Gear Outfit">
<menu_item_call label="ç€ã‚‹ - ç€ç”¨ä¸­ã®ã‚¢ã‚¦ãƒˆãƒ•ィットを入れ替ãˆã‚‹" name="wear"/>
+ <menu_item_call label="ç€ã‚‹ - ç€ç”¨ä¸­ã®ã‚¢ã‚¦ãƒˆãƒ•ィットã«è¿½åŠ ã™ã‚‹" name="wear_add"/>
<menu_item_call label="å–り外㙠- ç€ç”¨ä¸­ã®ã‚¢ã‚¦ãƒˆãƒ•ィットã‹ã‚‰å–り除ã" name="take_off"/>
<menu label="衣類" name="New Clothes">
<menu_item_call label="シャツ" name="New Shirt"/>
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 8f4b61b702..9491c22f31 100644
--- a/indra/newview/skins/default/xui/ja/menu_outfit_tab.xml
+++ b/indra/newview/skins/default/xui/ja/menu_outfit_tab.xml
@@ -4,6 +4,6 @@
<menu_item_call label="ç€ã‚‹ - ç€ç”¨ä¸­ã®ã‚¢ã‚¦ãƒˆãƒ•ィットã«è¿½åŠ ã™ã‚‹" name="wear_add"/>
<menu_item_call label="å–り外㙠- ç€ç”¨ä¸­ã®ã‚¢ã‚¦ãƒˆãƒ•ィットã‹ã‚‰å–り除ã" name="take_off"/>
<menu_item_call label="アウトフィットã®ç·¨é›†" name="edit"/>
- <menu_item_call label="åå‰ã®å¤‰æ›´" name="rename"/>
+ <menu_item_call label="アウトフィットã®åå‰ã‚’変更ã™ã‚‹" name="rename"/>
<menu_item_call label="アウトフィットを削除ã™ã‚‹" name="delete"/>
</context_menu>
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 3ef83756cb..64d8ded722 100644
--- a/indra/newview/skins/default/xui/ja/menu_participant_list.xml
+++ b/indra/newview/skins/default/xui/ja/menu_participant_list.xml
@@ -11,7 +11,7 @@
<menu_item_check label="人ã®ã‚¢ã‚¤ã‚³ãƒ³è¡¨ç¤º" name="View Icons"/>
<menu_item_check label="ボイスをブロック" name="Block/Unblock"/>
<menu_item_check label="文字をブロック" name="MuteText"/>
- <context_menu label="モデレーターã®ã‚ªãƒ—ション &gt;" name="Moderator Options">
+ <context_menu label="モデレーターã®ã‚ªãƒ—ション" name="Moderator Options">
<menu_item_check label="文字ãƒãƒ£ãƒƒãƒˆã‚’許å¯" name="AllowTextChat"/>
<menu_item_call label="ã“ã®å‚加者をミュートã™ã‚‹" name="ModerateVoiceMuteSelected"/>
<menu_item_call label="ã“ã®å‚加者ã®ãƒŸãƒ¥ãƒ¼ãƒˆã‚’解除ã™ã‚‹" name="ModerateVoiceUnMuteSelected"/>
diff --git a/indra/newview/skins/default/xui/ja/menu_topinfobar.xml b/indra/newview/skins/default/xui/ja/menu_topinfobar.xml
new file mode 100644
index 0000000000..1a67a2a8f7
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/menu_topinfobar.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="menu_topinfobar">
+ <menu_item_check label="座標を表示" name="Show Coordinates"/>
+ <menu_item_check label="区画ã®ãƒ—ロパティを表示" name="Show Parcel Properties"/>
+ <menu_item_call label="ランドマーク" name="Landmark"/>
+ <menu_item_call label="コピー" name="Copy"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_viewer.xml b/indra/newview/skins/default/xui/ja/menu_viewer.xml
index 1573177914..f6476857d2 100644
--- a/indra/newview/skins/default/xui/ja/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/ja/menu_viewer.xml
@@ -94,7 +94,7 @@
<menu_item_call label="ã‚¹ã‚¯ãƒªãƒ—ãƒˆã‚’å®Ÿè¡Œåœæ­¢ã«ã™ã‚‹" name="Set Scripts to Not Running"/>
</menu>
<menu label="オプション" name="Options">
- <menu_item_call label="デフォルトã®ã‚¢ãƒƒãƒ—ロード権é™ã‚’設定ã™ã‚‹" name="perm prefs"/>
+ <menu_item_call label="デフォルトã®ã‚¢ãƒƒãƒ—ロード権é™ã‚’設定" name="perm prefs"/>
<menu_item_check label="権é™ã®è©³ç´°ã‚’表示ã™ã‚‹" name="DebugPermissions"/>
<menu_item_check label="ç§ã®ã‚ªãƒ–ジェクトã ã‘ã‚’é¸æŠžã™ã‚‹" name="Select Only My Objects"/>
<menu_item_check label="動的オブジェクトã ã‘ã‚’é¸æŠžã™ã‚‹" name="Select Only Movable Objects"/>
@@ -178,6 +178,7 @@
<menu_item_check label="検索" name="Search"/>
<menu_item_call label="キーをリリース" name="Release Keys"/>
<menu_item_call label="UI ã®ã‚µã‚¤ã‚ºã‚’デフォルトã«è¨­å®šã™ã‚‹" name="Set UI Size to Default"/>
+ <menu_item_check label="アドãƒãƒ³ã‚¹ãƒ¡ãƒ‹ãƒ¥ãƒ¼ã‚’表示 - レガシーã®ã‚·ãƒ§ãƒ¼ãƒˆã‚«ãƒƒãƒˆ" name="Show Advanced Menu - legacy shortcut"/>
<menu_item_check label="常ã«èµ°ã‚‹" name="Always Run"/>
<menu_item_check label="飛行ã™ã‚‹" name="Fly"/>
<menu_item_call label="ウィンドウを閉ã˜ã‚‹" name="Close Window"/>
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 0d8049bc0a..273fbd856c 100644
--- a/indra/newview/skins/default/xui/ja/menu_wearable_list_item.xml
+++ b/indra/newview/skins/default/xui/ja/menu_wearable_list_item.xml
@@ -1,11 +1,12 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Outfit Wearable Context Menu">
- <menu_item_call label="ç€ã‚‹" name="wear"/>
+ <menu_item_call label="交æ›" name="wear_replace"/>
+ <menu_item_call label="装ç€" name="wear_wear"/>
<menu_item_call label="追加" name="wear_add"/>
<menu_item_call label="å–り外ã™" name="take_off_or_detach"/>
<menu_item_call label="å–り外ã™" name="detach"/>
- <context_menu label="è£…ç€ â–¶" name="wearable_attach_to"/>
- <context_menu label="HUDã«è£…ç€ â–¶" name="wearable_attach_to_hud"/>
+ <context_menu label="装ç€" name="wearable_attach_to"/>
+ <context_menu label="HUDã«è£…ç€" name="wearable_attach_to_hud"/>
<menu_item_call label="å–り外ã™" name="take_off"/>
<menu_item_call label="編集" name="edit"/>
<menu_item_call label="オブジェクトã®ãƒ—ロフィール" name="object_profile"/>
diff --git a/indra/newview/skins/default/xui/ja/menu_wearing_gear.xml b/indra/newview/skins/default/xui/ja/menu_wearing_gear.xml
new file mode 100644
index 0000000000..f79b59ee05
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/menu_wearing_gear.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="Gear Wearing">
+ <menu_item_call label="アウトフットã®ç·¨é›†" name="edit"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/ja/menu_wearing_tab.xml b/indra/newview/skins/default/xui/ja/menu_wearing_tab.xml
new file mode 100644
index 0000000000..1336df94b0
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/menu_wearing_tab.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<context_menu name="Wearing">
+ <menu_item_call label="アウトフットã®ç·¨é›†" name="edit"/>
+</context_menu>
diff --git a/indra/newview/skins/default/xui/ja/notifications.xml b/indra/newview/skins/default/xui/ja/notifications.xml
index 42f8ccbb32..709797cb58 100644
--- a/indra/newview/skins/default/xui/ja/notifications.xml
+++ b/indra/newview/skins/default/xui/ja/notifications.xml
@@ -380,6 +380,10 @@ L$ ãŒä¸è¶³ã—ã¦ã„ã‚‹ã®ã§ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã«å‚加ã™ã‚‹ã“ã¨ãŒã§ãã
&lt;nolink&gt;[PICK]&lt;/nolink&gt; を削除ã—ã¾ã™ã‹ï¼Ÿ
<usetemplate name="okcancelbuttons" notext="å–り消ã—" yestext="OK"/>
</notification>
+ <notification name="DeleteOutfits">
+ é¸æŠžã—ãŸã‚¢ã‚¦ãƒˆãƒ•ィットを削除ã—ã¾ã™ã‹ï¼Ÿ
+ <usetemplate name="okcancelbuttons" notext="å–り消ã—" yestext="OK"/>
+ </notification>
<notification name="PromptGoToEventsPage">
[SECOND_LIFE] イベント Web ページã«ç§»å‹•ã—ã¾ã™ã‹ï¼Ÿ
<url name="url">
@@ -638,8 +642,7 @@ L$ ãŒä¸è¶³ã—ã¦ã„ã‚‹ã®ã§ã“ã®ã‚°ãƒ«ãƒ¼ãƒ—ã«å‚加ã™ã‚‹ã“ã¨ãŒã§ãã
次ã®ãƒ•ァイルã®ã‚¨ãƒ³ã‚³ãƒ¼ãƒ‰ãŒã§ãã¾ã›ã‚“: [FILE]
</notification>
<notification name="CorruptedProtectedDataStore">
- ä¿è­·ã•れã¦ã„るデータを読ã¿ã¨ã‚‹ã“ã¨ãŒå‡ºæ¥ãªã„ãŸã‚リセットã•れã¾ã™ã€‚
- ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯è¨­å®šã‚’変更ã™ã‚‹ã¨èµ·ã“ã‚‹ã“ã¨ãŒã‚りã¾ã™ã€‚
+ ユーザーåã¨ãƒ‘スワードを自動入力ã§ãã¾ã›ã‚“。ã“れã¯ãƒãƒƒãƒˆãƒ¯ãƒ¼ã‚¯è¨­å®šãŒå¤‰æ›´ã•れãŸå ´åˆã«èµ·ã“りã¾ã™
<usetemplate name="okbutton" yestext="OK"/>
</notification>
<notification name="CorruptResourceFile">
@@ -2087,11 +2090,6 @@ Web ページã«ãƒªãƒ³ã‚¯ã™ã‚‹ã¨ã€ä»–人ãŒã“ã®å ´æ‰€ã«ç°¡å˜ã«ã‚¢ã‚¯ã‚»ã
インワールド㨠Web サイトã®ã‚¹ãƒŠãƒƒãƒ—ショットをアップロード中ã§ã™...
ï¼ˆæ‰€è¦æ™‚間:約 5 分)
</notification>
- <notification name="UploadConfirmation">
- アップロード料金㯠L$[AMOUNT] ã§ã™ã€‚
-ç¶šã‘ã¾ã™ã‹ï¼Ÿ
- <usetemplate name="okcancelbuttons" notext="キャンセル" yestext="アップロード"/>
- </notification>
<notification name="UploadPayment">
アップロード㫠L$ [AMOUNT] 支払ã„ã¾ã—ãŸã€‚
</notification>
@@ -2519,9 +2517,6 @@ Web ページã«ãƒªãƒ³ã‚¯ã™ã‚‹ã¨ã€ä»–人ãŒã“ã®å ´æ‰€ã«ç°¡å˜ã«ã‚¢ã‚¯ã‚»ã
<notification name="FailedToFindWearable">
データベース㫠[DESC] ã¨ã„ã†åå‰ã® [TYPE] ãŒè¦‹ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸã€‚
</notification>
- <notification name="ShareToWebFailed">
- Web サイトã¸ã®ç”»åƒã®ã‚¢ãƒƒãƒ—ロードã«å¤±æ•—ã—ã¾ã—ãŸã€‚
- </notification>
<notification name="InvalidWearable">
ç€ç”¨ã—よã†ã¨ã—ã¦ã„るアイテムã¯ã‚ãªãŸã®ãƒ“ューワã§ã¯èª­ã¿è¾¼ã‚€ã“ã¨ãŒã§ãã¾ã›ã‚“。 [APP_NAME] ã®ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’アップグレードã—ã¦ã‹ã‚‰ã“ã®ã‚¢ã‚¤ãƒ†ãƒ ã‚’ç€ç”¨ã—ã¦ãã ã•ã„。
</notification>
@@ -2805,8 +2800,8 @@ M キーを押ã—ã¦å¤‰æ›´ã—ã¾ã™ã€‚
ã‚¢ãƒã‚¿ãƒ¼ã€Œ NAME ã€ãŒå®Œå…¨ã«èª­ã¿è¾¼ã¾ã‚Œã¾ã—ãŸã€‚
</notification>
<notification name="AvatarRezSelfBakeNotification">
- (作æˆå¾Œ[EXISTENCE]秒経éŽï¼‰
-&apos;[BODYREGION]&apos;ã®[RESOLUTION]ã®ãƒ™ãƒ¼ã‚¯ãƒ‰ãƒ†ã‚¯ã‚¹ãƒãƒ£ã¯[TIME]秒後ã«ã‚¢ãƒƒãƒ—ロードã•れã¾ã—ãŸã€‚
+ ( 作æˆå¾Œ[EXISTENCE]秒経éŽï¼‰
+&apos;[BODYREGION]&apos; ã®[RESOLUTION]ã®ãƒ™ãƒ¼ã‚¯ãƒ‰ãƒ†ã‚¯ã‚¹ãƒãƒ£ã¯[TIME]秒後ã«[ACTION]ã•れã¾ã—ãŸã€‚
</notification>
<notification name="ConfirmLeaveCall">
ã“ã®ã‚³ãƒ¼ãƒ«ã‹ã‚‰æŠœã‘ã¾ã™ã‹ï¼Ÿ
@@ -2844,4 +2839,7 @@ M キーを押ã—ã¦å¤‰æ›´ã—ã¾ã™ã€‚
自分ã®åœŸåœ°ã‚’ãŠæŒã¡ã®å ´åˆã€ã€Œãƒ›ãƒ¼ãƒ ã€ã«è¨­å®šã§ãã¾ã™ã€‚
ãŠæŒã¡ã§ãªã„å ´åˆã¯ã€åœ°å›³ã§ã€Œã‚¤ãƒ³ãƒ•ã‚©ãƒãƒ–ã€ã‚’ãŠæŽ¢ã—ãã ã•ã„。
</global>
+ <global name="You died and have been teleported to your home location">
+ 死んã§ã—ã¾ã£ãŸã®ã§ã€ãƒ›ãƒ¼ãƒ ã«ãƒ†ãƒ¬ãƒãƒ¼ãƒˆã•れã¾ã—ãŸã€‚
+ </global>
</notifications>
diff --git a/indra/newview/skins/default/xui/ja/panel_audio_device.xml b/indra/newview/skins/default/xui/ja/panel_audio_device.xml
deleted file mode 100644
index 2352c60989..0000000000
--- a/indra/newview/skins/default/xui/ja/panel_audio_device.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<panel name="device_settings">
- <text name="Audio Devices">
- オーディオ機器
- </text>
- <text name="Output device (speakers):">
- 出力機器 (スピーカー):
- </text>
- <text name="Input device (microphone):">
- 入力機器(マイクロフォン):
- </text>
- <text name="Input level:">
- 入力レベル
- </text>
- <text_editor name="voice_intro_text1">
- スライダを調節ã—ã¦ã€ä»–ã®ä½äººã«èžã“ãˆã‚‹ã‚ãªãŸã®éŸ³é‡ã‚’制御ã—ã¾ã™ã€‚マイクロフォンã«å‘ã‹ã£ã¦è©±ã™ã ã‘ã§ã€å…¥åŠ›ãƒ¬ãƒ™ãƒ«ã‚’ãƒ†ã‚¹ãƒˆã§ãã¾ã™ã€‚
- </text_editor>
- <volume_slider name="mic_volume_slider"
- tool_tip="ã“ã®ã‚¹ãƒ©ã‚¤ãƒ€ãƒ¼ã‚’使用ã—ã¦ã€ãƒœãƒªãƒ¥ãƒ¼ãƒ ã‚’変ãˆã¦ãã ã•ã„。" />
- <text name="wait_text">
- ãŠå¾…ã¡ãã ã•ã„
- </text>
- <text name="default_text">
- デフォルト
- </text>
-</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 de764d8025..95a5a26d4e 100644
--- 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
@@ -1,4 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="wearable_item">
<text name="item_name" value="..."/>
+ <panel name="btn_lock" tool_tip="ã“れを編集ã™ã‚‹æ¨©é™ãŒã‚りã¾ã›ã‚“"/>
+ <panel name="btn_edit_panel">
+ <button name="btn_edit" tool_tip="ã“ã®ã‚·ã‚§ã‚¤ãƒ—を編集"/>
+ </panel>
</panel>
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 de764d8025..158b2fa6ac 100644
--- a/indra/newview/skins/default/xui/ja/panel_clothing_list_item.xml
+++ b/indra/newview/skins/default/xui/ja/panel_clothing_list_item.xml
@@ -1,4 +1,9 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="wearable_item">
+ <button name="btn_delete" tool_tip="アウトフィットã‹ã‚‰å–り除ã"/>
<text name="item_name" value="..."/>
+ <panel name="btn_lock" tool_tip="ã“れを編集ã™ã‚‹æ¨©é™ãŒã‚りã¾ã›ã‚“"/>
+ <panel name="btn_edit_panel">
+ <button name="btn_edit" tool_tip="ã“ã®ç€ç”¨ç‰©ã‚’編集"/>
+ </panel>
</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 91d90a5660..a1e30283ee 100644
--- 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
@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="deletable_wearable_item">
+ <button name="btn_delete" tool_tip="アウトフィットã‹ã‚‰å–り除ã"/>
<text name="item_name" value="..."/>
</panel>
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 6af84de0c7..0395d4edd8 100644
--- 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
@@ -1,4 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="dummy_clothing_item">
<text name="item_name" value="..."/>
+ <panel name="btn_add_panel">
+ <button name="btn_add" tool_tip="ã“ã®ç¨®é¡žã®ã‚¢ã‚¤ãƒ†ãƒ ã‚’追加ã™ã‚‹"/>
+ </panel>
</panel>
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 c3f8c12620..f4cfe6d83f 100644
--- a/indra/newview/skins/default/xui/ja/panel_edit_tattoo.xml
+++ b/indra/newview/skins/default/xui/ja/panel_edit_tattoo.xml
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="edit_tattoo_panel">
<panel name="avatar_tattoo_color_panel">
- <texture_picker label="頭部ã®ã‚¿ãƒˆã‚¥ãƒ¼" name="Head Tattoo" tool_tip="クリックã—ã¦å†™çœŸã‚’é¸æŠž" width="70"/>
- <texture_picker label="上部ã®ã‚¿ãƒˆã‚¥ãƒ¼" name="Upper Tattoo" tool_tip="クリックã—ã¦å†™çœŸã‚’é¸æŠž" width="70"/>
- <texture_picker label="下部ã®ã‚¿ãƒˆã‚¥ãƒ¼" name="Lower Tattoo" tool_tip="クリックã—ã¦å†™çœŸã‚’é¸æŠž" width="70"/>
+ <texture_picker label="頭部ã®ã‚¿ãƒˆã‚¥ãƒ¼" name="Head Tattoo" tool_tip="クリックã—ã¦å†™çœŸã‚’é¸æŠž"/>
+ <texture_picker label="上部ã®ã‚¿ãƒˆã‚¥ãƒ¼" name="Upper Tattoo" tool_tip="クリックã—ã¦å†™çœŸã‚’é¸æŠž"/>
+ <texture_picker label="下部ã®ã‚¿ãƒˆã‚¥ãƒ¼" name="Lower Tattoo" tool_tip="クリックã—ã¦å†™çœŸã‚’é¸æŠž"/>
<color_swatch label="色・色彩é…åˆ" name="Color/Tint" tool_tip="クリックã—ã¦ã‚«ãƒ©ãƒ¼ãƒ”ッカーを開ãã¾ã™"/>
</panel>
</panel>
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 d63f047728..426f738b33 100644
--- a/indra/newview/skins/default/xui/ja/panel_edit_wearable.xml
+++ b/indra/newview/skins/default/xui/ja/panel_edit_wearable.xml
@@ -90,6 +90,7 @@
<string name="tattoo_desc_text">
タトゥ:
</string>
+ <labeled_back_button label="ä¿å­˜" name="back_btn" tool_tip="アウトフィットã®ç·¨é›†ã«æˆ»ã‚‹"/>
<text name="edit_wearable_title" value="シェイプを編集中"/>
<panel label="シャツ" name="wearable_type_panel">
<text name="description_text" value="シェイプ:"/>
@@ -102,6 +103,6 @@
</panel>
<panel name="button_panel">
<button label="別åã§ä¿å­˜" name="save_as_button"/>
- <button label="å…ƒã«æˆ»ã™" name="revert_button"/>
+ <button label="å¤‰æ›´ã‚’å…ƒã«æˆ»ã™" name="revert_button"/>
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_friends.xml b/indra/newview/skins/default/xui/ja/panel_friends.xml
deleted file mode 100644
index 0c7114dbb7..0000000000
--- a/indra/newview/skins/default/xui/ja/panel_friends.xml
+++ /dev/null
@@ -1,32 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="friends">
- <string name="Multiple">
- 複数ã®ãƒ•レンド
- </string>
- <scroll_list name="friend_list" tool_tip="複数ã®ãƒ•ãƒ¬ãƒ³ãƒ‰ã‚’é¸æŠžã™ã‚‹ã«ã¯ã€Shift キーã¾ãŸã¯ Ctrl キーを押ã—ãªãŒã‚‰åå‰ã‚’クリックã—ã¾ã™ã€‚">
- <column name="icon_online_status" tool_tip="オンライン状態"/>
- <column label="åå‰" name="friend_name" tool_tip="åå‰"/>
- <column name="icon_visible_online" tool_tip="フレンドã¯ã€ã‚ãªãŸãŒã‚ªãƒ³ãƒ©ã‚¤ãƒ³ã‹ã©ã†ã‹ç¢ºèªã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚"/>
- <column name="icon_visible_map" tool_tip="フレンドã¯ã€åœ°å›³ã§ã‚ãªãŸã®å±…場所を見ã¤ã‘ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚"/>
- <column name="icon_edit_mine" tool_tip="フレンドã¯ã€ã‚ªãƒ–ジェクトを編集ã€å‰Šé™¤ã€ã¾ãŸã¯å–å¾—ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚"/>
- <column name="icon_edit_theirs" tool_tip="ã‚ãªãŸã¯ã€ã“ã®ãƒ•レンドã®ã‚ªãƒ–ジェクトを編集ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™ã€‚"/>
- </scroll_list>
- <panel name="rights_container">
- <text name="friend_name_label" right="-10">
- ãƒ•ãƒ¬ãƒ³ãƒ‰ã‚’é¸æŠžã—ã¦æ¨©åˆ©ã‚’変更...
- </text>
- <check_box label="オンライン状態ã®ç¢ºèªã‚’許å¯ã™ã‚‹" name="online_status_cb" tool_tip="コーリングカードã‚ã‚‹ã„ã¯ãƒ•レンドリストã§ã“ã®ãƒ•レンドãŒã‚ªãƒ³ãƒ©ã‚¤ãƒ³çŠ¶æ…‹ã‚’ç¢ºèªã§ãるよã†è¨­å®šã—ã¾ã™"/>
- <check_box label="世界地図上ã§ã‚ãªãŸã®å±…場所を検索å¯èƒ½ã«ã™ã‚‹" name="map_status_cb" tool_tip="ã“ã®ãƒ•レンドãŒåœ°å›³ã§ç§ã®ä½ç½®ã‚’発見ã§ãるよã†ã«è¨­å®šã—ã¾ã™"/>
- <check_box label="オブジェクトã®ä¿®æ­£ã‚’許å¯ã™ã‚‹" name="modify_status_cb" tool_tip="ã“ã®ãƒ•レンドã«ç§ã®ã‚ªãƒ–ジェクトを改造ã™ã‚‹è¨±å¯ã‚’与ãˆã¾ã™"/>
- <text name="process_rights_label">
- 権利変更をプロセス中...
- </text>
- </panel>
- <pad left="-95"/>
- <button label="IM・コール" name="im_btn" tool_tip="インスタントメッセージセッションを開ãã¾ã™ã€‚" width="90"/>
- <button label="プロフィール" name="profile_btn" tool_tip="写真ã€ã‚°ãƒ«ãƒ¼ãƒ—ã€ãŠã‚ˆã³ãã®ä»–ã®æƒ…報を表示ã—ã¾ã™ã€‚" width="90"/>
- <button label="テレãƒãƒ¼ãƒˆ" name="offer_teleport_btn" tool_tip="ã“ã®ãƒ•レンドã«ã€ã‚ãªãŸã®ç¾åœ¨åœ°ã¸ã®ãƒ†ãƒ¬ãƒãƒ¼ãƒˆã‚’申ã—出ã¾ã™ã€‚" width="90"/>
- <button label="支払ã†" name="pay_btn" tool_tip="リンデンドル (L$) ã‚’ã“ã®ãƒ•レンドã«ã‚ã’ã¾ã™ã€‚" width="90"/>
- <button label="削除" name="remove_btn" tool_tip="ã“ã®äººç‰©ã‚’フレンドリストã‹ã‚‰å¤–ã—ã¾ã™ã€‚" width="90"/>
- <button label="追加" name="add_btn" tool_tip="フレンド登録を申ã—出ã¾ã™ã€‚" width="90"/>
-</panel>
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 bfe69cbdd9..a1bfb67823 100644
--- a/indra/newview/skins/default/xui/ja/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/ja/panel_group_general.xml
@@ -48,7 +48,7 @@
<spinner label="L$" name="spin_enrollment_fee" tool_tip="「入会費ã€ã«ãƒã‚§ãƒƒã‚¯ãŒå…¥ã£ã¦ã„ã‚‹å ´åˆã€æ–°è¦ãƒ¡ãƒ³ãƒãƒ¼ã¯æŒ‡å®šã•れãŸå…¥ä¼šè²»ã‚’支払ã‚ãªã‘れã°ã‚°ãƒ«ãƒ¼ãƒ—ã«å…¥ã‚Œã¾ã›ã‚“。"/>
<combo_box name="group_mature_check" tool_tip="ã‚ãªãŸã®ã‚°ãƒ«ãƒ¼ãƒ—ã«ã€ŒModerateã€ã«ãƒ¬ãƒ¼ãƒˆè¨­å®šã•ã‚ŒãŸæƒ…å ±ãŒã‚ã‚‹ã‹ã©ã†ã‹ã‚’設定ã—ã¾ã™">
<combo_item name="select_mature">
- - レーティングã®é¸æŠž -
+ - レーティング区分を指定 -
</combo_item>
<combo_box.item label="「Moderateã€ã‚³ãƒ³ãƒ†ãƒ³ãƒ„" name="mature"/>
<combo_box.item label="「Generalã€ã‚³ãƒ³ãƒ†ãƒ³ãƒ„" name="pg"/>
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 0b508bd79d..96e0382975 100644
--- a/indra/newview/skins/default/xui/ja/panel_group_notices.xml
+++ b/indra/newview/skins/default/xui/ja/panel_group_notices.xml
@@ -21,7 +21,7 @@
<text name="notice_list_none_found">
見ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸ
</text>
- <button label="æ–°ã—ã„通知を作æˆ" label_selected="æ–°ã—ã„通知を作æˆ" name="create_new_notice" tool_tip="æ–°ã—ã„通知を作æˆã—ã¾ã™"/>
+ <button label="æ–°ã—ã„通知" label_selected="æ–°ã—ã„通知を作æˆ" name="create_new_notice" tool_tip="æ–°ã—ã„通知を作æˆã—ã¾ã™"/>
<button label="æ›´æ–°" label_selected="リスト更新" name="refresh_notices" tool_tip="通知リストを更新ã—ã¾ã™"/>
<panel label="æ–°ã—ã„通知を作æˆ" name="panel_create_new_notice">
<text name="lbl">
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 8a629be910..be203b0761 100644
--- a/indra/newview/skins/default/xui/ja/panel_group_roles.xml
+++ b/indra/newview/skins/default/xui/ja/panel_group_roles.xml
@@ -13,6 +13,9 @@
Ctrl キーを押ã—ãªãŒã‚‰ãƒ¡ãƒ³ãƒãƒ¼åをクリックã™ã‚‹ã¨
複数ã®äººã‚’é¸æŠžã§ãã¾ã™ã€‚
</panel.string>
+ <panel.string name="donation_area">
+ [AREA] 平方メートル
+ </panel.string>
<filter_editor label="メンãƒãƒ¼ã‚’é¸åˆ¥" name="filter_input"/>
<name_list name="member_list">
<name_list.columns label="メンãƒãƒ¼" name="name"/>
diff --git a/indra/newview/skins/default/xui/ja/panel_groups.xml b/indra/newview/skins/default/xui/ja/panel_groups.xml
deleted file mode 100644
index de81a6431a..0000000000
--- a/indra/newview/skins/default/xui/ja/panel_groups.xml
+++ /dev/null
@@ -1,16 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<panel name="groups">
- <text name="groupdesc">
- アクティブãªã‚°ãƒ«ãƒ¼ãƒ—ã¯å¤ªå­—ã§è¡¨ç¤ºã•れã¦ã„ã¾ã™
- </text>
- <text name="groupcount" width="270">
- [COUNT] ã®ã‚°ãƒ«ãƒ¼ãƒ—ã«æ‰€å±žã—ã¦ã„ã¾ã™ (最大[MAX])
- </text>
- <button label="IM・コール" name="IM"
- tool_tip="インスタントメッセージ・セッションを開ã" />
- <button label="情報" name="Info" />
- <button label="アクティブ" name="Activate" />
- <button label="抜ã‘ã‚‹" name="Leave" />
- <button label="作æˆ..." name="Create" />
- <button label="検索..." name="Search..." />
-</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_login.xml b/indra/newview/skins/default/xui/ja/panel_login.xml
index 47d7a88b4c..808f19a16d 100644
--- a/indra/newview/skins/default/xui/ja/panel_login.xml
+++ b/indra/newview/skins/default/xui/ja/panel_login.xml
@@ -20,7 +20,7 @@
<text name="start_location_text">
開始地点:
</text>
- <combo_box name="start_location_combo" width="160">
+ <combo_box name="start_location_combo">
<combo_box.item label="最後ã«ãƒ­ã‚°ã‚¢ã‚¦ãƒˆã—ãŸå ´æ‰€" name="MyLastLocation"/>
<combo_box.item label="ホーム" name="MyHome"/>
<combo_box.item label="<地域åを入力>" name="Typeregionname"/>
diff --git a/indra/newview/skins/default/xui/ja/panel_nearby_chat.xml b/indra/newview/skins/default/xui/ja/panel_nearby_chat.xml
deleted file mode 100644
index c0549c8ae9..0000000000
--- a/indra/newview/skins/default/xui/ja/panel_nearby_chat.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<!-- All our XML is utf-8 encoded. -->
-<panel name="nearby_chat">
- <panel name="chat_caption">
- <text name="sender_name">
- è¿‘ãã®ãƒãƒ£ãƒƒãƒˆ
- </text>
- </panel>
-</panel>
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 d0e423bd18..07293e6c79 100644
--- a/indra/newview/skins/default/xui/ja/panel_nearby_media.xml
+++ b/indra/newview/skins/default/xui/ja/panel_nearby_media.xml
@@ -23,6 +23,12 @@
<button label="詳細 &gt;&gt;" label_selected="簡易 &lt;&lt;" name="less_btn" tool_tip="アドãƒãƒ³ã‚¹ã‚³ãƒ³ãƒˆãƒ­ãƒ¼ãƒ«"/>
</panel>
<panel name="nearby_media_panel">
+ <text name="nearby_media_title">
+ è¿‘ãã®ãƒ¡ãƒ‡ã‚£ã‚¢
+ </text>
+ <text name="show_text">
+ 表示:
+ </text>
<combo_box name="show_combo">
<combo_box.item label="ã™ã¹ã¦" name="All"/>
<combo_box.item label="ã“ã®åŒºç”»å†…" name="WithinParcel"/>
@@ -36,7 +42,7 @@
<scroll_list.columns label="åå‰" name="media_name"/>
<scroll_list.columns label="デãƒãƒƒã‚°" name="media_debug"/>
</scroll_list>
- <panel>
+ <panel name="media_controls_panel">
<layout_stack name="media_controls">
<layout_panel name="stop">
<button name="stop_btn" tool_tip="é¸æŠžã—ãŸãƒ¡ãƒ‡ã‚£ã‚¢ã‚’åœæ­¢"/>
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 5723535fd2..aff427ed49 100644
--- a/indra/newview/skins/default/xui/ja/panel_notifications_channel.xml
+++ b/indra/newview/skins/default/xui/ja/panel_notifications_channel.xml
@@ -1,15 +1,19 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="notifications_panel">
<layout_stack name="stack1">
- <scroll_list name="notifications_list">
- <column label="åå‰" name="name"/>
- <column label="コンテンツ" name="content"/>
- <column label="日付" name="date"/>
- </scroll_list>
- <scroll_list name="notification_rejects_list">
- <column label="åå‰" name="name"/>
- <column label="コンテンツ" name="content"/>
- <column label="日付" name="date"/>
- </scroll_list>
+ <layout_panel name="notifications_list_panel">
+ <scroll_list name="notifications_list">
+ <column label="åå‰" name="name"/>
+ <column label="コンテンツ" name="content"/>
+ <column label="日付" name="date"/>
+ </scroll_list>
+ </layout_panel>
+ <layout_panel name="rejects_list_panel">
+ <scroll_list name="notification_rejects_list">
+ <column label="åå‰" name="name"/>
+ <column label="コンテンツ" name="content"/>
+ <column label="日付" name="date"/>
+ </scroll_list>
+ </layout_panel>
</layout_stack>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_online_status.xml b/indra/newview/skins/default/xui/ja/panel_online_status.xml
deleted file mode 100644
index fdc489f375..0000000000
--- a/indra/newview/skins/default/xui/ja/panel_online_status.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="friend_online_status" name="friend_online_status"/>
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 30b2c078d5..8d1da51be5 100644
--- a/indra/newview/skins/default/xui/ja/panel_outfit_edit.xml
+++ b/indra/newview/skins/default/xui/ja/panel_outfit_edit.xml
@@ -13,7 +13,9 @@
<string name="Filter.All" value="ã™ã¹ã¦"/>
<string name="Filter.Clothes/Body" value="衣類/身体"/>
<string name="Filter.Objects" value="オブジェクト"/>
- <string name="Filter.Custom" value="フィルターã®ã‚«ã‚¹ã‚¿ãƒžã‚¤ã‚º"/>
+ <string name="Filter.Clothing" value="衣類"/>
+ <string name="Filter.Bodyparts" value="身体部ä½"/>
+ <string name="replace_body_part" value="クリックã—ã¦æ—¢å­˜ã®ã‚·ã‚§ã‚¤ãƒ—ã¨ç½®ãæ›ãˆã‚‹"/>
<text name="title" value="アウトフットã®ç·¨é›†"/>
<panel label="bottom_panel" name="header_panel">
<panel label="bottom_panel" name="outfit_name_and_status">
@@ -25,17 +27,25 @@
<layout_panel label="IM コントロールパãƒãƒ«" name="outfit_wearables_panel">
<layout_stack name="filter_panels">
<layout_panel name="add_button_and_combobox">
- <button label="ã•らã«è¿½åŠ ..." name="show_add_wearables_btn"/>
+ <button label="ã•らã«è¿½åŠ ..." name="show_add_wearables_btn" tool_tip="é–‹ãï¼é–‰ã˜ã‚‹"/>
</layout_panel>
<layout_panel name="filter_panel">
<filter_editor label="æŒã¡ç‰©ã®ç€ç”¨ç‰©ã‚’フィルター" name="look_item_filter"/>
</layout_panel>
</layout_stack>
</layout_panel>
- <layout_panel name="add_wearables_panel"/>
+ <layout_panel name="add_wearables_panel">
+ <button label="アイテムを装ç€" name="plus_btn"/>
+ </layout_panel>
</layout_stack>
+ <panel name="no_add_wearables_button_bar">
+ <button name="shop_btn_1" tool_tip="「SL マーケットプレイスã€ãƒšãƒ¼ã‚¸ã‚’ã”覧ãã ã•ã„。ã¾ãŸã€ã„ã¾ç€ç”¨ã—ã¦ã„ã‚‹ã‚¢ã‚¤ãƒ†ãƒ ã‚’é¸æŠžã—ã¦ã“ã“をクリックã™ã‚‹ã¨ã€ãれã«ä¼¼ãŸã‚¢ã‚¤ãƒ†ãƒ ãŒè¡¨ç¤ºã•れã¾ã™ã€‚"/>
+ </panel>
+ <panel name="add_wearables_button_bar">
+ <button name="shop_btn_2" tool_tip="「SL マーケットプレイスã€ãƒšãƒ¼ã‚¸ã‚’ã”覧ãã ã•ã„。ã¾ãŸã€ã„ã¾ç€ç”¨ã—ã¦ã„ã‚‹ã‚¢ã‚¤ãƒ†ãƒ ã‚’é¸æŠžã—ã¦ã“ã“をクリックã™ã‚‹ã¨ã€ãれã«ä¼¼ãŸã‚¢ã‚¤ãƒ†ãƒ ãŒè¡¨ç¤ºã•れã¾ã™ã€‚"/>
+ </panel>
<panel name="save_revert_button_bar">
<button label="ä¿å­˜" name="save_btn"/>
- <button label="å…ƒã«æˆ»ã™" name="revert_btn"/>
+ <button label="å¤‰æ›´ã‚’å…ƒã«æˆ»ã™" name="revert_btn" tool_tip="å‰å›žä¿å­˜ã•れãŸçŠ¶æ…‹ã«æˆ»ã™"/>
</panel>
</panel>
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 27bb224c18..c649113000 100644
--- a/indra/newview/skins/default/xui/ja/panel_outfits_inventory.xml
+++ b/indra/newview/skins/default/xui/ja/panel_outfits_inventory.xml
@@ -1,12 +1,16 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="ã‚‚ã®" name="Outfits">
+ <panel.string name="wear_outfit_tooltip">
+ é¸æŠžã—ãŸã‚¢ã‚¦ãƒˆãƒ•ィットをç€ç”¨ã™ã‚‹
+ </panel.string>
+ <panel.string name="wear_items_tooltip">
+ é¸æŠžã—ãŸå•†å“ã‚’ç€ç”¨
+ </panel.string>
<tab_container name="appearance_tabs">
<panel label="マイ アウトフィット" name="outfitslist_tab"/>
- <inventory_panel label="ç€ç”¨ä¸­" name="cof_tab"/>
+ <panel label="ç€ç”¨ä¸­" name="cof_tab"/>
</tab_container>
<panel name="bottom_panel">
- <button name="options_gear_btn" tool_tip="ãã®ä»–ã®ã‚ªãƒ—ションを表示ã—ã¾ã™"/>
- <dnd_button name="trash_btn" tool_tip="é¸æŠžã—ãŸã‚¢ã‚¤ãƒ†ãƒ ã‚’削除ã—ã¾ã™"/>
<button label="別åã§ä¿å­˜" name="save_btn"/>
<button label="装ç€" name="wear_btn" tool_tip="é¸æŠžã—ãŸã‚¢ã‚¦ãƒˆãƒ•ィットをç€ç”¨ã—ã¾ã™"/>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_outfits_list.xml b/indra/newview/skins/default/xui/ja/panel_outfits_list.xml
new file mode 100644
index 0000000000..e9e36e4842
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/panel_outfits_list.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="Outfits">
+ <panel name="bottom_panel">
+ <button name="options_gear_btn" tool_tip="オプションを表示ã—ã¾ã™"/>
+ <button name="trash_btn" tool_tip="é¸æŠžã—ãŸã‚¢ã‚¦ãƒˆãƒ•ィットを削除ã™ã‚‹"/>
+ </panel>
+</panel>
diff --git a/indra/newview/skins/default/xui/ja/panel_outfits_wearing.xml b/indra/newview/skins/default/xui/ja/panel_outfits_wearing.xml
new file mode 100644
index 0000000000..fd03e6b89e
--- /dev/null
+++ b/indra/newview/skins/default/xui/ja/panel_outfits_wearing.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="Wearing">
+ <panel name="bottom_panel">
+ <button name="options_gear_btn" tool_tip="オプションを表示ã—ã¾ã™"/>
+ </panel>
+</panel>
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 86f880de09..4082f71a76 100644
--- a/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/ja/panel_preferences_chat.xml
@@ -56,4 +56,27 @@
<radio_item label="別々ã®ã‚¦ã‚£ãƒ³ãƒ‰ã‚¦" name="radio" value="0"/>
<radio_item label="タブ" name="radio2" value="1"/>
</radio_group>
+ <check_box label="翻訳ãƒãƒ£ãƒƒãƒˆ" name="translate_chat_checkbox" />
+ <text name="translate_language_text">
+ ãƒãƒ£ãƒƒãƒˆè¨€èªž:
+ </text>
+ <combo_box name="translate_language_combobox">
+ <combo_box.item name="System Default Language" label="システム・デフォルト" />
+ <combo_box.item name="English" label="English (英語)" />
+ <combo_box.item name="Danish" label="Dansk (デンマーク語)" />
+ <combo_box.item name="German" label="Deutsch (ドイツ語)" />
+ <combo_box.item name="Spanish" label="Español (スペイン語)" />
+ <combo_box.item name="French" label="Français (フランス語)" />
+ <combo_box.item name="Italian" label="Italiano (イタリア語)" />
+ <combo_box.item name="Hungarian" label="Magyar (ãƒãƒ³ã‚¬ãƒªãƒ¼èªž)" />
+ <combo_box.item name="Dutch" label="Nederlands (オランダ語)" />
+ <combo_box.item name="Polish" label="Polski (ãƒãƒ¼ãƒ©ãƒ³ãƒ‰èªž)" />
+ <combo_box.item name="Portugese" label="Português (ãƒãƒ«ãƒˆã‚¬ãƒ«èªž)" />
+ <combo_box.item name="Russian" label="РуÑÑкий (ロシア語)" />
+ <combo_box.item name="Turkish" label="Türkçe (トルコ語)" />
+ <combo_box.item name="Ukrainian" label="УкраїнÑька (ウクライナ語)" />
+ <combo_box.item name="Chinese" label="中文 (简体) (中国語)" />
+ <combo_box.item name="Japanese" label="日本語" />
+ <combo_box.item name="Korean" label="한국어 (韓国語)" />
+ </combo_box>
</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 75de773366..8a50581075 100644
--- a/indra/newview/skins/default/xui/ja/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/ja/panel_preferences_graphics1.xml
@@ -49,10 +49,7 @@
m
</text>
<slider label="最大パーティクル数:" name="MaxParticleCount"/>
- <slider label="ã‚¢ãƒã‚¿ãƒ¼æœ€å¤§æç”»è·é›¢ï¼š" name="MaxAvatarDrawDistance"/>
- <text name="DrawDistanceMeterText3">
- m
- </text>
+ <slider label="簡略化ã›ãšã«æç”»ã™ã‚‹ã‚¢ãƒã‚¿ãƒ¼ã®æœ€å¤§æ•°ï¼š" name="MaxNumberAvatarDrawn"/>
<slider label="ãƒã‚¹ãƒˆãƒ—ロセスå“質:" name="RenderPostProcess"/>
<text name="MeshDetailText">
メッシュ詳細:
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 abbd29286b..4f29ae7b44 100644
--- a/indra/newview/skins/default/xui/ja/panel_preferences_sound.xml
+++ b/indra/newview/skins/default/xui/ja/panel_preferences_sound.xml
@@ -28,6 +28,12 @@
<panel.string name="default_text">
デフォルト
</panel.string>
+ <panel.string name="default system device">
+ デフォルトã®ã‚·ã‚¹ãƒ†ãƒ æ©Ÿå™¨
+ </panel.string>
+ <panel.string name="no device">
+ 機器ãŒè¨­å®šã•れã¦ã„ã¾ã›ã‚“
+ </panel.string>
<text name="Input">
入力
</text>
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 a9897c7ae4..5506373eb0 100644
--- a/indra/newview/skins/default/xui/ja/panel_prim_media_controls.xml
+++ b/indra/newview/skins/default/xui/ja/panel_prim_media_controls.xml
@@ -7,9 +7,9 @@
0.2
</string>
<layout_stack name="progress_indicator_area">
- <panel name="media_progress_indicator">
+ <layout_panel name="media_progress_indicator">
<progress_bar name="media_progress_bar" tool_tip="ローディング"/>
- </panel>
+ </layout_panel>
</layout_stack>
<layout_stack name="media_controls">
<layout_panel name="back">
diff --git a/indra/newview/skins/default/xui/ja/panel_region_general_layout.xml b/indra/newview/skins/default/xui/ja/panel_region_general_layout.xml
deleted file mode 100644
index 188a60eb60..0000000000
--- a/indra/newview/skins/default/xui/ja/panel_region_general_layout.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="リージョン(地域)" name="General">
- <text name="region_text_lbl">
- 地域:
- </text>
- <text left_delta="70" name="region_text">
- 䏿˜Ž
- </text>
- <text name="version_channel_text_lbl">
- ãƒãƒ¼ã‚¸ãƒ§ãƒ³ï¼š
- </text>
- <text left_delta="70" name="version_channel_text">
- 䏿˜Ž
- </text>
- <text name="region_type_lbl">
- 種類:
- </text>
- <text left_delta="70" name="region_type">
- 䏿˜Ž
- </text>
- <check_box label="地形編集をブロック" name="block_terraform_check"/>
- <check_box label="飛行をブロック" name="block_fly_check"/>
- <check_box label="ダメージを許å¯" name="allow_damage_check"/>
- <check_box label="プッシュを制é™" name="restrict_pushobject"/>
- <check_box label="土地ã®å†è²©ã‚’許å¯" name="allow_land_resell_check"/>
- <check_box label="土地ã®çµ±åˆãƒ»åˆ†å‰²ã‚’許å¯" name="allow_parcel_changes_check"/>
- <check_box label="åœŸåœ°ã®æ¤œç´¢è¡¨ç¤ºã‚’ブロック" name="block_parcel_search_check" tool_tip="æ¤œç´¢çµæžœã§ã€ã“ã®åœ°åŸŸã¨åŒºç”»ã‚’表示ã™ã‚‹ã‹ã©ã†ã‹ã®è¨­å®šã§ã™"/>
- <spinner label="ã‚¢ãƒã‚¿ãƒ¼æ•°ä¸Šé™" label_width="110" name="agent_limit_spin" width="190"/>
- <spinner label="物体ボーナス" label_width="110" name="object_bonus_spin" width="190"/>
- <text label="レーティング区分" name="access_text">
- レーティング区分:
- </text>
- <combo_box label="Moderate" name="access_combo">
- <combo_box.item label="Adult" name="Adult"/>
- <combo_box.item label="Moderate" name="Mature"/>
- <combo_box.item label="General" name="PG"/>
- </combo_box>
- <button label="é©ç”¨" name="apply_btn"/>
- <button label="ä½äºº 1 åをホームã«ãƒ†ãƒ¬ãƒãƒ¼ãƒˆ..." name="kick_btn"/>
- <button label="ä½äººå…¨å“¡ã‚’ホームã«ãƒ†ãƒ¬ãƒãƒ¼ãƒˆ..." name="kick_all_btn"/>
- <button label="メッセージを地域ã«é€ä¿¡..." name="im_btn"/>
- <button label="テレãƒãƒ–ã®ç®¡ç†..." name="manage_telehub_btn"/>
-</panel>
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 c1bf81f7e7..58e396877c 100644
--- a/indra/newview/skins/default/xui/ja/panel_teleport_history.xml
+++ b/indra/newview/skins/default/xui/ja/panel_teleport_history.xml
@@ -1,6 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="Teleport History">
<accordion name="history_accordion">
+ <no_matched_tabs_text name="no_matched_teleports_msg" value="ãŠæŽ¢ã—ã®ã‚‚ã®ã¯è¦‹ã¤ã‹ã‚Šã¾ã—ãŸã‹ï¼Ÿ[secondlife:///app/search/places/[SEARCH_TERM]ã‚’ãŠè©¦ã—ãã ã•ã„。"/>
+ <no_visible_tabs_text name="no_teleports_msg" value="テレãƒãƒ¼ãƒˆã®å±¥æ­´ã«ã¯ä½•も情報ãŒã‚りã¾ã›ã‚“。[secondlife:///app/search/places/ Search]ã‚’ãŠè©¦ã—ãã ã•ã„。"/>
<accordion_tab name="today" title="今日"/>
<accordion_tab name="yesterday" title="昨日"/>
<accordion_tab name="2_days_ago" title="2æ—¥å‰"/>
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 d787d6ff23..530f0fb59d 100644
--- a/indra/newview/skins/default/xui/ja/panel_voice_effect.xml
+++ b/indra/newview/skins/default/xui/ja/panel_voice_effect.xml
@@ -9,7 +9,7 @@
<string name="get_voice_effects">
ボイスモーフィングをå–å¾— â–¶
</string>
- <combo_box name="voice_effect" tool_tip="ãƒœã‚¤ã‚¹ãƒ¢ãƒ¼ãƒ•ã‚£ãƒ³ã‚°åŠ¹æžœã‚’é¸æŠžã—ã¦ã€éŸ³å£°ã‚’変更ã—ã¾ã™ã€‚">
+ <combo_box name="voice_effect" tool_tip="ãƒœã‚¤ã‚¹ãƒ¢ãƒ¼ãƒ•ã‚£ãƒ³ã‚°ã‚’é¸æŠžã—ã¦éŸ³å£°ã‚’変更">
<combo_box.item label="ボイスモーフィングãªã—" name="no_voice_effect"/>
</combo_box>
</panel>
diff --git a/indra/newview/skins/default/xui/ja/sidepanel_appearance.xml b/indra/newview/skins/default/xui/ja/sidepanel_appearance.xml
index c453699c57..30cef9ccc0 100644
--- a/indra/newview/skins/default/xui/ja/sidepanel_appearance.xml
+++ b/indra/newview/skins/default/xui/ja/sidepanel_appearance.xml
@@ -3,6 +3,7 @@
<string name="No Outfit" value="アウトフィットãªã—"/>
<string name="Unsaved Changes" value="ä¿å­˜ã•れã¦ã„ãªã„変更"/>
<string name="Now Wearing" value="ç€ç”¨ã—ã¦ã„ã¾ã™..."/>
+ <string name="Changing outfits" value="アウトフィットã®å¤‰æ›´"/>
<panel name="panel_currentlook">
<button label="E" name="editappearance_btn"/>
<button label="O" name="openoutfit_btn"/>
@@ -12,6 +13,7 @@
<text name="currentlook_name">
MyOutfit With a really Long Name like MOOSE
</text>
+ <button label="" name="edit_outfit_btn" tool_tip="ã“ã®ã‚¢ã‚¦ãƒˆãƒ•ィットを編集"/>
</panel>
<filter_editor label="アウトフィットをフィルター" name="Filter"/>
</panel>
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 c6a13fa212..519b69799b 100644
--- a/indra/newview/skins/default/xui/ja/sidepanel_item_info.xml
+++ b/indra/newview/skins/default/xui/ja/sidepanel_item_info.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="item properties" title="オブジェクトã®ãƒ—ロフィール">
+<panel name="item properties" title="アイテムã®ãƒ—ロフィール">
<panel.string name="unknown">
ï¼ˆä¸æ˜Žï¼‰
</panel.string>
@@ -15,9 +15,15 @@
<panel.string name="acquiredDate">
[year,datetime,local] [mth,datetime,local] [day,datetime,local] [wkday,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local]
</panel.string>
- <text name="title" value="オブジェクトã®ãƒ—ロフィール"/>
- <text name="where" value="(æŒã¡ç‰©ï¼‰"/>
- <panel label="">
+ <panel.string name="origin_inventory">
+ (æŒã¡ç‰©ï¼‰
+ </panel.string>
+ <panel.string name="origin_inworld">
+ (インワールド)
+ </panel.string>
+ <text name="title" value="アイテムã®ãƒ—ロフィール"/>
+ <text name="origin" value="(æŒã¡ç‰©ï¼‰"/>
+ <panel label="" name="item_profile">
<text name="LabelItemNameTitle">
åå‰ï¼š
</text>
@@ -27,23 +33,17 @@
<text name="LabelCreatorTitle">
制作者:
</text>
- <text name="LabelCreatorName">
- Nicole Linden
- </text>
+ <text name="LabelCreatorName"/>
<button label="プロフィール" name="BtnCreator"/>
<text name="LabelOwnerTitle">
所有者:
</text>
- <text name="LabelOwnerName">
- Thrax Linden
- </text>
+ <text name="LabelOwnerName"/>
<button label="プロフィール" name="BtnOwner"/>
<text name="LabelAcquiredTitle">
å–得:
</text>
- <text name="LabelAcquiredDate">
- Wed May 24 12:50:46 2006
- </text>
+ <text name="LabelAcquiredDate"/>
<panel name="perms_inv">
<text name="perm_modify">
ã‚ãªãŸãŒã§ãã‚‹ã“ã¨ï¼š
@@ -58,20 +58,20 @@
<text name="GroupLabel">
グループ:
</text>
- <check_box label="共有" name="CheckShareWithGroup" tool_tip="設定ã—ãŸã‚°ãƒ«ãƒ¼ãƒ—ã®ãƒ¡ãƒ³ãƒãƒ¼å…¨å“¡ã«ã“ã®ã‚ªãƒ–ジェクトã®ä¿®æ­£æ¨©é™ã‚’与ãˆã¾ã™ã€‚ 譲渡ã—ãªã„é™ã‚Šã€å½¹å‰²åˆ¶é™ã‚’有効ã«ã¯ã§ãã¾ã›ã‚“。"/>
+ <check_box label="共有" name="CheckShareWithGroup" tool_tip="設定ã—ãŸã‚°ãƒ«ãƒ¼ãƒ—ã®ãƒ¡ãƒ³ãƒãƒ¼å…¨å“¡ã«ã“ã®ã‚ªãƒ–ジェクトã®ä¿®æ­£æ¨©é™ã‚’与ãˆã¾ã™ã€‚譲渡ã—ãªã„é™ã‚Šã€å½¹å‰²åˆ¶é™ã‚’有効ã«ã¯ã§ãã¾ã›ã‚“。"/>
<text name="NextOwnerLabel">
æ¬¡ã®æ‰€æœ‰è€…:
</text>
<check_box label="修正" name="CheckNextOwnerModify"/>
<check_box label="コピー" name="CheckNextOwnerCopy"/>
- <check_box label="å†è²©ãƒ»ãƒ—レゼント" name="CheckNextOwnerTransfer" tool_tip="æ¬¡ã®æ‰€æœ‰è€…ã¯ã“ã®ã‚ªãƒ–ジェクトを他人ã«ã‚ã’ãŸã‚Šå†è²©ã™ã‚‹ã“ã¨ãŒã§ãã¾ã™"/>
+ <check_box label="å†è²©ãƒ»ãƒ—レゼント" name="CheckNextOwnerTransfer" tool_tip="æ¬¡ã®æ‰€æœ‰è€…ã¯ã“ã®ã‚ªãƒ–ジェクトを他人ã«ã‚ã’ãŸã‚Šå†è²©ã§ãã¾ã™"/>
</panel>
- <check_box label="販売ã™ã‚‹" name="CheckPurchase"/>
+ <check_box label="販売中" name="CheckPurchase"/>
<combo_box name="combobox sale copy">
<combo_box.item label="コピー" name="Copy"/>
<combo_box.item label="オリジナル" name="Original"/>
</combo_box>
- <spinner label="価格: L$" name="Edit Cost"/>
+ <spinner label="価格:L$" name="Edit Cost"/>
</panel>
<panel name="button_panel">
<button label="キャンセル" name="cancel_btn"/>
diff --git a/indra/newview/skins/default/xui/ja/strings.xml b/indra/newview/skins/default/xui/ja/strings.xml
index 8948722bf3..dd59065a9d 100644
--- a/indra/newview/skins/default/xui/ja/strings.xml
+++ b/indra/newview/skins/default/xui/ja/strings.xml
@@ -196,6 +196,7 @@
<string name="TooltipMustSingleDrop">
アイテム㯠1 ã¤ã ã‘ã“ã“ã«ãƒ‰ãƒ©ãƒƒã‚°ã§ãã¾ã™
</string>
+ <string name="TooltipPrice" value="L$[AMOUNT]:"/>
<string name="TooltipHttpUrl">
クリックã—ã¦ã“ã® Web ページを見ã¾ã™
</string>
@@ -248,7 +249,6 @@
クリックã—㦠secondlife:// コマンドを出ã—ã¾ã™
</string>
<string name="CurrentURL" value=" ç¾åœ¨ã® URL: [CurrentURL]"/>
- <string name="TooltipPrice" value="L$[PRICE]-"/>
<string name="SLurlLabelTeleport">
テレãƒãƒ¼ãƒˆ
</string>
@@ -309,6 +309,9 @@
<string name="ReleaseNotes">
リリースノート
</string>
+ <string name="RELEASE_NOTES_BASE_URL">
+ http://wiki.secondlife.com/wiki/Release_Notes/
+ </string>
<string name="LoadingData">
ローディング...
</string>
@@ -660,6 +663,9 @@
<string name="worldmap_offline">
オフライン
</string>
+ <string name="worldmap_item_tooltip_format">
+ [AREA] 平方メートル L$[PRICE]
+ </string>
<string name="worldmap_results_none_found">
見ã¤ã‹ã‚Šã¾ã›ã‚“ã§ã—ãŸã€‚
</string>
@@ -864,6 +870,9 @@
<string name="invalid">
無効
</string>
+ <string name="none">
+ ãªã—
+ </string>
<string name="shirt_not_worn">
シャツ未ç€ç”¨
</string>
@@ -900,12 +909,57 @@
<string name="invalid_not_worn">
無効
</string>
+ <string name="create_new_shape">
+ æ–°ã—ã„シェイプを作æˆ
+ </string>
+ <string name="create_new_skin">
+ æ–°ã—ã„スキンを作æˆ
+ </string>
+ <string name="create_new_hair">
+ æ–°ã—ã„髪を作æˆ
+ </string>
+ <string name="create_new_eyes">
+ æ–°ã—ã„目を作æˆ
+ </string>
+ <string name="create_new_shirt">
+ æ–°ã—ã„シャツを作æˆ
+ </string>
+ <string name="create_new_pants">
+ æ–°ã—ã„パンツを作æˆ
+ </string>
+ <string name="create_new_shoes">
+ æ–°ã—ã„é´ã‚’作æˆ
+ </string>
+ <string name="create_new_socks">
+ æ–°ã—ã„é´ä¸‹ã‚’作æˆ
+ </string>
+ <string name="create_new_jacket">
+ æ–°ã—ã„上ç€ã‚’作æˆ
+ </string>
+ <string name="create_new_gloves">
+ æ–°ã—ã„æ‰‹è¢‹ã‚’作æˆ
+ </string>
+ <string name="create_new_undershirt">
+ æ–°ã—ã„下ç€ã‚·ãƒ£ãƒ„を作æˆ
+ </string>
+ <string name="create_new_underpants">
+ æ–°ã—ã„下ç€ãƒ‘ンツを作æˆ
+ </string>
+ <string name="create_new_skirt">
+ æ–°ã—ã„スカートを作æˆ
+ </string>
+ <string name="create_new_alpha">
+ æ–°ã—ã„アルファを作æˆ
+ </string>
+ <string name="create_new_tattoo">
+ æ–°ã—ã„タトゥを作æˆ
+ </string>
+ <string name="create_new_invalid">
+ 無効
+ </string>
<string name="NewWearable">
æ–°ã—ã„ [WEARABLE_ITEM]
</string>
- <string name="CreateNewWearable">
- [WEARABLE_TYPE]を作æˆ
- </string>
<string name="next">
次ã¸
</string>
@@ -1010,6 +1064,7 @@
<string name="AnimFlagStop" value=" ã‚¢ãƒ‹ãƒ¡ãƒ¼ã‚·ãƒ§ãƒ³ã‚’åœæ­¢ï¼š"/>
<string name="AnimFlagStart" value=" アニメーションを開始:"/>
<string name="Wave" value=" 手を振る"/>
+ <string name="GestureActionNone" value="ãªã—"/>
<string name="HelloAvatar" value=" ã‚„ã‚ã€ã‚¢ãƒã‚¿ãƒ¼ï¼"/>
<string name="ViewAllGestures" value=" ã™ã¹ã¦è¡¨ç¤º &gt;&gt;"/>
<string name="GetMoreGestures" value="ショッピング &gt;&gt;"/>
@@ -1089,12 +1144,18 @@
<string name="InvFolder Gestures">
ジェスãƒãƒ£ãƒ¼
</string>
+ <string name="InvFolder Favorite">
+ ãŠæ°—ã«å…¥ã‚Š
+ </string>
<string name="InvFolder favorite">
ãŠæ°—ã«å…¥ã‚Š
</string>
<string name="InvFolder Current Outfit">
ç€ç”¨ä¸­ã®ã‚¢ã‚¦ãƒˆãƒ•ィット
</string>
+ <string name="InvFolder Initial Outfits">
+ 最åˆã®ã‚¢ã‚¦ãƒˆãƒ•ィット
+ </string>
<string name="InvFolder My Outfits">
マイ アウトフィット
</string>
@@ -1414,6 +1475,7 @@
<string name="SummaryForTheWeek" value="今週ã®ã¾ã¨ã‚。開始日ã¯"/>
<string name="NextStipendDay" value="ã§ã™ã€‚次回ã®ãŠå°é£ã„支給日:"/>
<string name="GroupIndividualShare" value=" グループ 個人ã®å‰²ã‚Šå½“ã¦"/>
+ <string name="GroupColumn" value="グループã®è¨­å®š"/>
<string name="Balance">
残高
</string>
@@ -1609,6 +1671,9 @@
<string name="ATTACH_HUD_BOTTOM_RIGHT">
HUD(å³ä¸‹ï¼‰
</string>
+ <string name="Bad attachment point">
+ 装ç€å…ˆãŒæ­£ã—ãã‚りã¾ã›ã‚“
+ </string>
<string name="CursorPos">
[LINE] 行目ã€[COLUMN] 列目
</string>
@@ -1621,15 +1686,21 @@
<string name="PanelDirEventsDateText">
[mthnum,datetime,slt]/[day,datetime,slt]
</string>
- <string name="PanelContentsNewScript">
- æ–°è¦ã‚¹ã‚¯ãƒªãƒ—ト
- </string>
<string name="PanelContentsTooltip">
オブジェクトã®ä¸­èº«
</string>
+ <string name="PanelContentsNewScript">
+ æ–°è¦ã‚¹ã‚¯ãƒªãƒ—ト
+ </string>
<string name="BusyModeResponseDefault">
メッセージをé€ã£ãŸä½äººã¯ã€èª°ã«ã‚‚邪魔をã•れãŸããªã„ãŸã‚ç¾åœ¨ã€Œå–り込ã¿ä¸­ã€ãƒ¢ãƒ¼ãƒ‰ã§ã™ã€‚ ã‚ãªãŸã®ãƒ¡ãƒƒã‚»ãƒ¼ã‚¸ã¯ã€ã‚ã¨ã§ç¢ºèªã§ãるよã†ã« IM パãƒãƒ«ã«è¡¨ç¤ºã•れã¾ã™ã€‚
</string>
+ <string name="NoOutfits">
+ アウトフィットãŒã¾ã ã‚りã¾ã›ã‚“。[secondlife:///app/search/all/ Search]ã‚’ãŠè©¦ã—ãã ã•ã„
+ </string>
+ <string name="NoOutfitsTabsMatched">
+ ãŠæŽ¢ã—ã®ã‚‚ã®ã¯è¦‹ã¤ã‹ã‚Šã¾ã—ãŸã‹ï¼Ÿ[secondlife:///app/search/all/[SEARCH_TERM]ã‚’ãŠè©¦ã—ãã ã•ã„。
+ </string>
<string name="MuteByName">
(å称別)
</string>
@@ -3619,6 +3690,9 @@ www.secondlife.com ã‹ã‚‰æœ€æ–°ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’ダウンロードã—ã¦ãã ã
<string name="group_role_owners">
オーナー
</string>
+ <string name="group_member_status_online">
+ オンライン
+ </string>
<string name="uploading_abuse_report">
アップロード中...
@@ -3672,9 +3746,15 @@ www.secondlife.com ã‹ã‚‰æœ€æ–°ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’ダウンロードã—ã¦ãã ã
<string name="Invalid Wearable">
無効ãªç€ç”¨ç‰©
</string>
+ <string name="New Gesture">
+ ジェスãƒãƒ£ãƒ¼
+ </string>
<string name="New Script">
æ–°è¦ã‚¹ã‚¯ãƒªãƒ—ト
</string>
+ <string name="New Note">
+ ノート
+ </string>
<string name="New Folder">
æ–°è¦ãƒ•ォルダ
</string>
@@ -3732,6 +3812,15 @@ www.secondlife.com ã‹ã‚‰æœ€æ–°ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’ダウンロードã—ã¦ãã ã
<string name="Male - Wow">
男性 - Wow
</string>
+ <string name="Female - Chuckle">
+ 女性 – クスクス
+ </string>
+ <string name="Female - Cry">
+ 女性 – æ³£ã
+ </string>
+ <string name="Female - Embarrassed">
+ 女性 – æ¥ãšã‹ã—ã„
+ </string>
<string name="Female - Excuse me">
女性 – ã™ã¿ã¾ã›ã‚“
</string>
@@ -3750,9 +3839,21 @@ www.secondlife.com ã‹ã‚‰æœ€æ–°ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’ダウンロードã—ã¦ãã ã
<string name="Female - Hey">
女性 - Hey
</string>
+ <string name="Female - Hey baby">
+ 女性 – ヘイã€ãƒ™ã‚£ãƒ“ーï¼
+ </string>
<string name="Female - Laugh">
女性 - 笑ã†
</string>
+ <string name="Female - Looking good">
+ 女性 – ã„ã„æ„Ÿã˜
+ </string>
+ <string name="Female - Over here">
+ 女性 – ã“ã£ã¡ã‚ˆ
+ </string>
+ <string name="Female - Please">
+ 女性 – プリーズ
+ </string>
<string name="Female - Repulsed">
女性 - 拒絶
</string>
@@ -3802,4 +3903,46 @@ www.secondlife.com ã‹ã‚‰æœ€æ–°ãƒãƒ¼ã‚¸ãƒ§ãƒ³ã‚’ダウンロードã—ã¦ãã ã
<string name="dateTimePM">
PM
</string>
+ <string name="LocalEstimateUSD">
+ US$ [AMOUNT]
+ </string>
+ <string name="Membership">
+ 会員
+ </string>
+ <string name="Roles">
+ 役割
+ </string>
+ <string name="Group Identity">
+ グループã®è­˜åˆ¥æƒ…å ±
+ </string>
+ <string name="Parcel Management">
+ 区画ã®ç®¡ç†
+ </string>
+ <string name="Parcel Identity">
+ 区画ã®è­˜åˆ¥æƒ…å ±
+ </string>
+ <string name="Parcel Settings">
+ 区画ã®è¨­å®š
+ </string>
+ <string name="Parcel Powers">
+ åŒºç”»ã®æ¨©é™
+ </string>
+ <string name="Parcel Access">
+ 区画ã¸ã®ã‚¢ã‚¯ã‚»ã‚¹
+ </string>
+ <string name="Parcel Content">
+ 区画ã®ã‚³ãƒ³ãƒ†ãƒ³ãƒ„
+ </string>
+ <string name="Object Management">
+ オブジェクトã®ç®¡ç†
+ </string>
+ <string name="Accounting">
+ 会計
+ </string>
+ <string name="Notices">
+ 通知
+ </string>
+ <string name="Chat">
+ ãƒãƒ£ãƒƒãƒˆ
+ </string>
</strings>
diff --git a/indra/newview/skins/default/xui/nl/floater_about_land.xml b/indra/newview/skins/default/xui/nl/floater_about_land.xml
index 7b8f1b42ab..4271ad5b82 100644
--- a/indra/newview/skins/default/xui/nl/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/nl/floater_about_land.xml
@@ -147,31 +147,31 @@
<text name="region_name_lbl">
Naam:
</text>
- <text name="region_name_text" left="114">
+ <text name="region_name_text">
leyla
</text>
<text name="region_landtype_lbl">
Type:
</text>
- <text name="region_landtype_text" left="114">
+ <text name="region_landtype_text">
Mainland / Homestead
</text>
<text name="region_maturity_lbl">
Inhoudscategorie:
</text>
- <text name="region_maturity_text" left="114">
+ <text name="region_maturity_text">
Adult
</text>
<text name="resellable_lbl">
Doorverkopen:
</text>
- <text name="resellable_clause" left="114">
+ <text name="resellable_clause">
Land in deze regio mag niet worden doorverkocht.
</text>
<text name="changeable_lbl">
Opsplitsen:
</text>
- <text name="changeable_clause" left="114" width="340">
+ <text name="changeable_clause">
Land in deze regio mag niet worden samengevoegd/opgesplitst.
</text>
<panel.string name="can_resell">
@@ -196,7 +196,7 @@ of opgedeeld.
<text name="Simulator primitive usage:">
Simulator primitieven gebruik:
</text>
- <text name="objects_available" left="214" width="230">
+ <text name="objects_available">
[COUNT] van [MAX] ([AVAILABLE] beschikbaar)
</text>
<panel.string name="objects_available_text">
@@ -205,59 +205,59 @@ of opgedeeld.
<panel.string name="objects_deleted_text">
[COUNT] van [MAX] ([DELETED] zullen worden verwijderd)
</panel.string>
- <text name="Primitives parcel supports:" width="200">
+ <text name="Primitives parcel supports:">
Primitieven ondersteund door perceel:
</text>
- <text name="object_contrib_text" left="214" width="152">
+ <text name="object_contrib_text">
[COUNT]
</text>
<text name="Primitives on parcel:">
Primitieven op perceel:
</text>
- <text name="total_objects_text" left="214" width="48">
+ <text name="total_objects_text" >
[COUNT]
</text>
- <text name="Owned by parcel owner:" left="14" width="180" >
+ <text name="Owned by parcel owner:" >
Eigendom van perceeleigenaar:
</text>
- <text name="owner_objects_text" left="214" width="48">
+ <text name="owner_objects_text" >
[COUNT]
</text>
- <button label="Toon" label_selected="Toon" name="ShowOwner" right="-135" width="60"/>
- <button label="Retourneren" name="ReturnOwner..." tool_tip="Retourneer objecten naar hun eigenaren." right="-10" width="119"/>
- <text name="Set to group:" left="14" width="180">
+ <button label="Toon" label_selected="Toon" name="ShowOwner"/>
+ <button label="Retourneren" name="ReturnOwner..." tool_tip="Retourneer objecten naar hun eigenaren."/>
+ <text name="Set to group:" >
Groep toewijzen:
</text>
- <text name="group_objects_text" left="214" width="48">
+ <text name="group_objects_text" >
[COUNT]
</text>
- <button label="Toon" label_selected="Toon" name="ShowGroup" right="-135" width="60"/>
- <button label="Retourneren" name="ReturnGroup..." tool_tip="Retourneer objecten naar hun eigenaren." right="-10" width="119"/>
- <text name="Owned by others:" left="14" width="128">
+ <button label="Toon" label_selected="Toon" name="ShowGroup"/>
+ <button label="Retourneren" name="ReturnGroup..." tool_tip="Retourneer objecten naar hun eigenaren."/>
+ <text name="Owned by others:">
Eigendom van anderen:
</text>
- <text name="other_objects_text" left="214" width="48">
+ <text name="other_objects_text" >
[COUNT]
</text>
- <button label="Toon" label_selected="Toon" name="ShowOther" right="-135" width="60"/>
- <button label="Retourneren" name="ReturnOther..." tool_tip="Retourneer objecten naar hun eigenaren." right="-10" width="119"/>
- <text name="Selected / sat upon:" left="14" width="193">
+ <button label="Toon" label_selected="Toon" name="ShowOther"/>
+ <button label="Retourneren" name="ReturnOther..." tool_tip="Retourneer objecten naar hun eigenaren."/>
+ <text name="Selected / sat upon:">
Geselecteerd/Er op gezeten
</text>
- <text name="selected_objects_text" left="214" width="48">
+ <text name="selected_objects_text" >
[COUNT]
</text>
- <text name="Autoreturn" left="4" width="412" height="32" bottom="-196">
+ <text name="Autoreturn">
Objecten van andere inwoners automatisch retourneren (minuten):
(0 om uit te schakelen)
</text>
- <line_editor name="clean other time" right="-50" bottom="-179"/>
- <text name="Object Owners:" bottom="-213">
+ <line_editor name="clean other time"/>
+ <text name="Object Owners:">
Objecteigenaren:
</text>
- <button label="Ververs lijst" label_selected="Ververs lijst" name="Refresh List" bottom="-213"/>
- <button label="Retourneer objecten" name="Return objects..." width="164" bottom="-213"/>
- <name_list name="owner list" height="104">
+ <button label="Ververs lijst" label_selected="Ververs lijst" name="Refresh List"/>
+ <button label="Retourneer objecten" name="Return objects..."/>
+ <name_list name="owner list">
<column label="Type" name="type"/>
<column label="Naam" name="name"/>
<column label="Aantal" name="count"/>
@@ -271,20 +271,20 @@ of opgedeeld.
<check_box label="Terrein bewerken" name="edit land check" tool_tip="Indien aangevinkt, kan iedereen uw terrein bewerken. Het is het beste om dit uit te laten staan, omdat u zelf altijd uw eigen land kunt bewerken."/>
<check_box label="Maak landmarkering" name="check landmark"/>
<check_box label="Vliegen" name="check fly" tool_tip="Indien aangevinkt, kunnen inwoners op uw land vliegen. Indien niet aangevinkt, kunnen ze alleen het land binnenvliegen of eroverheen vliegen."/>
- <text name="allow_label2" left="162">
+ <text name="allow_label2">
Maak objecten:
</text>
- <check_box label="Alle inwoners" name="edit objects check" left="275"/>
+ <check_box label="Alle inwoners" name="edit objects check"/>
<check_box label="Groep" name="edit group objects check"/>
- <text name="allow_label3" left="162">
+ <text name="allow_label3">
Objecten binnenlaten:
</text>
- <check_box label="Alle inwoners" name="all object entry check" left="275"/>
+ <check_box label="Alle inwoners" name="all object entry check"/>
<check_box label="Groep" name="group object entry check"/>
- <text name="allow_label4" left="162">
+ <text name="allow_label4">
Scripts uitvoeren:
</text>
- <check_box label="Alle inwoners" name="check other scripts" left="275"/>
+ <check_box label="Alle inwoners" name="check other scripts"/>
<check_box label="Groep" name="check group scripts"/>
<text name="land_options_label">
Landopties:
@@ -379,8 +379,8 @@ of opgedeeld.
<panel.string name="landing_point_none">
(none)
</panel.string>
- <button width="70" label="Instellen" label_selected="Instellen" name="Set" tool_tip="Stelt het landingspunt in waar bezoekers arriveren. Wordt ingesteld op uw avatar&apos;s positie binnen dit perceel."/>
- <button width="80" left="311" label="Opschonen" label_selected="Opschonen" name="Clear" tool_tip="Landingspunt leegmaken"/>
+ <button label="Instellen" label_selected="Instellen" name="Set" tool_tip="Stelt het landingspunt in waar bezoekers arriveren. Wordt ingesteld op uw avatar&apos;s positie binnen dit perceel."/>
+ <button label="Opschonen" label_selected="Opschonen" name="Clear" tool_tip="Landingspunt leegmaken"/>
<text name="Teleport Routing: ">
Teleport routering:
</text>
@@ -473,8 +473,8 @@ hebt geklikt.)
<combo_box.item name="Group" label="Groep"
/>
</combo_box>
- <spinner label="Prijs in L$:" name="PriceSpin" label_width="168" width="228" />
- <spinner label="Toegangsuren" name="HoursSpin" label_width="168" width="228" />
+ <spinner label="Prijs in L$:" name="PriceSpin" label_width="168" />
+ <spinner label="Toegangsuren" name="HoursSpin" label_width="168" />
<text label="Altijd toestaan" name="AllowedText">
Toegestane inwoners
</text>
diff --git a/indra/newview/skins/default/xui/nl/floater_animation_preview.xml b/indra/newview/skins/default/xui/nl/floater_animation_preview.xml
new file mode 100644
index 0000000000..f4e9908150
--- /dev/null
+++ b/indra/newview/skins/default/xui/nl/floater_animation_preview.xml
@@ -0,0 +1,85 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Animation Preview" title="">
+ <text name="name_label">
+ Naam:
+ </text>
+ <text name="description_label">
+ Omschrijving:
+ </text>
+ <spinner label="Prioriteit" name="priority" tool_tip="Bepaalt welke andere animaties kunnen worden overschaduwd door deze animatie."/>
+ <check_box label="Herhalen" name="loop_check" tool_tip="Laat deze animatie herhalen."/>
+ <spinner label="In(%)" name="loop_in_point" tool_tip="Instellen punt in de animatie waar de herhaling begint."/>
+ <spinner label="Uit(%)" name="loop_out_point" tool_tip="Instellen punt in in de animatie waar de herhaling eindigt."/>
+ <text name="hand_label">
+ Houding van Hand
+ </text>
+ <combo_box label="" left_delta="100" width="176" name="hand_pose_combo" tool_tip="Bepaalt wat handen doen tijdens een animatie." left="300">
+ <combo_box.item name="Spread" label="Gespreid"/>
+ <combo_box.item name="Relaxed" label="Ontspannen"/>
+ <combo_box.item name="PointBoth" label="Wijzen Beide"/>
+ <combo_box.item name="Fist" label="Vuist"/>
+ <combo_box.item name="RelaxedLeft" label="Ontspannen Links"/>
+ <combo_box.item name="PointLeft" label="Wijzen Links"/>
+ <combo_box.item name="FistLeft" label="Vuist Links"/>
+ <combo_box.item name="RelaxedRight" label="Ontspannen Rechts"/>
+ <combo_box.item name="PointRight" label="Wijzen Rechts"/>
+ <combo_box.item name="FistRight" label="Vuist Rechts"/>
+ <combo_box.item name="SaluteRight" label="Salueren Rechts"/>
+ <combo_box.item name="Typing" label="Typen"/>
+ <combo_box.item name="PeaceRight" label="Peace Rechts"/>
+ </combo_box>
+ <text name="emote_label">
+ Expressie
+ </text>
+ <combo_box label="" left_delta="100" width="176" name="emote_combo" tool_tip="Bepaalt wat het gezicht doet tijdens de animatie.">
+ <combo_box.item name="[None]" label="Geen]"/>
+ <combo_box.item name="Aaaaah" label="Aaaaah"/>
+ <combo_box.item name="Afraid" label="Bang"/>
+ <combo_box.item name="Angry" label="Boos"/>
+ <combo_box.item name="BigSmile" label="Brede Lach"/>
+ <combo_box.item name="Bored" label="Verveeld"/>
+ <combo_box.item name="Cry" label="Huilen"/>
+ <combo_box.item name="Disdain" label="Minachting"/>
+ <combo_box.item name="Embarrassed" label="Beschaamd"/>
+ <combo_box.item name="Frown" label="Frons"/>
+ <combo_box.item name="Kiss" label="Kus"/>
+ <combo_box.item name="Laugh" label="Lachen"/>
+ <combo_box.item name="Plllppt" label="Plllppt"/>
+ <combo_box.item name="Repulsed" label="Afkeer"/>
+ <combo_box.item name="Sad" label="Verdrietig"/>
+ <combo_box.item name="Shrug" label="Onverschillig"/>
+ <combo_box.item name="Smile" label="Glimlach"/>
+ <combo_box.item name="Surprise" label="Verrassing"/>
+ <combo_box.item name="Wink" label="Knipoog"/>
+ <combo_box.item name="Worry" label="Bezorgd"/>
+ </combo_box>
+ <text name="preview_label">
+ Voorvertoning
+ </text>
+ <combo_box label="" left_delta="100" width="176" name="preview_base_anim" tool_tip="Gebruik dit om het gedrag van uw animatie te testen terwijl uw avatar veelvoorkomende acties uitvoert.">
+ <combo_box.item name="Standing" label="Staand"/>
+ <combo_box.item name="Walking" label="Lopend"/>
+ <combo_box.item name="Sitting" label="Zittend"/>
+ <combo_box.item name="Flying" label="Vliegend"/>
+ </combo_box>
+ <spinner label="Invloeitijd (sec)" label_width="125" name="ease_in_time" tool_tip="Hoeveelheid tijd (in seconden) waarover animaties invloeien." width="192"/>
+ <spinner bottom_delta="-20" label="Uitvloeitijd (sec)" label_width="125" left="10" name="ease_out_time" tool_tip="Hoeveelheid tijd (in seconden) waarover animaties uitvloeien." width="192"/>
+ <button bottom_delta="-32" label="" name="play_btn" tool_tip="Start/pauzeer uw animatie."/>
+ <button label="" name="stop_btn" tool_tip="Stop het afspelen van Uw animatie"/>
+ <text name="bad_animation_text">
+ Niet in staat om het animatiebestand te lezen. Wij
+raden u aan bestanden te gebruiken die vanuit
+Poser 4 zijn geëxporteerd.
+ </text>
+ <button label="Annuleren" name="cancel_btn"/>
+ <button label="Upload (L$[AMOUNT])" name="ok_btn" width="140" left_delta="-155"/>
+ <string name="failed_to_initialize">
+ Het initialiseren van de beweging is mislukt.
+ </string>
+ <string name="anim_too_long">
+ het animatiebestand heeft een lengte van [LENGTH] seconden. De maximale lengte van een animatie is [MAX_LENGTH] seconden.
+ </string>
+ <string name="failed_file_read">
+ Kan animatiebestand niet lezen. [STATUS]
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_avatar_picker.xml b/indra/newview/skins/default/xui/nl/floater_avatar_picker.xml
new file mode 100644
index 0000000000..260cc8e98f
--- /dev/null
+++ b/indra/newview/skins/default/xui/nl/floater_avatar_picker.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="avatarpicker" title="KIES INWONER">
+ <tab_container name="ResidentChooserTabs">
+ <panel label="Zoeken" name="SearchPanel">
+ <text name="InstructSearchResidentName">
+ Type een deel van de naam van de inwoner:
+ </text>
+ <button label="Zoek" label_selected="Zoek" name="Find"/>
+ </panel>
+ <panel label="Visitekaartjes" name="CallingCardsPanel">
+ <text name="InstructSelectCallingCard">
+ Selecteer een visitekaartje:
+ </text>
+ </panel>
+ <panel label="In mijn buurt" name="NearMePanel">
+ <text name="InstructSelectResident">
+ Selecteer een inwoner
+in de buurt:
+ </text>
+ <button label="Vernieuw lijst" label_selected="Ververs lijst" name="Refresh"/>
+ <slider label="Afstand" name="near_me_range" bottom_delta="-36"/>
+ <text name="meters">
+ Meters
+ </text>
+ <scroll_list bottom_delta="-169" height="159" name="NearMe" />
+ </panel>
+ </tab_container>
+ <button label="Selecteer" label_selected="Selecteer" name="Select"/>
+ <button label="Annuleren" label_selected="Annuleren" name="Cancel"/>
+ <string name="not_found">
+ &apos;[TEXT]&apos; niet gevonden
+ </string>
+ <string name="no_one_near">
+ Niemand in de buurt
+ </string>
+ <string name="no_results">
+ Geen resultaten
+ </string>
+ <string name="searching">
+ Zoeken...
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_avatar_textures.xml b/indra/newview/skins/default/xui/nl/floater_avatar_textures.xml
new file mode 100644
index 0000000000..a44db95b5b
--- /dev/null
+++ b/indra/newview/skins/default/xui/nl/floater_avatar_textures.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="avatar_texture_debug" title="AVATAR TEXTUREN">
+ <text name="baked_label">
+ Baked texturen
+ </text>
+ <text name="composite_label">
+ Samengestelde texturen
+ </text>
+ <texture_picker label="Hoofd" name="baked_head"/>
+ <texture_picker label="Make-up" name="head_bodypaint"/>
+ <texture_picker label="Haar" name="hair"/>
+ <button label="Dump" label_selected="Dump" name="Dump"/>
+ <texture_picker label="Ogen" name="baked_eyes"/>
+ <texture_picker label="Oog" name="eye_texture"/>
+ <texture_picker label="Bovenlichaam" name="baked_upper_body"/>
+ <texture_picker label="Bovenlichaam tatoeage" name="upper_bodypaint"/>
+ <texture_picker label="Onderhemd" name="undershirt"/>
+ <texture_picker label="Handschoenen" name="gloves"/>
+ <texture_picker label="Hemd" name="shirt"/>
+ <texture_picker label="Bovenkant jas" name="upper_jacket"/>
+ <texture_picker label="Onderlichaam" name="baked_lower_body"/>
+ <texture_picker label="Onderlichaam tatoeage" name="lower_bodypaint"/>
+ <texture_picker label="Onderbroek" name="underpants"/>
+ <texture_picker label="Sokken" name="socks"/>
+ <texture_picker label="Schoenen" name="shoes"/>
+ <texture_picker label="Broek" name="pants"/>
+ <texture_picker label="Jas" name="jacket"/>
+ <texture_picker label="Rok" name="baked_skirt"/>
+ <texture_picker label="Rok" name="skirt_texture"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_build_options.xml b/indra/newview/skins/default/xui/nl/floater_build_options.xml
new file mode 100644
index 0000000000..53b60167bb
--- /dev/null
+++ b/indra/newview/skins/default/xui/nl/floater_build_options.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="build options floater" title="GRID OPTIES">
+ <spinner label="Grid eenheid (meters)" name="GridResolution" width="180" label_width="122"/>
+ <spinner label="Grid extensies (meters)" name="GridDrawSize" width="180" label_width="122"/>
+ <check_box label="Sub-eenheid snap Inschakelen" name="GridSubUnit"/>
+ <check_box label="Toon dwarsdoorsnede" name="GridCrossSection"/>
+ <slider label="Grid opaakheid" name="GridOpacity"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_customize.xml b/indra/newview/skins/default/xui/nl/floater_customize.xml
deleted file mode 100644
index e6a4ed7a27..0000000000
--- a/indra/newview/skins/default/xui/nl/floater_customize.xml
+++ /dev/null
@@ -1,469 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater customize" title="UITERLIJK">
- <tab_container name="customize tab container" tab_min_width="120">
- <placeholder label="Lichaamsdelen" name="body_parts_placeholder"/>
- <panel label="Postuur" name="Shape" left="124" width="389">
- <button label="Herstel" label_selected="Herstel" name="Revert"/>
- <button label="Lichaam" label_selected="Lichaam" name="Body"/>
- <button label="Hoofd" label_selected="Hoofd" name="Head"/>
- <button label="Ogen" label_selected="Ogen" name="Eyes"/>
- <button label="Oren" label_selected="Oren" name="Ears"/>
- <button label="Neus" label_selected="Neus" name="Nose"/>
- <button label="Mond" label_selected="Mond" name="Mouth"/>
- <button label="Kin" label_selected="Kin" name="Chin"/>
- <button label="Torso" label_selected="Torso" name="Torso"/>
- <button label="Benen" label_selected="Benen" name="Legs"/>
- <radio_group name="sex radio">
- <radio_item name="radio" label="Vrouw" />
- <radio_item name="radio2" label="Man" />
- </radio_group>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: Kan niet wijzigen
- </text>
- <text name="title_loading">
- [DESC]: laden...
- </text>
- <text name="title_not_worn">
- [DESC]: niet gedragen
- </text>
- <text name="path">
- Gelegen in [PATH]
- </text>
- <text name="not worn instructions">
- Draag een nieuwe postuur door hem vanuit uw inventaris naar uw avatar
-te slepen. Ook kunt u zelf van begin af aan een nieuwe creëren en dragen.
- </text>
- <text name="no modify instructions">
- U heeft geen permissie om dit draagbare item te wijzigen.
- </text>
- <text name="Item Action Label">
- Postuur:
- </text>
- <button label="Nieuw postuur maken" label_selected="Nieuw postuur maken" name="Create New"/>
- <button label="Opslaan" label_selected="Opslaan" name="Save"/>
- <button label="Opslaan als..." label_selected="Opslaan als..." name="Save As"/>
- </panel>
- <panel label="Huid" name="Skin">
- <button width="104" label="Huidskleur" label_selected="Huidskleur" name="Skin Color"/>
- <button width="104" label="Gezichtsdetail" label_selected="Gezichtsdetail" name="Face Detail"/>
- <button width="104" label="Make-up" label_selected="Make-up" name="Makeup"/>
- <button width="104" label="Lichaam detail" label_selected="Lichaam detail" name="Body Detail"/>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: Kan niet wijzigen
- </text>
- <text name="title_loading">
- [DESC]: laden...
- </text>
- <text name="title_not_worn">
- [DESC]: niet gedragen
- </text>
- <text name="path">
- Gelegen in [PATH]
- </text>
- <text name="not worn instructions">
- Draag een nieuwe huid door haar vanuit uw inventaris naar uw avatar te
-slepen. Ook kunt u zelf van begin af aan een nieuwe creëren en dragen.
- </text>
- <text name="no modify instructions">
- U heeft geen permissie om dit draagbare item te wijzigen.
- </text>
- <text name="Item Action Label">
- Huid:
- </text>
- <texture_picker width="104" label="Hoofd tatoeages" name="Head Tattoos" tool_tip="Klik om een afbeelding te kiezen"/>
- <texture_picker width="104" label="Bovenste tatoeage" name="Upper Tattoos" tool_tip="Klik om een afbeelding te kiezen"/>
- <texture_picker width="104" label="Onderste tatoeages" name="Lower Tattoos" tool_tip="Klik om een afbeelding te kiezen"/>
- <button label="Nieuwe huid maken" label_selected="Nieuwe huid maken" name="Create New"/>
- <button label="Opslaan" label_selected="Opslaan" name="Save"/>
- <button label="Opslaan als..." label_selected="Opslaan als..." name="Save As"/>
- <button label="Herstel" label_selected="Herstel" name="Revert"/>
- </panel>
- <panel label="Haar" name="Hair">
- <button label="Kleur" label_selected="Kleur" name="Color"/>
- <button label="Stijl" label_selected="Stijl" name="Style"/>
- <button label="Wenkbrauwen" label_selected="Wenkbrauwen" name="Eyebrows"/>
- <button label="Aangezicht" label_selected="Aangezicht" name="Facial"/>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: Kan niet wijzigen
- </text>
- <text name="title_loading">
- [DESC]: laden...
- </text>
- <text name="title_not_worn">
- [DESC]: niet gedragen
- </text>
- <text name="path">
- Gelegen in [PATH]
- </text>
- <text name="not worn instructions">
- Draag nieuw haar door het vanuit uw inventaris naar uw avatar te
-slepen. Ook kunt u zelf van begin af aan nieuw creëren en dragen.
- </text>
- <text name="no modify instructions">
- U heeft geen permissie om dit draagbare item te wijzigen.
- </text>
- <text name="Item Action Label">
- Haar:
- </text>
- <texture_picker label="Textuur" name="Texture" tool_tip="Klik om een afbeelding te kiezen"/>
- <button label="Nieuw haar maken" label_selected="Nieuw haar maken" name="Create New"/>
- <button label="Opslaan" label_selected="Opslaan" name="Save"/>
- <button label="Opslaan als..." label_selected="Opslaan als..." name="Save As"/>
- <button label="Herstel" label_selected="Herstel" name="Revert"/>
- </panel>
- <panel label="Ogen" name="Eyes">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: Kan niet wijzigen
- </text>
- <text name="title_loading">
- [DESC]: laden...
- </text>
- <text name="title_not_worn">
- [DESC]: niet gedragen
- </text>
- <text name="path">
- Gelegen in [PATH]
- </text>
- <text name="not worn instructions">
- Draag nieuwe ogen door ze vanuit uw inventaris naar uw avatar te
-slepen. Ook kunt u zelf van begin af aan nieuwe creëren en dragen.
- </text>
- <text name="no modify instructions">
- U heeft geen permissie om dit draagbare item te wijzigen.
- </text>
- <text name="Item Action Label">
- Ogen:
- </text>
- <texture_picker label="Iris" name="Iris" tool_tip="Klik om een afbeelding te kiezen"/>
- <button label="Nieuwe ogen maken" label_selected="Nieuwe ogen maken" name="Create New"/>
- <button label="Opslaan" label_selected="Opslaan" name="Save"/>
- <button label="Opslaan als..." label_selected="Opslaan als..." name="Save As"/>
- <button label="Herstel" label_selected="Herstel" name="Revert"/>
- </panel>
- <panel label="Kleding" name="clothes_placeholder"/>
- <panel label="Hemd" name="Shirt">
- <texture_picker label="Stof" name="Fabric" tool_tip="Klik om een afbeelding te kiezen"/>
- <color_swatch label="Kleur/tint" name="Color/Tint" tool_tip="Klik om de kleurkiezer te openen"/>
- <button label="Nieuw hemd maken" label_selected="Nieuw hemd maken" name="Create New"/>
- <button label="Uitdoen" label_selected="Uitdoen" name="Take Off"/>
- <button label="Opslaan" label_selected="Opslaan" name="Save"/>
- <button label="Opslaan als..." label_selected="Opslaan als..." name="Save As"/>
- <button label="Herstel" label_selected="Herstel" name="Revert"/>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: Kan niet wijzigen
- </text>
- <text name="title_loading">
- [DESC]: laden...
- </text>
- <text name="title_not_worn">
- [DESC]: niet gedragen
- </text>
- <text name="path">
- Gelegen in [PATH]
- </text>
- <text name="not worn instructions">
- Draag een nieuw hemd door hem vanuit uw inventaris naar uw avatar te
-slepen. Ook kunt u zelf van begin af aan een nieuwe creëren en dragen.
- </text>
- <text name="no modify instructions">
- U heeft geen permissie om dit draagbare item te wijzigen.
- </text>
- <text name="Item Action Label">
- Hemd:
- </text>
- </panel>
- <panel label="Broek" name="Pants">
- <texture_picker label="Stof" name="Fabric" tool_tip="Klik om een afbeelding te kiezen"/>
- <color_swatch label="Kleur/tint" name="Color/Tint" tool_tip="Klik om de kleurkiezer te openen"/>
- <button label="Nieuwe broek maken" label_selected="Nieuwe broek maken" name="Create New"/>
- <button label="Uitdoen" label_selected="Uitdoen" name="Take Off"/>
- <button label="Opslaan" label_selected="Opslaan" name="Save"/>
- <button label="Opslaan als..." label_selected="Opslaan als..." name="Save As"/>
- <button label="Herstel" label_selected="Herstel" name="Revert"/>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: Kan niet wijzigen
- </text>
- <text name="title_loading">
- [DESC]: laden...
- </text>
- <text name="title_not_worn">
- [DESC]: niet gedragen
- </text>
- <text name="path">
- Gelegen in [PATH]
- </text>
- <text name="not worn instructions">
- Draag een nieuwe broek door hem vanuit uw inventaris naar uw avatar te
-slepen. Ook kunt u zelf van begin af aan een nieuwe creëren en dragen.
- </text>
- <text name="no modify instructions">
- U heeft geen permissie om dit draagbare item te wijzigen.
- </text>
- <text name="Item Action Label">
- Broek:
- </text>
- </panel>
- <panel label="Schoenen" name="Shoes">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: Kan niet wijzigen
- </text>
- <text name="title_loading">
- [DESC]: laden...
- </text>
- <text name="title_not_worn">
- [DESC]: niet gedragen
- </text>
- <text name="path">
- Gelegen in [PATH]
- </text>
- <text name="not worn instructions">
- Draag nieuwe schoenen door ze vanuit uw inventaris naar uw avatar te
-slepen. Ook kunt u zelf van begin af aan nieuwe creëren en dragen.
- </text>
- <text name="no modify instructions">
- U heeft geen permissie om dit draagbare item te wijzigen.
- </text>
- <text name="Item Action Label">
- Schoenen:
- </text>
- <texture_picker label="Stof" name="Fabric" tool_tip="Klik om een afbeelding te kiezen"/>
- <color_swatch label="Kleur/tint" name="Color/Tint" tool_tip="Klik om de kleurkiezer te openen"/>
- <button label="Nieuwe schoenen maken" label_selected="Nieuwe schoenen maken" name="Create New"/>
- <button label="Uitdoen" label_selected="Uitdoen" name="Take Off"/>
- <button label="Opslaan" label_selected="Opslaan" name="Save"/>
- <button label="Opslaan als..." label_selected="Opslaan als..." name="Save As"/>
- <button label="Herstel" label_selected="Herstel" name="Revert"/>
- </panel>
- <panel label="Sokken" name="Socks">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: Kan niet wijzigen
- </text>
- <text name="title_loading">
- [DESC]: laden...
- </text>
- <text name="title_not_worn">
- [DESC]: niet gedragen
- </text>
- <text name="path">
- Gelegen in [PATH]
- </text>
- <text name="not worn instructions">
- Draag nieuwe sokken door ze vanuit uw inventaris naar uw avatar te
-slepen. Ook kunt u zelf van begin af aan nieuwe creëren en dragen.
- </text>
- <text name="no modify instructions">
- U heeft geen permissie om dit draagbare item te wijzigen.
- </text>
- <text name="Item Action Label">
- Sokken:
- </text>
- <texture_picker label="Stof" name="Fabric" tool_tip="Klik om een afbeelding te kiezen"/>
- <color_swatch label="Kleur/tint" name="Color/Tint" tool_tip="Klik om de kleurkiezer te openen"/>
- <button label="Nieuwe sokken maken" label_selected="Nieuwe sokken maken" name="Create New"/>
- <button label="Uitdoen" label_selected="Uitdoen" name="Take Off"/>
- <button label="Opslaan" label_selected="Opslaan" name="Save"/>
- <button label="Opslaan als..." label_selected="Opslaan als..." name="Save As"/>
- <button label="Herstel" label_selected="Herstel" name="Revert"/>
- </panel>
- <panel label="Jas" name="Jacket">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: Kan niet wijzigen
- </text>
- <text name="title_loading">
- [DESC]: laden...
- </text>
- <text name="title_not_worn">
- [DESC]: niet gedragen
- </text>
- <text name="path">
- Gelegen in [PATH]
- </text>
- <text name="not worn instructions">
- Draag een nieuwe jas door hem vanuit uw inventaris naar uw avatar te
-slepen. Ook kunt u zelf van begin af aan een nieuwe creëren en dragen.
- </text>
- <text name="no modify instructions">
- U heeft geen permissie om dit draagbare item te wijzigen.
- </text>
- <text name="Item Action Label">
- Jas:
- </text>
- <texture_picker width="78" label="Bovenste stof" name="Upper Fabric" tool_tip="Klik om een afbeelding te kiezen"/>
- <texture_picker width="78" label="Onderste stof" name="Lower Fabric" tool_tip="Klik om een afbeelding te kiezen"/>
- <color_swatch width="78" label="Kleur/tint" name="Color/Tint" tool_tip="Klik om de kleurkiezer te openen"/>
- <button label="Nieuwe jas maken" label_selected="Nieuwe jas maken" name="Create New"/>
- <button label="Uitdoen" label_selected="Uitdoen" name="Take Off"/>
- <button label="Opslaan" label_selected="Opslaan" name="Save"/>
- <button label="Opslaan als..." label_selected="Opslaan als..." name="Save As"/>
- <button label="Herstel" label_selected="Herstel" name="Revert"/>
- </panel>
- <panel label="Handschoenen" name="Gloves">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: Kan niet wijzigen
- </text>
- <text name="title_loading">
- [DESC]: laden...
- </text>
- <text name="title_not_worn">
- [DESC]: niet gedragen
- </text>
- <text name="path">
- Gelegen in [PATH]
- </text>
- <text name="not worn instructions">
- Draag nieuwe handschoenen door ze vanuit uw inventaris naar uw avatar
-te slepen. Ook kunt u zelf van begin af aan nieuwe creëren en dragen.
- </text>
- <text name="no modify instructions">
- U heeft geen permissie om dit draagbare item te wijzigen.
- </text>
- <text name="Item Action Label">
- Handschoenen:
- </text>
- <texture_picker label="Stof" name="Fabric" tool_tip="Klik om een afbeelding te kiezen"/>
- <color_swatch label="Kleur/tint" name="Color/Tint" tool_tip="Klik om de kleurkiezer te openen"/>
- <button label="Nieuwe handschoenen maken" label_selected="Nieuwe handschoenen maken" name="Create New" width="190"/>
- <button label="Uitdoen" label_selected="Uitdoen" name="Take Off"/>
- <button label="Opslaan" label_selected="Opslaan" name="Save"/>
- <button label="Opslaan als..." label_selected="Opslaan als..." name="Save As"/>
- <button label="Herstel" label_selected="Herstel" name="Revert"/>
- </panel>
- <panel label="Onderhemd" name="Undershirt">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: Kan niet wijzigen
- </text>
- <text name="title_loading">
- [DESC]: laden...
- </text>
- <text name="title_not_worn">
- [DESC]: niet gedragen
- </text>
- <text name="path">
- Gelegen in [PATH]
- </text>
- <text name="not worn instructions">
- Draag een nieuw onderhemd door hem vanuit uw inventaris naar uw avatar
-te slepen. Ook kunt u zelf van begin af aan een nieuwe creëren en dragen.
- </text>
- <text name="no modify instructions">
- U heeft geen permissie om dit draagbare item te wijzigen.
- </text>
- <text name="Item Action Label">
- Onderhemd:
- </text>
- <texture_picker label="Stof" name="Fabric" tool_tip="Klik om een afbeelding te kiezen"/>
- <color_swatch label="Kleur/tint" name="Color/Tint" tool_tip="Klik om de kleurkiezer te openen"/>
- <button label="Nieuw onderhemd maken" label_selected="Nieuw onderhemd maken" name="Create New"/>
- <button label="Uitdoen" label_selected="Uitdoen" name="Take Off"/>
- <button label="Opslaan" label_selected="Opslaan" name="Save"/>
- <button label="Opslaan als..." label_selected="Opslaan als..." name="Save As"/>
- <button label="Herstel" label_selected="Herstel" name="Revert"/>
- </panel>
- <panel label="Onderbroek" name="Underpants">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: Kan niet wijzigen
- </text>
- <text name="title_loading">
- [DESC]: laden...
- </text>
- <text name="title_not_worn">
- [DESC]: niet gedragen
- </text>
- <text name="path">
- Gelegen in [PATH]
- </text>
- <text name="not worn instructions">
- Draag een nieuwe onderbroek door hem vanuit uw inventaris naar uw
-avatar te slepen. Ook kunt u zelf van begin af aan een nieuwe creëren
-en dragen.
- </text>
- <text name="no modify instructions">
- U heeft geen permissie om dit draagbare item te wijzigen.
- </text>
- <text name="Item Action Label">
- Onderbroek:
- </text>
- <texture_picker label="Stof" name="Fabric" tool_tip="Klik om een afbeelding te kiezen"/>
- <color_swatch label="Kleur/tint" name="Color/Tint" tool_tip="Klik om de kleurkiezer te openen"/>
- <button label="Nieuwe onderbroek maken" label_selected="Nieuwe onderbroek maken" name="Create New"/>
- <button label="Uitdoen" label_selected="Uitdoen" name="Take Off"/>
- <button label="Opslaan" label_selected="Opslaan" name="Save"/>
- <button label="Opslaan als..." label_selected="Opslaan als..." name="Save As"/>
- <button label="Herstel" label_selected="Herstel" name="Revert"/>
- </panel>
- <panel label="Rok" name="Skirt">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: Kan niet wijzigen
- </text>
- <text name="title_loading">
- [DESC]: laden...
- </text>
- <text name="title_not_worn">
- [DESC]: niet gedragen
- </text>
- <text name="path">
- Gelegen in [PATH]
- </text>
- <text name="not worn instructions">
- Draag een nieuwe rok door hem vanuit uw inventaris naar uw avatar te
-slepen. Ook kunt u zelf van begin af aan een nieuwe creëren en dragen.
- </text>
- <text name="no modify instructions">
- U heeft geen permissie om dit draagbare item te wijzigen.
- </text>
- <text name="Item Action Label">
- Rok:
- </text>
- <texture_picker label="Stof" name="Fabric" tool_tip="Klik om een afbeelding te kiezen"/>
- <color_swatch label="Kleur/tint" name="Color/Tint" tool_tip="Klik om de kleurkiezer te openen"/>
- <button label="Nieuwe rok maken" label_selected="Nieuwe rok maken" name="Create New"/>
- <button label="Uitdoen" label_selected="Uitdoen" name="Take Off"/>
- <button label="Opslaan" label_selected="Opslaan" name="Save"/>
- <button label="Opslaan als..." label_selected="Opslaan als..." name="Save As"/>
- <button label="Herstel" label_selected="Herstel" name="Revert"/>
- </panel>
- </tab_container>
- <scroll_container name="panel_container"/>
- <button label="Annuleren" label_selected="Annuleren" name="Cancel"/>
- <button label="OK" label_selected="OK" name="Ok"/>
- <button label="Maak kleding..." label_selected="Maak kleding..." name="Make Outfit" left="110"/>
-</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_day_cycle_options.xml b/indra/newview/skins/default/xui/nl/floater_day_cycle_options.xml
new file mode 100644
index 0000000000..1f3e045a75
--- /dev/null
+++ b/indra/newview/skins/default/xui/nl/floater_day_cycle_options.xml
@@ -0,0 +1,94 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Day Cycle Floater" title="DAGCYCLUS EDITOR">
+ <tab_container name="Day Cycle Tabs">
+ <panel label="Dagcyclus" name="Day Cycle">
+ <button label="?" name="WLDayCycleHelp"/>
+ <text name="WL12am">
+ 0:00
+ </text>
+ <text name="WL3am">
+ 3:00
+ </text>
+ <text name="WL6am">
+ 6:00
+ </text>
+ <text name="WL9amHash">
+ 9:00
+ </text>
+ <text name="WL12pmHash">
+ 12:00
+ </text>
+ <text name="WL3pm">
+ 15:00
+ </text>
+ <text name="WL6pm">
+ 18:00
+ </text>
+ <text name="WL9pm">
+ 21:00
+ </text>
+ <text name="WL12am2">
+ 0:00
+ </text>
+ <text name="WL12amHash">
+ |
+ </text>
+ <text name="WL3amHash">
+ I
+ </text>
+ <text name="WL6amHash">
+ |
+ </text>
+ <text name="WL9amHash2">
+ I
+ </text>
+ <text name="WL12pmHash2">
+ |
+ </text>
+ <text name="WL3pmHash">
+ I
+ </text>
+ <text name="WL6pmHash">
+ |
+ </text>
+ <text name="WL9pmHash">
+ I
+ </text>
+ <text name="WL12amHash2">
+ |
+ </text>
+ <button label="Key toevoegen" label_selected="Key toevoegen" name="WLAddKey"/>
+ <button label="Key verwijderen" label_selected="Key verwijderen" name="WLDeleteKey"/>
+ <text name="WLCurKeyFrameText">
+ Gemarkeerde frame instelling:
+ </text>
+ <text name="WLCurKeyTimeText">
+ Markering tijd:
+ </text>
+ <spinner label="Uur" name="WLCurKeyHour"/>
+ <spinner label="Min" name="WLCurKeyMin"/>
+ <text name="WLCurKeyTimeText2">
+ Markering voorinstelling:
+ </text>
+ <combo_box label="Voorinstelling" name="WLKeyPresets"/>
+ <text name="DayCycleText">
+ Snap:
+ </text>
+ <combo_box label="5 min" name="WLSnapOptions"/>
+ <text name="DayCycleText2">
+ Lengte van cyclus:
+ </text>
+ <spinner label="Uur" name="WLLengthOfDayHour"/>
+ <spinner label="Min" name="WLLengthOfDayMin"/>
+ <spinner label="Sec" name="WLLengthOfDaySec"/>
+ <text name="DayCycleText3">
+ Voorbeeld:
+ </text>
+ <button label="Afspelen" label_selected="Afspelen" name="WLAnimSky"/>
+ <button label="Stop!" label_selected="Stop" name="WLStopAnimSky"/>
+ <button label="Gebruik estatetijd" label_selected="Ga naar Estate tijd" name="WLUseLindenTime"/>
+ <button label="Opslaan testdag" label_selected="Opslaan testdag" name="WLSaveDayCycle"/>
+ <button label="Laad testdag" label_selected="Laad testdag" name="WLLoadDayCycle"/>
+ </panel>
+ </tab_container>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_hardware_settings.xml b/indra/newview/skins/default/xui/nl/floater_hardware_settings.xml
new file mode 100644
index 0000000000..b27a96f15c
--- /dev/null
+++ b/indra/newview/skins/default/xui/nl/floater_hardware_settings.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Hardware Settings Floater" title="HARDWARE INSTELLINGEN">
+ <text name="Filtering:">
+ Filtering:
+ </text>
+ <check_box label="Anisotropische filtering (langzamer indien ingeschakeld)" name="ani" left="100"/>
+ <text name="Antialiasing:">
+ Anti-alias:
+ </text>
+ <combo_box label="Anti-alias" name="fsaa" width="120" left="100">
+ <combo_box.item name="FSAADisabled" label="Uitgeschakeld"/>
+ <combo_box.item name="2x" label="2x"/>
+ <combo_box.item name="4x" label="4x"/>
+ <combo_box.item name="8x" label="8x"/>
+ <combo_box.item name="16x" label="16x"/>
+ </combo_box>
+ <spinner label="Gamma:" name="gamma" label_width="88" width="170"/>
+ <text name="(brightness, lower is brighter)" left="182">
+ (helderheid, lager is helderder, 0=gebruik standaardwaarde)
+ </text>
+ <text name="Enable VBO:">
+ VBO inschakelen:
+ </text>
+ <check_box label="OpenGL Vertex Buffer Objects inschakelen" name="vbo" tool_tip="Dit inschakelen op moderne hardware geeft een prestatiewinst. Oudere hardware heeft echter vaak een slechte implementatie van VBO&apos;s en u kunt crashes ondervinden wanneer dit is ingeschakeld."/>
+ <slider label="Textuurgeheugen (MB):" name="GrapicsCardTextureMemory" tool_tip="Hoeveelheid geheugen dat voor texturen toegewezen wordt. Standaard wordt de hoeveelheid geheugen van de videokaart gebruikt. Het verminderen van deze waarde kan de prestaties verbeteren, maar kan ook texturen wazig maken."/>
+ <spinner label="Mistafstandsratio:" name="fog"/>
+ <button label="OK" label_selected="OK" name="OK"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_im.xml b/indra/newview/skins/default/xui/nl/floater_im.xml
deleted file mode 100644
index 3167af5321..0000000000
--- a/indra/newview/skins/default/xui/nl/floater_im.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<multi_floater name="im_floater" title="Instant Message">
- <string name="only_user_message">
- U bent de enige gebruiker in deze sessie.
- </string>
- <string name="offline_message">
- [FIRST] [LAST] is offline.
- </string>
- <string name="invite_message">
- Klik de [BUTTON NAME] knop om deze voicechat te accepteren/verbinden.
- </string>
- <string name="muted_message">
- U heeft deze inwoner genegeerd. Door het sturen van een bericht zal deze automatisch van de negeerlijst verwijderd worden.
- </string>
- <string name="generic_request_error">
- Fout tijdens het maken van het verzoek, probeer het later nog een keer.
- </string>
- <string name="insufficient_perms_error">
- U heeft niet voldoende permissies.
- </string>
- <string name="session_does_not_exist_error">
- De sessie bestaat niet meer
- </string>
- <string name="no_ability_error">
- U beschikt niet over die mogelijkheid.
- </string>
- <string name="not_a_mod_error">
- U bent geen sessie moderateur
- </string>
- <string name="muted_error">
- Een groepsmoderator heeft uw textchat uitgeschakeld.
- </string>
- <string name="add_session_event">
- Kan geen gebruikers toevoegen aan chatsessie met [RECIPIENT].
- </string>
- <string name="message_session_event">
- Kan uw bericht niet versturen naar de chatsessie met [RECIPIENT].
- </string>
- <string name="removed_from_group">
- U bent verwijderd uit de groep.
- </string>
- <string name="close_on_no_ability">
- U heeft niet langer de mogelijkheid om in deze chatsessie te zijn.
- </string>
-</multi_floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_image_preview.xml b/indra/newview/skins/default/xui/nl/floater_image_preview.xml
new file mode 100644
index 0000000000..06596c20aa
--- /dev/null
+++ b/indra/newview/skins/default/xui/nl/floater_image_preview.xml
@@ -0,0 +1,33 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Image Preview" title="">
+ <text name="name_label">
+ Naam:
+ </text>
+ <text name="description_label">
+ Omschrijving:
+ </text>
+ <text name="preview_label">
+ Toon voorbeeld van
+afbeelding als:
+ </text>
+ <combo_box label="Kledingtype" name="clothing_type_combo">
+ <combo_box.item name="Image" label="Afbeelding"/>
+ <combo_box.item name="Hair" label="Haar"/>
+ <combo_box.item name="FemaleHead" label="Vrouwelijk hoofd"/>
+ <combo_box.item name="FemaleUpperBody" label="Vrouwelijk bovenlichaam"/>
+ <combo_box.item name="FemaleLowerBody" label="Vrouwelijk onderlichaam"/>
+ <combo_box.item name="MaleHead" label="Mannelijk hoofd"/>
+ <combo_box.item name="MaleUpperBody" label="Mannelijk onderlichaam"/>
+ <combo_box.item name="MaleLowerBody" label="Mannelijk bovenlichaam"/>
+ <combo_box.item name="Skirt" label="Rok"/>
+ <combo_box.item name="SculptedPrim" label="Sculpted prim"/>
+ </combo_box>
+ <text name="bad_image_text">
+ Kan afbeelding niet lezen.
+
+Probeer het op te slaan als een 24 bit Targa (.tga).
+ </text>
+ <check_box label="Gebruik verliesloze compressie" name="lossless_check"/>
+ <button label="Annuleren" name="cancel_btn"/>
+ <button label="Upload (L$[AMOUNT])" name="ok_btn" width="140"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_inventory_item_properties.xml b/indra/newview/skins/default/xui/nl/floater_inventory_item_properties.xml
new file mode 100644
index 0000000000..63cfafab81
--- /dev/null
+++ b/indra/newview/skins/default/xui/nl/floater_inventory_item_properties.xml
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="item properties" title="INVENTARISITEM EIGENSCHAPPEN">
+ <text name="LabelItemNameTitle">
+ Naam:
+ </text>
+ <text name="LabelItemDescTitle">
+ Omschrijving:
+ </text>
+ <text name="LabelCreatorTitle">
+ Maker:
+ </text>
+ <text name="LabelCreatorName">
+ Nicole Linden
+ </text>
+ <button label="Profiel..." label_selected="" name="BtnCreator"/>
+ <text name="LabelOwnerTitle">
+ Eigenaar
+ </text>
+ <text name="LabelOwnerName">
+ Thrax Linden
+ </text>
+ <button label="Profiel..." label_selected="" name="BtnOwner"/>
+ <text name="LabelAcquiredTitle">
+ Verworven:
+ </text>
+ <text name="LabelAcquiredDate">
+ Wed May 24 12:50:46 2006
+ </text>
+ <text name="OwnerLabel">
+ U kunt:
+ </text>
+ <check_box label="Wijzigen" name="CheckOwnerModify"/>
+ <check_box label="Kopiëren" name="CheckOwnerCopy"/>
+ <check_box label="Doorverkopen/weggeven" name="CheckOwnerTransfer"/>
+ <text name="BaseMaskDebug">
+ B:
+ </text>
+ <text name="OwnerMaskDebug">
+ E:
+ </text>
+ <text name="GroupMaskDebug">
+ G:
+ </text>
+ <text name="EveryoneMaskDebug">
+ I:
+ </text>
+ <text name="NextMaskDebug">
+ V:
+ </text>
+ <check_box label="Delen met groep" name="CheckShareWithGroup"/>
+ <check_box label="Iedereen mag kopiëren" name="CheckEveryoneCopy"/>
+ <text name="NextOwnerLabel" width="130">
+ Volgende eigenaar kan:
+ </text>
+ <check_box label="Wijzigen" name="CheckNextOwnerModify"/>
+ <check_box label="Kopiëren" name="CheckNextOwnerCopy"/>
+ <check_box label="Doorverkopen/weggeven" name="CheckNextOwnerTransfer"/>
+ <text name="SaleLabel">
+ Markeer item:
+ </text>
+ <check_box label="Te koop" name="CheckPurchase"/>
+ <radio_group name="RadioSaleType">
+ <radio_item name="radio" label="Origineel" />
+ <radio_item name="radio2" label="Kopiëren" />
+ </radio_group>
+ <text name="TextPrice">
+ Prijs: L$
+ </text>
+ <string name="unknown">
+ (onbekend)
+ </string>
+ <string name="public">
+ (public)
+ </string>
+ <string name="you_can">
+ U kunt:
+ </string>
+ <string name="owner_can">
+ Eigenaar kan:
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_inventory_view_finder.xml b/indra/newview/skins/default/xui/nl/floater_inventory_view_finder.xml
new file mode 100644
index 0000000000..097ebda8b7
--- /dev/null
+++ b/indra/newview/skins/default/xui/nl/floater_inventory_view_finder.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Inventory Finder" title="INVENTORY_RECENT_ITEMS">
+ <check_box label="Animatie" name="check_animation"/>
+ <check_box label="Visitekaartjes" name="check_calling_card"/>
+ <check_box label="Kleding" name="check_clothing"/>
+ <check_box label="Gebaren" name="check_gesture"/>
+ <check_box label="Landmarkeringen" name="check_landmark"/>
+ <check_box label="Notitiekaarten" name="check_notecard"/>
+ <check_box label="Objecten" name="check_object"/>
+ <check_box label="Scripts" name="check_script"/>
+ <check_box label="Geluiden" name="check_sound"/>
+ <check_box label="Texturen" name="check_texture"/>
+ <check_box label="Foto&apos;s" name="check_snapshot"/>
+ <button label="Alles" label_selected="Alles" name="All"/>
+ <button label="Geen" label_selected="Geen" name="None"/>
+ <check_box label="Altijd mappen tonen" name="check_show_empty"/>
+ <check_box label="Sinds logoff" name="check_since_logoff"/>
+ <text name="- OR -">
+ - OF -
+ </text>
+ <spinner label="Uren geleden" name="spin_hours_ago" width="144" label_width="80"/>
+ <spinner label="Dagen geleden" name="spin_days_ago" width="144" label_width="80"/>
+ <button label="Sluiten" label_selected="Sluiten" name="Close"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_land_holdings.xml b/indra/newview/skins/default/xui/nl/floater_land_holdings.xml
new file mode 100644
index 0000000000..5cf66ed0c4
--- /dev/null
+++ b/indra/newview/skins/default/xui/nl/floater_land_holdings.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="land holdings floater" title="MIJN LAND">
+ <scroll_list name="parcel list">
+ <column label="Perceelnaam" name="name"/>
+ <column label="Regio" name="location"/>
+ <column label="Type" name="type"/>
+ <column label="Gebied" name="area"/>
+ </scroll_list>
+ <button label="Teleport" label_selected="Teleport" name="Teleport" tool_tip="Teleport naar het centrum van dit land."/>
+ <button label="Toon op kaart" label_selected="Toon op kaart" name="Show on Map" tool_tip="Toon dit land op de wereldkaart"/>
+ <text name="contrib_label">
+ Bijdragen aan uw groepen:
+ </text>
+ <scroll_list name="grant list">
+ <column label="Groep" name="group"/>
+ <column label="Gebied" name="area"/>
+ </scroll_list>
+ <text name="allowed_label">
+ Toegestane landbezittingen in het huidige betaalschema:
+ </text>
+ <text name="allowed_text">
+ [AREA] m²
+ </text>
+ <text name="current_label">
+ Huidige landbezittingen:
+ </text>
+ <text name="current_text">
+ [AREA] m²
+ </text>
+ <text name="available_label">
+ Beschikbaar voor landaankopen:
+ </text>
+ <text name="available_text">
+ [AREA] m²
+ </text>
+ <string name="area_string">
+ [AREA] m²
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_live_lsleditor.xml b/indra/newview/skins/default/xui/nl/floater_live_lsleditor.xml
new file mode 100644
index 0000000000..98a0362ce1
--- /dev/null
+++ b/indra/newview/skins/default/xui/nl/floater_live_lsleditor.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="script ed float" title="SCRIPT: NIEUW SCRIPT">
+ <button label="Herstarten" label_selected="Herstarten" name="Reset"/>
+ <check_box label="Uitvoeren" name="running" left="4"/>
+ <check_box label="Mono" name="mono"/>
+ <string name="not_allowed">
+ U bent niet bevoegd om dit script in te zien
+ </string>
+ <string name="script_running">
+ Uitvoeren
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_media_browser.xml b/indra/newview/skins/default/xui/nl/floater_media_browser.xml
new file mode 100644
index 0000000000..12f693bf33
--- /dev/null
+++ b/indra/newview/skins/default/xui/nl/floater_media_browser.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_about" title="MEDIA VERKENNER">
+ <layout_stack name="stack1">
+ <layout_panel name="nav_controls">
+ <button label="Terug" name="back"/>
+ <button label="Vooruit" name="forward"/>
+ <button label="Herladen" name="reload"/>
+ <button label="Ga" name="go"/>
+ </layout_panel>
+ <layout_panel name="parcel_owner_controls">
+ <button label="Stuur huidige URL naar perceel" name="assign"/>
+ </layout_panel>
+ <layout_panel name="external_controls">
+ <button label="Open in mijn webbrowser" name="open_browser"/>
+ <check_box label="Altijd in mijn webbrowser openen" name="open_always"/>
+ <button label="Sluiten" name="close"/>
+ </layout_panel>
+ </layout_stack>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_my_friends.xml b/indra/newview/skins/default/xui/nl/floater_my_friends.xml
deleted file mode 100644
index 8d709d3c00..0000000000
--- a/indra/newview/skins/default/xui/nl/floater_my_friends.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_my_friends" title="CONTACTEN">
- <tab_container name="friends_and_groups">
- <panel label="Vrienden" name="friends_panel"/>
- <panel label="Groepen" name="groups_panel"/>
- </tab_container>
-</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_preview_animation.xml b/indra/newview/skins/default/xui/nl/floater_preview_animation.xml
new file mode 100644
index 0000000000..0634452d96
--- /dev/null
+++ b/indra/newview/skins/default/xui/nl/floater_preview_animation.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="preview_anim">
+ <text name="desc txt">
+ Omschrijving:
+ </text>
+ <button label="Afspelen in wereld" label_selected="Stop" name="Anim play btn" tool_tip="Speel deze animatie af, zodat anderen hem kunnen zien." width="120"/>
+ <button label="Lokaal afspelen" label_selected="Stop" name="Anim audition btn" tool_tip="Speel deze animatie af, zodat alleen u hem kunt zien." width="110"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_preview_gesture.xml b/indra/newview/skins/default/xui/nl/floater_preview_gesture.xml
new file mode 100644
index 0000000000..7dd85460a2
--- /dev/null
+++ b/indra/newview/skins/default/xui/nl/floater_preview_gesture.xml
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="gesture_preview">
+ <string name="stop_txt">
+ Stop
+ </string>
+ <string name="preview_txt">
+ Voorbeeld
+ </string>
+ <string name="none_text">
+ -- Geen --
+ </string>
+ <text name="desc_label">
+ Omschrijving:
+ </text>
+ <text name="trigger_label">
+ Trigger:
+ </text>
+ <text name="replace_text" tool_tip="Vervang de startseinwoorden door deze woorden. Bijvoorbeeld, startsein &apos;hallo&apos; vervang door &apos;hoi&apos; zal de chat &apos;Ik wilde hallo zeggen&apos; veranderen in &apos;Ik wilde hoi zeggen&apos;, waarbij tevens het gebaar afgespeeld zal worden!" left="208">
+ Vervangen door:
+ </text>
+ <line_editor name="replace_editor" tool_tip="Vervang de startseinwoorden door deze woorden. Bijvoorbeeld, startsein &apos;hallo&apos; vervang door &apos;hoi&apos; zal de chat &apos;Ik wilde hallo zeggen&apos; veranderen in &apos;Ik wilde hoi zeggen&apos;, waarbij tevens het gebaar afgespeeld zal worden."/>
+ <text name="key_label">
+ Snelkoppeling toets:
+ </text>
+ <combo_box label="Geen" name="modifier_combo" left="136" width="56"/>
+ <combo_box label="Geen" name="key_combo" width="56"/>
+ <text name="library_label">
+ Bibliotheek:
+ </text>
+ <text name="steps_label">
+ Stappen:
+ </text>
+ <scroll_list name="library_list" width="94">
+ Animatie
+Geluid
+Chat
+Wacht
+ </scroll_list>
+ <button label="Toevoegen &gt;&gt;" name="add_btn" left="124" width="87"/>
+ <button label="Beweeg omhoog" name="up_btn" width="106" left_delta="-9"/>
+ <button label="Beweeg omlaag" name="down_btn" width="106"/>
+ <button label="Verwijderen" name="delete_btn" width="84" left_delta="9"/>
+ <scroll_list left="226" name="step_list" width="205" />
+ <text name="help_label">
+ Alle stappen gebeuren tegelijkertijd,
+tenzij u wachtstappen toevoegt.
+ </text>
+ <text left="230" name="options_text" width="200" />
+ <radio_group name="animation_trigger_type">
+ <radio_item name="start" label="Start" />
+ <radio_item name="stop" label="Stop" />
+ </radio_group>
+ <check_box label="tot alle animaties zijn afgelopen" name="wait_anim_check"/>
+ <check_box label="tijd in seconden" name="wait_time_check"/>
+ <check_box label="Actief" name="active_check" tool_tip="Actieve gebaren kunnen worden gestart door het zeggen van hun startseinwoorden of door het indrukken van hun sneltoetsen. Gebaren worden gewoonlijk inactief wanneer er een conflict is in de koppeling van de sneltoetsen"/>
+ <button label="Voorbeeld" name="preview_btn"/>
+ <button label="Opslaan" name="save_btn"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_preview_notecard.xml b/indra/newview/skins/default/xui/nl/floater_preview_notecard.xml
new file mode 100644
index 0000000000..f97d1fe6ba
--- /dev/null
+++ b/indra/newview/skins/default/xui/nl/floater_preview_notecard.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="preview notecard" title="NEUS">
+ <button label="Opslaan" label_selected="Opslaan" name="Save"/>
+ <text name="desc txt">
+ Omschrijving:
+ </text>
+ <text_editor name="Notecard Editor">
+ Laden…
+ </text_editor>
+ <string name="no_object">
+ Kan object dat deze notitie bevat niet vinden.
+ </string>
+ <string name="not_allowed">
+ U heeft geen toestemming om deze notitie te bekijken
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_preview_sound.xml b/indra/newview/skins/default/xui/nl/floater_preview_sound.xml
new file mode 100644
index 0000000000..f168f3ed32
--- /dev/null
+++ b/indra/newview/skins/default/xui/nl/floater_preview_sound.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="preview_sound">
+ <text name="desc txt">
+ Omschrijving:
+ </text>
+ <button label="Lokaal afspelen" label_selected="Lokaal afspelen" name="Sound audition btn" tool_tip="Speel dit geluid of zodat alleen u het kunt horen."/>
+ <button label="In wereld afspelen" label_selected="In wereld afspelen" name="Sound play btn" tool_tip="Speel dit geluid of zodat anderen het kunnen horen."/>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_preview_texture.xml b/indra/newview/skins/default/xui/nl/floater_preview_texture.xml
new file mode 100644
index 0000000000..c4a06b7b6f
--- /dev/null
+++ b/indra/newview/skins/default/xui/nl/floater_preview_texture.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="preview_texture">
+ <text name="desc txt">
+ Omschrijving:
+ </text>
+ <text name="dimensions">
+ Afmetingen: [WIDTH] x [HEIGHT]
+ </text>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_script_preview.xml b/indra/newview/skins/default/xui/nl/floater_script_preview.xml
new file mode 100644
index 0000000000..bd57e27b77
--- /dev/null
+++ b/indra/newview/skins/default/xui/nl/floater_script_preview.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="preview lsl text" title="SCRIPT: ROTATIESCRIPT">
+ <text name="desc txt">
+ Omschrijving:
+ </text>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_script_search.xml b/indra/newview/skins/default/xui/nl/floater_script_search.xml
new file mode 100644
index 0000000000..cf502c6f4d
--- /dev/null
+++ b/indra/newview/skins/default/xui/nl/floater_script_search.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="script search" title="SCRIPT ZOEKEN">
+ <check_box label="Niet hoofdlettergevoelig" name="case_text"/>
+ <button label="Zoeken" label_selected="Zoeken" name="search_btn" left="4"/>
+ <button label="Vervangen" label_selected="Vervangen" name="replace_btn" left="100"/>
+ <button label="Alles vervangen" label_selected="Alles vervangen" name="replace_all_btn" width="100" left="196"/>
+ <text name="txt">
+ Zoeken
+ </text>
+ <text name="txt2" width="130">
+ Vervangen
+ </text>
+ <line_editor left="65" name="search_text" width="230" />
+ <line_editor left="65" name="replace_text" width="230" />
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_settings_debug.xml b/indra/newview/skins/default/xui/nl/floater_settings_debug.xml
new file mode 100644
index 0000000000..4d95f0a828
--- /dev/null
+++ b/indra/newview/skins/default/xui/nl/floater_settings_debug.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="settings_debug" title="DEBUG INSTELLINGEN">
+ <combo_box name="boolean_combo">
+ <combo_box.item name="TRUE" label="TRUE"/>
+ <combo_box.item name="FALSE" label="FALSE"/>
+ </combo_box>
+ <color_swatch label="Kleur" name="color_swatch"/>
+ <spinner label="x" name="val_spinner_1"/>
+ <spinner label="x" name="val_spinner_2"/>
+ <spinner label="x" name="val_spinner_3"/>
+ <spinner label="x" name="val_spinner_4"/>
+ <button label="Opnieuw instellen naar standaard" name="default_btn" width="210"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_sound_preview.xml b/indra/newview/skins/default/xui/nl/floater_sound_preview.xml
new file mode 100644
index 0000000000..13cb832d57
--- /dev/null
+++ b/indra/newview/skins/default/xui/nl/floater_sound_preview.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="Sound Preview" title="SOUND.WAV">
+ <text name="name_label">
+ Naam:
+ </text>
+ <text name="description_label">
+ Omschrijving:
+ </text>
+ <button label="Annuleren" label_selected="Annuleren" name="cancel_btn"/>
+ <button label="Upload (L$[AMOUNT])" label_selected="Upload (L$[AMOUNT])" name="ok_btn"/>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_statistics.xml b/indra/newview/skins/default/xui/nl/floater_statistics.xml
deleted file mode 100644
index 7684a73663..0000000000
--- a/indra/newview/skins/default/xui/nl/floater_statistics.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="stats floater" title="STATISTIEKEN"/>
diff --git a/indra/newview/skins/default/xui/nl/floater_windlight_options.xml b/indra/newview/skins/default/xui/nl/floater_windlight_options.xml
new file mode 100644
index 0000000000..d97c9679a9
--- /dev/null
+++ b/indra/newview/skins/default/xui/nl/floater_windlight_options.xml
@@ -0,0 +1,192 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="WindLight floater" title="GEAVANCEERDE LUCHT EDITOR">
+ <combo_box allow_text_entry="false" bottom="-50" follows="left|top" height="18"
+ left_delta="116" max_chars="20" mouse_opaque="true" name="WLPresetsCombo"
+ width="150" />
+ <text name="KeyFramePresetsText">
+ Lucht voorinstellingen
+ </text>
+ <button label="Nieuw" label_selected="Nieuw" name="WLNewPreset"/>
+ <button label="Opslaan" label_selected="Opslaan" name="WLSavePreset"/>
+ <button label="Verwijderen" label_selected="Verwijderen" name="WLDeletePreset" width="80"/>
+ <button label="Dag cyclus editor" label_selected="Dag cyclus editor" name="WLDayCycleMenuButton"/>
+ <tab_container name="WindLight Tabs">
+ <panel label="Atmosfeer" name="Atmosphere">
+ <text name="BHText">
+ Blauw Horizon
+ </text>
+ <button label="?" name="WLBlueHorizonHelp"/>
+ <text name="BHText2">
+ R
+ </text>
+ <text name="BHText3">
+ G
+ </text>
+ <text name="BHText4">
+ B
+ </text>
+ <text name="BHText5">
+ I
+ </text>
+ <text name="BDensText">
+ Nevel horizon
+ </text>
+ <button label="?" name="WLHazeHorizonHelp"/>
+ <text name="BDensText2">
+ Blauw dichtheid
+ </text>
+ <button label="?" name="WLBlueDensityHelp"/>
+ <text name="BHText6">
+ R
+ </text>
+ <text name="BHText7">
+ G
+ </text>
+ <text name="BHText8">
+ B
+ </text>
+ <text name="BHText9">
+ I
+ </text>
+ <text name="HDText">
+ Nevel dichtheid
+ </text>
+ <button label="?" name="WLHazeDensityHelp"/>
+ <text name="DensMultText">
+ Dichtheidsfactor
+ </text>
+ <button label="?" name="WLDensityMultHelp"/>
+ <text name="WLDistanceMultText">
+ Afstandsfactor
+ </text>
+ <button label="?" name="WLDistanceMultHelp"/>
+ <text name="MaxAltText">
+ Max hoogte
+ </text>
+ <button label="?" name="WLMaxAltitudeHelp"/>
+ </panel>
+ <panel label="Licht" name="Lighting">
+ <text name="SLCText">
+ Zon/maan kleur
+ </text>
+ <button label="?" name="WLSunlightColorHelp"/>
+ <text name="BHText">
+ R
+ </text>
+ <text name="BHText2">
+ G
+ </text>
+ <text name="BHText3">
+ B
+ </text>
+ <text name="BHText4">
+ I
+ </text>
+ <text name="TODText">
+ Zon/maan positie
+ </text>
+ <button label="?" name="WLTimeOfDayHelp"/>
+ <text name="WLAmbientText">
+ Omgeving
+ </text>
+ <button label="?" name="WLAmbientHelp"/>
+ <text name="BHText5">
+ R
+ </text>
+ <text name="BHText6">
+ G
+ </text>
+ <text name="BHText7">
+ B
+ </text>
+ <text name="BHText8">
+ I
+ </text>
+ <text name="WLEastAngleText">
+ Oosthoek
+ </text>
+ <button label="?" name="WLEastAngleHelp"/>
+ <text name="SunGlowText">
+ Zonnegloed
+ </text>
+ <button label="?" name="WLSunGlowHelp"/>
+ <slider label="Focus " name="WLGlowB"/>
+ <slider label="Grootte" name="WLGlowR"/>
+ <text name="SceneGammaText">
+ Scenegamma
+ </text>
+ <button label="?" name="WLSceneGammaHelp"/>
+ <text name="WLStarText">
+ Ster helderheid
+ </text>
+ <button label="?" name="WLStarBrightnessHelp"/>
+ </panel>
+ <panel label="Wolken" name="Clouds">
+ <text name="WLCloudColorText">
+ Wolkenkleur
+ </text>
+ <button label="?" name="WLCloudColorHelp"/>
+ <text name="BHText">
+ R
+ </text>
+ <text name="BHText2">
+ G
+ </text>
+ <text name="BHText3">
+ B
+ </text>
+ <text name="BHText4">
+ I
+ </text>
+ <text name="WLCloudColorText2">
+ Wolken (XY/Dichtheid)
+ </text>
+ <button label="?" name="WLCloudDensityHelp"/>
+ <text name="BHText5">
+ X
+ </text>
+ <text name="BHText6">
+ Y
+ </text>
+ <text name="BHText7">
+ D
+ </text>
+ <text name="WLCloudCoverageText">
+ Wolkenbedekking
+ </text>
+ <button label="?" name="WLCloudCoverageHelp"/>
+ <text name="WLCloudScaleText">
+ Wolkenschaal
+ </text>
+ <button label="?" name="WLCloudScaleHelp"/>
+ <text name="WLCloudDetailText">
+ Wolkendetail (XY/Dichtheid)
+ </text>
+ <button label="?" name="WLCloudDetailHelp" left="404"/>
+ <text name="BHText8">
+ X
+ </text>
+ <text name="BHText9">
+ Y
+ </text>
+ <text name="BHText10">
+ D
+ </text>
+ <text name="WLCloudScrollXText">
+ Wolk verplaatsing X
+ </text>
+ <button label="?" name="WLCloudScrollXHelp" left="600"/>
+ <check_box label="Vastzetten" name="WLCloudLockX" left="622"/>
+ <text name="WLCloudScrollYText">
+ Wolk verplaatsing Y
+ </text>
+ <button label="?" name="WLCloudScrollYHelp" left="600"/>
+ <check_box label="Vastzetten" name="WLCloudLockY" left="622"/>
+ <check_box label="Teken klassieke wolken" name="DrawClassicClouds"/>
+ <button label="?" name="WLClassicCloudsHelp" left="620"/>
+ </panel>
+ </tab_container>
+ <string name="WLDefaultSkyNames">
+ A-12AM:A-12PM:A-3AM:A-3PM:A-4.30PM:A-6AM:A-6PM:A-9AM:A-9PM:Barcelona:Blizzard:Blue Midday:Coastal Afternoon:Coastal Sunset:Default:Desert Sunset:Fine Day:Fluffy Big Clouds:Foggy:Funky Funky:Funky Funky Funky:Gelatto:Ghost:Incongruent Truths:Midday 1:Midday 2:Midday 3:Midday 4:Night:Pirate:Purple:Sailor&apos;s Delight:Sheer Sensuality
+ </string>
+</floater>
diff --git a/indra/newview/skins/default/xui/nl/floater_world_map.xml b/indra/newview/skins/default/xui/nl/floater_world_map.xml
index bc14f92126..2fee2ecf05 100644
--- a/indra/newview/skins/default/xui/nl/floater_world_map.xml
+++ b/indra/newview/skins/default/xui/nl/floater_world_map.xml
@@ -26,8 +26,8 @@
Evenementen:
</text>
<check_box label="PG" name="event_chk"/>
- <check_box label="Mature" name="event_mature_chk"/>
- <check_box label="Adult" name="event_adult_chk"/>
+ <check_box label="Mature" name="events_mature_chk"/>
+ <check_box label="Adult" name="events_adult_chk"/>
<combo_box label="Online vrienden" name="friend combo" tool_tip="Vriend die op kaart getoond wordt">
<combo_box.item name="item1" label="Online vrienden"/>
</combo_box>
diff --git a/indra/newview/skins/default/xui/nl/language_settings.xml b/indra/newview/skins/default/xui/nl/language_settings.xml
index dc4663705f..53501d5dcb 100644
--- a/indra/newview/skins/default/xui/nl/language_settings.xml
+++ b/indra/newview/skins/default/xui/nl/language_settings.xml
@@ -17,6 +17,7 @@
datetimeToCodes["month"] = "%B"; // August
datetimeToCodes["mthnum"] = "%m"; // 08
datetimeToCodes["day"] = "%d"; // 31
+ datetimeToCodes["sday"] = "%-d"; // 9
datetimeToCodes["hour24"] = "%H"; // 14
datetimeToCodes["hour"] = "%H"; // 14
datetimeToCodes["hour12"] = "%I"; // 02
diff --git a/indra/newview/skins/default/xui/nl/menu_places_gear_landmark.xml b/indra/newview/skins/default/xui/nl/menu_places_gear_landmark.xml
new file mode 100644
index 0000000000..dab5a388d7
--- /dev/null
+++ b/indra/newview/skins/default/xui/nl/menu_places_gear_landmark.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="menu_ladmark_gear">
+ <menu_item_call label="Teleport" name="teleport"/>
+ <menu_item_call label="Meer Informatie" name="more_info"/>
+ <menu_item_call label="Toon op Kaart" name="show_on_map"/>
+ <menu_item_call label="Voeg Landmark Toe" name="add_landmark"/>
+ <menu_item_call label="Voeg Map Toe" name="add_folder"/>
+ <menu_item_call label="Knippen" name="cut"/>
+ <menu_item_call label="Kopieër Landmark" name="copy_landmark"/>
+ <menu_item_call label="Kopieër SLurl" name="copy_slurl"/>
+ <menu_item_call label="Plakken" name="paste"/>
+ <menu_item_call label="Hernoemen" name="rename"/>
+ <menu_item_call label="Verweideren" name="delete"/>
+ <menu_item_call label="Alle mappen uitvouwen" name="expand_all"/>
+ <menu_item_call label="Alle mappen samenvouwen" name="collapse_all"/>
+ <menu_item_check label="Sorteer bij Datum" name="sort_by_date"/>
+ <menu_item_call label="Maak Favoriet" name="create_pick"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/nl/panel_audio_device.xml b/indra/newview/skins/default/xui/nl/panel_audio_device.xml
deleted file mode 100644
index fd5dda799f..0000000000
--- a/indra/newview/skins/default/xui/nl/panel_audio_device.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="device_settings">
- <text name="Audio Devices">
- Audioapparaten
- </text>
- <text name="Input device (microphone):">
- Invoerapparaat (microfoon):
- </text>
- <text name="Output device (speakers):">
- Uitvoerapparaat (luidsprekers)
- </text>
- <text name="Input level:">
- Invoerniveau
- </text>
- <text_editor name="voice_intro_text1">
- Wijzig de schuifbalk om in te stellen hoe luid u klinkt voor andere inwoners. Spreek gewoon in uw microfoon om het invoerniveau te testen.
- </text_editor>
- <volume_slider name="mic_volume_slider" tool_tip="Wijzig het volume met deze schuifknop"/>
- <text name="wait_text">
- Wacht u alstublieft
- </text>
- <string name="default_text">
- Standaard
- </string>
-</panel>
diff --git a/indra/newview/skins/default/xui/nl/panel_block_list_sidetray.xml b/indra/newview/skins/default/xui/nl/panel_block_list_sidetray.xml
new file mode 100644
index 0000000000..38018a3626
--- /dev/null
+++ b/indra/newview/skins/default/xui/nl/panel_block_list_sidetray.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="block_list_panel">
+ <text name="title_text">
+ Blokkeer Lijst
+ </text>
+ <scroll_list name="blocked" tool_tip="Lijst van momenteel geblokkeerde bewoners"/>
+ <button label="Blokkeer Bewoner..." label_selected="Blokkeer Bewoner..." name="Block resident..." tool_tip="Kies een bewoner om te blokkeren"/>
+ <button label="Blokkeer object bij naam..." label_selected="Blokkeer object bij naam..." name="Block object by name..."/>
+ <button label="Deblokkeren" label_selected="Deblokkeren" name="Unblock" tool_tip="Verweider bewoner of object uit blokkeer lijst"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/nl/panel_friends.xml b/indra/newview/skins/default/xui/nl/panel_friends.xml
deleted file mode 100644
index eaf6e5d55b..0000000000
--- a/indra/newview/skins/default/xui/nl/panel_friends.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="friends">
- <string name="Multiple">
- Meerdere vrienden...
- </string>
- <scroll_list name="friend_list" tool_tip="Houd shift of control ingedrukt terwijl u meerdere vrienden klikt">
- <column name="icon_online_status" tool_tip="Online status"/>
- <column label="Naam" name="friend_name" tool_tip="Naam"/>
- <column name="icon_visible_online" tool_tip="Vriend kan zien wanneer u online bent"/>
- <column name="icon_visible_map" tool_tip="Vriend kan u op de kaart lokaliseren"/>
- <column name="icon_edit_mine" tool_tip="Vriend kan objecten wijzigen, verwijderen of oppakken"/>
- <column name="icon_edit_theirs" tool_tip="U kunt de objecten van deze vriend bewerken"/>
- </scroll_list>
- <button label="IM/Oproepen" name="im_btn" tool_tip="Open Instant Message sessie" width="86"/>
- <button label="Profiel" name="profile_btn" tool_tip="Toon afbeelding, groepen en andere informatie" width="86"/>
- <button label="Teleport..." name="offer_teleport_btn" tool_tip="Bied deze vriend een teleport naar uw huidige locatie aan" width="86"/>
- <button label="Betaal..." name="pay_btn" tool_tip="Geef Linden dollars (L$) aan deze vriend" width="86"/>
- <button label="Verwijderen..." name="remove_btn" tool_tip="Verwijder deze persoon van uw vriendenlijst" width="86"/>
- <button label="Toevoegen..." name="add_btn" tool_tip="Bied vriendschap aan een inwoner aan" width="86"/>
-</panel>
diff --git a/indra/newview/skins/default/xui/nl/panel_group_land_money.xml b/indra/newview/skins/default/xui/nl/panel_group_land_money.xml
new file mode 100644
index 0000000000..43babafdf8
--- /dev/null
+++ b/indra/newview/skins/default/xui/nl/panel_group_land_money.xml
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel label="Land &amp; L$" name="land_money_tab">
+ <string name="help_text">
+ Percelen in groepseigendom worden getoond, samen met bijdragedetails. Een waarschuwing verschijnt totdat Totaal Land In Gebruik minder dan of gelijk aan de totale bijdrage is. De Planning, Details en Verkopen tabbladen verschaffen meer informatie over de financiën van de groep.
+ </string>
+ <button label="?" name="help_button"/>
+ <string name="cant_view_group_land_text">
+ U heeft geen permissie om land te bekijken dat eigendom van de groep is.
+ </string>
+ <string name="cant_view_group_accounting_text">
+ U heeft geen permissie om accounting informatie van de groep te bekijken.
+ </string>
+ <string name="loading_txt">
+ Laden...
+ </string>
+ <text name="group_land_heading" width="260">
+ Land in eigendom van groep
+ </text>
+ <scroll_list name="group_parcel_list">
+ <column label="Perceelnaam" name="name"/>
+ <column label="Regio" name="location"/>
+ <column label="Type" name="type"/>
+ <column label="Gebied" name="area"/>
+ </scroll_list>
+ <button label="Toon op kaart" label_selected="Toon op kaart" name="map_button"/>
+ <text name="total_contributed_land_label">
+ Totale bijdrage:
+ </text>
+ <text name="total_contributed_land_value" width="200">
+ [AREA] m²
+ </text>
+ <text name="total_land_in_use_label">
+ Totaal land in gebruik:
+ </text>
+ <text name="total_land_in_use_value">
+ [AREA] m²
+ </text>
+ <text name="land_available_label">
+ Land beschikbaar:
+ </text>
+ <text name="land_available_value">
+ [AREA] m²
+ </text>
+ <text name="your_contribution_label">
+ Uw bijdrage:
+ </text>
+ <string name="land_contrib_error">
+ Niet in staat uw landbijdrage in te stellen.
+ </string>
+ <text name="your_contribution_units">
+ ( m² )
+ </text>
+ <text name="your_contribution_max_value">
+ ([AMOUNT] max)
+ </text>
+ <text name="group_over_limit_text">
+ Groepsleden moeten landcredits bijdragen om het gebruikte land
+te ondersteunen.
+ </text>
+ <text name="group_money_heading">
+ Groep L$
+ </text>
+ <tab_container name="group_money_tab_container">
+ <panel label="Planning" name="group_money_planning_tab">
+ <text_editor name="group_money_planning_text">
+ Berekenen...
+ </text_editor>
+ </panel>
+ <panel label="Details" name="group_money_details_tab">
+ <text_editor name="group_money_details_text">
+ Berekenen...
+ </text_editor>
+ <button label="&lt; Eerder" label_selected="&lt; Eerder" name="earlier_details_button" tool_tip="Ga terug in de tijd"/>
+ <button label="Later &gt;" label_selected="Later &gt;" name="later_details_button" tool_tip="Ga vooruit in de tijd"/>
+ </panel>
+ <panel label="Verkopen" name="group_money_sales_tab">
+ <text_editor name="group_money_sales_text">
+ Berekenen...
+ </text_editor>
+ <button label="&lt; Eerder" label_selected="&lt; Eerder" name="earlier_sales_button" tool_tip="Ga terug in de tijd"/>
+ <button label="Later &gt;" label_selected="Later &gt;" name="later_sales_button" tool_tip="Ga vooruit in de tijd"/>
+ </panel>
+ </tab_container>
+</panel>
diff --git a/indra/newview/skins/default/xui/nl/panel_groups.xml b/indra/newview/skins/default/xui/nl/panel_groups.xml
deleted file mode 100644
index a0c77b83ff..0000000000
--- a/indra/newview/skins/default/xui/nl/panel_groups.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="groups">
- <text name="groupdesc">
- Uw huidige actieve groep wordt vet getoond.
- </text>
- <text name="groupcount" width="300">
- U behoort tot [COUNT] groepen (maximaal [MAX]).
- </text>
- <button label="IM/Oproepen" name="IM" tool_tip="Open Instant Message sessie" width="86"/>
- <button label="Info" name="Info" width="86"/>
- <button label="Activeren" name="Activate" width="86"/>
- <button label="Verlaten" name="Leave" width="86"/>
- <button label="Maak…" name="Create" width="86"/>
- <button label="Zoeken…" name="Search..." width="86"/>
-</panel>
diff --git a/indra/newview/skins/default/xui/nl/panel_preferences_advanced.xml b/indra/newview/skins/default/xui/nl/panel_preferences_advanced.xml
new file mode 100644
index 0000000000..6626c57472
--- /dev/null
+++ b/indra/newview/skins/default/xui/nl/panel_preferences_advanced.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="utf-8"?>
+<panel name="advanced">
+ <panel.string name="resolution_format">
+ [RES_X] x [RES_Y]
+ </panel.string>
+ <panel.string name="aspect_ratio_text">
+ [NUM]:[DEN]
+ </panel.string>
+ <check_box label="Bubble chat" name="bubble_text_chat"/>
+ <color_swatch name="background" tool_tip="Kies kleur voor bubble chat"/>
+ <slider label="Opaciteit" name="bubble_chat_opacity"/>
+ <text name="AspectRatioLabel1" tool_tip="breedte / hoogte">
+ Beeldverhouding
+ </text>
+ <combo_box name="aspect_ratio" tool_tip="breedte / hoogte">
+ <combo_box.item label="4:3 (Standaard beeldbuis)" name="item1"/>
+ <combo_box.item label="5:4 (1280x1024 LCD)" name="item2"/>
+ <combo_box.item label="8:5 (Breedbeeld)" name="item3"/>
+ <combo_box.item label="16:9 (Breedbeeld)" name="item4"/>
+ </combo_box>
+ <check_box label="Automatisch detecteren" name="aspect_auto_detect"/>
+ <text name="heading1">
+ Camera:
+ </text>
+ <slider label="Kijkhoek" name="camera_fov"/>
+ <slider label="Afstand" name="camera_offset_scale"/>
+ <text name="heading2">
+ Automatisch positionering voor:
+ </text>
+ <check_box label="Maken/Bewerken" name="edit_camera_movement" tool_tip="Gebruik automatische camera positionering bij ingaan en verlaten van Bewerk modus."/>
+ <check_box label="Uiterlijk" name="appearance_camera_movement" tool_tip="Gebruik automatische camera positionering wanneer in bewerk modus"/>
+ <text name="heading3">
+ Avatars:
+ </text>
+ <check_box label="Toon mij in Muis Modus" name="first_person_avatar_visible"/>
+ <check_box label="Pijltjestoetsen bewegen mij altijd" name="arrow_keys_move_avatar_check"/>
+ <check_box label="Tik-tik-vasthouden om te rennen" name="tap_tap_hold_to_run"/>
+ <check_box label="Beweeg avatar lippen tijdens het praten" name="enable_lip_sync"/>
+ <check_box label="Toon script fouten" name="show_script_errors"/>
+ <radio_group name="show_location">
+ <radio_item label="In chat" name="0"/>
+ <radio_item label="In een venster" name="1"/>
+ </radio_group>
+ <check_box label="Toggle modus voor microfoon wanneer ik de spreek toets indruk:" name="push_to_talk_toggle_check" tool_tip="Wanneer in toggle mode, drukt u éénmaal op de ontspanner toets om de microfoon in-of uitschakelen. Wanneer niet in toggle mode, kan de microfoon uitzendingen uw stem alleen tijdens de ontspanner wordt ingedrukt."/>
+ <line_editor label="Push-to-Speak trigger" name="modifier_combo"/>
+ <button label="Plaats Toets" name="set_voice_hotkey_button"/>
+ <button label="Middelste Muis Knop" name="set_voice_middlemouse_button"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/nl/panel_preferences_alerts.xml b/indra/newview/skins/default/xui/nl/panel_preferences_alerts.xml
new file mode 100644
index 0000000000..d3174a703d
--- /dev/null
+++ b/indra/newview/skins/default/xui/nl/panel_preferences_alerts.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel label="Pop-ups" name="popups" title="Pop-ups">
+ <text name="tell_me_label">
+ Vertel mij:
+ </text>
+ <check_box label="Wanneer ik L$ spendeer of krijg" name="notify_money_change_checkbox"/>
+ <check_box label="Wanneer mijn vrienden in- of uit-loggen" name="friends_online_notify_checkbox"/>
+ <text name="show_label">
+ Toon altijd deze waarschuwingen:
+ </text>
+ <text name="dont_show_label">
+ Toon nooit deze waarschuwingen:
+ </text>
+</panel>
diff --git a/indra/newview/skins/default/xui/nl/panel_preferences_chat.xml b/indra/newview/skins/default/xui/nl/panel_preferences_chat.xml
new file mode 100644
index 0000000000..84f385c86b
--- /dev/null
+++ b/indra/newview/skins/default/xui/nl/panel_preferences_chat.xml
@@ -0,0 +1,42 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel label="Tekst chat" name="chat">
+ <radio_group name="chat_font_size">
+ <radio_item label="Klein" name="radio"/>
+ <radio_item label="Middel" name="radio2"/>
+ <radio_item label="Groot" name="radio3"/>
+ </radio_group>
+ <color_swatch label="U" name="user"/>
+ <text name="text_box1">
+ U
+ </text>
+ <color_swatch label="Anderen" name="agent"/>
+ <text name="text_box2">
+ Anderen
+ </text>
+ <color_swatch label="IM" name="im"/>
+ <text name="text_box3">
+ IM
+ </text>
+ <color_swatch label="Systeem" name="system"/>
+ <text name="text_box4">
+ Systeem
+ </text>
+ <color_swatch label="Fouten" name="script_error"/>
+ <text name="text_box5">
+ Fouten
+ </text>
+ <color_swatch label="Objecten" name="objects"/>
+ <text name="text_box6">
+ Objecten
+ </text>
+ <color_swatch label="Eigenaar" name="owner"/>
+ <text name="text_box7">
+ Eigenaar
+ </text>
+ <color_swatch label="URL&apos;s" name="links"/>
+ <text name="text_box9">
+ URL&apos;s
+ </text>
+ <check_box initial_value="true" label="Speel typeanimatie tijdens chat" name="play_typing_animation"/>
+ <check_box label="Email mij IMs wanneer ik offline ben" name="send_im_to_email"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/nl/panel_preferences_general.xml b/indra/newview/skins/default/xui/nl/panel_preferences_general.xml
new file mode 100644
index 0000000000..7be570b27f
--- /dev/null
+++ b/indra/newview/skins/default/xui/nl/panel_preferences_general.xml
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel label="Algemeen" name="general_panel">
+ <combo_box name="start_location_combo">
+ <combo_box.item name="MyHome" tool_tip="Log standaard in op mijn thuislocatie." label="Mijn thuis"/>
+ <combo_box.item name="MyLastLocation" tool_tip="Log standaard in op mijn laatste locatie." label="Mijn laatste locatie"/>
+ </combo_box>
+ <check_box label="Toon startlocatie op loginscherm" name="show_location_checkbox"/>
+ <combo_box name="fade_out_combobox">
+ <combo_box.item name="Never" label="Nooit"/>
+ <combo_box.item name="Show Temporarily" label="Toon tijdelijk"/>
+ <combo_box.item name="Always" label="Altijd"/>
+ </combo_box>
+ <check_box label="Kleine avatarnamen" name="small_avatar_names_checkbox"/>
+ <check_box label="Verberg mijn naam op mijn scherm" name="show_my_name_checkbox"/>
+ <text name="group_titles_textbox">
+ Groepstitels:
+ </text>
+ <check_box label="Verberg alle groepstitels" name="show_all_title_checkbox"/>
+ <check_box label="Verberg mijn groepstitel" name="show_my_title_checkbox"/>
+ <color_swatch label="" name="effect_color_swatch" tool_tip="Klik om de kleurkiezer te openen"/>
+ <text name="UI Size:">
+ UI grootte:
+ </text>
+ <check_box label="Gebruik resolutie onafhankelijke schaal" name="ui_auto_scale"/>
+ <spinner label="Afwezigheidtijdsduur:" name="afk_timeout_spinner"/>
+ <check_box label="Waarschuwen wanneer L$ worden uitgegeven of ontvangen" name="notify_money_change_checkbox"/>
+ <text name="maturity_desired_label">
+ Inhoudscategorie:
+ </text>
+ <text name="maturity_desired_prompt">
+ Ik wil toegang tot inhoud die is beoordeeld als:
+ </text>
+ <combo_box name="maturity_desired_combobox">
+ <combo_box.item name="Desired_Adult" label="PG, Mature en Adult"/>
+ <combo_box.item name="Desired_Mature" label="PG en Mature"/>
+ <combo_box.item name="Desired_PG" label="PG"/>
+ </combo_box>
+ <text name="maturity_desired_textbox">
+ PG
+ </text>
+ <text name="start_location_textbox">
+ Startlocatie:
+ </text>
+ <text name="show_names_textbox">
+ Toon namen:
+ </text>
+ <text name="effects_color_textbox">
+ Kleur voor mijn effecten:
+ </text>
+ <text name="seconds_textbox">
+ seconden
+ </text>
+ <text name="crash_report_textbox">
+ Crash rapporten:
+ </text>
+ <text name="language_textbox">
+ Taal:
+ </text>
+ <text name="language_textbox2">
+ (Vereist herstart)
+ </text>
+ <string name="region_name_prompt">
+ &lt; Type regionaam &gt;
+ </string>
+ <combo_box name="crash_behavior_combobox">
+ <combo_box.item name="Askbeforesending" label="Vraag voor verzenden"/>
+ <combo_box.item name="Alwayssend" label="Altijd verzenden"/>
+ <combo_box.item name="Neversend" label="Nooit verzenden"/>
+ </combo_box>
+ <combo_box name="language_combobox">
+ <combo_box.item name="System Default Language" label="Systeemstandaard"/>
+ <combo_box.item name="English" label="Engels (English)"/>
+ <combo_box.item name="Danish" label="Dansk (Deens) - Bèta"/>
+ <combo_box.item name="Deutsch(German)" label="Deutsch (Duits) - Bèta"/>
+ <combo_box.item name="Spanish" label="Español (Spaans) - Bèta"/>
+ <combo_box.item name="French" label="Français (Frans) - Bèta"/>
+ <combo_box.item name="Italian" label="Italiano (Italiaans) - Bèta"/>
+ <combo_box.item name="Hungarian" label="Magyar (Hongaars) - Bèta"/>
+ <combo_box.item name="Dutch" label="Nederlands - Bèta"/>
+ <combo_box.item name="Polish" label="Polski (Pools) - Bèta"/>
+ <combo_box.item name="Portugese" label="Português (Portugees) - Bèta"/>
+ <combo_box.item name="Russian" label="РуÑÑкий (Russisch) - Bèta"/>
+ <combo_box.item name="Turkish" label="Türkçe (Turks) - Bèta"/>
+ <combo_box.item name="Ukrainian" label="УкраїнÑька (Oekraïens) - Bèta"/>
+ <combo_box.item name="Chinese" label="中文 (简体) (Chinees) - Bèta"/>
+ <combo_box.item name="(Japanese)" label="日本語 (Japans) - Bèta"/>
+ <combo_box.item name="(Korean)" label="한국어 (Koreaans) - Bèta"/>
+ </combo_box>
+ <check_box label="Deel taal met objecten" name="language_is_public" tool_tip="Dit laat in-wereld objecten uw voorkeurstaal weten."/>
+</panel>
diff --git a/indra/newview/skins/default/xui/nl/panel_preferences_graphics1.xml b/indra/newview/skins/default/xui/nl/panel_preferences_graphics1.xml
new file mode 100644
index 0000000000..8f4244e222
--- /dev/null
+++ b/indra/newview/skins/default/xui/nl/panel_preferences_graphics1.xml
@@ -0,0 +1,145 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel label="Grafisch" name="Display panel">
+ <button label="?" name="GraphicsPreferencesHelpButton"/>
+ <check_box label="Voer Second Life uit in een venster" name="windowed mode"/>
+ <text_editor name="FullScreenInfo" bottom="-56" height="40" width="480">
+ Wanneer niet aangevinkt, zal de viewer in volledig-scherm modus getoond worden wanneer u inlogt.
+ </text_editor>
+ <text name="WindowSizeLabel">
+ Venstergrootte:
+ </text>
+ <combo_box name="windowsize combo" left="115" >
+ <combo_box.item name="640x480" label="640x480"/>
+ <combo_box.item name="800x600" label="800x600"/>
+ <combo_box.item name="720x480" label="720x480 (NTSC)"/>
+ <combo_box.item name="768x576" label="768x576 (PAL)"/>
+ <combo_box.item name="1024x768" label="1024x768"/>
+ </combo_box>
+ <text name="DisplayResLabel" width="100">
+ Weergaveresolutie:
+ </text>
+ <combo_box left="115" name="fullscreen combo" />
+ <text name="AspectRatioLabel1" tool_tip="breedte / hoogte" width="100">
+ Beeldverhouding:
+ </text>
+ <combo_box name="aspect_ratio" tool_tip="breedte / hoogte" left="115" >
+ <combo_box.item name="4:3(StandardCRT)" label="4:3 (Standaard beeldbuis)"/>
+ <combo_box.item name="5:4(1280x1024LCD)" label="5:4 (1280x1024 LCD)"/>
+ <combo_box.item name="8:5(Widescreen)" label="8:5 (Breedbeeld)"/>
+ <combo_box.item name="16:9(Widescreen)" label="16:9 (Breedbeeld)"/>
+ </combo_box>
+ <check_box label="Verhouding automatisch detecteren" name="aspect_auto_detect" left="275" />
+ <text name="HigherText">
+ Kwaliteit en
+ </text>
+ <text name="QualityText">
+ Prestatie:
+ </text>
+ <text name="FasterText">
+ Sneller
+ </text>
+ <text name="ShadersPrefText">
+ Laag
+ </text>
+ <text name="ShadersPrefText2">
+ Middel
+ </text>
+ <text name="ShadersPrefText3">
+ Hoog
+ </text>
+ <text name="ShadersPrefText4">
+ Ultra
+ </text>
+ <text name="HigherText2">
+ Hogere
+ </text>
+ <text name="QualityText2">
+ Kwaliteit
+ </text>
+ <check_box label="Aangepast" name="CustomSettings"/>
+ <panel name="CustomGraphics Panel">
+ <text name="ShadersText">
+ Shaders:
+ </text>
+ <check_box label="Bump mapping en glans" name="BumpShiny"/>
+ <check_box label="Basis shaders" name="BasicShaders" tool_tip="Het uitschakelen van deze optie kan voorkomen dat sommige drivers voor grafische kaarten crashen."/>
+ <check_box label="Atmosferische shaders" name="WindLightUseAtmosShaders"/>
+ <check_box label="Waterreflecties" name="Reflections"/>
+ <text name="ReflectionDetailText">
+ Reflectiedetail:
+ </text>
+ <radio_group name="ReflectionDetailRadio">
+ <radio_item name="0" label="Terrein en bomen" />
+ <radio_item name="1" label="Alle statische objecten" />
+ <radio_item name="2" label="Alle avatars en objecten" />
+ <radio_item name="3" label="Alles" />
+ </radio_group>
+ <text name="AvatarRenderingText">
+ Avatarweergave:
+ </text>
+ <check_box label="Avatar schimmen" name="AvatarImpostors"/>
+ <check_box label="Hardware Skinning" name="AvatarVertexProgram"/>
+ <check_box label="Avatar kleding" name="AvatarCloth"/>
+ <text name="DrawDistanceMeterText1">
+ m
+ </text>
+ <text name="DrawDistanceMeterText2">
+ m
+ </text>
+ <slider label="Zichtbereik:" name="DrawDistance"/>
+ <slider label="Max. aantal particles:" name="MaxParticleCount"/>
+ <slider label="Nabewerkingskwaliteit:" name="RenderPostProcess"/>
+ <text name="MeshDetailText">
+ Maasdetail:
+ </text>
+ <slider label=" Objecten:" name="ObjectMeshDetail"/>
+ <slider label=" Flexibele prims:" name="FlexibleMeshDetail"/>
+ <slider label=" Bomen:" name="TreeMeshDetail"/>
+ <slider label=" Avatars:" name="AvatarMeshDetail"/>
+ <slider label=" Terrein:" name="TerrainMeshDetail"/>
+ <slider label=" Lucht:" name="SkyMeshDetail"/>
+ <text name="PostProcessText">
+ Laag
+ </text>
+ <text name="ObjectMeshDetailText">
+ Laag
+ </text>
+ <text name="FlexibleMeshDetailText">
+ Laag
+ </text>
+ <text name="TreeMeshDetailText">
+ Laag
+ </text>
+ <text name="AvatarMeshDetailText">
+ Laag
+ </text>
+ <text name="TerrainMeshDetailText">
+ Laag
+ </text>
+ <text name="SkyMeshDetailText">
+ Laag
+ </text>
+ <text name="LightingDetailText">
+ Lichtdetail:
+ </text>
+ <radio_group name="LightingDetailRadio">
+ <radio_item name="SunMoon" label="Alleen zon en maan" />
+ <radio_item name="LocalLights" label="Lokale lichten in de buurt" />
+ </radio_group>
+ <text name="TerrainDetailText">
+ Terreindetail:
+ </text>
+ <radio_group name="TerrainDetailRadio">
+ <radio_item name="0" label="Laag" />
+ <radio_item name="2" label="Hoog" />
+ </radio_group>
+ </panel>
+ <button label="Aanbevolen instellingen" name="Defaults"/>
+ <button label="Hardware opties" label_selected="Hardware opties" name="GraphicsHardwareButton"/>
+ <panel.string name="resolution_format">
+ [RES_X] x [RES_Y]
+ </panel.string>
+ <panel.string name="aspect_ratio_text">
+ [NUM]:[DEN]
+ </panel.string>
+</panel>
diff --git a/indra/newview/skins/default/xui/nl/panel_preferences_privacy.xml b/indra/newview/skins/default/xui/nl/panel_preferences_privacy.xml
new file mode 100644
index 0000000000..c2014bf0cb
--- /dev/null
+++ b/indra/newview/skins/default/xui/nl/panel_preferences_privacy.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel label="Communicatie" name="im">
+ <text name="text_box">
+ Mijn online status:
+ </text>
+ <check_box left="140" label="Allen mijn vrienden en groepen kunnen zien wanneer ik online ben" name="online_visibility"/>
+ <text name="text_box2">
+ IM opties:
+ </text>
+ <string name="log_in_to_change">
+ log in om te wijzigen
+ </string>
+ <check_box left="140" label="Stuur IM naar Email ([EMAIL])" name="send_im_to_email"/>
+ <check_box left="140" label="Voeg IM toe in chatconsole" name="include_im_in_chat_console"/>
+ <check_box left="140" label="Toon tijdstempels in IM" name="show_timestamps_check"/>
+ <check_box left="140" label="Toon melding bij vriend online" name="friends_online_notify_checkbox"/>
+ <text name="text_box3">
+ Antwoord bij
+Niet Storen:
+ </text>
+ <text name="text_box4">
+ Log opties:
+ </text>
+ <check_box label="Bewaar een log van IM op mijn computer" name="log_instant_messages"/>
+ <check_box label="Toon tijdstempels in IM-log" name="log_instant_messages_timestamp"/>
+ <check_box label="Toon het einde van de laatste IM conversatie" name="log_show_history"/>
+ <check_box label="Bewaar een log van lokale chat op mijn computer" name="log_chat"/>
+ <check_box label="Toon tijdstempels in lokale chatlog" name="log_chat_timestamp"/>
+ <check_box label="Toon binnenkomende IM in lokale chatlog" name="log_chat_IM"/>
+ <check_box label="Voeg datum toe aan tijdstempels" name="log_date_timestamp"/>
+ <button label="Wijzig pad" label_selected="Wijzig pad" name="log_path_button"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/nl/panel_preferences_setup.xml b/indra/newview/skins/default/xui/nl/panel_preferences_setup.xml
new file mode 100644
index 0000000000..f9f58befe8
--- /dev/null
+++ b/indra/newview/skins/default/xui/nl/panel_preferences_setup.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel label="Invoer &amp; Camera" name="Input panel">
+ <text name=" Mouselook Options:">
+ Mouselook opties:
+ </text>
+ <text name=" Mouse Sensitivity:">
+ Muis gevoeligheid:
+ </text>
+ <check_box label="Muisbeweging omkeren" name="invert_mouse"/>
+ <text name=" Auto Fly Options:">
+ Automatisch vliegen
+opties:
+ </text>
+ <check_box label="Vlieg/Land bij indrukken Page Up/Page Down" name="automatic_fly"/>
+ <text name=" Camera Options:">
+ Camera opties:
+ </text>
+ <text name="camera_fov_label">
+ Camera Zichthoek
+ </text>
+ <text name="Camera Follow Distance:">
+ Camera volgafstand:
+ </text>
+ <check_box label="Automatische camerabeweging bij bewerken" name="edit_camera_movement" tool_tip="Gebruik automatische camerapositionering bij het betreden en verlaten van de bewerken modus"/>
+ <check_box label="Automatische camerabeweging bij uiterlijk bewerken" name="appearance_camera_movement" tool_tip="Gebruik automatische camerapositionering in de bewerken modus"/>
+ <text name="text2">
+ Avatar weergave opties:
+ </text>
+ <check_box label="Toon avatar in mouselook" name="first_person_avatar_visible"/>
+ <button label="Joystick instellingen" name="joystick_setup_button"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/nl/panel_preferences_sound.xml b/indra/newview/skins/default/xui/nl/panel_preferences_sound.xml
new file mode 100644
index 0000000000..2b709bde40
--- /dev/null
+++ b/indra/newview/skins/default/xui/nl/panel_preferences_sound.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel label="Geluid" name="Preference Media panel">
+ <slider label="Hoofd volume" name="System Volume"/>
+ <check_box initial_value="true" label="Dempen indien geminimaliseerd" name="mute_when_minimized"/>
+ <slider label="Omliggend" name="Wind Volume"/>
+ <slider label="Knoppen" name="UI Volume"/>
+ <slider label="Media" name="Media Volume"/>
+ <slider label="Geluids effecten" name="SFX Volume"/>
+ <slider label="Streamen van muziek" name="Music Volume"/>
+ <check_box label="Voice" name="enable_voice_check"/>
+ <slider label="Voice" name="Voice Volume"/>
+ <text name="Listen from">
+ Luisteren vanuit:
+ </text>
+ <radio_group name="ear_location">
+ <radio_item label="Camera positie" name="0"/>
+ <radio_item label="Avatar positie" name="1"/>
+ </radio_group>
+ <button label="Input/Output Apparaten" name="device_settings_btn"/>
+ <panel label="Apparaat Instellingen" name="device_settings_panel">
+ <panel.string name="default_text">
+ Standaard
+ </panel.string>
+ <text name="Input">
+ Input
+ </text>
+ <text name="My volume label">
+ Mijn volume:
+ </text>
+ <slider_bar initial_value="1.0" name="mic_volume_slider" tool_tip="Verander de volume door gebruik te nemen van deze schuifknop"/>
+ <text name="wait_text">
+ Even geduld
+ </text>
+ <text name="Output">
+ Output
+ </text>
+ </panel>
+</panel>
diff --git a/indra/newview/skins/default/xui/nl/panel_region_covenant.xml b/indra/newview/skins/default/xui/nl/panel_region_covenant.xml
new file mode 100644
index 0000000000..adfc62dd22
--- /dev/null
+++ b/indra/newview/skins/default/xui/nl/panel_region_covenant.xml
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel label="Convenant" name="Covenant">
+ <text name="estate_section_lbl">
+ Estate:
+ </text>
+ <text name="estate_name_lbl">
+ Naam:
+ </text>
+ <text name="estate_name_text">
+ mainland
+ </text>
+ <text name="estate_owner_lbl">
+ Eigenaar:
+ </text>
+ <text name="estate_owner_text">
+ (geen)
+ </text>
+ <text name="estate_cov_lbl">
+ Convenant:
+ </text>
+ <text name="covenant_timestamp_text">
+ Laatst gewijzigd Wed Dec 31 16:00:00 1969
+ </text>
+ <button label="?" name="covenant_help"/>
+ <text_editor name="covenant_editor" bottom="-247" height="162">
+ Er is geen convenant voor deze estate.
+ </text_editor>
+ <button label="Opnieuw instellen" name="reset_covenant" right="460" width="110"/>
+ <text name="covenant_help_text" bottom="-25">
+ Wijzigingen in het convenant zullen in alle percelen van het estate
+ zichtbaar zijn.
+ </text>
+ <text name="covenant_instructions" bottom_delta="-36" >
+ Sleep en deponeer een notitiekaart om het convenant voor deze
+ estate te wijzigen.
+ </text>
+ <text name="region_section_lbl" bottom_delta="-36" >
+ Regio:
+ </text>
+ <text name="region_name_lbl">
+ Naam:
+ </text>
+ <text name="region_name_text">
+ leyla
+ </text>
+ <text name="region_landtype_lbl">
+ Type:
+ </text>
+ <text name="region_landtype_text">
+ Mainland / Homestead
+ </text>
+ <text name="region_maturity_lbl">
+ Inhoudscategorie:
+ </text>
+ <text name="region_maturity_text">
+ Adult
+ </text>
+ <text name="resellable_lbl">
+ Doorverkopen:
+ </text>
+ <text name="resellable_clause">
+ Land in deze regio mag niet worden doorverkocht.
+ </text>
+ <text name="changeable_lbl">
+ Opsplitsen:
+ </text>
+ <text name="changeable_clause">
+ Land in deze regio mag niet worden samengevoegd/opgesplitst.
+ </text>
+ <string name="can_resell">
+ Aangekocht land in deze regio mag worden doorverkocht.
+ </string>
+ <string name="can_not_resell">
+ Aangekocht land in deze regio mag niet worden doorverkocht.
+ </string>
+ <string name="can_change">
+ Aangekocht land in deze regio mag worden gecombineerd of
+opgedeeld.
+ </string>
+ <string name="can_not_change">
+ Aangekocht land in deze regio mag niet worden gecombineerd
+of opgedeeld.
+ </string>
+</panel>
diff --git a/indra/newview/skins/default/xui/nl/panel_scrolling_param.xml b/indra/newview/skins/default/xui/nl/panel_scrolling_param.xml
new file mode 100644
index 0000000000..8487ff999a
--- /dev/null
+++ b/indra/newview/skins/default/xui/nl/panel_scrolling_param.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="LLScrollingPanelParam">
+ <text name="Loading...">
+ Laden...
+ </text>
+ <text name="Loading...2">
+ Laden...
+ </text>
+ <slider label="[DESC]" name="param slider"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/nl/strings.xml b/indra/newview/skins/default/xui/nl/strings.xml
index ae8d3b89dc..1ee26c3f24 100644
--- a/indra/newview/skins/default/xui/nl/strings.xml
+++ b/indra/newview/skins/default/xui/nl/strings.xml
@@ -909,6 +909,9 @@
<string name="InvFolder Gestures">
Gebaren
</string>
+ <string name="InvFolder Favorite">
+ Favoriten
+ </string>
<string name="InvFolder favorite">
Favoriten
</string>
diff --git a/indra/newview/skins/default/xui/pl/floater_about.xml b/indra/newview/skins/default/xui/pl/floater_about.xml
index b49247c4bf..e032008e7b 100644
--- a/indra/newview/skins/default/xui/pl/floater_about.xml
+++ b/indra/newview/skins/default/xui/pl/floater_about.xml
@@ -27,9 +27,9 @@ Karta graficzna: [GRAPHICS_CARD]
Wersja libcurl: [LIBCURL_VERSION]
Wersja dekodera J2C: [J2C_VERSION]
-Wersja sterownika audio: [AUDIO_DRIVER_VERSION]
+Wersja Audio Driver: [AUDIO_DRIVER_VERSION]
Wersja Qt Webkit: [QT_WEBKIT_VERSION]
-Wersja Vivox: [VIVOX_VERSION]
+Wersja serwera głosu: [VOICE_VERSION]
</floater.string>
<floater.string name="none">
(żadne)
@@ -43,11 +43,14 @@ Wersja Vivox: [VIVOX_VERSION]
</panel>
<panel label="Podziękowania" name="credits_panel">
<text_editor name="credits_editor">
- Second Life zostało stworzone dla Was przez: Philip, Tessa, Andrew, Cory, James, Ben, Char, Charlie, Colin, Dan, Daniel, Doug, Eric, Hamlet, Haney, Eve, Hunter, Ian, Jeff, Jennifer, Jim, John, Lee, Mark, Peter, Phoenix, Richard, Robin, Xenon, Steve, Tanya, Eddie, Avi, Frank, Bruce, Aaron, Alice, Bob, Debra, Eileen, Helen, Janet, Louie, Leviathania, Stefan, Ray, Kevin, Tom, Mikeb, MikeT, Burgess, Elena, Tracy, Bill, Todd, Ryan, Zach, Sarah, Nova, Tim, Stephanie, Michael, Evan, Nicolas, Catherine, Rachelle, Dave, Holly, Bub, Kelly, Magellan, Ramzi, Don, Sabin, Jill, Rheya, Jeska, Torley, Kona, Callum, Charity, Ventrella, Jack, Vektor, Iris, Chris, Nicole, Mick, Reuben, Blue, Babbage, Yedwab, Deana, Lauren, Brent, Pathfinder, Chadrick, Altruima, Jesse, Teeny, Monroe, Icculus, David, Tess, Lizzie, Patsy, Isaac, Lawrence, Cyn, Bo, Gia, Annette, Marius, Tbone, Jonathan, Karen, Ginsu, Satoko, Yuko, Makiko, Thomas, Harry, Seth, Alexei, Brian, Guy, Runitai, Ethan, Data, Cornelius, Kenny, Swiss, Zero, Natria, Wendy, Stephen, Teeple, Thumper, Lucy, Dee, Mia, Liana, Warren, Branka, Aura, beez, Milo, Hermia, Red, Thrax, Joe, Sally, Magenta, Mogura, Paul, Jose, Rejean, Henrik, Lexie, Amber, Logan, Xan, Nora, Morpheus, Donovan, Leyla, MichaelFrancis, Beast, Cube, Bucky, Joshua, Stryfe, Harmony, Teresa, Claudia, Walker, Glenn, Fritz, Fordak, June, Cleopetra, Jean, Ivy, Betsy, Roosevelt, Spike, Ken, Which, Tofu, Chiyo, Rob, Zee, dustin, George, Del, Matthew, Cat, Jacqui, Lightfoot, Adrian, Viola, Alfred, Noel, Irfan, Sunil, Yool, Rika, Jane, Xtreme, Frontier, a2, Neo, Siobhan, Yoz, Justin, Elle, Qarl, Benjamin, Isabel, Gulliver, Everett, Christopher, Izzy, Stephany, Garry, Sejong, Sean, Tobin, Iridium, Meta, Anthony, Jeremy, JP, Jake, Maurice, Madhavi, Leopard, Kyle, Joon, Kari, Bert, Belinda, Jon, Kristi, Bridie, Pramod, KJ, Socrates, Maria, Ivan, Aric, Yamasaki, Adreanne, Jay, MitchK, Ceren, Coco, Durl, Jenny, Periapse, Kartic, Storrs, Lotte, Sandy, Rohn, Colossus, Zen, BigPapi, Brad, Pastrami, Kurz, Mani, Neuro, Jaime, MJ, Rowan, Sgt, Elvis, Gecko, Samuel, Sardonyx, Leo, Bryan, Niko, Soft, Poppy, Rachel, Aki, Angelo, Banzai, Alexa, Sue, CeeLo, Bender, CG, Gillian, Pelle, Nick, Echo, Zara, Christine, Shamiran, Emma, Blake, Keiko, Plexus, Joppa, Sidewinder, Erica, Ashlei, Twilight, Kristen, Brett, Q, Enus, Simon, Bevis, Kraft, Kip, Chandler, Ron, LauraP, Ram, KyleJM, Scouse, Prospero, Melissa, Marty, Nat, Hamilton, Kend, Lordan, Jimmy, Kosmo, Seraph, Green, Ekim, Wiggo, JT, Rome, Doris, Miz, Benoc, Whump, Trinity, Patch, Kate, TJ, Bao, Joohwan, Christy, Sofia, Matias, Cogsworth, Johan, Oreh, Cheah, Angela, Brandy, Mango, Lan, Aleks, Gloria, Heidy, Mitchell, Space, Colton, Bambers, Einstein, Maggie, Malbers, Rose, Winnie, Stella, Milton, Rothman, Niall, Marin, Allison, Katie, Dawn, Katt, Dusty, Kalpana, Judy, Andrea, Ambroff, Infinity, Gail, Rico, Raymond, Yi, William, Christa, M, Teagan, Scout, Molly, Dante, Corr, Dynamike, Usi, Kaylee, Vidtuts, Lil, Danica, Sascha, Kelv, Jacob, Nya, Rodney, Brandon, Elsie, Blondin, Grant, Katrin, Nyx, Gabriel, Locklainn, Claire, Devin, Minerva, Monty, Austin, Bradford, Si, Keira, H, Caitlin, Dita, Makai, Jenn, Ann, Meredith, Clare, Joy, Praveen, Cody, Edmund, Ruthe, Sirena, Gayathri, Spider, FJ, Davidoff, Tian, Jennie, Louise, Oskar, Landon, Noelle, Jarv, Ingrid, Al, Sommer, Doc, Aria, Huin, Gray, Lili, Vir, DJ, Yang, T, Simone, Maestro, Scott, Charlene, Quixote, Amanda, Susan, Zed, Anne, Enkidu, Esbee, Joroan, Katelin, Roxie, Tay, Scarlet, Kevin, Johnny, Wolfgang, Andren, Bob, Howard, Merov, Rand, Ray, Michon, Newell, Galen, Dessie, Les and many others.
+ Second Life zostało stworzone dla Was przez Philip, Tessa, Andrew, Cory, Ian, James, Phoenix, Ryan, Haney, Dan, Char, Ben, John, Tanya, Eddie, Richard, Mitch, Doug, Eric, Frank, Bruce, Aaron, Peter, Alice, Charlie, Debra, Eileen, Helen, Janet, Steffan, Steve, Tom, Mark, Hunter, Xenon, Burgess, Bill, Jim, Lee, Hamlet, Daniel, Jeff, Todd, Sarah, Tim, Stephanie, Colin, Michael, Evan, Nicolas, Catherine, Rachelle, Dave, Holly, Bub, Kelly, Ramzi, Don, Sabin, Jill, Rheya, Jeska, Torley, Kona, Callum, Charity, Jack, Vektor, Chris, Nicole, Mick, Reuben, Blue, Babbage, Yedwab, Deana, Lauren, Brent, Pathfinder, Chadrick, Jesse, David, Tess, Lizzie, Patsy, Isaac, Lawrence, Cyn, Bo, Gia, Annette, Marius, Tbone, Jonathan, Karen, Ginsu, Yuko, Makiko, Thomas, Harry, Seth, Brian, Guy, Runitai, Ethan, Data, Cornelius, Kenny, Swiss, Zero, Brad, Natria, Wendy, Stephen, Teeple, Thumper, Lucy, Dee, Mia, Liana, Warren, Branka, Aura, Beez, Milo, Hermia, Red, Thrax, Gulliver, Joe, Sally, Paul, Jose, Rejean, Dore, Henrik, Lexie, Amber, Logan, Xan, Nora, Morpheus, Donovan, Leyla, MichaelFrancis, Beast, Cube, Bucky, Joshua, Stryfe, Harmony, Teresa, Claudia, Walker, Glenn, Fritz, Fordak, June, Cleopetra, Ivy, Betsy, Roosevelt, Spike, Ken, Which, Tofu, Chiyo, Rob, Zee, Dustin, George, Del, Matthew, Cat, Jacqui, Adrian, Viola, Alfred, Noel, Irfan, Yool, Rika, Jane, Frontier, Neo, Siobhan, Yoz, Justin, Elle, Qarl, Benjamin, Isabel, Everett, Christopher, Izzy, Stephany, Garry, Sejong, Sean, Tobin, Iridium, Meta, Jeremy, JP, Jake, Anthony, Maurice, Madhavi, Leopard, Kyle, Joon, Bert, Belinda, Jon, Kristi, Bridie, Pramod, Socrates, Maria, Aric, Adreanne, Jay, Kari, Ceren, Coco, Durl, Jenny, Periapse, Kartic, Storrs, Lotte, Sandy, Colossus, Zen, BigPapi, Pastrami, Kurz, Mani, Neuro, Mel, Sardonyx, MJ, Rowan, Sgt, Elvis, Samuel, Leo, Bryan, Niko, Austin, Soft, Poppy, Rachel, Aki, Banzai, Alexa, Sue, Bender, CG, Angelo, Gillian, Pelle, Nick, Echo, Zara, Christine, Shamiran, Emma, Blake, Keiko, Plexus, Joppa, Sidewinder, Erica, Ashlei, Twilight, Kristen, Brett, Q, Enus, Simon, Bevis, Kraft, Kip, Chandler, Ron, LauraP, Ram, KyleJM, Scouse, Prospero, Melissa, Marty, Nat, Hamilton, Kend, Lordan, Jimmy, Kosmo, Seraph, Green, Ekim, Wiggo, JT, Rome, Doris, Miz, Benoc, Whump, Trinity, Patch, Kate, TJ, Bao, Joohwan, Christy, Sofia, Matias, Cogsworth, Johan, Oreh, Cheah, Angela, Brandy, Mango, Lan, Aleks, Gloria, Mitchell, Space, Colton, Bambers, Einstein, Maggie, Malbers, Rose, Rothman, Niall, Marin, Allison, Katie, Dawn, Dusty, Katt, Judy, Andrea, Ambroff, Infinity, Rico, Gail, Kalpana, Raymond, Yi, William, Christa, M, Teagan, Scout, Molly, Dante, Corr, Dynamike, Usi, Kaylee, Lil, Danica, Sascha, Kelv, Jacob, Nya, Rodney, Brandon, Elsie, Blondin, Grant, Katrin, Nyx, Gabriel, Locklainn, Claire, Devin, Minerva, Monty, Bradford, Si, Keira, H, Caitlin, Dita, Makai, Jenn, Ann, Meredith, Clare, Joy, Praveen, Cody, Edmund, Ruthe, Sirena, Gayathri, Spider, FJ, Davidoff, Tian, Jennie, Louise, Oskar, Landon, Noelle, Jarv, Ingrid, Al, Sommer, Doc, Aria, Huin, Gray, Lili, Vir, DJ, Maestro, Simone, Yang, T, Shannon, Nelson, Khanh, Scott, Courtney, Charlene, Quixote, Susan, Zed, Amanda, Katelin, Enkidu, Roxie, Esbee, JoRoan, Scarlet, Tay, Kevin, Wolfgang, Johnny, Ray, Andren, Merov, Bob, Rand, Howard, Callen, Heff, Galen, Newell, Dessie, Les, Michon, Jenelle, Geo, Siz, Shapiro, Pete, Calyle, Selene, Allen, Phoebe, Goldin, Kimmora, Dakota, Slaton, Lindquist, Zoey, Hari, Othello, Rohit, Sheldon, Petra, Viale, Gordon, Kaye, Pink, Ferny, Emerson, Davy, Bri, Chan, Juan, Robert, Terrence, Nathan, Carl, Ashley, JessieAnn, Huseby, Karina, Paris, Kurt, Rick, Lis, Kotler, Theeba, Lynx, Murphy, Doten, Taka, Norm, Jillian, Marcus, Mae, Novack, Esther, Perry, Dana, Ducot, Javier, Porter, Madison, Gecko, Dough, JR, Gisele, Crimp, Norie, Arch, Kimi, Fisher, Barbara, Jason, Peggy, Bernard, Jules, Leroy, Eva, Khederian, Campbell, Vogt, Masido, Karel, Torres, Lo, Breezer, Delby, Rountree, Anna, Servus, Rue, Itiaes, Chuck, Luna, Novella, Zaza, Wen, Gino, Lex, Cassandra, Limey, Nancy, Anukul, Silver, Brodesky, Jinsai, Squid, Gez, Rakesh, Ladan, Edelman, Marcet, Squire, Tatem, Tony, Jerm, Tia, Falcon, BK, Tiggs, Driscoll, Bacon, Timothee, Cru, Carmilla, Coyot, Webb, Kazu, Rudas, LJ, Sea, Ali Wallace, Bewest, Pup, Drub, Dragon, Inoshiro, Byron, Rhett, Xandix, Aimee, Fredrik, Thor, Teddy, Baron, Nelly, Ghengis, Epic, Eli, Stone, Grapes, Irie, Prep, Scobu, Valerie, Alain, and many others.
-Podziękowania dla następujących rezydentów za pomoc w pracy nad obecną wersją Second Life: (in progress)
-It is a rare mind indeed that can render the hitherto non-existent blindingly obvious. The cry &apos;I could have thought of that&apos; is a very popular and misleading one, for the fact is that they didn&apos;t, and a very significant and revealing fact it is too.
- -- Douglas Adams
+Podziękowania dla następujących Rezydentów za pomoc w pracy nad obecną wersją Second Life: Drew Dwi, Zai Lynch, Latif Khalifa, Ellla McMahon, Harleen Gretzky, Squirrel Wood, Malarthi Behemoth, Dante Tucker, Buckaroo Mu, Eddi Decosta, Dirk, Talamasca, Torben Trautman, Irene Muni, Lilly Zenovka, Vick Forcella, Sasy Scarborough, Gentle Welinder, Elric Anatine, Techwolf Lupindo, Dusan Writer, WolfPup Lowenhar, Marianne McCann, Fiachra Lach, Sitearm Madonna, Sudane Erato, Sahkolihaa Contepomi, Sachi Vixen, Questar Utu, Dimitrio Lewis, Matto Destiny, Scrim Pinion, Radio Signals, Psi Merlin, Pixel Gausman, Mel Vanbeeck, Laurent Bechir, Lamorna Proctor, Lares Carter, Gwyneth Llewelyn, Hydra Shaftoe, Holger Gilruth, Gentle Heron, Carla Broek, Boroondas Gupte, Fury Rosewood, Flower Ducatillon, Colpo Wexler, gwampa Lomu, Borg Capalini, Beansy Twine, Ardy Lay, , 45ms Zhong, Adeon Writer, Aeonix Aeon, Ai Austin, Aiko Ying, Alexandrea Fride, Alliez Mysterio, Annie Milestone, Annika Genezzia, Ansariel Hiller, ArminasX Saiman, Arya Braveheart, Asaeda Meltingdots, Asturkon Jua, Avallyn Oakleaf, Avatar Quinzet, BabyA Littlething, Bacchus Ireto, Bazaar, Riva, Benjamin Bigdipper, Beth Walcher, Bezilon Kasei, Biancaluce Robbiani, Bill Walach, blakopal Galicia, Blitzckreed Levenque, Bryn Oh, Callipygian Christensen, Cap Carver, Carr Arbenlow, Chantal Harvey, Charles Courtois, Charlie Sazaland, Cherry Cheevers, ChickyBabes Zuzu, Christopher Organiser, Ciaran Laval, Clara Young, Celierra Darling, Corinne Helendale, Corro Moseley, Coughdrop Littlething, Darien Caldwell, Dartagan Shepherd, Debs Regent, Decro Schmooz, Denim Kamachi, DiJodi Dubratt, Dil Spitz, Edgware Marker, Egehan Dryke, Emma Portilo, Emmie Fairymeadow, Evangelista Emerald, Faelon Swordthain, Frenchimmo Sabra, Gaberoonie Zanzibar, Ganymedes Costagravas, Gene Frostbite, GeneJ Composer, Giggles Littlebird, Grady Echegaray, Guni Greenstein, Gypsy Tripsa, Hackshaven Harford, Ham Rambler, Han Shuffle, Hanglow Short, Hatzfeld Runo, herina Bode, Horatio Freund, Hypatia Callisto, Hypatia Pickens, Identity Euler, Imnotgoing Sideways, Innula Zenovka, Iyoba Tarantal, Jack Abraham, Jagga Meredith, Jennifer Boyle, Jeremy Marquez, Jessica Qin, Jinx Nordberg, Jo Bernandes, Jocial Sonnenkern, Joel Savard, Jondan Lundquist, Josef Munster, Josette Windlow, Juilan Tripsa, Juro Kothari, Justin RiversRunRed, Kagehi Kohn, Kaimen Takahe, Keklily Longfall, Ken Lavender, Kestral Karas, Khisme Nitely, Kimar Coba, Kithrak Kirkorian, Kitty Barnett, Kolor Fall, Komiko Okamoto, Korvel Noh, Larry Pixel, Leal Choche, len Starship, Lenae Munz, Lexi Frua, Lillie Cordeaux, Lizzy Macarthur, LSL Scientist, Luban Yiyuan, Luc Starsider, Maccus McCullough, Madison Blanc, Maggie Darwin, Mallory Destiny, Manx Wharton, Marc Claridge, Marc2 Sands, Matthew Anthony, Maxim RiversRunRed, Medhue Simoni, Melinda Latynina, Mencius Watts, Michi Lumin, Midian Farspire, Miles Glaz, Mindy Mathy, Mitch Wagner, Mo Hax, Mourna Biziou, Nao Noe, naofan Teardrop, Naomah Beaumont, Nathiel Siamendes, Nber Medici, Neko Link, Netpat Igaly, Neutron Chesnokov, Newfie Pendragon, Nicholai Laviscu, Nick Rhodes, Nicoladie Gymnast, Ollie Kubrick, Orenj Marat, Orion Delphis, Oryx Tempel, Parvati Silverweb, PeterPunk Mooney, Pixel Scientist, Pounce Teazle, Professor Noarlunga, Quantum Destiny, Quicksilver Hermes, Ralf Setsuko, RAT Quan, RedMokum Bravin, Revolution Perenti, Rezit Sideways, Rich Grainger, Rosco Teardrop, Rose Evans, Rudee Voom, RufusTT Horsefly, Saii Hallard, SaintLEOlions Zimer, Samm Larkham, Satanello Miami, SexySteven Morrisey, Sheet Spotter, Shnurui Troughton, sicarius Thorne, Sicarius Toxx, Sini Nubalo, SLB Wirefly, snowy Sidran, Soupa Segura, ST Mensing, Starshine Halasy, Stickman Ingmann, Synystyr Texan, Takeda Terrawyng, Tali Rosca, Templar Merlin, Tezcatlipoca Bisiani, Tiel Stonecutter, Tony Kembia, TouchaHoney Perhaps, Trey Reanimator, TriloByte Zanzibar, Trinity Dechou, Trinity Dejavu, Unlikely Quintessa, UsikuFarasi Kanarik, Veritas Raymaker, Vex Streeter, Viaticus Speculaas, Villain Baroque, Vixie Durant, Void Singer, Watty Berkson, Westley Schridde, Westley Streeter, Whimsy Winx, Winter Ventura, Wundur Primbee, xstorm Radek, YongYong Francois, Zak Westminster, Zana Kohime, Zaren Alexander, Zeja Pyle, ZenMondo Wormser, Zoex Flanagan, and many others.
+
+
+
+
+&quot;The work goes on, the cause endures, the hope still lives, and the dreams shall never die&quot; - Edward Kennedy
</text_editor>
</panel>
<panel label="Licencje" name="licenses_panel">
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 163868f200..0974518a1f 100644
--- a/indra/newview/skins/default/xui/pl/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/pl/floater_about_land.xml
@@ -63,6 +63,9 @@
Posiadłość nie wybrana.
Idź do Świat &gt; O Posiadłości albo wybierz inną posiadłość żeby pokazać jej dane.
</panel.string>
+ <panel.string name="time_stamp_template">
+ [wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local]
+ </panel.string>
<text name="Name:">
Nazwa:
</text>
@@ -220,7 +223,7 @@ Idź do Świat &gt; O Posiadłości albo wybierz inną posiadłość żeby pokaz
<text name="Simulator primitive usage:">
Ilość używanych primów:
</text>
- <text name="objects_available" width="230">
+ <text name="objects_available">
[COUNT] z [MAX] ([AVAILABLE] jest dostępne)
</text>
<text name="Primitives parcel supports:">
@@ -268,11 +271,11 @@ Idź do Świat &gt; O Posiadłości albo wybierz inną posiadłość żeby pokaz
<text name="Autoreturn">
Zwracaj obiekty innych Rezydentów (minut, 0 = wyłącz):
</text>
- <text name="Object Owners:" width="108">
+ <text name="Object Owners:">
Właściciel obiektów:
</text>
- <button label="Odśwież listę" label_selected="Odśwież listę" left="112" name="Refresh List" tool_tip="Refresh Object List"/>
- <button label="Zwróć obiekty..." label_selected="Zwróć obiekty..." left="224" name="Return objects..."/>
+ <button label="Odśwież listę" label_selected="Odśwież listę" name="Refresh List" tool_tip="Refresh Object List"/>
+ <button label="Zwróć obiekty..." label_selected="Zwróć obiekty..." name="Return objects..."/>
<name_list name="owner list">
<name_list.columns label="Typ" name="type"/>
<name_list.columns name="online_status"/>
@@ -324,7 +327,7 @@ Jedynie większe posiadłości mogą być umieszczone w bazie wyszukiwarki.
<check_box label="Wszyscy" name="edit objects check"/>
<check_box label="Grupa" name="edit group objects check"/>
<text name="allow_label3">
- Nowe Obiekty:
+ Nowe obiekty:
</text>
<check_box label="Wszyscy" name="all object entry check"/>
<check_box label="Grupa" name="group object entry check"/>
@@ -377,7 +380,7 @@ Jedynie większe posiadłości mogą być umieszczone w bazie wyszukiwarki.
Punkt LÄ…dowania: [LANDING]
</text>
<button label="Ustaw" label_selected="Ustaw" name="Set" tool_tip="Ustal miejsce lądowania dla przybywających gości. Używa położenia Twojego awatara na tej posiadłości."/>
- <button label="Nowy" label_selected="Nowy" name="Clear" tool_tip="Clear the landing point."/>
+ <button label="Nowy" label_selected="Nowy" name="Clear" tool_tip="Usuń dotychczasowe miejsce lądowania."/>
<text name="Teleport Routing: ">
Trasa teleportacji:
</text>
@@ -396,7 +399,7 @@ Jedynie większe posiadłości mogą być umieszczone w bazie wyszukiwarki.
URL mediów:
</text>
<button label="Ustaw" name="set_media_url"/>
- <check_box label="Ukryj URL mediów" name="hide_media_url" tool_tip="Wybranie tej opcji, zablokuje widok adresu do medów wszystkim nieautoryzowanym Użytkownikom. Nie dotyczy to jednak typów HTML."/>
+ <check_box label="Ukryj URL mediów" name="hide_media_url" tool_tip="Wybranie tej opcji, zablokuje widok adresu do medów wszystkim nieautoryzowanym Rezydentom. Nie dotyczy to jednak typów HTML."/>
<text name="Description:">
Opis:
</text>
@@ -428,14 +431,14 @@ Mediów:
<check_box label="Ukryj URL muzyki" name="hide_music_url" tool_tip="Wybranie tej opcji, zablokuje widok adresu do medów muzycznych w posiadłości wszystkim nieautoryzowanym Użytkownikom"/>
<check_box label="Rozmowy dozwolone" name="parcel_enable_voice_channel"/>
<check_box label="Rozmowy dozwolone (ustawione przez MajÄ…tek)" name="parcel_enable_voice_channel_is_estate_disabled"/>
- <check_box label="Ogranicz komunikację głosową w tej posiadłości." name="parcel_enable_voice_channel_local"/>
+ <check_box label="Ogranicz komunikację głosową w tej Posiadłości." name="parcel_enable_voice_channel_local"/>
</panel>
<panel label="DOSTĘP" name="land_access_panel">
<panel.string name="access_estate_defined">
(Zdefiniowane przez MajÄ…tek)
</panel.string>
<panel.string name="allow_public_access">
- Udostępnij dostęp publiczny ([MATURITY])
+ Udostępnij publicznie ([MATURITY])
</panel.string>
<panel.string name="estate_override">
Jedna lub więcej z tych opcji ustawiona jest z poziomu Posiadłości
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 ca06665c65..3402d8d31f 100644
--- a/indra/newview/skins/default/xui/pl/floater_animation_preview.xml
+++ b/indra/newview/skins/default/xui/pl/floater_animation_preview.xml
@@ -26,7 +26,7 @@ Maksymalna długość pliku animacji wynosi [MAX_LENGTH] sekund.
Plik BVH nie może zostać otworzony.
</floater.string>
<floater.string name="E_ST_NO_HIER">
- Niewłaściwy nagłówek HIERARCHI.
+ Niewłaściwy nagłówek HIERARCHII.
</floater.string>
<floater.string name="E_ST_NO_JOINT">
ROOT oraz JOINT nieodnalezione.
@@ -104,7 +104,7 @@ Maksymalna długość pliku animacji wynosi [MAX_LENGTH] sekund.
Brak otrzymania wartości morfizacji.
</floater.string>
<floater.string name="E_ST_NO_XLT_EMOTE">
- Niemożliwość przeczytania nazwy emocji.
+ Nie można odczytać nazwy emocji.
</floater.string>
<floater.string name="E_ST_BAD_ROOT">
Nieprawidłowa nazwa, użyj &quot;hip&quot;.
@@ -120,7 +120,7 @@ Maksymalna długość pliku animacji wynosi [MAX_LENGTH] sekund.
<spinner label="Od(%)" name="loop_in_point" tool_tip="Wybierz punkt, od którego chcesz zacząć powtarzać animację"/>
<spinner label="Do(%)" name="loop_out_point" tool_tip="Wybierz punkt, od którego chcesz zakończyć powtarzanie animacji"/>
<text name="hand_label">
- Pozycja Ręki
+ Pozycja ręki
</text>
<combo_box label="" name="hand_pose_combo" tool_tip="Kontroluje co robi ręka podczas animacji">
<combo_box.item label="RozciÄ…gaj" name="Spread"/>
@@ -128,54 +128,54 @@ Maksymalna długość pliku animacji wynosi [MAX_LENGTH] sekund.
<combo_box.item label="Wskazuj" name="PointBoth"/>
<combo_box.item label="Pięść" name="Fist"/>
<combo_box.item label="Lewa-Odpocznij" name="RelaxedLeft"/>
- <combo_box.item label="Wskazuj LewÄ…" name="PointLeft"/>
- <combo_box.item label="Zaciśnij Lewą" name="FistLeft"/>
- <combo_box.item label="Prawa-Odpocznij" name="RelaxedRight"/>
- <combo_box.item label="Wskazuj PrawÄ…" name="PointRight"/>
- <combo_box.item label="Zaciśnij Prawą" name="FistRight"/>
- <combo_box.item label="Salutuj PrawÄ…" name="SaluteRight"/>
+ <combo_box.item label="Wskazuj lewÄ…" name="PointLeft"/>
+ <combo_box.item label="Zaciśnij lewą" name="FistLeft"/>
+ <combo_box.item label="Prawa-odpocznij" name="RelaxedRight"/>
+ <combo_box.item label="Wskazuj prawÄ…" name="PointRight"/>
+ <combo_box.item label="Zaciśnij prawą" name="FistRight"/>
+ <combo_box.item label="Salutuj prawÄ…" name="SaluteRight"/>
<combo_box.item label="Pisz" name="Typing"/>
- <combo_box.item label="Prawa-Pokój" name="PeaceRight"/>
+ <combo_box.item label="Prawa-pokój" name="PeaceRight"/>
</combo_box>
<text name="emote_label">
Ekspresja
</text>
<combo_box label="" name="emote_combo" tool_tip="Kontroluj mimikÄ™ twarzy w czasie animacji">
- <combo_box.item label="(Żadne)" name="[None]"/>
- <combo_box.item label="Aaaaah" name="Aaaaah"/>
- <combo_box.item label="Obawa" name="Afraid"/>
- <combo_box.item label="Złość" name="Angry"/>
- <combo_box.item label="Duży Uśmiech" name="BigSmile"/>
- <combo_box.item label="Znudzenie" name="Bored"/>
- <combo_box.item label="Płacz" name="Cry"/>
- <combo_box.item label="Wzgarda" name="Disdain"/>
- <combo_box.item label="Zakłopotanie" name="Embarrassed"/>
- <combo_box.item label="Marszczenie Brwi" name="Frown"/>
- <combo_box.item label="Pocałunek" name="Kiss"/>
- <combo_box.item label="Åšmiech" name="Laugh"/>
- <combo_box.item label="Plllppt" name="Plllppt"/>
- <combo_box.item label="Odrzucenie" name="Repulsed"/>
- <combo_box.item label="Smutek" name="Sad"/>
- <combo_box.item label="Wzruszenie Ramionami" name="Shrug"/>
- <combo_box.item label="Uśmiech" name="Smile"/>
- <combo_box.item label="Niespodzianka" name="Surprise"/>
- <combo_box.item label="Mrugnięcie" name="Wink"/>
- <combo_box.item label="Zmartwienie" name="Worry"/>
+ <item label="(Żadne)" name="[None]" value=""/>
+ <item label="Aaaaah" name="Aaaaah" value="Aaaaah"/>
+ <item label="Obawa" name="Afraid" value="Obawa"/>
+ <item label="Złość" name="Angry" value="Złość"/>
+ <item label="Duży uśmiech" name="BigSmile" value="Duży uśmiech"/>
+ <item label="Znudzenie" name="Bored" value="Znudzenie"/>
+ <item label="Płacz" name="Cry" value="Płacz"/>
+ <item label="Wzgarda" name="Disdain" value="Wzgarda"/>
+ <item label="Zakłopotanie" name="Embarrassed" value="Zakłopotanie"/>
+ <item label="Marszczenie brwi" name="Frown" value="Marszczenie brwi"/>
+ <item label="Pocałunek" name="Kiss" value="Pocałunek"/>
+ <item label="Åšmiech" name="Laugh" value="Åšmiech"/>
+ <item label="Plllppt" name="Plllppt" value="Plllppt"/>
+ <item label="Odrzucenie" name="Repulsed" value="Odrzucenie"/>
+ <item label="Smutek" name="Sad" value="Smutek"/>
+ <item label="Wzruszenie ramionami" name="Shrug" value="Wzruszenie ramionami"/>
+ <item label="Uśmiech" name="Smile" value="Uśmiech"/>
+ <item label="Niespodzianka" name="Surprise" value="Niespodzianka"/>
+ <item label="Mrugnięcie" name="Wink" value="Mrugnięcie"/>
+ <item label="Zmartwienie" name="Worry" value="Zmartwienie"/>
</combo_box>
<text name="preview_label">
PrzeglÄ…daj kiedy:
</text>
<combo_box label="" name="preview_base_anim" tool_tip="Przetestuj zachowanie animacji kiedy awatar wykonuje normalne czynności">
- <combo_box.item label="Stoisz" name="Standing"/>
- <combo_box.item label="Chodzisz" name="Walking"/>
- <combo_box.item label="Siedzisz" name="Sitting"/>
- <combo_box.item label="Latasz" name="Flying"/>
+ <item label="Stoisz" name="Standing" value="Stoisz"/>
+ <item label="Chodzisz" name="Walking" value="Chodzisz"/>
+ <item label="Siedzisz" name="Sitting" value="Siedzisz"/>
+ <item label="Latasz" name="Flying" value="Latasz"/>
</combo_box>
<spinner label="Złagodzić w (sekund)" name="ease_in_time" tool_tip="Ilość Czasu (w sekundach), w których animacje mieszają się"/>
<spinner label="Złagodzić na zewnątrz (sekund)" name="ease_out_time" tool_tip="Ilość Czasu (w sekundach), w których animacje oddzielają się"/>
<button label="" name="play_btn" tool_tip="Odtwarzaj animacjÄ™"/>
<button name="pause_btn" tool_tip="Zatrzymaj animacjÄ™"/>
- <button label="" name="stop_btn" tool_tip="Stop animation playback"/>
+ <button label="" name="stop_btn" tool_tip="Zakończ odtwarzanie animacji"/>
<slider label="" name="playback_slider"/>
<text name="bad_animation_text">
Brak możliwości wczytania pliku animacji.
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 11651ad7e8..45b9e066e9 100644
--- a/indra/newview/skins/default/xui/pl/floater_avatar_textures.xml
+++ b/indra/newview/skins/default/xui/pl/floater_avatar_textures.xml
@@ -3,41 +3,46 @@
<floater.string name="InvalidAvatar">
NIEWÅAÅšCIWY AWATAR
</floater.string>
- <text name="composite_label">
- Tekstury kompozytowe
- </text>
- <button label="Zrzuć" label_selected="Zrzuć" name="Dump"/>
<scroll_container name="profile_scroll">
<panel name="scroll_content_panel">
- <texture_picker label="Włosy" name="hair-baked"/>
- <texture_picker label="Włosy" name="hair_grain"/>
- <texture_picker label="Alpha włosów" name="hair_alpha"/>
- <texture_picker label="Głowa" name="head-baked"/>
- <texture_picker label="Makijaż" name="head_bodypaint"/>
- <texture_picker label="Alpha głowy" name="head_alpha"/>
- <texture_picker label="Tatuaż głowy" name="head_tattoo"/>
- <texture_picker label="Oczy" name="eyes-baked"/>
- <texture_picker label="Oko" name="eyes_iris"/>
- <texture_picker label="Alpha oczu" name="eyes_alpha"/>
- <texture_picker label="Górna część ciała" name="upper-baked"/>
- <texture_picker label="Górny wzór na ciele" name="upper_bodypaint"/>
- <texture_picker label="Podkoszulek" name="upper_undershirt"/>
- <texture_picker label="Rękawiczki" name="upper_gloves"/>
- <texture_picker label="Koszula" name="upper_shirt"/>
- <texture_picker label="Kurtka górna" name="upper_jacket"/>
- <texture_picker label="Alpha górna" name="upper_alpha"/>
- <texture_picker label="Tatuaż górny" name="upper_tattoo"/>
- <texture_picker label="Dolna część ciała" name="lower-baked"/>
- <texture_picker label="Dolny wzór na ciele" name="lower_bodypaint"/>
- <texture_picker label="Bielizna" name="lower_underpants"/>
- <texture_picker label="Skarpetki" name="lower_socks"/>
- <texture_picker label="Buty" name="lower_shoes"/>
- <texture_picker label="Spodnie" name="lower_pants"/>
- <texture_picker label="Kurtka" name="lower_jacket"/>
- <texture_picker label="Alpha dolna" name="lower_alpha"/>
- <texture_picker label="Tatuaż dolny" name="lower_tattoo"/>
- <texture_picker label="Spódnica" name="skirt-baked"/>
- <texture_picker label="Spódnica" name="skirt"/>
+ <text name="label">
+ Tekstury bakowane
+ </text>
+ <text name="composite_label">
+ Tekstury kompozytowe
+ </text>
+ <button label="Dump IDs to Console" label_selected="Dump" name="Dump"/>
+ <panel name="scroll_content_panel">
+ <texture_picker label="Włosy" name="hair-baked"/>
+ <texture_picker label="Włosy" name="hair_grain"/>
+ <texture_picker label="Alpha włosów" name="hair_alpha"/>
+ <texture_picker label="Głowa" name="head-baked"/>
+ <texture_picker label="Makijaż" name="head_bodypaint"/>
+ <texture_picker label="Alpha głowy" name="head_alpha"/>
+ <texture_picker label="Tatuaż głowy" name="head_tattoo"/>
+ <texture_picker label="Oczy" name="eyes-baked"/>
+ <texture_picker label="Oko" name="eyes_iris"/>
+ <texture_picker label="Alpha oczu" name="eyes_alpha"/>
+ <texture_picker label="Górna część ciała" name="upper-baked"/>
+ <texture_picker label="Górny rysunek na ciele" name="upper_bodypaint"/>
+ <texture_picker label="Podkoszulek" name="upper_undershirt"/>
+ <texture_picker label="Rękawiczki" name="upper_gloves"/>
+ <texture_picker label="Koszula" name="upper_shirt"/>
+ <texture_picker label="Kurtka górna" name="upper_jacket"/>
+ <texture_picker label="Górna alpha" name="upper_alpha"/>
+ <texture_picker label="Górny tatuaż" name="upper_tattoo"/>
+ <texture_picker label="Dolna część ciała" name="lower-baked"/>
+ <texture_picker label="Dolny rysunek na ciele" name="lower_bodypaint"/>
+ <texture_picker label="Bielizna" name="lower_underpants"/>
+ <texture_picker label="Skarpetki" name="lower_socks"/>
+ <texture_picker label="Buty" name="lower_shoes"/>
+ <texture_picker label="Spodnie" name="lower_pants"/>
+ <texture_picker label="Kurtka" name="lower_jacket"/>
+ <texture_picker label="Dolna alpha" name="lower_alpha"/>
+ <texture_picker label="Dolny tatuaż" name="lower_tattoo"/>
+ <texture_picker label="Spódnica" name="skirt-baked"/>
+ <texture_picker label="Spódnica" name="skirt"/>
+ </panel>
</panel>
</scroll_container>
</floater>
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 f4721b05d8..1c24e0b35e 100644
--- a/indra/newview/skins/default/xui/pl/floater_bulk_perms.xml
+++ b/indra/newview/skins/default/xui/pl/floater_bulk_perms.xml
@@ -18,8 +18,8 @@
<icon name="icon_bodypart" tool_tip="Części Ciała"/>
<check_box label="Ubranie" name="check_clothing"/>
<icon name="icon_clothing" tool_tip="Ubranie"/>
- <check_box label="Gestury" name="check_gesture"/>
- <icon name="icon_gesture" tool_tip="Gestury"/>
+ <check_box label="Gesturki" name="check_gesture"/>
+ <icon name="icon_gesture" tool_tip="Gesturki"/>
<check_box label="Noty" name="check_notecard"/>
<icon name="icon_notecard" tool_tip="Noty"/>
<check_box label="Obiekty" name="check_object"/>
@@ -30,8 +30,8 @@
<icon name="icon_sound" tool_tip="Dźwięki"/>
<check_box label="Tekstury" name="check_texture"/>
<icon name="icon_texture" tool_tip="Tekstury"/>
- <button font="SansSerifSmall" label="√ Wszystkie" label_selected="Wszystkie" name="check_all" width="115"/>
- <button font="SansSerifSmall" label="Żadne" label_selected="Żadne" name="check_none" width="115"/>
+ <button font="SansSerifSmall" label="√ Wszystkie" label_selected="Wszystkie" name="check_all"/>
+ <button font="SansSerifSmall" label="Żadne" label_selected="Żadne" name="check_none"/>
<text name="newperms">
Nowe prawa zawartości
</text>
@@ -48,7 +48,7 @@
</text>
<check_box label="Modyfikuje" name="next_owner_modify"/>
<check_box label="Kopiuje" name="next_owner_copy"/>
- <check_box initial_value="true" label="Oddaj/Sprzedaj" name="next_owner_transfer" tool_tip="Następny właściciel może oddać lub sprzedać ten obiekt."/>
+ <check_box initial_value="true" label="Oddaj/Sprzedaj" name="next_owner_transfer" tool_tip="Następny Właściciel może oddać lub sprzedać ten obiekt."/>
<button label="OK" name="apply"/>
<button label="Anuluj" name="close"/>
</floater>
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
new file mode 100644
index 0000000000..36ac88f7f6
--- /dev/null
+++ b/indra/newview/skins/default/xui/pl/floater_buy_currency_html.xml
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater name="floater_buy_currency_html" title="KUP WALUTĘ"/>
diff --git a/indra/newview/skins/default/xui/pl/floater_camera.xml b/indra/newview/skins/default/xui/pl/floater_camera.xml
index aec75f026f..5b9dd47616 100644
--- a/indra/newview/skins/default/xui/pl/floater_camera.xml
+++ b/indra/newview/skins/default/xui/pl/floater_camera.xml
@@ -9,35 +9,57 @@
<floater.string name="move_tooltip">
Poruszaj kamerą w dół/górę oraz w prawo/lewo
</floater.string>
- <floater.string name="orbit_mode_title">
- Obracaj
+ <floater.string name="camera_modes_title">
+ Ustawienia
</floater.string>
<floater.string name="pan_mode_title">
W prawo lub w lewo
</floater.string>
- <floater.string name="avatar_view_mode_title">
- Ustawienia
+ <floater.string name="presets_mode_title">
+ Ustaw widok
</floater.string>
<floater.string name="free_mode_title">
Zobacz obiekt
</floater.string>
<panel name="controls">
- <joystick_track name="cam_track_stick" tool_tip="Poruszaj kamerą w górę, w dół, w lewo i w prawo"/>
+ <panel name="preset_views_list">
+ <panel_camera_item name="front_view">
+ <panel_camera_item.text name="front_view_text">
+ Widok z przodu
+ </panel_camera_item.text>
+ </panel_camera_item>
+ <panel_camera_item name="group_view">
+ <panel_camera_item.text name="side_view_text">
+ PodglÄ…d grupy
+ </panel_camera_item.text>
+ </panel_camera_item>
+ <panel_camera_item name="rear_view">
+ <panel_camera_item.text name="rear_view_text">
+ Widok z tyłu
+ </panel_camera_item.text>
+ </panel_camera_item>
+ </panel>
+ <panel name="camera_modes_list">
+ <panel_camera_item name="object_view">
+ <panel_camera_item.text name="object_view_text">
+ Widok obiektu
+ </panel_camera_item.text>
+ </panel_camera_item>
+ <panel_camera_item name="mouselook_view">
+ <panel_camera_item.text name="mouselook_view_text">
+ Widok panoramiczny
+ </panel_camera_item.text>
+ </panel_camera_item>
+ </panel>
<panel name="zoom" tool_tip="Najedź kamerą w kierunku obiektu">
+ <joystick_rotate name="cam_rotate_stick" tool_tip="Obracaj kamerę wokoł osi"/>
<slider_bar name="zoom_slider" tool_tip="Przybliż kamerę do ogniskowej"/>
- </panel>
- <joystick_rotate name="cam_rotate_stick" tool_tip="Obracaj kamerę wokoł osi"/>
- <panel name="camera_presets">
- <button name="rear_view" tool_tip="Widok z tyłu"/>
- <button name="group_view" tool_tip="PodglÄ…d Grupy"/>
- <button name="front_view" tool_tip="Widok z przodu"/>
- <button name="mouselook_view" tool_tip="Widok panoramiczny"/>
+ <joystick_track name="cam_track_stick" tool_tip="Poruszaj kamerą w górę, w dół, w lewo i w prawo"/>
</panel>
</panel>
<panel name="buttons">
- <button label="" name="orbit_btn" tool_tip="Obracaj kamerÄ™"/>
+ <button label="" name="presets_btn" tool_tip="Ustaw widok"/>
<button label="" name="pan_btn" tool_tip="Kamera horyzontalna"/>
<button label="" name="avatarview_btn" tool_tip="Ustawienia"/>
- <button label="" name="freecamera_btn" tool_tip="PodglÄ…d obiektu"/>
</panel>
</floater>
diff --git a/indra/newview/skins/default/xui/pl/floater_customize.xml b/indra/newview/skins/default/xui/pl/floater_customize.xml
deleted file mode 100644
index dd1d5cf684..0000000000
--- a/indra/newview/skins/default/xui/pl/floater_customize.xml
+++ /dev/null
@@ -1,529 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater customize" title="WYGLĄD">
- <tab_container name="customize tab container">
- <text label="Części Ciała" name="body_parts_placeholder">
- Części ciała
- </text>
- <panel label="Kształt" name="Shape">
- <button label="Wróć" label_selected="Wróć" name="Revert"/>
- <button label="Ciało" label_selected="Ciało" name="Body"/>
- <button label="Głowa" label_selected="Głowa" name="Head"/>
- <button label="Oczy" label_selected="Oczy" name="Eyes"/>
- <button label="Uszy" label_selected="Uszy" name="Ears"/>
- <button label="Nos" label_selected="Nos" name="Nose"/>
- <button label="Usta" label_selected="Usta" name="Mouth"/>
- <button label="Broda " label_selected="Broda" name="Chin"/>
- <button label="Tułów" label_selected="Tułów" name="Torso"/>
- <button label="Nogi" label_selected="Nogi" name="Legs"/>
- <radio_group name="sex radio">
- <radio_item label="Kobieta" name="radio" value="0"/>
- <radio_item label="Mężczyzna" name="radio2" value="1"/>
- </radio_group>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: zabroniona modyfikacja
- </text>
- <text name="title_loading">
- [DESC]: ładowanie...
- </text>
- <text name="title_not_worn">
- [DESC]: niezałożone
- </text>
- <text name="path">
- Zapisane w [PATH]
- </text>
- <text name="not worn instructions">
- Załóż nowy kształt poprzez przeciągnięcie go ze swojej szafy na awatara. Alternatywnie, możesz także stworzyć własny kształt z plików roboczych.
- </text>
- <text name="no modify instructions">
- Nie posiadasz prawa do modyfikowania tego kształtu.
- </text>
- <text name="Item Action Label">
- Kształt:
- </text>
- <button label="Nowy kształt" label_selected="Nowy kształt" name="Create New"/>
- <button label="Zapisz" label_selected="Zapisz" name="Save"/>
- <button label="Zapisz jako..." label_selected="Zapisz jako..." name="Save As"/>
- </panel>
- <panel label="Skórka" name="Skin">
- <button label="Kolor skórki" label_selected="Kolor skórki" name="Skin Color"/>
- <button label="Detale twarzy" label_selected="Detale twarzy" name="Face Detail"/>
- <button label="Makijaż" label_selected="Makijaż" name="Makeup"/>
- <button label="Detale ciała" label_selected="Detale ciała" name="Body Detail"/>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: modyfikacja zabroniona
- </text>
- <text name="title_loading">
- [DESC]: ładowanie...
- </text>
- <text name="title_not_worn">
- [DESC]: niezałożone
- </text>
- <text name="path">
- Zapisane w [PATH]
- </text>
- <text name="not worn instructions">
- Załóż nową skórkę poprzez przeciągnięcie jej ze swojej szafy na awatara. Alternatywnie, możesz także stworzyć własną skórkę z plików roboczych.
- </text>
- <text name="no modify instructions">
- Nie posiadasz prawa do modyfikowania tej skórki.
- </text>
- <text name="Item Action Label">
- Skórka:
- </text>
- <texture_picker label="Tatuaże głowy" name="Head Tattoos" tool_tip="Kliknij by wybrać teksturę"/>
- <texture_picker label="Tatuaże górne" name="Upper Tattoos" tool_tip="Kliknij by wybrać teksturę"/>
- <texture_picker label="Tatuaże dolne" name="Lower Tattoos" tool_tip="Kliknij by wybrać teksturę"/>
- <button label="Nowa skórka" label_selected="Nowa skórka" name="Create New"/>
- <button label="Zapisz" label_selected="Zapisz" name="Save"/>
- <button label="Zapisz jako..." label_selected="Zapisz jako..." name="Save As"/>
- <button label="Wróć" label_selected="Wróć" name="Revert"/>
- </panel>
- <panel label="Włosy" name="Hair">
- <button label="Kolor" label_selected="Kolor" name="Color"/>
- <button label="Styl" label_selected="Styl" name="Style"/>
- <button label="Brwi" label_selected="Brwi" name="Eyebrows"/>
- <button label="Twarzy" label_selected="Twarzy" name="Facial"/>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: modyfikacja zabroniona
- </text>
- <text name="title_loading">
- [DESC]: ładowanie...
- </text>
- <text name="title_not_worn">
- [DESC]: niezałożone
- </text>
- <text name="path">
- Zapisane w [PATH]
- </text>
- <text name="not worn instructions">
- Załóż nowe włosy poprzez przeciągnięcie ich ze swojej szafy na awatara. Alternatywnie, możesz także stworzyć własne włosy z plików roboczych.
- </text>
- <text name="no modify instructions">
- Nie posiadasz prawa do modyfikowania tych włosów.
- </text>
- <text name="Item Action Label">
- Włosy:
- </text>
- <texture_picker label="Tekstura" name="Texture" tool_tip="Kliknij by wybrać teksturę"/>
- <button label="Nowe włosy" label_selected="Nowe włosy" name="Create New"/>
- <button label="Zapisz" label_selected="Zapisz" name="Save"/>
- <button label="Zapisz jako..." label_selected="Zapisz jako..." name="Save As"/>
- <button label="Wróć" label_selected="Wróć" name="Revert"/>
- </panel>
- <panel label="Oczy" name="Eyes">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: modyfikacja zabroniona
- </text>
- <text name="title_loading">
- [DESC]: ładowanie...
- </text>
- <text name="title_not_worn">
- [DESC]: niezałożone
- </text>
- <text name="path">
- Zapisane w [PATH]
- </text>
- <text name="not worn instructions">
- Załóż nowe oczy poprzez przeciągnięcie ich ze swojej szafy na awatara. Alternatywnie, możesz także stworzyć własne oczy z plików roboczych.
- </text>
- <text name="no modify instructions">
- Nie posiadasz prawa do modyfikowania tych oczów.
- </text>
- <text name="Item Action Label">
- Oczy:
- </text>
- <texture_picker label="Tęczówka" name="Iris" tool_tip="Kliknij by wybrać teksturę"/>
- <button label="Nowe oczy" label_selected="Nowe oczy" name="Create New"/>
- <button label="Zapisz" label_selected="Zapisz" name="Save"/>
- <button label="Zapisz jako..." label_selected="Zapisz jako..." name="Save As"/>
- <button label="Wróć" label_selected="Wróć" name="Revert"/>
- </panel>
- <text label="Ubrania" name="clothes_placeholder">
- Ubrania
- </text>
- <panel label="Koszula" name="Shirt">
- <texture_picker label="Materiał" name="Fabric" tool_tip="Kliknij by wybrać teksturę"/>
- <color_swatch label="Kolor/Barwa" name="Color/Tint" tool_tip="Kliknij aby wybrać kolor"/>
- <button label="Zdejmij" label_selected="Zdejmij" name="Take Off"/>
- <button label="Nowa Koszula" label_selected="Nowa Koszula" name="Create New"/>
- <button label="Zapisz" label_selected="Zapisz" name="Save"/>
- <button label="Zapisz jako..." label_selected="Zapisz jako..." name="Save As"/>
- <button label="Wróć" label_selected="Wróć" name="Revert"/>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: modyfikowanie zabronione
- </text>
- <text name="title_loading">
- [DESC]: ładowanie...
- </text>
- <text name="title_not_worn">
- [DESC]: niezałożone
- </text>
- <text name="path">
- Zapisane w [PATH]
- </text>
- <text name="not worn instructions">
- Załóż nową koszulę poprzez przeciągnięcie jej ze swojej szafy na awatara. Alternatywnie, możesz także stworzyć własną koszulę z plików roboczych.
- </text>
- <text name="no modify instructions">
- Nie posiadasz prawa do modyfikowania tej koszuli.
- </text>
- <text name="Item Action Label">
- Koszulka:
- </text>
- </panel>
- <panel label="Spodnie" name="Pants">
- <texture_picker label="Materiał" name="Fabric" tool_tip="Kliknij tutaj by wybrać teksturę"/>
- <color_swatch label="Kolor/Barwa" name="Color/Tint" tool_tip="Kliknij aby wybrać kolor"/>
- <button label="Zdejmij" label_selected="Zdejmij" name="Take Off"/>
- <button label="Nowe spodnie" label_selected="Nowe spodnie" name="Create New"/>
- <button label="Zapisz" label_selected="Zapisz" name="Save"/>
- <button label="Zapisz jako..." label_selected="Zapisz jako..." name="Save As"/>
- <button label="Wróć" label_selected="Wróć" name="Revert"/>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: modyfikcja zabroniona
- </text>
- <text name="title_loading">
- [DESC]: ładowanie...
- </text>
- <text name="title_not_worn">
- [DESC]: niezałożone
- </text>
- <text name="path">
- Zapisane w [PATH]
- </text>
- <text name="not worn instructions">
- Załóż nowe spodnie poprzez przeciągnięcie ich ze swojej szafy na awatara. Alternatywnie, możesz także stworzyć własne spodnie z plików roboczych.
- </text>
- <text name="no modify instructions">
- Nie posiadasz prawa do modyfikowania tych spodni.
- </text>
- <text name="Item Action Label">
- Spodnie:
- </text>
- </panel>
- <panel label="Buty" name="Shoes">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: modyfikacja zabroniona
- </text>
- <text name="title_loading">
- [DESC]: ładwanie...
- </text>
- <text name="title_not_worn">
- [DESC]: niezałożone
- </text>
- <text name="path">
- Zapisane w [PATH]
- </text>
- <text name="not worn instructions">
- Załóż nowe buty poprzez przeciągnięcie ich ze swojej szafy na awatara. Alternatywnie, możesz także stworzyć własne buty z plików roboczych.
- </text>
- <button label="Nowe Buty" label_selected="Nowe Buty" name="Create New"/>
- <text name="no modify instructions">
- Nie posiadasz prawa do modyfikowania tych butów.
- </text>
- <text name="Item Action Label">
- Buty:
- </text>
- <texture_picker label="Materiał" name="Fabric" tool_tip="Kliknij by wybrać teksturę"/>
- <color_swatch label="Kolor/Barwa" name="Color/Tint" tool_tip="Kliknij aby wybrać kolor"/>
- <button label="Zdejmij" label_selected="Zdejmij" name="Take Off"/>
- <button label="Zapisz" label_selected="Zapisz" name="Save"/>
- <button label="Zapisz jako..." label_selected="Zapisz jako..." name="Save As"/>
- <button label="Wróć" label_selected="Wróć" name="Revert"/>
- </panel>
- <panel label="Skarpety" name="Socks">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: modyfikacja zabroniona
- </text>
- <text name="title_loading">
- [DESC]: ładowanie...
- </text>
- <text name="title_not_worn">
- [DESC]: niezałożone
- </text>
- <text name="path">
- Zapisane w [PATH]
- </text>
- <text name="not worn instructions">
- Załóż nowe skarpety poprzez przeciągnięcie ich ze swojej szafy na awatara. Alternatywnie, możesz także stworzyć własne skarpety z plików roboczych.
- </text>
- <button label="Nowe Skarpety" label_selected="Nowe Skarpety" name="Create New"/>
- <text name="no modify instructions">
- Nie posiadasz prawa do modyfikowania tych skarpet.
- </text>
- <text name="Item Action Label">
- Skarpetki:
- </text>
- <texture_picker label="Materiał" name="Fabric" tool_tip="Kliknij by wybrać teksturę"/>
- <color_swatch label="Kolor/Barwa" name="Color/Tint" tool_tip="Kliknij aby wybrać kolor"/>
- <button label="Zdejmij" label_selected="Zdejmij" name="Take Off"/>
- <button label="Zapisz" label_selected="Zapisz" name="Save"/>
- <button label="Zapisz jako..." label_selected="Zapisz jako..." name="Save As"/>
- <button label="Wróć" label_selected="Wróć" name="Revert"/>
- </panel>
- <panel label="Kurtka" name="Jacket">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: modyfikacja zabroniona
- </text>
- <text name="title_loading">
- [DESC]: ładowanie...
- </text>
- <text name="title_not_worn">
- [DESC]: niezałożone
- </text>
- <text name="path">
- Zapisane w [PATH]
- </text>
- <text name="not worn instructions">
- Załóż nową kurtkę poprzez przeciągnięcie jej ze swojej szafy na awatara. Alternatywnie, możesz także stworzyć własną kurtkę z plików roboczych.
- </text>
- <button label="Nowa Kurtka" label_selected="Nowa Kurtka" name="Create New"/>
- <text name="no modify instructions">
- Nie posiadasz prawa do modyfikowania tej kurtki.
- </text>
- <text name="Item Action Label">
- Kurtka:
- </text>
- <texture_picker label="Górny materiał" name="Upper Fabric" tool_tip="Kliknij by wybrać teksturę" width="76"/>
- <texture_picker label="Dolny materiał" name="Lower Fabric" tool_tip="Kliknij by wybrać kolor" width="76"/>
- <color_swatch label="Kolor/Barwa" name="Color/Tint" tool_tip="Kliknij aby wybrać kolor" width="76"/>
- <button label="Zdejmij" label_selected="Zdejmij" name="Take Off"/>
- <button label="Zapisz" label_selected="Zapisz" name="Save"/>
- <button label="Zapisz jako..." label_selected="Zapisz jako..." name="Save As"/>
- <button label="Wróć" label_selected="Wróć" name="Revert"/>
- </panel>
- <panel label="Rękawiczki" name="Gloves">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: modyfikacja zabroniona
- </text>
- <text name="title_loading">
- [DESC]: ładowanie...
- </text>
- <text name="title_not_worn">
- [DESC]: niezałożone
- </text>
- <text name="path">
- Zapisane w [PATH]
- </text>
- <text name="not worn instructions">
- Załóż nowe rękawiczki poprzez przeciągnięcie ich ze swojej szafy na awatara. Alternatywnie, możesz także stworzyć własne rękawiczki z plików roboczych.
- </text>
- <button label="Nowe Rękawiczki" label_selected="Nowe Rękawiczki" name="Create New"/>
- <text name="no modify instructions">
- Nie posiadasz prawa do modyfikowania tych rękawiczek
- </text>
- <text name="Item Action Label">
- Rękawiczki:
- </text>
- <texture_picker label="Materiał" name="Fabric" tool_tip="Kliknij by wybrać teksturę"/>
- <color_swatch label="Kolor/Barwa" name="Color/Tint" tool_tip="Kliknij aby wybrać kolor"/>
- <button label="Zdejmij" label_selected="Zdejmij" name="Take Off"/>
- <button label="Zapisz" label_selected="Zapisz" name="Save"/>
- <button label="Zapisz jako..." label_selected="Zapisz jako..." name="Save As"/>
- <button label="Wróć" label_selected="Wróć" name="Revert"/>
- </panel>
- <panel label="Podkoszulek" name="Undershirt">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: modyfikacja zabroniona
- </text>
- <text name="title_loading">
- [DESC]: ładowanie...
- </text>
- <text name="title_not_worn">
- [DESC]: niezałożone
- </text>
- <text name="path">
- Zapisane w [PATH]
- </text>
- <text name="not worn instructions">
- Załóż nowy podkoszulek poprzez przeciągnięcie ich ze swojej szafy na awatara. Alternatywnie, możesz także stworzyć własny podkoszulek z plików roboczych.
- </text>
- <button label="Nowy Podkoszulek" label_selected="Nowy Podkoszulek" name="Create New"/>
- <text name="no modify instructions">
- Nie posiadasz prawa do modyfikowania tego podkoszulka.
- </text>
- <text name="Item Action Label">
- Podkoszulka:
- </text>
- <texture_picker label="Materiał" name="Fabric" tool_tip="Kliknij by wybrać teksturę"/>
- <color_swatch label="Kolor/Barwa" name="Color/Tint" tool_tip="Kliknij aby wybrać kolor"/>
- <button label="Zdejmij" label_selected="Zdejmij" name="Take Off"/>
- <button label="Zapisz" label_selected="Zapisz" name="Save"/>
- <button label="Zapisz jako..." label_selected="Zapisz jako..." name="Save As"/>
- <button label="Wróć" label_selected="Wróć" name="Revert"/>
- </panel>
- <panel label="Bielizna" name="Underpants">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: modyfikacja zabroniona
- </text>
- <text name="title_loading">
- [DESC]: ładowanie...
- </text>
- <text name="title_not_worn">
- [DESC]: niezałożone
- </text>
- <text name="path">
- Zapisane w [PATH]
- </text>
- <text name="not worn instructions">
- Załóż nową bieliznę poprzez przeciągnięcie jej ze swojej szafy na awatara. Alternatywnie, możesz także stworzyć własną bieliznę z plików roboczych.
- </text>
- <button label="Nowa Bielizna" label_selected="Nowa Bielizna" name="Create New"/>
- <text name="no modify instructions">
- Nie posiadasz prawa do modyfikowania tej bielizny.
- </text>
- <text name="Item Action Label">
- Bielizna:
- </text>
- <texture_picker label="Materiał" name="Fabric" tool_tip="Kliknij by wybrać teksturę"/>
- <color_swatch label="Kolor/Barwa" name="Color/Tint" tool_tip="Kliknij aby wybrać kolor"/>
- <button label="Zdejmij" label_selected="Zdejmij" name="Take Off"/>
- <button label="Zapisz" label_selected="Zapisz" name="Save"/>
- <button label="Zapisz jako..." label_selected="Zapisz jako..." name="Save As"/>
- <button label="Wróć" label_selected="Wróć" name="Revert"/>
- </panel>
- <panel label="Spódnica" name="Skirt">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: modyfikacja zabroniona
- </text>
- <text name="title_loading">
- [DESC]: ładowanie...
- </text>
- <text name="title_not_worn">
- [DESC]: niezałożone
- </text>
- <text name="path">
- Zapisane w [PATH]
- </text>
- <text name="not worn instructions">
- Załóż nową spódnicę poprzez przeciągnięcie jej ze swojej szafy na awatara. Alternatywnie, możesz także stworzyć własną spódnicę z plików roboczych.
- </text>
- <button label="Nowa Spódnica" label_selected="Nowa Spódnica" name="Create New"/>
- <text name="no modify instructions">
- Nie posiadasz prawa do modyfikowania tej spódnicy.
- </text>
- <text name="Item Action Label">
- Spódnica:
- </text>
- <texture_picker label="Materiał" name="Fabric" tool_tip="Kliknij by wybrać teksturę"/>
- <color_swatch label="Kolor/Barwa" name="Color/Tint" tool_tip="Kliknij aby wybrać kolor"/>
- <button label="Zdejmij" label_selected="Zdejmij" name="Take Off"/>
- <button label="Zapisz" label_selected="Zapisz" name="Save"/>
- <button label="Zapisz jako..." label_selected="Zapisz jako..." name="Save As"/>
- <button label="Wróć" label_selected="Wróć" name="Revert"/>
- </panel>
- <panel label="Tatuaż" name="Tattoo">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: nie można modyfikować
- </text>
- <text name="title_loading">
- [DESC]: ładowanie...
- </text>
- <text name="title_not_worn">
- [DESC]: nienałożone
- </text>
- <text name="path">
- Zapisane w [PATH]
- </text>
- <text name="not worn instructions">
- Załóż nowy tatuaż poprzez przeciągnięcie go ze swojej szafy na awatara. Alternatywnie, możesz także stworzyć własny tatuaż z plików roboczych.
- </text>
- <button label="Utwórz Nowy Tatuaż" label_selected="Stwórz Nowy Tatuaż" name="Create New"/>
- <text name="no modify instructions">
- Nie posiadasz uprawnień do modyfikowania tych ubrań/części ciała.
- </text>
- <text name="Item Action Label">
- Tatuaż:
- </text>
- <texture_picker label="Tatuaż głowy" name="Head Tattoo" tool_tip="Kliknij aby wybrać teksturę"/>
- <texture_picker label="Górny tatuaż" name="Upper Tattoo" tool_tip="Kliknij aby wybrać teksturę"/>
- <texture_picker label="Tatuaż dolnej części ciała" name="Lower Tattoo" tool_tip="Kliknij aby wybrać teksturę"/>
- <button label="Zdejmij" label_selected="Zdejmij" name="Take Off"/>
- <button label="Zapisz" label_selected="Zapisz" name="Save"/>
- <button label="Zapisz jako..." label_selected="Zapisz jako..." name="Save As"/>
- <button label="Wróć" label_selected="Wróć" name="Revert"/>
- </panel>
- <panel label="Alpha" name="Alpha">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: nie można modyfikować
- </text>
- <text name="title_loading">
- [DESC]: ładowanie...
- </text>
- <text name="title_not_worn">
- [DESC]: nienałożone
- </text>
- <text name="path">
- Zapisane w [PATH]
- </text>
- <text name="not worn instructions">
- Załóż nową maskę alpha poprzez przeciągnięcie jej ze swojej szafy na awatara. Alternatywnie, możesz także stworzyć własną z plików roboczych.
- </text>
- <button label="Stwórz nową Alpha" label_selected="Utwórz Nową Alpha" name="Create New"/>
- <text name="no modify instructions">
- Nie posiadasz uprawnień do modyfikowania tych ubrań/części ciała.
- </text>
- <text name="Item Action Label">
- Alpha:
- </text>
- <texture_picker label="Dolna Alpha" name="Lower Alpha" tool_tip="Kliknij aby wybrać teksturę"/>
- <texture_picker label="Alpha górnej części ciała" name="Upper Alpha" tool_tip="Kliknij aby wybrać teksturę"/>
- <texture_picker label="Alpha głowy" name="Head Alpha" tool_tip="Kliknij aby wybrać teksturę"/>
- <texture_picker label="Alpha oka" name="Eye Alpha" tool_tip="Kliknij aby wybrać teksturę"/>
- <texture_picker label="Alpha włosów" name="Hair Alpha" tool_tip="Kliknij aby wybrać teksturę"/>
- <button label="Zdejmij" label_selected="Zdejmij" name="Take Off"/>
- <button label="Zapisz" label_selected="Zapisz" name="Save"/>
- <button label="Zapisz jako..." label_selected="Zapisz jako..." name="Save As"/>
- <button label="Wróć" label_selected="Wróć" name="Revert"/>
- </panel>
- </tab_container>
- <button label="Info o skrypcie" label_selected="Info o skrypcie" name="script_info" tool_tip="Pokaż skrypty przyłączone do Twojego awatara"/>
- <button label="Stwórz ubranie" label_selected="Stwórz Ubranie" name="make_outfit_btn"/>
- <button label="Anuluj" label_selected="Anuluj" name="Cancel"/>
- <button label="OK" label_selected="OK" name="Ok"/>
-</floater>
diff --git a/indra/newview/skins/default/xui/pl/floater_day_cycle_options.xml b/indra/newview/skins/default/xui/pl/floater_day_cycle_options.xml
index 0cb2114f99..f3929df3e3 100644
--- a/indra/newview/skins/default/xui/pl/floater_day_cycle_options.xml
+++ b/indra/newview/skins/default/xui/pl/floater_day_cycle_options.xml
@@ -1,10 +1,10 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="Day Cycle Floater" title="EDYTOR CYKLU DNIA">
<tab_container name="Day Cycle Tabs">
- <panel label="Cykl Dnia" name="Day Cycle">
- <button label="?" name="WLDayCycleHelp" />
- <multi_slider label="" name="WLTimeSlider" />
- <multi_slider label="" name="WLDayCycleKeys" />
+ <panel label="Cykl dnia" name="Day Cycle">
+ <button label="?" name="WLDayCycleHelp"/>
+ <multi_slider label="" name="WLTimeSlider"/>
+ <multi_slider label="" name="WLDayCycleKeys"/>
<text name="WL12am">
12am
</text>
@@ -59,41 +59,38 @@
<text name="WL12amHash2">
|
</text>
- <button label="Dodaj" label_selected="Dodaj" name="WLAddKey" />
- <button label="Usuń" label_selected="Usuń" name="WLDeleteKey" />
+ <button label="Dodaj" label_selected="Dodaj" name="WLAddKey"/>
+ <button label="Usuń" label_selected="Usuń" name="WLDeleteKey"/>
<text name="WLCurKeyFrameText">
Preferencje czasu:
</text>
<text name="WLCurKeyTimeText">
Czas:
</text>
- <spinner label="Godz" name="WLCurKeyHour" />
- <spinner label="Min" name="WLCurKeyMin" />
+ <spinner label="Godz" name="WLCurKeyHour"/>
+ <spinner label="Min" name="WLCurKeyMin"/>
<text name="WLCurKeyTimeText2">
Ustawienia:
</text>
- <combo_box label="Preset" name="WLKeyPresets" />
+ <combo_box label="Preset" name="WLKeyPresets"/>
<text name="DayCycleText">
Przerwij:
</text>
- <combo_box label="5 min" name="WLSnapOptions" />
+ <combo_box label="5 min" name="WLSnapOptions"/>
<text name="DayCycleText2">
Długość cyklu:
</text>
- <spinner label="Godz" name="WLLengthOfDayHour" />
- <spinner label="Min" name="WLLengthOfDayMin" />
- <spinner label="Sek" name="WLLengthOfDaySec" />
+ <spinner label="Godz" name="WLLengthOfDayHour"/>
+ <spinner label="Min" name="WLLengthOfDayMin"/>
+ <spinner label="Sek" name="WLLengthOfDaySec"/>
<text name="DayCycleText3">
- WyglÄ…d:
- </text>
- <button label="Start" label_selected="Start" name="WLAnimSky" />
- <button label="Stop" label_selected="Stop" name="WLStopAnimSky" />
- <button label="Używaj czasu regionu" label_selected="Używaj czasu regionu"
- name="WLUseLindenTime" />
- <button label="Zapisz test dnia" label_selected="Zapisz test dnia"
- name="WLSaveDayCycle" />
- <button label="Załaduj test dnia" label_selected="Załaduj test dnia"
- name="WLLoadDayCycle" />
+ PrzeglÄ…daj:
+ </text>
+ <button label="Start" label_selected="Start" name="WLAnimSky"/>
+ <button label="Stop" label_selected="Stop" name="WLStopAnimSky"/>
+ <button label="Używaj czasu regionu" label_selected="Używaj czasu regionu" name="WLUseLindenTime"/>
+ <button label="Zapisz test dnia" label_selected="Zapisz test dnia" name="WLSaveDayCycle"/>
+ <button label="Załaduj test dnia" label_selected="Załaduj test dnia" name="WLLoadDayCycle"/>
</panel>
</tab_container>
</floater>
diff --git a/indra/newview/skins/default/xui/pl/floater_device_settings.xml b/indra/newview/skins/default/xui/pl/floater_device_settings.xml
deleted file mode 100644
index c485fb2e29..0000000000
--- a/indra/newview/skins/default/xui/pl/floater_device_settings.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_device_settings" title="USTAWIENIA URZÄ„DZEŃ KOMUNIKACJI GÅOSOWEJ"/>
diff --git a/indra/newview/skins/default/xui/pl/floater_event.xml b/indra/newview/skins/default/xui/pl/floater_event.xml
index 7588493464..80862bfd2f 100644
--- a/indra/newview/skins/default/xui/pl/floater_event.xml
+++ b/indra/newview/skins/default/xui/pl/floater_event.xml
@@ -16,7 +16,7 @@
Adult
</floater.string>
<floater.string name="general">
- PG
+ General
</floater.string>
<floater.string name="unknown">
Nieznana
@@ -62,8 +62,8 @@
</expandable_text>
</layout_panel>
<layout_panel name="button_panel">
- <button name="create_event_btn" tool_tip="Stwórz Imprezę"/>
- <button name="god_delete_event_btn" tool_tip="Skasuj ImprezÄ™"/>
+ <button name="create_event_btn" tool_tip="Stwórz imprezę"/>
+ <button name="god_delete_event_btn" tool_tip="Skasuj imprezÄ™"/>
<button label="Zawiadom mnie" name="notify_btn"/>
<button label="Teleportuj" name="teleport_btn"/>
<button label="Mapa" name="map_btn"/>
diff --git a/indra/newview/skins/default/xui/pl/floater_gesture.xml b/indra/newview/skins/default/xui/pl/floater_gesture.xml
index 750a9e4a66..0c27e4d0bb 100644
--- a/indra/newview/skins/default/xui/pl/floater_gesture.xml
+++ b/indra/newview/skins/default/xui/pl/floater_gesture.xml
@@ -18,8 +18,8 @@
<panel label="bottom_panel" name="bottom_panel">
<menu_button name="gear_btn" tool_tip="Więcej opcji"/>
<button name="new_gesture_btn" tool_tip="Stwórz nową gesturę"/>
- <button name="activate_btn" tool_tip="Aktywuj/Dezaktywuj wybrany gest"/>
- <button name="del_btn" tool_tip="Usuń gest"/>
+ <button name="activate_btn" tool_tip="Aktywuj/Dezaktywuj wybranÄ… gesturÄ™"/>
+ <button name="del_btn" tool_tip="Usuń gesturę"/>
</panel>
<button label="Edytuj" name="edit_btn"/>
<button label="Odtwarzaj" name="play_btn"/>
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 4d49c32fc1..828898de54 100644
--- a/indra/newview/skins/default/xui/pl/floater_god_tools.xml
+++ b/indra/newview/skins/default/xui/pl/floater_god_tools.xml
@@ -2,25 +2,24 @@
<floater name="godtools floater" title="BOSKIE NARZĘDZIA">
<tab_container name="GodTools Tabs">
<panel label="Grid" name="grid">
- <button label="Wyrzuć wszystkich Rezydentów" label_selected="Wyrzuć wszystkich Rezydentów" name="Kick all users" width="205"/>
<button label="Wyrównaj widoczność buforu mapy Regionu" label_selected="Wyrównaj widoczność buforu mapy Regionu" name="Flush This Region&apos;s Map Visibility Caches" width="285"/>
</panel>
<panel label="Region" name="region">
- <text name="Sim Name:" width="100">
- Nazwa Symulatora:
+ <text name="Region Name:">
+ Nazwa Regionu:
</text>
<line_editor left="115" name="region name" width="178"/>
<check_box label="Wstęp" name="check prelude" tool_tip="Set this to make the region a prelude"/>
- <check_box label="Korekta Słońca" name="check fixed sun" tool_tip="Skorektuj ustawienia pozycji słońca."/>
+ <check_box label="Korekta słońca" name="check fixed sun" tool_tip="Skoryguj ustawienia pozycji słońca."/>
<check_box height="32" label="Zresetuj pozycję Miejsca Startowego" name="check reset home" tool_tip="Zresetuj miejsce startu Rezydentów po teleportacji"/>
<check_box bottom_delta="-32" label="Widoczny" name="check visible" tool_tip="Wybierz tą opcję by ustawić region widocznym dla wszystkich."/>
<check_box label="Zniszczenia" name="check damage" tool_tip="Wybierz tę opcję by uruchomić opcję zniszczeń w regionie."/>
- <check_box label="Zablokuj Monitorowanie Trafficu" name="block dwell" tool_tip="Wybierz tą opcję by zablokować monitorowanie trafficu w regionie."/>
- <check_box label="Zablokuj Terraformowanie" name="block terraform" tool_tip="Wybierz tą opcję by zablokować terraforming w regionie"/>
+ <check_box label="Zablokuj monitorowanie trafficu" name="block dwell" tool_tip="Wybierz tą opcję by zablokować monitorowanie trafficu w regionie."/>
+ <check_box label="Zablokuj terraformowanie" name="block terraform" tool_tip="Wybierz tą opcję by zablokować terraforming w regionie"/>
<check_box label="Piaskownica" name="is sandbox" tool_tip="Toggle whether this is a sandbox region"/>
<button label="Ustal teren" label_selected="Ustal teren" name="Bake Terrain" tool_tip="Zapamiętaj obecny teren jako początkowy dla cofnięcia modyfikacji terenu." width="138"/>
<button label="Cofnięcie modyfikacji" label_selected="Cofnięcie modyfikacji" name="Revert Terrain" tool_tip="Przywróć ustawienia domyślne Regionu." width="138"/>
- <button label="Zamień teren" label_selected="Zamień teren" name="Swap Terrain" tool_tip="Swap current terrain with default" width="138"/>
+ <button label="Zamień teren" label_selected="Zamień teren" name="Swap Terrain" tool_tip="Zmień bieżący teren domyślnie" width="138"/>
<text name="estate id">
ID Regionu:
</text>
@@ -47,29 +46,29 @@
L$/m²:
</text>
<spinner name="land cost"/>
- <button label="Odśwież" label_selected="Odśwież" name="Refresh" tool_tip="Click here to refresh the above information"/>
- <button label="Zastosuj" label_selected="Zastosuj" name="Apply" tool_tip="Click here to apply any changes from above"/>
+ <button label="Odśwież" label_selected="Odśwież" name="Refresh" tool_tip="Kliknij tutaj aby odswieżyć powyższe informacje"/>
+ <button label="Zastosuj" label_selected="Zastosuj" name="Apply" tool_tip="Kliknij tutaj aby zastosować powyższe zmiany"/>
<button label="Wybierz Region" label_selected="Wybierz Region" left="156" name="Select Region" tool_tip="Wybierz cały Region za pomocą narzędzi edycji terenu" width="150"/>
<button label="Automatyczne zapisanie" label_selected="Automatyczne zapisanie" left="156" name="Autosave now" tool_tip="Save gzipped state to autosave directory" width="150"/>
</panel>
<panel label="Obiekty" name="objects">
- <text name="Sim Name:" width="105">
- Nazwa Symulatora:
+ <text name="Region Name:">
+ Nazwa Regionu:
</text>
<text left_delta="110" name="region name">
Welsh
</text>
- <check_box label="Wyłącz skrypty" name="disable scripts" tool_tip="Set this to disable all scripts in this region"/>
+ <check_box label="Wyłącz skrypty" name="disable scripts" tool_tip="Wybierz aby wyłączyć skrypty w tym Regionie"/>
<check_box label="Deaktywuj kolizje" name="disable collisions" tool_tip="Set this to disable non-agent collisions in this region"/>
- <check_box label="WylÄ…cz fizykÄ™" name="disable physics" tool_tip="Set this to disable all physics in this region"/>
- <button label="Zastosuj" label_selected="Zastosuj" name="Apply" tool_tip="Click here to apply any changes from above"/>
- <button label="Ustaw Cel" label_selected="Set Target" name="Set Target" tool_tip="Set the target avatar for object deletion"/>
+ <check_box label="Wylącz fizykę" name="disable physics" tool_tip="Wybierz aby wyłączyć fizykę w tym Regionie"/>
+ <button label="Zastosuj" label_selected="Zastosuj" name="Apply" tool_tip="Kliknij tu aby zastosować powyższe zmiany"/>
+ <button label="Ustaw cel" label_selected="Ustaw cel" name="Set Target" tool_tip="Ustaw docelowego awatara w celu skasowania obiektów"/>
<text name="target_avatar_name">
(brak)
</text>
- <button label="Usuń cel z oskryptowanych obiektów na innych posiadłościach" label_selected="Usuń cel &apos;s skryptowane obiekty na innych posiadłościach" name="Delete Target&apos;s Scripted Objects On Others Land" tool_tip="Delete all scripted objects owned by the target on land not owned by the target. (no copy) objects will be returned."/>
- <button label="Usuń cel z oskryptowanych obiektów na jakichkolwiek posiadłościach" label_selected="Usuń cel &apos;s skryptowane obiekty na jakichkolwiek posiadłościach" name="Delete Target&apos;s Scripted Objects On *Any* Land" tool_tip="Delete all scripted objects owned by the target in this region. (no copy) objects will be returned."/>
- <button label="Usuń wszystkie cele i obiekty" label_selected="Usuń wszystkie cele i obiekty" name="Delete *ALL* Of Target&apos;s Objects" tool_tip="Delete all objects owned by the target in this region. (no copy) objects will be returned."/>
+ <button label="Usuń cel z oskryptowanych obiektów na innych posiadłościach" label_selected="Usuń cel &apos;s skryptowane obiekty na innych posiadłościach" name="Delete Target&apos;s Scripted Objects On Others Land" tool_tip="Skasuj wszystkie oskryptowane obiekty posiadane przez cel na Posiadłości, której nie jest właścicielem. (obiekty bez praw kopiowania zostaną zwrócone)"/>
+ <button label="Usuń cel z oskryptowanych obiektów na jakichkolwiek posiadłościach" label_selected="Usuń cel &apos;s skryptowane obiekty na jakichkolwiek posiadłościach" name="Delete Target&apos;s Scripted Objects On *Any* Land" tool_tip="Skasuj wszystkie oksryptowane obiekty posiadane przez cel w tym Regionie. (obiekty bez praw kopiowania zostaną zwrócone)"/>
+ <button label="Usuń wszystkie cele i obiekty" label_selected="Usuń wszystkie cele i obiekty" name="Delete *ALL* Of Target&apos;s Objects" tool_tip="Skasuj wszystkie obiekty posiadane przez cel w tym Regionie. (obiekty bez praw kopiowania zostaną zwrócone)"/>
<button label="Główne kolizje" label_selected="Główne kolizje" name="Get Top Colliders" tool_tip="Gets list of objects experiencing the most narrowphase callbacks"/>
<button label="Główne skrypty" label_selected="Główne skrypty" name="Get Top Scripts" tool_tip="Gets list of objects spending the most time running scripts"/>
<button label="Treść skryptów" label_selected="Treść skryptów" name="Scripts digest" tool_tip="Wyświetla listę wszystkich skryptów i liczbę ich zastosowań."/>
diff --git a/indra/newview/skins/default/xui/pl/floater_im.xml b/indra/newview/skins/default/xui/pl/floater_im.xml
deleted file mode 100644
index e40935ccb7..0000000000
--- a/indra/newview/skins/default/xui/pl/floater_im.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<multi_floater name="im_floater" title="Wiadomość (IM)">
- <string name="only_user_message">
- JesteÅ› jedynym uczestnikiem tej konferencji.
- </string>
- <string name="offline_message">
- [FIRST] [LAST] - ta osoba jest obecnie niedostępna.
- </string>
- <string name="invite_message">
- Kliknij na [BUTTON NAME] przycisk by zaakceptować/dołączyć do tej rozmowy.
- </string>
- <string name="muted_message">
- Zablokowałeś tego Rezydenta. Wysłanie wiadomości automatycznie odblokuje go.
- </string>
- <string name="generic_request_error">
- Błąd. Spróbuj ponownie za kilka minut.
- </string>
- <string name="insufficient_perms_error">
- Nie posiadasz praw do kontynuacji.
- </string>
- <string name="session_does_not_exist_error">
- Ta konferencja jest już zakończona.
- </string>
- <string name="no_ability_error">
- Nie posiadesz tego przywileju.
- </string>
- <string name="not_a_mod_error">
- Nie jesteÅ› moderatorem konferencji.
- </string>
- <string name="muted_error">
- Moderator wyciszył Cię.
- </string>
- <string name="add_session_event">
- Niemożliwość dodania Rezydentów do tej konferencji z [RECIPIENT].
- </string>
- <string name="message_session_event">
- Nie można wysłać Twojej wiadomości do sesji czatu z [RECIPIENT].
- </string>
- <string name="removed_from_group">
- Usunięto Cię z grupy.
- </string>
- <string name="close_on_no_ability">
- Nie posiadasz praw by uczestniczyć w tej konferencji.
- </string>
-</multi_floater>
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 db513f787c..9041ff7416 100644
--- a/indra/newview/skins/default/xui/pl/floater_im_session.xml
+++ b/indra/newview/skins/default/xui/pl/floater_im_session.xml
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="panel_im">
<layout_stack name="im_panels">
- <layout_panel label="Panel kontroli wiadomości prywatnej (IM)" name="panel_im_control_panel"/>
<layout_panel>
<line_editor label="Do" name="chat_editor"/>
</layout_panel>
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 a27e8ffed3..ba9724ff9a 100644
--- a/indra/newview/skins/default/xui/pl/floater_image_preview.xml
+++ b/indra/newview/skins/default/xui/pl/floater_image_preview.xml
@@ -10,16 +10,16 @@
Wyświetl obraz jako:
</text>
<combo_box label="Rodzaj Ubrania" name="clothing_type_combo">
- <combo_box.item label="Obraz" name="Image"/>
- <combo_box.item label="Włosy" name="Hair"/>
- <combo_box.item label="Damska głowa" name="FemaleHead"/>
- <combo_box.item label="Damska górna część ciała" name="FemaleUpperBody"/>
- <combo_box.item label="Damska górna część ciała" name="FemaleLowerBody"/>
- <combo_box.item label="Męska głowa" name="MaleHead"/>
- <combo_box.item label="Męska górna część ciała" name="MaleUpperBody"/>
- <combo_box.item label="Męska dolna część ciała" name="MaleLowerBody"/>
- <combo_box.item label="Spódnica" name="Skirt"/>
- <combo_box.item label="Prim sculptowy" name="SculptedPrim"/>
+ <item label="Obraz" name="Image" value="Tekstura"/>
+ <item label="Włosy" name="Hair" value="Włosy"/>
+ <item label="Głowa kobiety" name="FemaleHead" value="Głowa kobiety"/>
+ <item label="Górna część ciała kobiety" name="FemaleUpperBody" value="Górna część ciała kobiety"/>
+ <item label="Dolna część ciała kobiety" name="FemaleLowerBody" value="Dolna część ciała kobiety"/>
+ <item label="Głowa mężczyzny" name="MaleHead" value="Głowa mężczyzny"/>
+ <item label="Górna część ciała mężczyzny" name="MaleUpperBody" value="Górna część ciała mężczyzny"/>
+ <item label="Dona część ciała mężczyzny" name="MaleLowerBody" value="Dolna część ciała mężczyzny"/>
+ <item label="Spódnica" name="Skirt" value="Spódnica"/>
+ <item label="Prim sculptowy" name="SculptedPrim" value="Prim sculptowy"/>
</combo_box>
<text name="bad_image_text">
Nie można wczytać obrazu.
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 e5ec3804ae..8de60095df 100644
--- a/indra/newview/skins/default/xui/pl/floater_incoming_call.xml
+++ b/indra/newview/skins/default/xui/pl/floater_incoming_call.xml
@@ -16,7 +16,13 @@
rozpoczął rozmowę głosową w czacie konferencji.
</floater.string>
<floater.string name="VoiceInviteGroup">
- zaczyna rozmowÄ™ z grupÄ… [GROUP].
+ dołączył/dołączyła do &apos;[GROUP]&apos; rozmowy głosowej.
+ </floater.string>
+ <floater.string name="VoiceInviteQuestionGroup">
+ Czy chcesz opuścić [CURRENT_CHAT] i dołączyć do rozmowy z &apos;[GROUP]&apos;?
+ </floater.string>
+ <floater.string name="VoiceInviteQuestionDefault">
+ Czy chcesz opuścić [CURRENT_CHAT] i dołączyć do tej rozmowy głosowej?
</floater.string>
<text name="question">
Czy chcesz opuścić [CURRENT_CHAT] i dołączyć do tej rozmowy głosowej?
diff --git a/indra/newview/skins/default/xui/pl/floater_inventory.xml b/indra/newview/skins/default/xui/pl/floater_inventory.xml
index 0dc4d5b96d..c42f57fb55 100644
--- a/indra/newview/skins/default/xui/pl/floater_inventory.xml
+++ b/indra/newview/skins/default/xui/pl/floater_inventory.xml
@@ -7,7 +7,7 @@
MOJA SZAFA (Dostarczanie [ITEM_COUNT] obiektów...) [FILTER]
</floater.string>
<floater.string name="TitleCompleted">
- MOJA SZAFA ([ITEM_COUNT] Obiektów) [FILTER]
+ MOJA SZAFA ([ITEM_COUNT] obiektów) [FILTER]
</floater.string>
<floater.string name="Fetched">
Dostarczono
diff --git a/indra/newview/skins/default/xui/pl/floater_map.xml b/indra/newview/skins/default/xui/pl/floater_map.xml
index 1e5f3e6d46..4f1430623a 100644
--- a/indra/newview/skins/default/xui/pl/floater_map.xml
+++ b/indra/newview/skins/default/xui/pl/floater_map.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Map" title="Mini-Mapa">
+<floater name="Map" title="">
<floater.string name="mini_map_north">
N
</floater.string>
@@ -24,6 +24,9 @@
<floater.string name="mini_map_northwest">
NW
</floater.string>
+ <floater.string name="mini_map_caption">
+ MINIMAPA
+ </floater.string>
<text label="N" name="floater_map_north" text="N">
N
</text>
diff --git a/indra/newview/skins/default/xui/pl/floater_moveview.xml b/indra/newview/skins/default/xui/pl/floater_moveview.xml
index 9c97a8a0e7..592814dbc0 100644
--- a/indra/newview/skins/default/xui/pl/floater_moveview.xml
+++ b/indra/newview/skins/default/xui/pl/floater_moveview.xml
@@ -6,18 +6,48 @@
<string name="walk_back_tooltip">
Idź do tyłu (naciśnij Strzałkę w Dół lub S)
</string>
+ <string name="walk_left_tooltip">
+ Idź w lewo (naciśnij Shift + lewą strzałkę lub A)
+ </string>
+ <string name="walk_right_tooltip">
+ Idź w prawo (naciśnij Shift + prawą strzałkę lub D)
+ </string>
<string name="run_forward_tooltip">
Biegnij do przodu (naciśnij Strzałkę w Górę lub W)
</string>
<string name="run_back_tooltip">
Biegnij do przodu (naciśnij Strzałkę w Dół lub S)
</string>
+ <string name="run_left_tooltip">
+ Biegnij w lewo (naciśnij Shift + lewą strzałkę lub A)
+ </string>
+ <string name="run_right_tooltip">
+ Biegnij w lewo (naciśnij Shift + prawą strzałkę lub D)
+ </string>
<string name="fly_forward_tooltip">
Leć do przodu (naciśnij Strzałkę w Górę lub W)
</string>
<string name="fly_back_tooltip">
Leć do tyłu (naciśnij Strzałkę na Dół lub S)
</string>
+ <string name="fly_left_tooltip">
+ Leć w lewo (naciśnij Shift + lewą strzałkę lub A)
+ </string>
+ <string name="fly_right_tooltip">
+ Leć w prawo (naciśnij Shift + prawą strzałkę lub D)
+ </string>
+ <string name="fly_up_tooltip">
+ Leć do góry (nacisnij E)
+ </string>
+ <string name="fly_down_tooltip">
+ Leć w dół (naciśnij C)
+ </string>
+ <string name="jump_tooltip">
+ Skacz (naciśnij E)
+ </string>
+ <string name="crouch_tooltip">
+ Crouch (naciśnij C)
+ </string>
<string name="walk_title">
Idź
</string>
@@ -28,10 +58,12 @@
Lataj
</string>
<panel name="panel_actions">
+ <button label="" label_selected="" name="move up btn" tool_tip="Leć do góry (naciśnij E)"/>
<button label="" label_selected="" name="turn left btn" tool_tip="Obróć w lewo (naciśnij Lewą Strzałkę lub A)"/>
+ <joystick_slide name="move left btn" tool_tip="Idź w lewo (naciśnij Shift + lewą strzałkę lub A)"/>
+ <button label="" label_selected="" name="move down btn" tool_tip="Leć w dół (naciśnij C)"/>
<button label="" label_selected="" name="turn right btn" tool_tip="Obróć w prawo (naciśnij Prawą Strzałkę lub D)"/>
- <button label="" label_selected="" name="move up btn" tool_tip="Leć do góry, naciśnij E"/>
- <button label="" label_selected="" name="move down btn" tool_tip="Leć w dół, naciśnij C"/>
+ <joystick_slide name="move right btn" tool_tip="Idź w prawo (naciśnij Shift + prawą strzałkę lub D)"/>
<joystick_turn name="forward btn" tool_tip="Idź (naciśnij Strzałkę w Górę lub W)"/>
<joystick_turn name="backward btn" tool_tip="Cofaj się (naciśnij Strzałkę w Dół lub S)"/>
</panel>
diff --git a/indra/newview/skins/default/xui/pl/floater_my_friends.xml b/indra/newview/skins/default/xui/pl/floater_my_friends.xml
deleted file mode 100644
index 847c93f891..0000000000
--- a/indra/newview/skins/default/xui/pl/floater_my_friends.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_my_friends" title="KONTAKTY">
- <tab_container name="friends_and_groups">
- <panel label="Znajomi" name="friends_panel"/>
- <panel label="Grupy" name="groups_panel"/>
- </tab_container>
-</floater>
diff --git a/indra/newview/skins/default/xui/pl/floater_outfit_save_as.xml b/indra/newview/skins/default/xui/pl/floater_outfit_save_as.xml
deleted file mode 100644
index a8d2e10c5f..0000000000
--- a/indra/newview/skins/default/xui/pl/floater_outfit_save_as.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="modal container" title="Stwórz ubranie">
- <button label="Zapisz" label_selected="Zapisz" name="Save"/>
- <button label="Anuluj" label_selected="Anuluj" name="Cancel"/>
- <text name="Save item as:">
- Zapisz to co mam w tej chwili założone
-jako nowy komplet ubrania:
- </text>
- <line_editor name="name ed">
- [DESC] (nowy)
- </line_editor>
-</floater>
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 8a70cb3247..de0b4d08c0 100644
--- a/indra/newview/skins/default/xui/pl/floater_outgoing_call.xml
+++ b/indra/newview/skins/default/xui/pl/floater_outgoing_call.xml
@@ -28,7 +28,7 @@
Zostaleś rozłączony z [VOICE_CHANNEL_NAME]. [RECONNECT_NEARBY]
</text>
<text name="nearby_P2P_by_other">
- [VOICE_CHANNEL_NAME] zakończył/a rozmowę głosową. [RECONNECT_NEARBY]
+ Twoja rozmowa głosowa została zakończona. [RECONNECT_NEARBY]
</text>
<text name="nearby_P2P_by_agent">
Zakończyłeś rozmowę. [RECONNECT_NEARBY]
diff --git a/indra/newview/skins/default/xui/pl/floater_pay.xml b/indra/newview/skins/default/xui/pl/floater_pay.xml
index dccb7ed2bb..c9243fda65 100644
--- a/indra/newview/skins/default/xui/pl/floater_pay.xml
+++ b/indra/newview/skins/default/xui/pl/floater_pay.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="Give Money" title="">
<string name="payee_group">
- Zapłać Grupie
+ Zapłać grupie
</string>
<string name="payee_resident">
Zapłać Rezydentowi
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 d0c69a6c21..19032b3e5d 100644
--- a/indra/newview/skins/default/xui/pl/floater_pay_object.xml
+++ b/indra/newview/skins/default/xui/pl/floater_pay_object.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="Give Money" title="">
<string halign="left" name="payee_group" width="100">
- Zapłać Grupie
+ Zapłać grupie
</string>
<string halign="left" name="payee_resident" width="120">
Zapłać Rezydentowi
@@ -11,7 +11,7 @@
[FIRST] [LAST]
</text>
<text halign="left" left="5" name="object_name_label" width="95">
- Poprzez Obiekt:
+ Poprzez obiekt:
</text>
<icon name="icon_object" tool_tip="Obiekt"/>
<text left="105" name="object_name_text">
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 a3515915bf..e3dce84933 100644
--- a/indra/newview/skins/default/xui/pl/floater_post_process.xml
+++ b/indra/newview/skins/default/xui/pl/floater_post_process.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<floater name="Post-Process Floater" title="USTAWIENIA PRZETWARZANIA KOŃCOWEGO">
<tab_container name="Post-Process Tabs">
- <panel label="Kolor Filtru" name="wmiColorFilterPanel">
+ <panel label="Kolor filtra" name="wmiColorFilterPanel">
<check_box label="Udostępnij" name="wmiColorFilterToggle" />
<text name="wmiColorFilterBrightnessText">
Jasność
diff --git a/indra/newview/skins/default/xui/pl/floater_postcard.xml b/indra/newview/skins/default/xui/pl/floater_postcard.xml
index 095974aa61..fe796c6fa0 100644
--- a/indra/newview/skins/default/xui/pl/floater_postcard.xml
+++ b/indra/newview/skins/default/xui/pl/floater_postcard.xml
@@ -1,13 +1,13 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="Postcard" title="WYŚLIJ POCZTÓWKĘ (EMAIL)">
<text name="to_label">
- Email Odbiorcy:
+ Email odbiorcy:
</text>
<text name="from_label">
- Twój Email:
+ Twój email:
</text>
<text name="name_label">
- Twoje Dane:
+ Twoje dane:
</text>
<text name="subject_label">
Temat:
@@ -20,7 +20,7 @@
Wpisz treść swojej wiadomości tutaj
</text_editor>
<text name="fine_print">
- Jeżeli Odbiorca tej pocztówki dołączy do [SECOND_LIFE], otrzymasz bonus.
+ Jeżeli odbiorca tej pocztówki dołączy do [SECOND_LIFE], otrzymasz bonus.
</text>
<button label="Anuluj" name="cancel_btn"/>
<button label="Wyślij" name="send_btn"/>
diff --git a/indra/newview/skins/default/xui/pl/floater_preview_classified.xml b/indra/newview/skins/default/xui/pl/floater_preview_classified.xml
deleted file mode 100644
index d3d6588397..0000000000
--- a/indra/newview/skins/default/xui/pl/floater_preview_classified.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="classified_preview" title="INFO O REKLAMIE">
- <floater.string name="Title">
- Reklama: [NAME]
- </floater.string>
-</floater>
diff --git a/indra/newview/skins/default/xui/pl/floater_preview_event.xml b/indra/newview/skins/default/xui/pl/floater_preview_event.xml
deleted file mode 100644
index 5d9e47bc00..0000000000
--- a/indra/newview/skins/default/xui/pl/floater_preview_event.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="event_preview" title="INFO O IMPREZIE">
- <floater.string name="Title">
- Impreza: [NAME]
- </floater.string>
-</floater>
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 05758ac04d..8171225666 100644
--- a/indra/newview/skins/default/xui/pl/floater_preview_gesture.xml
+++ b/indra/newview/skins/default/xui/pl/floater_preview_gesture.xml
@@ -24,9 +24,6 @@
<floater.string name="Title">
Gest: [NAME]
</floater.string>
- <text name="name_text">
- Nazwa:
- </text>
<text name="desc_label">
Opis:
</text>
@@ -45,7 +42,12 @@
<text name="library_label">
Zbiór:
</text>
- <scroll_list name="library_list"/>
+ <scroll_list name="library_list">
+ <scroll_list.rows name="action_animation" value="Animacja"/>
+ <scroll_list.rows name="action_sound" value="Dźwięk"/>
+ <scroll_list.rows name="action_chat" value="Czat"/>
+ <scroll_list.rows name="action_wait" value="Wstrzymaj"/>
+ </scroll_list>
<button label="Dodaj &gt;&gt;" name="add_btn"/>
<text name="steps_label">
Etapy:
@@ -53,16 +55,19 @@
<button label="W górę" name="up_btn"/>
<button label="W dół" name="down_btn"/>
<button label="Usuń" name="delete_btn"/>
+ <text name="options_text">
+ (opcje)
+ </text>
<radio_group name="animation_trigger_type">
<radio_item label="Start" name="start"/>
<radio_item label="Stop" name="stop"/>
</radio_group>
<check_box label="do końca animacji" name="wait_anim_check"/>
- <check_box label="czas w sekundach" name="wait_time_check"/>
+ <check_box label="czas w sekundach:" name="wait_time_check"/>
<text name="help_label">
Wszystkie etapy nastąpią razem, chyba, że dodasz pauzy.
</text>
- <check_box label="Aktywny" name="active_check" tool_tip="Aktywne gesty można włączać używając przypisanej frazy w czacie albo używając przypisanego klawisza skrótowego. W przypaku konfliktu przypisań gesty zazwyczaj nie będą działać."/>
+ <check_box label="Aktywna" name="active_check" tool_tip="Aktywne gesturki można włączać używając przypisanej frazy w czacie albo używając przypisanego klawisza skrótowego. W przypaku konfliktu przypisań gesty zazwyczaj nie będą działać."/>
<button label="Pokaż" name="preview_btn"/>
<button label="Zapisz" name="save_btn"/>
</floater>
diff --git a/indra/newview/skins/default/xui/pl/floater_preview_gesture_info.xml b/indra/newview/skins/default/xui/pl/floater_preview_gesture_info.xml
deleted file mode 100644
index d31cada96d..0000000000
--- a/indra/newview/skins/default/xui/pl/floater_preview_gesture_info.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Gesture" title="GEST"/>
diff --git a/indra/newview/skins/default/xui/pl/floater_preview_gesture_shortcut.xml b/indra/newview/skins/default/xui/pl/floater_preview_gesture_shortcut.xml
deleted file mode 100644
index d33b799476..0000000000
--- a/indra/newview/skins/default/xui/pl/floater_preview_gesture_shortcut.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Gesture" title="GESTY">
- <text name="trigger_label">
- Czat:
- </text>
- <text name="key_label">
- Klawiatura:
- </text>
- <combo_box label="Żaden" name="modifier_combo"/>
- <combo_box label="Żaden" name="key_combo"/>
- <text name="replace_text" tool_tip="Zmień włączającą frazę na inną. Na przykład zmiana &apos;witam&apos; na &apos;cześć&apos; zmieni czat &apos;Chciałem powiedzieć witam&apos; na &apos;Chciałem powiedzieć cześć&apos; i pokaże animację!">
- Zamień na:
- </text>
- <line_editor name="replace_editor" tool_tip="Zmień włączającą frazę na inną. Na przykład zmiana &apos;witam&apos; na &apos;cześć&apos; zmieni czat &apos;Chciałem powiedzieć witam&apos; na &apos;Chciałem powiedzieć cześć&apos; i pokaże animację"/>
-</floater>
diff --git a/indra/newview/skins/default/xui/pl/floater_preview_gesture_steps.xml b/indra/newview/skins/default/xui/pl/floater_preview_gesture_steps.xml
deleted file mode 100644
index 6592d9dad0..0000000000
--- a/indra/newview/skins/default/xui/pl/floater_preview_gesture_steps.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Gesture" title="GESTY"/>
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 1ad07c236b..b3275cb7b5 100644
--- a/indra/newview/skins/default/xui/pl/floater_preview_notecard.xml
+++ b/indra/newview/skins/default/xui/pl/floater_preview_notecard.xml
@@ -9,9 +9,6 @@
<floater.string name="Title">
Notka: [NAME]
</floater.string>
- <floater.string label="Zapisz" label_selected="Zapisz" name="Save">
- Zapisz
- </floater.string>
<text name="desc txt">
Opis:
</text>
@@ -19,4 +16,5 @@
Åadowanie...
</text_editor>
<button label="Zapisz" label_selected="Zapisz" name="Save"/>
+ <button label="Usuń" label_selected="Usuń" name="Delete"/>
</floater>
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 d02b3ca75e..3825fe742e 100644
--- a/indra/newview/skins/default/xui/pl/floater_preview_sound.xml
+++ b/indra/newview/skins/default/xui/pl/floater_preview_sound.xml
@@ -7,5 +7,5 @@
Opis:
</text>
<button label="Odtwarzaj" label_selected="Odtwarzaj" left_delta="-136" name="Sound play btn" tool_tip="Dźwięk będzie słyszalny przez wszystkich." width="130"/>
- <button label="Odtwarzaj Lokalnie" label_selected="Odtwarzaj lokalnie" name="Sound audition btn" tool_tip="Dźwięk będzie słyszalny tylko dla Ciebie."/>
+ <button label="Odtwarzaj lokalnie" label_selected="Odtwarzaj lokalnie" name="Sound audition btn" tool_tip="Dźwięk będzie słyszalny tylko dla Ciebie."/>
</floater>
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 12cda04e10..cfdac165cd 100644
--- a/indra/newview/skins/default/xui/pl/floater_publish_classified.xml
+++ b/indra/newview/skins/default/xui/pl/floater_publish_classified.xml
@@ -5,7 +5,7 @@
Pamiętaj, opłaty za reklamy nie podlegają prawu zwrotu.
</text>
- <spinner label="Cena za ReklamÄ™:" name="price_for_listing" tool_tip="Cena za umieszczenie reklamy w wyszukiwarce." value="50"/>
+ <spinner label="Cena: L$" name="price_for_listing" tool_tip="Cena za umieszczenie reklamy w wyszukiwarce." value="50"/>
<text name="l$_text" value="L$"/>
<text name="more_info_text">
Więcej info (link do pomocy)
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 a6f8ba6c11..a5b96601b8 100644
--- a/indra/newview/skins/default/xui/pl/floater_report_abuse.xml
+++ b/indra/newview/skins/default/xui/pl/floater_report_abuse.xml
@@ -27,7 +27,7 @@
</text>
<button label="" label_selected="" name="pick_btn" tool_tip="Wybór obiektu - wybierz obiekt, którego dotyczy raport"/>
<text name="object_name_label">
- Nazwa Obiektu:
+ Nazwa obiektu:
</text>
<text name="object_name">
Consetetur Sadipscing
@@ -67,8 +67,8 @@
<combo_box.item label="Prześladowanie &gt; Znieważanie Słowne" name="Harassment__Verbal_abuse"/>
<combo_box.item label="Nieprzyzwoitość &gt; Obraźliwa treść lub postępowanie" name="Indecency__Broadly_offensive_content_or_conduct"/>
<combo_box.item label="Nieprzyzwoitość &gt; Niestosowne imię awatara" name="Indecency__Inappropriate_avatar_name"/>
- <combo_box.item label="Nieprzyzwoitość &gt; Obraźliwa treść i postępowanie w Regionie &apos;PG&apos;" name="Indecency__Mature_content_in_PG_region"/>
- <combo_box.item label="Nieprzyzwoitość &gt; Obraźliwa treść i postępowanie w Regionie &apos;Mature&apos;" name="Indecency__Inappropriate_content_in_Mature_region"/>
+ <combo_box.item label="Nieprzyzwoitość &gt; Obraźliwa treść i postępowanie w Regionie &apos;General&apos;" name="Indecency__Mature_content_in_PG_region"/>
+ <combo_box.item label="Nieprzyzwoitość &gt; Obraźliwa treść i postępowanie w Regionie &apos;Moderate&apos;" name="Indecency__Inappropriate_content_in_Mature_region"/>
<combo_box.item label="Naruszenie własności intelektualnej &gt; usunięcie treści" name="Intellectual_property_infringement_Content_Removal"/>
<combo_box.item label="Naruszenie własności intelektualnej &gt; CopyBot albo nadużycie przywilejów" name="Intellectual_property_infringement_CopyBot_or_Permissions_Exploit"/>
<combo_box.item label="Nietolerancja" name="Intolerance"/>
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 cb010daee4..901d61a137 100644
--- a/indra/newview/skins/default/xui/pl/floater_script_search.xml
+++ b/indra/newview/skins/default/xui/pl/floater_script_search.xml
@@ -3,7 +3,7 @@
<check_box label="CapsLoock nieaktywny" name="case_text"/>
<button label="Szukaj" label_selected="Szukaj" name="search_btn"/>
<button label="Zamień" label_selected="Zamień" name="replace_btn"/>
- <button label="Zamień Wszystko" label_selected="Zamień wszystko" name="replace_all_btn"/>
+ <button label="Zamień wszystko" label_selected="Zamień wszystko" name="replace_all_btn"/>
<text name="txt">
Szukaj
</text>
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 eb1ed74797..528e5a416b 100644
--- a/indra/newview/skins/default/xui/pl/floater_sell_land.xml
+++ b/indra/newview/skins/default/xui/pl/floater_sell_land.xml
@@ -15,13 +15,13 @@
[AREA] m²
</text>
<text name="info_action">
- Aby sprzedać tą Posiadłość:
+ Aby sprzedać tą posiadłość:
</text>
<text name="price_label">
1. Ustal cenÄ™:
</text>
<text name="price_text">
- Wybierz właściwą cenę za tą Posiadłość.
+ Wybierz właściwą cenę za tą posiadłość.
</text>
<text name="price_ld">
L$
@@ -33,7 +33,7 @@
(L$[PER_METER] za m²)
</text>
<text name="sell_to_label">
- 2. Sprzedaj Posiadłość:
+ 2. Sprzedaj posiadłość:
</text>
<text name="sell_to_text">
Wybierz sprzedaż dla kogokolwiek albo dla wybranego kupca.
@@ -45,14 +45,14 @@
</combo_box>
<button label="Wybierz" name="sell_to_select_agent"/>
<text name="sell_objects_label">
- 3. Obiekty sprzedawane razem z Posiadłością?
+ 3. Obiekty sprzedawane razem z posiadłością?
</text>
<text name="sell_objects_text">
- Przekazywalne obiekty właściciela Posiadłości zmienią właściciela.
+ Przekazywalne obiekty właściciela posiadłości zmienią właściciela.
</text>
<radio_group name="sell_objects">
<radio_item label="Nie, zatrzymaj obiekty" name="no"/>
- <radio_item label="Tak, sprzedaj obiekty razem z Posiadłością" name="yes"/>
+ <radio_item label="Tak, sprzedaj obiekty razem z posiadłością" name="yes"/>
</radio_group>
<button label="Pokaż Obiekty" name="show_objects"/>
<text name="nag_message_label">
diff --git a/indra/newview/skins/default/xui/pl/floater_snapshot.xml b/indra/newview/skins/default/xui/pl/floater_snapshot.xml
index df4e5b43bc..be92ef917d 100644
--- a/indra/newview/skins/default/xui/pl/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/pl/floater_snapshot.xml
@@ -1,12 +1,12 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Snapshot" title="WYGLĄD ZDJĘCIA">
- <text name="type_label">
- Lokacja zapisu
- </text>
- <radio_group label="Rodzaje zdjęć" name="snapshot_type_radio">
+<floater name="Snapshot" title="PODGLĄD ZDJĘCIA">
+ <floater.string name="unknown">
+ nieznany
+ </floater.string>
+ <radio_group label="Rodzaj zdjęcia" name="snapshot_type_radio">
<radio_item label="Email" name="postcard"/>
<radio_item label="Załaduj do Szafy (L$[AMOUNT])" name="texture"/>
- <radio_item label="Zapisz na dysk" name="local"/>
+ <radio_item label="Zapisz na dysku" name="local"/>
</radio_group>
<text name="file_size_label">
[SIZE] KB
@@ -14,13 +14,13 @@
<button label="Odśwież zdjęcie" name="new_snapshot_btn"/>
<button label="Wyślij" name="send_btn"/>
<button label="Załaduj (L$[AMOUNT])" name="upload_btn"/>
- <flyout_button label="Zapisz" name="save_btn" tool_tip="Zapisz zdjęcie na dysk">
+ <flyout_button label="Zapisz" name="save_btn" tool_tip="Zapisz zdjęcie w pliku">
<flyout_button.item label="Zapisz" name="save_item"/>
<flyout_button.item label="Zapisz jako..." name="saveas_item"/>
</flyout_button>
- <button label="Anuluj" name="discard_btn"/>
<button label="Więcej" name="more_btn" tool_tip="Zaawansowane"/>
<button label="Mniej" name="less_btn" tool_tip="Zaawansowane"/>
+ <button label="Anuluj" name="discard_btn"/>
<text name="type_label2">
Wymiar
</text>
@@ -28,28 +28,28 @@
Format
</text>
<combo_box label="Rozdzielczość" name="postcard_size_combo">
- <combo_box.item label="Obecne Okno" name="CurrentWindow"/>
+ <combo_box.item label="Obecne okno" name="CurrentWindow"/>
<combo_box.item label="640x480" name="640x480"/>
<combo_box.item label="800x600" name="800x600"/>
<combo_box.item label="1024x768" name="1024x768"/>
- <combo_box.item label="Wybierz" name="Custom"/>
+ <combo_box.item label="Niestandardowy" name="Custom"/>
</combo_box>
<combo_box label="Rozdzielczość" name="texture_size_combo">
- <combo_box.item label="Obecne Okno" name="CurrentWindow"/>
+ <combo_box.item label="Obecne okno" name="CurrentWindow"/>
<combo_box.item label="Mały (128x128)" name="Small(128x128)"/>
<combo_box.item label="Åšredni (256x256)" name="Medium(256x256)"/>
<combo_box.item label="Duży (512x512)" name="Large(512x512)"/>
- <combo_box.item label="Wybierz" name="Custom"/>
+ <combo_box.item label="Niestandardowy" name="Custom"/>
</combo_box>
<combo_box label="Rozdzielczość" name="local_size_combo">
- <combo_box.item label="Obecne Okno" name="CurrentWindow"/>
+ <combo_box.item label="Obecne okno" name="CurrentWindow"/>
<combo_box.item label="320x240" name="320x240"/>
<combo_box.item label="640x480" name="640x480"/>
<combo_box.item label="800x600" name="800x600"/>
<combo_box.item label="1024x768" name="1024x768"/>
<combo_box.item label="1280x1024" name="1280x1024"/>
<combo_box.item label="1600x1200" name="1600x1200"/>
- <combo_box.item label="Wybierz" name="Custom"/>
+ <combo_box.item label="Niestandardowy" name="Custom"/>
</combo_box>
<combo_box label="Format" name="local_format_combo">
<combo_box.item label="PNG" name="PNG"/>
@@ -61,19 +61,15 @@
<check_box label="Ograniczone proporcje" name="keep_aspect_check"/>
<slider label="Jakość zdjęcia" name="image_quality_slider"/>
<text name="layer_type_label">
- Zapisz:
+ Warstwy obrazu:
</text>
- <combo_box label="Warstwy Obrazu" name="layer_types">
+ <combo_box label="Warstwy obrazu" name="layer_types">
<combo_box.item label="Kolory" name="Colors"/>
<combo_box.item label="Głębokość" name="Depth"/>
- <combo_box.item label="Obiekty ślepe" name="ObjectMattes"/>
</combo_box>
<check_box label="Pokaż interfejs na zdjęciu" name="ui_check"/>
- <check_box label="Pokaż obiekty HUD na zdjęciu" name="hud_check"/>
- <check_box label="Pozostaw otwarte po zapisaniu" name="keep_open_check"/>
- <check_box label="Widok pełnego ekranu" name="freeze_frame_check"/>
- <check_box label="Automatyczne odświeżenie" name="auto_snapshot_check"/>
- <string name="unknown">
- nieznany
- </string>
+ <check_box label="Pokaż obiekty Hud na zdjęciu" name="hud_check"/>
+ <check_box label="Pozostaw otwarty po zapisaniu" name="keep_open_check"/>
+ <check_box label="Widok pełnego okna" name="freeze_frame_check"/>
+ <check_box label="Automatyczne odswieżanie" name="auto_snapshot_check"/>
</floater>
diff --git a/indra/newview/skins/default/xui/pl/floater_statistics.xml b/indra/newview/skins/default/xui/pl/floater_statistics.xml
deleted file mode 100644
index b7025e484d..0000000000
--- a/indra/newview/skins/default/xui/pl/floater_statistics.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="stats floater" title="STATYSTYKI"/>
diff --git a/indra/newview/skins/default/xui/pl/floater_stats.xml b/indra/newview/skins/default/xui/pl/floater_stats.xml
index ee5fba4d63..886a30e5d9 100644
--- a/indra/newview/skins/default/xui/pl/floater_stats.xml
+++ b/indra/newview/skins/default/xui/pl/floater_stats.xml
@@ -30,18 +30,18 @@
<stat_bar label="Tesktura" name="texturekbitstat"/>
<stat_bar label="Asset" name="assetkbitstat"/>
<stat_bar label="Podkład" name="layerskbitstat"/>
- <stat_bar label="Aktualna Ilość Wewnętrzna" name="actualinkbitstat"/>
- <stat_bar label="Aktualna Ilość Zewnętrzna" name="actualoutkbitstat"/>
+ <stat_bar label="Aktualna ilość wewnętrzna" name="actualinkbitstat"/>
+ <stat_bar label="Aktualna ilość zewnętrzna" name="actualoutkbitstat"/>
<stat_bar label="VFS Pending Ops" name="vfspendingoperations"/>
</stat_view>
</stat_view>
<stat_view label="Symulator" name="sim">
- <stat_bar label="Czas Rozszerzenia" name="simtimedilation"/>
- <stat_bar label="Ilość Obrazów/Sec na Symulatorze (Sim FPS)" name="simfps"/>
- <stat_bar label="Fizyka Obrazów/Sec" name="simphysicsfps"/>
- <stat_view label="Szczegóły Fizyki" name="physicsdetail">
+ <stat_bar label="Czas rozszerzenia" name="simtimedilation"/>
+ <stat_bar label="Ilość obrazów/Sec na symulatorze (Sim FPS)" name="simfps"/>
+ <stat_bar label="Fizyka obrazów/Sec" name="simphysicsfps"/>
+ <stat_view label="Szczegóły fizyki" name="physicsdetail">
<stat_bar label="Pinned objects" name="physicspinnedtasks"/>
- <stat_bar label="Niskie LOD Obiektów" name="physicslodtasks"/>
+ <stat_bar label="Niskie LOD obiektów" name="physicslodtasks"/>
<stat_bar label="Alokacja pamięci" name="physicsmemoryallocated"/>
<stat_bar label="Aktualizacja agentów/Sek" name="simagentups"/>
<stat_bar label="Główni agenci" name="simmainagents"/>
diff --git a/indra/newview/skins/default/xui/pl/floater_tools.xml b/indra/newview/skins/default/xui/pl/floater_tools.xml
index 5b4f99e9d1..817a72efd9 100644
--- a/indra/newview/skins/default/xui/pl/floater_tools.xml
+++ b/indra/newview/skins/default/xui/pl/floater_tools.xml
@@ -22,7 +22,7 @@
Kliknij in-world by zacząć budować
</floater.string>
<floater.string name="status_selectland">
- Edytowanie Terenu:
+ Edytowanie terenu:
</floater.string>
<floater.string name="grid_screen_text">
Widok
@@ -67,11 +67,11 @@
<text name="RenderingCost" tool_tip="Pokazuje koszt renderowania tego obiektu">
þ: [COUNT]
</text>
- <check_box name="checkbox uniform"/>
- <text name="checkbox uniform label">
- RozciÄ…gnij 2 Strony
+ <check_box label="" name="checkbox uniform"/>
+ <text label="RozciÄ…gnij 2 strony" name="checkbox uniform label">
+ RozciÄ…gnij 2 strony
</text>
- <check_box initial_value="true" label="RozciÄ…gnij TeksturÄ™" name="checkbox stretch textures"/>
+ <check_box initial_value="true" label="RozciÄ…gnij teksturÄ™" name="checkbox stretch textures"/>
<check_box initial_value="true" label="Użyj siatki" name="checkbox snap to grid"/>
<combo_box name="combobox grid mode" tool_tip="Wybierz rodzaj linijki siatki dla pozycjonowania obiektu">
<combo_box.item label="Åšwiat" name="World"/>
@@ -218,11 +218,11 @@
<check_box label="Przesuń" name="checkbox allow everyone move"/>
<check_box label="Kopiuj" name="checkbox allow everyone copy"/>
<text name="Next owner can:">
- Następny Właściciel:
+ Następny właściciel:
</text>
<check_box label="Zmienia" name="checkbox next owner can modify"/>
<check_box label="Kopiuje" name="checkbox next owner can copy"/>
- <check_box label="Oddaje/Sprzedaje" name="checkbox next owner can transfer" tool_tip="Następny Właściciel może oddawać lub sprzedawać ten obiekt"/>
+ <check_box label="Oddaje/Sprzedaje" name="checkbox next owner can transfer" tool_tip="Następny właściciel może oddawać lub sprzedawać ten obiekt"/>
<text name="B:">
B:
</text>
@@ -299,7 +299,7 @@
<spinner name="Scale 1"/>
<spinner name="Skew"/>
<text name="Hollow Shape">
- Kształt Wydrążenia
+ Kształt wydrążenia
</text>
<combo_box name="hole">
<combo_box.item label="Domyślny" name="Default"/>
@@ -399,7 +399,7 @@
<texture_picker label="Tekstura" name="texture control" tool_tip="Kliknij by wybrać obraz"/>
<color_swatch label="Kolor" name="colorswatch" tool_tip="Kliknij aby wybrać kolor"/>
<text left="170" name="color trans" width="99">
- Przezroczystość%
+ Przezroczystość %
</text>
<spinner left="170" name="ColorTrans"/>
<text left="170" name="glow label">
@@ -431,9 +431,9 @@
<combo_box.item label="Najjaśniejsza" name="Brightness"/>
<combo_box.item label="Najciemniejsza" name="Darkness"/>
<combo_box.item label="Drewniano-ziarnista" name="woodgrain"/>
- <combo_box.item label="Kory Drzewa" name="bark"/>
+ <combo_box.item label="Kory drzewa" name="bark"/>
<combo_box.item label="Cegieł" name="bricks"/>
- <combo_box.item label="Planszy Szachowej" name="checker"/>
+ <combo_box.item label="Planszy szachowej" name="checker"/>
<combo_box.item label="Betonu" name="concrete"/>
<combo_box.item label="Płytki/Kafelki" name="crustytile"/>
<combo_box.item label="Kamienia" name="cutstone"/>
@@ -441,7 +441,7 @@
<combo_box.item label="Żwiru" name="gravel"/>
<combo_box.item label="Skamieliny" name="petridish"/>
<combo_box.item label="Brzegu" name="siding"/>
- <combo_box.item label="Płytki Kamiennej" name="stonetile"/>
+ <combo_box.item label="Płytki kamiennej" name="stonetile"/>
<combo_box.item label="Stucco" name="stucco"/>
<combo_box.item label="Suction" name="suction"/>
<combo_box.item label="Fali" name="weave"/>
@@ -478,7 +478,7 @@
</tab_container>
<panel name="land info panel">
<text name="label_parcel_info">
- Informacje o Posiadłości
+ Informacje o posiadłości
</text>
<text name="label_area_price">
Cena: L$[PRICE] za [AREA] m²
@@ -487,23 +487,16 @@
Obszar: [AREA] m²
</text>
<button label="O Posiadłości" label_selected="O Posiadłości" name="button about land"/>
- <check_box label="Pokaż Właścicieli" name="checkbox show owners" tool_tip="Pokoloruj Posiadłości zgodnie z przynależnością do Właściciela:
-
-Zielony = Twoja Posiadłość
-Morski = Posiadłość Twojej Grupy
-Czerwony = Posiadłości innych
-Żółty = Na sprzedaż
-Fioletowy = Na aukcjÄ™
-Szary = Publiczna"/>
+ <check_box label="Pokaż właścicieli" name="checkbox show owners" tool_tip="Pokoloruj posiadłości zgodnie z przynależnością do właściciela: Zielony = Twoja posiadłość Morski = posiadłość Twojej grupy Czerwony = posiadłości innych Żółty = Na sprzedaż Fioletowy = Na aukcję Szary = Publiczna"/>
<text name="label_parcel_modify">
- Modyfikuj Posiadłość
+ Modyfikuj posiadłość
</text>
<button label="Podziel" label_selected="Podziel" name="button subdivide land"/>
<button label="Złącz" label_selected="Złącz" name="button join land"/>
<text name="label_parcel_trans">
- Transakcje na Posiadłości
+ Transakcje na posiadłości
</text>
- <button label="Kup Posiadłość" label_selected="Kup Posiadłość" name="button buy land"/>
- <button label="Porzuć Posiadłość" label_selected="Porzuć Posiadłość" name="button abandon land"/>
+ <button label="Kup posiadłość" label_selected="Kup posiadłość" name="button buy land"/>
+ <button label="Porzuć posiadłość" label_selected="Porzuć posiadłość" name="button abandon land"/>
</panel>
</floater>
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 6afbce7e10..2b06ae9f78 100644
--- a/indra/newview/skins/default/xui/pl/floater_top_objects.xml
+++ b/indra/newview/skins/default/xui/pl/floater_top_objects.xml
@@ -10,7 +10,7 @@
Czas
</floater.string>
<floater.string name="scripts_mono_time_label">
- Mono Time
+ Czas Mono
</floater.string>
<floater.string name="top_colliders_title">
Główne kolizje
@@ -33,7 +33,7 @@
<scroll_list.columns label="Właściciel" name="owner"/>
<scroll_list.columns label="Miejsce" name="location"/>
<scroll_list.columns label="Czas" name="time"/>
- <scroll_list.columns label="Mono Time" name="mono_time"/>
+ <scroll_list.columns label="Czas Mono" name="mono_time"/>
<scroll_list.columns label="URL" name="URLs"/>
</scroll_list>
<text name="id_text">
@@ -51,6 +51,6 @@
<button label="Odśwież" name="refresh_btn"/>
<button label="Zwróć wybrane" name="return_selected_btn"/>
<button label="Zwróć wszystko" name="return_all_btn"/>
- <button label="Deaktywuj wybrane" name="disable_selected_btn"/>
- <button label="Deaktywuj wszystko" name="disable_all_btn"/>
+ <button label="Dezaktywuj wybrane" name="disable_selected_btn"/>
+ <button label="Dezaktywuj wszystko" name="disable_all_btn"/>
</floater>
diff --git a/indra/newview/skins/default/xui/pl/floater_tos.xml b/indra/newview/skins/default/xui/pl/floater_tos.xml
index 6f71488347..bb2de773f0 100644
--- a/indra/newview/skins/default/xui/pl/floater_tos.xml
+++ b/indra/newview/skins/default/xui/pl/floater_tos.xml
@@ -1,15 +1,15 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="modal container" title="">
+ <floater.string name="real_url">
+ http://secondlife.com/app/tos/
+ </floater.string>
+ <floater.string name="loading_url">
+ data:text/html,%3Chtml%3E%3Chead%3E%3C/head%3E%3Cbody text=%22000000%22%3E%3Ch2%3E Loading %3Ca%20target%3D%22_external%22%20href%3D%22http%3A//secondlife.com/app/tos/%22%3ETerms%20of%20Service%3C/a%3E...%3C/h2%3E %3C/body%3E %3C/html%3E
+ </floater.string>
<button label="Kontynuuj" label_selected="Kontynuuj" name="Continue"/>
<button label="Anuluj" label_selected="Anuluj" name="Cancel"/>
<check_box label="Zgadzam się na Warunki Serwisu (Terms of Service) i Politykę Prywatności (Privacy Policy)" name="agree_chk"/>
<text name="tos_heading">
Proszę dokładnie przeczytać następujące Warunki Serwisu (Terms of Service) i Politykę Prywatności (Privacy Policy). Musisz zaakceptować umowę żeby kontynuować logowanie do [SECOND_LIFE].
</text>
- <text_editor name="tos_text">
- TOS_TEXT
- </text_editor>
- <string name="real_url">
- http://secondlife.com/app/tos/
- </string>
</floater>
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 6bee3e911c..80200cfb21 100644
--- a/indra/newview/skins/default/xui/pl/floater_voice_controls.xml
+++ b/indra/newview/skins/default/xui/pl/floater_voice_controls.xml
@@ -19,8 +19,12 @@
<layout_panel name="my_panel">
<text name="user_text" value="Mój awatar:"/>
</layout_panel>
- <layout_panel name="leave_call_btn_panel">
- <button label="Zakończ" name="leave_call_btn"/>
+ <layout_panel name="leave_call_panel">
+ <layout_stack name="voice_effect_and_leave_call_stack">
+ <layout_panel name="leave_call_btn_panel">
+ <button label="Zakończ rozmowę" name="leave_call_btn"/>
+ </layout_panel>
+ </layout_stack>
</layout_panel>
</layout_stack>
</floater>
diff --git a/indra/newview/skins/default/xui/pl/floater_voice_effect.xml b/indra/newview/skins/default/xui/pl/floater_voice_effect.xml
new file mode 100644
index 0000000000..e2d1fb77e9
--- /dev/null
+++ b/indra/newview/skins/default/xui/pl/floater_voice_effect.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<floater label="Miejsca" name="voice_effects" title="VOICE MORPHING">
+ <string name="no_voice_effect">
+ (Bez Voice Morphing)
+ </string>
+ <string name="active_voice_effect">
+ (Aktywny)
+ </string>
+ <string name="unsubscribed_voice_effect">
+ (Bez subskrybcji)
+ </string>
+ <string name="new_voice_effect">
+ (Nowy!)
+ </string>
+ <text name="preview_text">
+ PrzeglÄ…daj
+ </text>
+ <text name="status_text">
+ Nagraj próbkę, następnie kliknij na głos aby usłyszeć jego brzmienie.
+ </text>
+ <button label="Nagraj" name="record_btn" tool_tip="Nagraj próbkę swojego głosu."/>
+ <button label="Zatrzymaj" name="record_stop_btn"/>
+ <text name="voice_morphing_link">
+ [[URL] Subskrybuj teraz]
+ </text>
+ <scroll_list name="voice_effect_list" tool_tip="Nagraj próbke swojego głosu, następnie kliknij aby odsłuchać.">
+ <scroll_list.columns label="Nazwa głosu" name="name"/>
+ <scroll_list.columns label="Termin zakończenia subskrypcji" name="expires"/>
+ </scroll_list>
+</floater>
diff --git a/indra/newview/skins/default/xui/pl/floater_wearable_save_as.xml b/indra/newview/skins/default/xui/pl/floater_wearable_save_as.xml
deleted file mode 100644
index 925295102e..0000000000
--- a/indra/newview/skins/default/xui/pl/floater_wearable_save_as.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="modal container" title="">
- <button label="Zapisz" label_selected="Zapisz" name="Save"/>
- <button label="Anuluj" label_selected="Anuluj" name="Cancel"/>
- <text name="Save item as:">
- Zapisz obiekt w mojej Szafie jako:
- </text>
- <line_editor name="name ed">
- Nowe [DESC]
- </line_editor>
-</floater>
diff --git a/indra/newview/skins/default/xui/pl/floater_windlight_options.xml b/indra/newview/skins/default/xui/pl/floater_windlight_options.xml
index 49e523fae8..930e904464 100644
--- a/indra/newview/skins/default/xui/pl/floater_windlight_options.xml
+++ b/indra/newview/skins/default/xui/pl/floater_windlight_options.xml
@@ -77,7 +77,7 @@
</panel>
<panel label="ÅšWIATÅO" name="Lighting">
<text name="SLCText">
- Kolor słońca/księżyca
+ Kolor Słońca/Księżyca
</text>
<button label="?" name="WLSunlightColorHelp"/>
<text name="BHText">
@@ -97,7 +97,7 @@
<slider label="" name="WLSunlightB"/>
<slider label="" name="WLSunlightI"/>
<text name="TODText">
- Pozycja słońca/księżyca
+ Pozycja Słońca/Księżyca
</text>
<button label="?" name="WLTimeOfDayHelp"/>
<slider label="" name="WLSunAngle"/>
@@ -127,7 +127,7 @@
<button label="?" name="WLEastAngleHelp"/>
<slider label="" name="WLEastAngle"/>
<text name="SunGlowText">
- Blask słońca
+ Blask Słońca
</text>
<button label="?" name="WLSunGlowHelp"/>
<slider label="Ostrość" name="WLGlowB"/>
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 05287ad42a..4f53337365 100644
--- a/indra/newview/skins/default/xui/pl/floater_world_map.xml
+++ b/indra/newview/skins/default/xui/pl/floater_world_map.xml
@@ -17,13 +17,13 @@
Infohub
</text>
<text name="land_sale_label">
- Sprzedaż Posiadłości
- </text>
- <text name="by_owner_label">
- przez Właściciela
+ Sprzedaż posiadłości
</text>
<text name="auction_label">
- aukcja Posiadłości
+ Aukcja posiadłości
+ </text>
+ <text name="by_owner_label">
+ przez właściciela
</text>
<button name="Go Home" tool_tip="Teleportuj do mojego Miejsca Startowego"/>
<text name="Home_label">
@@ -33,13 +33,13 @@
Wydarzenia:
</text>
<text name="pg_label">
- Ogólne
+ General
</text>
- <check_box name="event_mature_chk"/>
- <text name="mature_label">
- Moderuj
+ <check_box initial_value="true" name="events_mature_chk"/>
+ <text name="events_mature_label">
+ Moderate
</text>
- <text name="adult_label">
+ <text name="events_adult_label">
Adult
</text>
</panel>
@@ -49,15 +49,18 @@
</text>
</panel>
<panel name="layout_panel_4">
- <combo_box label="Dostępni Znajomi" name="friend combo" tool_tip="Pokaż znajomych na mapie">
- <combo_box.item label="Moi Dostępni Znajomi" name="item1"/>
+ <combo_box label="Dostępni znajomi" name="friend combo" tool_tip="Pokaż znajomych na mapie">
+ <combo_box.item label="Moi dostępni znajomi" name="item1"/>
</combo_box>
- <combo_box label="Zapisane Miejsca" name="landmark combo" tool_tip="Pokaż zapisane miejsce na mapie">
- <combo_box.item label="Zapisane Miejsca" name="item1"/>
+ <combo_box label="Zapisane miejsca" name="landmark combo" tool_tip="Pokaż zapisane miejsce na mapie">
+ <combo_box.item label="Zapisane miejsca" name="item1"/>
</combo_box>
- <search_editor label="Regiony Według Nazwy" name="location" tool_tip="Wpisz nazwę regionu"/>
+ <search_editor label="Regiony według nazwy" name="location" tool_tip="Wpisz nazwę regionu"/>
<button label="Znajdź" name="DoSearch" tool_tip="Szukaj regionu"/>
<button name="Clear" tool_tip="Wyczyść zapamiętane linie oraz zresetuj mapę"/>
+ <text name="events_label">
+ Lokalizacja:
+ </text>
<button label="Teleportuj" name="Teleport" tool_tip="Teleportuj do wybranego miejsca"/>
<button label="Kopiuj SLurl" name="copy_slurl" tool_tip="Kopie obecnego miejsca jako SLurl mogą zostać użyte na stronie internetowej."/>
<button label="Pokaż wybrane" name="Show Destination" tool_tip="Wyśrodkuj mapę w wybranym miejscu"/>
diff --git a/indra/newview/skins/default/xui/pl/inspect_avatar.xml b/indra/newview/skins/default/xui/pl/inspect_avatar.xml
index 3ee0b976eb..778e500bc0 100644
--- a/indra/newview/skins/default/xui/pl/inspect_avatar.xml
+++ b/indra/newview/skins/default/xui/pl/inspect_avatar.xml
@@ -10,8 +10,8 @@
<string name="Details">
[SL_PROFILE]
</string>
- <slider name="volume_slider" tool_tip="Posiom Głośności" value="0.5"/>
- <button label="Dodaj Znajomość" name="add_friend_btn"/>
+ <slider name="volume_slider" tool_tip="Poziom głośności" value="0.5"/>
+ <button label="Dodaj znajomość" name="add_friend_btn"/>
<button label="IM" name="im_btn"/>
<button label="Profil" name="view_profile_btn"/>
<panel name="moderator_panel">
diff --git a/indra/newview/skins/default/xui/pl/inspect_group.xml b/indra/newview/skins/default/xui/pl/inspect_group.xml
index 0a2a62ce74..63c79acc8c 100644
--- a/indra/newview/skins/default/xui/pl/inspect_group.xml
+++ b/indra/newview/skins/default/xui/pl/inspect_group.xml
@@ -18,5 +18,5 @@
</string>
<button label="Dołącz" name="join_btn"/>
<button label="Opuść" name="leave_btn"/>
- <button label="Zobacz Profil" name="view_profile_btn"/>
+ <button label="Zobacz profil" name="view_profile_btn"/>
</floater>
diff --git a/indra/newview/skins/default/xui/pl/inspect_object.xml b/indra/newview/skins/default/xui/pl/inspect_object.xml
index 2e15691463..23d8ce7700 100644
--- a/indra/newview/skins/default/xui/pl/inspect_object.xml
+++ b/indra/newview/skins/default/xui/pl/inspect_object.xml
@@ -8,8 +8,8 @@
Przez [CREATOR]
</string>
<string name="CreatorAndOwner">
- przez [CREATOR]
-właściciel [OWNER]
+ Twórca [CREATOR]
+Właściciel [OWNER]
</string>
<string name="Price">
L$[AMOUNT]
@@ -23,6 +23,13 @@ właściciel [OWNER]
<string name="Sit">
Usiądź tutaj
</string>
+ <text name="object_name" value="Test Object Name That Is actually two lines and Really Long"/>
+ <text name="price_text">
+ L$30,000
+ </text>
+ <text name="object_description">
+ This is a really long description for an object being as how it is at least 80 characters in length and so but maybe more like 120 at this point. Who knows, really?
+ </text>
<button label="Kup" name="buy_btn"/>
<button label="Zapłać" name="pay_btn"/>
<button label="Weź kopię" name="take_free_copy_btn"/>
diff --git a/indra/newview/skins/default/xui/pl/language_settings.xml b/indra/newview/skins/default/xui/pl/language_settings.xml
index debc451a33..681b38e9cf 100644
--- a/indra/newview/skins/default/xui/pl/language_settings.xml
+++ b/indra/newview/skins/default/xui/pl/language_settings.xml
@@ -17,6 +17,7 @@
datetimeToCodes["month"] = "%B"; // August
datetimeToCodes["mthnum"] = "%m"; // 08
datetimeToCodes["day"] = "%d"; // 31
+ datetimeToCodes["sday"] = "%-d"; // 9
datetimeToCodes["hour24"] = "%H"; // 14
datetimeToCodes["hour"] = "%H"; // 14
datetimeToCodes["hour12"] = "%I"; // 02
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 4872956cc2..aacdad97e3 100644
--- a/indra/newview/skins/default/xui/pl/menu_attachment_other.xml
+++ b/indra/newview/skins/default/xui/pl/menu_attachment_other.xml
@@ -1,16 +1,16 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!-- *NOTE: See also menu_avatar_other.xml -->
<context_menu name="Avatar Pie">
- <menu_item_call label="Zobacz Profil" name="Profile..."/>
- <menu_item_call label="Dodaj Znajomość" name="Add Friend"/>
+ <menu_item_call label="Zobacz profil" name="Profile..."/>
+ <menu_item_call label="Dodaj znajomość" name="Add Friend"/>
<menu_item_call label="IM" name="Send IM..."/>
<menu_item_call label="Zadzwoń" name="Call"/>
- <menu_item_call label="ZaproÅ› do Grupy" name="Invite..."/>
+ <menu_item_call label="ZaproÅ› do grupy" name="Invite..."/>
<menu_item_call label="Zablokuj" name="Avatar Mute"/>
<menu_item_call label="Raport" name="abuse"/>
<menu_item_call label="Unieruchom" name="Freeze..."/>
<menu_item_call label="Wyrzuć" name="Eject..."/>
- <menu_item_call label="Debugowanie" name="Debug..."/>
+ <menu_item_call label="Debugowanie tekstur" name="Debug..."/>
<menu_item_call label="Przybliż" name="Zoom In"/>
<menu_item_call label="Zapłać" name="Pay..."/>
<menu_item_call label="Sprawdź" name="Object Inspect"/>
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 ff695be205..cdc01f286c 100644
--- a/indra/newview/skins/default/xui/pl/menu_attachment_self.xml
+++ b/indra/newview/skins/default/xui/pl/menu_attachment_self.xml
@@ -3,10 +3,13 @@
<menu_item_call label="Dotknij" name="Attachment Object Touch"/>
<menu_item_call label="Edytuj" name="Edit..."/>
<menu_item_call label="Odłącz" name="Detach"/>
- <menu_item_call label="Opuść" name="Drop"/>
<menu_item_call label="Wstań" name="Stand Up"/>
- <menu_item_call label="Mój Wygląd" name="Appearance..."/>
- <menu_item_call label="Moi Znajomi" name="Friends..."/>
- <menu_item_call label="Moje Grupy" name="Groups..."/>
- <menu_item_call label="Mój Profil" name="Profile..."/>
+ <menu_item_call label="Zmień strój" name="Change Outfit"/>
+ <menu_item_call label="Edytuj mój strój" name="Edit Outfit"/>
+ <menu_item_call label="Edytuj mój kształt" name="Edit My Shape"/>
+ <menu_item_call label="Moi znajomi" name="Friends..."/>
+ <menu_item_call label="Moje grupy" name="Groups..."/>
+ <menu_item_call label="Mój profil" name="Profile..."/>
+ <menu_item_call label="Debugowanie tekstur" name="Debug..."/>
+ <menu_item_call label="Opuść" name="Drop"/>
</context_menu>
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 c9ad275a26..e8d2b14231 100644
--- a/indra/newview/skins/default/xui/pl/menu_avatar_icon.xml
+++ b/indra/newview/skins/default/xui/pl/menu_avatar_icon.xml
@@ -2,6 +2,6 @@
<menu name="Avatar Icon Menu">
<menu_item_call label="Profil" name="Show Profile"/>
<menu_item_call label="Czat/IM..." name="Send IM"/>
- <menu_item_call label="Dodaj Znajomość..." name="Add Friend"/>
+ <menu_item_call label="Dodaj znajomość..." name="Add Friend"/>
<menu_item_call label="Usuń..." name="Remove Friend"/>
</menu>
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 832c2f9c96..dcf7921bad 100644
--- a/indra/newview/skins/default/xui/pl/menu_avatar_other.xml
+++ b/indra/newview/skins/default/xui/pl/menu_avatar_other.xml
@@ -1,16 +1,16 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!-- *NOTE: See also menu_attachment_other.xml -->
<context_menu name="Avatar Pie">
- <menu_item_call label="Zobacz Profil" name="Profile..."/>
- <menu_item_call label="Dodaj Znajomość" name="Add Friend"/>
+ <menu_item_call label="Zobacz profil" name="Profile..."/>
+ <menu_item_call label="Dodaj znajomość" name="Add Friend"/>
<menu_item_call label="IM" name="Send IM..."/>
<menu_item_call label="Zadzwoń" name="Call"/>
- <menu_item_call label="ZaproÅ› do Grupy" name="Invite..."/>
+ <menu_item_call label="ZaproÅ› do grupy" name="Invite..."/>
<menu_item_call label="Zablokuj" name="Avatar Mute"/>
<menu_item_call label="Raport" name="abuse"/>
<menu_item_call label="Unieruchom" name="Freeze..."/>
<menu_item_call label="Wyrzuć" name="Eject..."/>
- <menu_item_call label="Debug" name="Debug..."/>
+ <menu_item_call label="Debugowanie tekstur" name="Debug..."/>
<menu_item_call label="Przybliż" name="Zoom In"/>
<menu_item_call label="Zapłać" name="Pay..."/>
</context_menu>
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 0bca90168f..c824e90d36 100644
--- a/indra/newview/skins/default/xui/pl/menu_avatar_self.xml
+++ b/indra/newview/skins/default/xui/pl/menu_avatar_self.xml
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Self Pie">
<menu_item_call label="Wstań" name="Stand Up"/>
- <context_menu label="Zdejmij â–¶" name="Take Off &gt;">
- <context_menu label="Ubrania â–¶" name="Clothes &gt;">
- <menu_item_call label="KoszulkÄ™" name="Shirt"/>
+ <context_menu label="Zdejmij" name="Take Off &gt;">
+ <context_menu label="Ubrania" name="Clothes &gt;">
+ <menu_item_call label="KoszulÄ™" name="Shirt"/>
<menu_item_call label="Spodnie" name="Pants"/>
<menu_item_call label="Spódnicę" name="Skirt"/>
<menu_item_call label="Buty" name="Shoes"/>
@@ -13,15 +13,18 @@
<menu_item_call label="Podkoszulek" name="Self Undershirt"/>
<menu_item_call label="BieliznÄ™" name="Self Underpants"/>
<menu_item_call label="Tatuaż" name="Self Tattoo"/>
- <menu_item_call label="Ubranie Przezroczyste" name="Self Alpha"/>
+ <menu_item_call label="Ubranie alpha" name="Self Alpha"/>
<menu_item_call label="Wszystko" name="All Clothes"/>
</context_menu>
- <context_menu label="HUD â–¶" name="Object Detach HUD"/>
- <context_menu label="Odłącz ▶" name="Object Detach"/>
- <menu_item_call label="Odłącz Wszystko" name="Detach All"/>
+ <context_menu label="HUD" name="Object Detach HUD"/>
+ <context_menu label="Odłącz" name="Object Detach"/>
+ <menu_item_call label="Odłącz wszystko" name="Detach All"/>
</context_menu>
- <menu_item_call label="Mój Wygląd" name="Appearance..."/>
- <menu_item_call label="Moi Znajomi" name="Friends..."/>
- <menu_item_call label="Moje Grupy" name="Groups..."/>
- <menu_item_call label="Mój Profil" name="Profile..."/>
+ <menu_item_call label="Zmień strój" name="Chenge Outfit"/>
+ <menu_item_call label="Edytuj mój strój" name="Edit Outfit"/>
+ <menu_item_call label="Edytuj mój kształt" name="Edit My Shape"/>
+ <menu_item_call label="Moi znajomi" name="Friends..."/>
+ <menu_item_call label="Moje grupy" name="Groups..."/>
+ <menu_item_call label="Mój profil" name="Profile..."/>
+ <menu_item_call label="Debugowanie tekstur" name="Debug..."/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/pl/menu_bottomtray.xml b/indra/newview/skins/default/xui/pl/menu_bottomtray.xml
index 9fcf1b3440..a4a6ea484d 100644
--- a/indra/newview/skins/default/xui/pl/menu_bottomtray.xml
+++ b/indra/newview/skins/default/xui/pl/menu_bottomtray.xml
@@ -1,9 +1,14 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu name="hide_camera_move_controls_menu">
- <menu_item_check label="Przycisk Gestur" name="ShowGestureButton"/>
- <menu_item_check label="Przycisk Ruchu" name="ShowMoveButton"/>
- <menu_item_check label="Przycisk Widoku" name="ShowCameraButton"/>
- <menu_item_check label="Przycisk Zdjęć" name="ShowSnapshotButton"/>
+ <menu_item_check label="Przycisk gesturki" name="ShowGestureButton"/>
+ <menu_item_check label="Przycisk ruchu" name="ShowMoveButton"/>
+ <menu_item_check label="Przycisk widoku" name="ShowCameraButton"/>
+ <menu_item_check label="Przycisk zdjęć" name="ShowSnapshotButton"/>
+ <menu_item_check label="Schowek" name="ShowSidebarButton"/>
+ <menu_item_check label="Buduj" name="ShowBuildButton"/>
+ <menu_item_check label="Szukaj" name="ShowSearchButton"/>
+ <menu_item_check label="Mapa" name="ShowWorldMapButton"/>
+ <menu_item_check label="Mini-Mapa" name="ShowMiniMapButton"/>
<menu_item_call label="Wytnij" name="NearbyChatBar_Cut"/>
<menu_item_call label="Kopiuj" name="NearbyChatBar_Copy"/>
<menu_item_call label="Wklej" name="NearbyChatBar_Paste"/>
diff --git a/indra/newview/skins/default/xui/pl/menu_cof_attachment.xml b/indra/newview/skins/default/xui/pl/menu_cof_attachment.xml
new file mode 100644
index 0000000000..4e5407601b
--- /dev/null
+++ b/indra/newview/skins/default/xui/pl/menu_cof_attachment.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<context_menu name="COF Attachment">
+ <menu_item_call label="Odłącz" name="detach"/>
+</context_menu>
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
new file mode 100644
index 0000000000..ee60d3feb6
--- /dev/null
+++ b/indra/newview/skins/default/xui/pl/menu_cof_body_part.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<context_menu name="COF Body">
+ <menu_item_call label="ZastÄ…p" name="replace"/>
+ <menu_item_call label="Edytuj" name="edit"/>
+</context_menu>
diff --git a/indra/newview/skins/default/xui/pl/menu_cof_clothing.xml b/indra/newview/skins/default/xui/pl/menu_cof_clothing.xml
new file mode 100644
index 0000000000..ad43900137
--- /dev/null
+++ b/indra/newview/skins/default/xui/pl/menu_cof_clothing.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<context_menu name="COF Clothing">
+ <menu_item_call label="Zdejmij" name="take_off"/>
+ <menu_item_call label="Edytuj" name="edit"/>
+ <menu_item_call label="ZastÄ…p" name="replace"/>
+</context_menu>
diff --git a/indra/newview/skins/default/xui/pl/menu_cof_gear.xml b/indra/newview/skins/default/xui/pl/menu_cof_gear.xml
new file mode 100644
index 0000000000..9fba39be1a
--- /dev/null
+++ b/indra/newview/skins/default/xui/pl/menu_cof_gear.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="Gear COF">
+ <menu label="Nowe ubranie" name="COF.Gear.New_Clothes"/>
+ <menu label="Nowe części ciała" name="COF.Geear.New_Body_Parts"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/pl/menu_edit.xml b/indra/newview/skins/default/xui/pl/menu_edit.xml
new file mode 100644
index 0000000000..578e270fed
--- /dev/null
+++ b/indra/newview/skins/default/xui/pl/menu_edit.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu label="Edycja" name="Edit">
+ <menu_item_call label="Cofnij" name="Undo"/>
+ <menu_item_call label="Powtórz" name="Redo"/>
+ <menu_item_call label="Wytnij" name="Cut"/>
+ <menu_item_call label="Kopiuj" name="Copy"/>
+ <menu_item_call label="Wklej" name="Paste"/>
+ <menu_item_call label="Usuń" name="Delete"/>
+ <menu_item_call label="Powiel" name="Duplicate"/>
+ <menu_item_call label="Zaznacz wszystko" name="Select All"/>
+ <menu_item_call label="Odznacz" name="Deselect"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/pl/menu_favorites.xml b/indra/newview/skins/default/xui/pl/menu_favorites.xml
index cbacaf4beb..7310ff5c27 100644
--- a/indra/newview/skins/default/xui/pl/menu_favorites.xml
+++ b/indra/newview/skins/default/xui/pl/menu_favorites.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu name="Popup">
<menu_item_call label="Teleportuj" name="Teleport To Landmark"/>
- <menu_item_call label="Zobacz/Edytuj Ulubione Miejsce" name="Landmark Open"/>
+ <menu_item_call label="Zobacz/Edytuj Ulubione miejsce" name="Landmark Open"/>
<menu_item_call label="Kopiuj SLurl" name="Copy slurl"/>
<menu_item_call label="Pokaż na mapie" name="Show On Map"/>
<menu_item_call label="Kopiuj" name="Landmark Copy"/>
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 9d3859081e..83be4d38c5 100644
--- a/indra/newview/skins/default/xui/pl/menu_group_plus.xml
+++ b/indra/newview/skins/default/xui/pl/menu_group_plus.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu name="menu_group_plus">
- <menu_item_call label="Dołącz do Grupy..." name="item_join"/>
- <menu_item_call label="Nowa Grupa..." name="item_new"/>
+ <menu_item_call label="Dołącz do grupy..." name="item_join"/>
+ <menu_item_call label="Nowa grupa..." name="item_new"/>
</menu>
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 d30f5a4d3f..19d9510cd3 100644
--- a/indra/newview/skins/default/xui/pl/menu_hide_navbar.xml
+++ b/indra/newview/skins/default/xui/pl/menu_hide_navbar.xml
@@ -2,4 +2,5 @@
<menu name="hide_navbar_menu">
<menu_item_check label="Pokaż pasek Nawigacji" name="ShowNavbarNavigationPanel"/>
<menu_item_check label="Pokaż pasek Ulubionych" name="ShowNavbarFavoritesPanel"/>
+ <menu_item_check label="Pokaż pasek mini-lokalizacji" name="ShowMiniLocationPanel"/>
</menu>
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 c53f72c043..2b9a362123 100644
--- a/indra/newview/skins/default/xui/pl/menu_imchiclet_group.xml
+++ b/indra/newview/skins/default/xui/pl/menu_imchiclet_group.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu name="IMChiclet Group Menu">
- <menu_item_call label="O Grupie" name="Show Profile"/>
+ <menu_item_call label="O grupie" name="Show Profile"/>
<menu_item_call label="Pokaż sesję" name="Chat"/>
<menu_item_call label="Zakończ rozmowę" name="End Session"/>
</menu>
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 c0c812c0a7..8924d6db3e 100644
--- a/indra/newview/skins/default/xui/pl/menu_imchiclet_p2p.xml
+++ b/indra/newview/skins/default/xui/pl/menu_imchiclet_p2p.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu name="IMChiclet P2P Menu">
- <menu_item_call label="Zobacz Profil" name="Show Profile"/>
- <menu_item_call label="Dodaj Znajomość" name="Add Friend"/>
+ <menu_item_call label="Zobacz profil" name="Show Profile"/>
+ <menu_item_call label="Dodaj znajomość" name="Add Friend"/>
<menu_item_call label="Pokaż sesję" name="Send IM"/>
<menu_item_call label="Zakończ rozmowę" name="End Session"/>
</menu>
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 325072d0fb..5c27d53d90 100644
--- a/indra/newview/skins/default/xui/pl/menu_inspect_avatar_gear.xml
+++ b/indra/newview/skins/default/xui/pl/menu_inspect_avatar_gear.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<menu name="Gear Menu">
- <menu_item_call label="Zobacz Profil" name="view_profile"/>
- <menu_item_call label="Dodaj Znajomość" name="add_friend"/>
+ <menu_item_call label="Zobacz profil" name="view_profile"/>
+ <menu_item_call label="Dodaj znajomość" name="add_friend"/>
<menu_item_call label="IM" name="im"/>
<menu_item_call label="Zadzwoń" name="call"/>
<menu_item_call label="Teleportuj" name="teleport"/>
- <menu_item_call label="ZaproÅ› do Grupy" name="invite_to_group"/>
+ <menu_item_call label="ZaproÅ› do grupy" name="invite_to_group"/>
<menu_item_call label="Zablokuj" name="block"/>
<menu_item_call label="Odblokuj" name="unblock"/>
<menu_item_call label="Raport" name="report"/>
<menu_item_call label="Unieruchom" name="freeze"/>
<menu_item_call label="Wyrzuć" name="eject"/>
- <menu_item_call label="Debug" name="debug"/>
+ <menu_item_call label="Debugowanie tekstur" name="debug"/>
<menu_item_call label="Znajdź na mapie" name="find_on_map"/>
<menu_item_call label="Przybliż" name="zoom_in"/>
<menu_item_call label="Zapłać" name="pay"/>
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 ee2f202ee9..6d6377dbc3 100644
--- a/indra/newview/skins/default/xui/pl/menu_inspect_self_gear.xml
+++ b/indra/newview/skins/default/xui/pl/menu_inspect_self_gear.xml
@@ -1,8 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<menu name="Gear Menu">
<menu_item_call label="Wstań" name="stand_up"/>
- <menu_item_call label="Mój Wygląd" name="my_appearance"/>
- <menu_item_call label="Mój Profil" name="my_profile"/>
- <menu_item_call label="Moi Znajomi" name="my_friends"/>
- <menu_item_call label="Moje Grupy" name="my_groups"/>
+ <menu_item_call label="Zmień strój" name="change_outfit"/>
+ <menu_item_call label="Mój profil" name="my_profile"/>
+ <menu_item_call label="Moi znajomi" name="my_friends"/>
+ <menu_item_call label="Moje grupy" name="my_groups"/>
+ <menu_item_call label="Debugowanie tekstur" name="Debug..."/>
</menu>
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
new file mode 100644
index 0000000000..5ef0f2f7a4
--- /dev/null
+++ b/indra/newview/skins/default/xui/pl/menu_inv_offer_chiclet.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="InvOfferChiclet Menu">
+ <menu_item_call label="Zamknij" name="Close"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/pl/menu_inventory.xml b/indra/newview/skins/default/xui/pl/menu_inventory.xml
index 7fe9da3c0c..e47ffa0e18 100644
--- a/indra/newview/skins/default/xui/pl/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/pl/menu_inventory.xml
@@ -1,5 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu name="Popup">
+ <menu_item_call label="Udostępnij" name="Share"/>
<menu_item_call label="Kupuj" name="Task Buy"/>
<menu_item_call label="Otwórz" name="Task Open"/>
<menu_item_call label="Odtwarzaj" name="Task Play"/>
@@ -7,13 +8,13 @@
<menu_item_call label="Zmień nazwę" name="Task Rename"/>
<menu_item_call label="Usuń" name="Task Remove"/>
<menu_item_call label="Opróżnij Kosz" name="Empty Trash"/>
- <menu_item_call label="Opróżnij Folder Zgubione i Odnalezione" name="Empty Lost And Found"/>
+ <menu_item_call label="Opróżnij Folder Zgubione i odnalezione" name="Empty Lost And Found"/>
<menu_item_call label="Nowy folder" name="New Folder"/>
<menu_item_call label="Nowy skrypt" name="New Script"/>
<menu_item_call label="Nowa nota" name="New Note"/>
- <menu_item_call label="Nowy gest" name="New Gesture"/>
+ <menu_item_call label="Nowa gesturka" name="New Gesture"/>
<menu label="Nowe Ubranie" name="New Clothes">
- <menu_item_call label="Nowa koszulka" name="New Shirt"/>
+ <menu_item_call label="Nowa koszula" name="New Shirt"/>
<menu_item_call label="Nowe spodnie" name="New Pants"/>
<menu_item_call label="Nowe buty" name="New Shoes"/>
<menu_item_call label="Nowe skarpety" name="New Socks"/>
@@ -22,7 +23,7 @@
<menu_item_call label="Nowe rękawiczki" name="New Gloves"/>
<menu_item_call label="Nowy podkoszulek" name="New Undershirt"/>
<menu_item_call label="Nowa bielizna" name="New Underpants"/>
- <menu_item_call label="Nowa maska Alpha" name="New Alpha Mask"/>
+ <menu_item_call label="Nowa maska alpha" name="New Alpha Mask"/>
<menu_item_call label="Nowy tatuaż" name="New Tattoo"/>
</menu>
<menu label="Nowa Część Ciała" name="New Body Parts">
@@ -38,7 +39,7 @@
<menu_item_call label="Spodnie" name="Pants"/>
<menu_item_call label="Kształt" name="Shape"/>
<menu_item_call label="Buty" name="Shoes"/>
- <menu_item_call label="Koszulka" name="Shirt"/>
+ <menu_item_call label="Koszula" name="Shirt"/>
<menu_item_call label="Spódnica" name="Skirt"/>
<menu_item_call label="Bielizna" name="Underpants"/>
<menu_item_call label="Podkoszulek" name="Undershirt"/>
@@ -51,14 +52,16 @@
<menu_item_call label="Usuń obiekt" name="Purge Item"/>
<menu_item_call label="Przywróć obiekt" name="Restore Item"/>
<menu_item_call label="Otwórz" name="Open"/>
+ <menu_item_call label="Otwórz oryginalne" name="Open Original"/>
<menu_item_call label="Właściwości" name="Properties"/>
<menu_item_call label="Zmień nazwę" name="Rename"/>
<menu_item_call label="Kopiuj dane UUID" name="Copy Asset UUID"/>
<menu_item_call label="Kopiuj" name="Copy"/>
<menu_item_call label="Wklej" name="Paste"/>
<menu_item_call label="Wklej jako link" name="Paste As Link"/>
+ <menu_item_call label="Usuń" name="Remove Link"/>
<menu_item_call label="Usuń" name="Delete"/>
- <menu_item_call label="Skasuj Folder Systemu" name="Delete System Folder"/>
+ <menu_item_call label="Skasuj folder systemu" name="Delete System Folder"/>
<menu_item_call label="Rozpocznij konferencjÄ™ czatowÄ…" name="Conference Chat Folder"/>
<menu_item_call label="Odtwarzaj" name="Sound Play"/>
<menu_item_call label="O Miejscu" name="About Landmark"/>
@@ -71,11 +74,11 @@
<menu_item_call label="Deaktywuj" name="Deactivate"/>
<menu_item_call label="Zapisz jako" name="Save As"/>
<menu_item_call label="Odłącz od siebie" name="Detach From Yourself"/>
- <menu_item_call label="Ubierz" name="Object Wear"/>
+ <menu_item_call label="Załóż" name="Wearable And Object Wear"/>
<menu label="Dołącz do" name="Attach To"/>
- <menu label="Dołącz do Załączników HUD" name="Attach To HUD"/>
+ <menu label="Dołącz do załączników HUD" name="Attach To HUD"/>
<menu_item_call label="Edytuj" name="Wearable Edit"/>
- <menu_item_call label="Ubierz" name="Wearable Wear"/>
+ <menu_item_call label="Dodaj" name="Wearable Add"/>
<menu_item_call label="Zdejmij" name="Take Off"/>
<menu_item_call label="--brak opcji--" name="--no options--"/>
</menu>
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 b4d85c2c5c..4a56586aaf 100644
--- a/indra/newview/skins/default/xui/pl/menu_inventory_add.xml
+++ b/indra/newview/skins/default/xui/pl/menu_inventory_add.xml
@@ -5,13 +5,14 @@
<menu_item_call label="dźwięk (L$[COST])..." name="Upload Sound"/>
<menu_item_call label="animacjÄ™ (L$[COST])..." name="Upload Animation"/>
<menu_item_call label="zbiór plików (L$[COST] za jeden plik)..." name="Bulk Upload"/>
+ <menu_item_call label="Ustaw domyślne pozwolenia ładowania" name="perm prefs"/>
</menu>
<menu_item_call label="Nowy folder" name="New Folder"/>
<menu_item_call label="Nowy skrypt" name="New Script"/>
<menu_item_call label="Nowa nota" name="New Note"/>
- <menu_item_call label="Nowy gest" name="New Gesture"/>
+ <menu_item_call label="Nowa gesturka" name="New Gesture"/>
<menu label="Nowe Ubranie" name="New Clothes">
- <menu_item_call label="Nowa koszulka" name="New Shirt"/>
+ <menu_item_call label="Nowa koszula" name="New Shirt"/>
<menu_item_call label="Nowe spodnie" name="New Pants"/>
<menu_item_call label="Nowe buty" name="New Shoes"/>
<menu_item_call label="Nowe skarpetki" name="New Socks"/>
@@ -20,7 +21,7 @@
<menu_item_call label="Nowe rękawiczki" name="New Gloves"/>
<menu_item_call label="Nowy podkoszulek" name="New Undershirt"/>
<menu_item_call label="Nowa bielizna" name="New Underpants"/>
- <menu_item_call label="Nowe ubranie Przezroczyste" name="New Alpha"/>
+ <menu_item_call label="Nowa maska alpha" name="New Alpha"/>
<menu_item_call label="Nowy tatuaż" name="New Tattoo"/>
</menu>
<menu label="Nowa Część Ciała" name="New Body Parts">
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 2ec3741682..d110a2f02e 100644
--- a/indra/newview/skins/default/xui/pl/menu_inventory_gear_default.xml
+++ b/indra/newview/skins/default/xui/pl/menu_inventory_gear_default.xml
@@ -6,9 +6,10 @@
<menu_item_call label="Pokaż filtry" name="show_filters"/>
<menu_item_call label="Zresetuj filtry" name="reset_filters"/>
<menu_item_call label="Zamknij wszystkie foldery" name="close_folders"/>
- <menu_item_call label="Opróżnij Kosz" name="empty_trash"/>
- <menu_item_call label="Opróżnij Zagubione i Odnalezione" name="empty_lostnfound"/>
+ <menu_item_call label="Opróżnij Zagubione i odnalezione" name="empty_lostnfound"/>
<menu_item_call label="Zapisz teksturÄ™ jako" name="Save Texture As"/>
+ <menu_item_call label="Udostępnij" name="Share"/>
<menu_item_call label="Znajdź oryginał" name="Find Original"/>
<menu_item_call label="Znajdź wszystkie linki" name="Find All Links"/>
+ <menu_item_call label="Opróżnij Kosz" name="empty_trash"/>
</menu>
diff --git a/indra/newview/skins/default/xui/pl/menu_land.xml b/indra/newview/skins/default/xui/pl/menu_land.xml
index 1e1ce73089..cbfecaee56 100644
--- a/indra/newview/skins/default/xui/pl/menu_land.xml
+++ b/indra/newview/skins/default/xui/pl/menu_land.xml
@@ -2,7 +2,7 @@
<context_menu name="Land Pie">
<menu_item_call label="O Posiadłości" name="Place Information..."/>
<menu_item_call label="Usiądź tutaj" name="Sit Here"/>
- <menu_item_call label="Kup Posiadłość" name="Land Buy"/>
+ <menu_item_call label="Kup posiadłość" name="Land Buy"/>
<menu_item_call label="Kup przepustkÄ™" name="Land Buy Pass"/>
<menu_item_call label="Buduj" name="Create"/>
<menu_item_call label="Edytuj teren" name="Edit Terrain"/>
diff --git a/indra/newview/skins/default/xui/pl/menu_login.xml b/indra/newview/skins/default/xui/pl/menu_login.xml
index ed4937182f..0dd6117b85 100644
--- a/indra/newview/skins/default/xui/pl/menu_login.xml
+++ b/indra/newview/skins/default/xui/pl/menu_login.xml
@@ -2,24 +2,14 @@
<menu_bar name="Login Menu">
<menu label="Ja" name="File">
<menu_item_call label="Ustawienia" name="Preferences..."/>
- <menu_item_call label="Wyłącz program" name="Quit"/>
+ <menu_item_call label="Wyłącz [APP_NAME]" name="Quit"/>
</menu>
<menu label="Pomoc" name="Help">
<menu_item_call label="[SECOND_LIFE]: Pomoc" name="Second Life Help"/>
<menu_item_call label="O [APP_NAME]" name="About Second Life"/>
</menu>
+ <menu_item_check label="Pokaż ustawienia debugowania" name="Show Debug Menu"/>
<menu label="Debug" name="Debug">
- <menu label="Edytuj" name="Edit">
- <menu_item_call label="Cofnij" name="Undo"/>
- <menu_item_call label="Powtórz" name="Redo"/>
- <menu_item_call label="Wytnij" name="Cut"/>
- <menu_item_call label="Kopiuj" name="Copy"/>
- <menu_item_call label="Wklej" name="Paste"/>
- <menu_item_call label="Usuń" name="Delete"/>
- <menu_item_call label="Powiel" name="Duplicate"/>
- <menu_item_call label="Zaznacz wszystko" name="Select All"/>
- <menu_item_call label="Odznacz" name="Deselect"/>
- </menu>
<menu_item_call label="Ustawienia debugowania" name="Debug Settings"/>
<menu_item_call label="Ustawienia UI/kolor" name="UI/Color Settings"/>
<menu label="UI Testy" name="UI Tests"/>
@@ -27,5 +17,7 @@
<menu_item_call label="Wyświetl TOS" name="TOS"/>
<menu_item_call label="Wyświetl wiadomość krytyczną" name="Critical"/>
<menu_item_call label="Test przeglÄ…darki internetowej" name="Web Browser Test"/>
+ <menu_item_check label="Pokaż siatkę" name="Show Grid Picker"/>
+ <menu_item_call label="Pokaż konsolę Zawiadomień" name="Show Notifications Console"/>
</menu>
</menu_bar>
diff --git a/indra/newview/skins/default/xui/pl/menu_navbar.xml b/indra/newview/skins/default/xui/pl/menu_navbar.xml
index f38b805ee2..1d434670ee 100644
--- a/indra/newview/skins/default/xui/pl/menu_navbar.xml
+++ b/indra/newview/skins/default/xui/pl/menu_navbar.xml
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu name="Navbar Menu">
<menu_item_check label="Pokaż współrzędne" name="Show Coordinates"/>
- <menu_item_check label="Pokaż właściwości Posiadłości" name="Show Parcel Properties"/>
- <menu_item_call label="Ulubione Miejsce" name="Landmark"/>
+ <menu_item_check label="Pokaż właściwości posiadłości" name="Show Parcel Properties"/>
+ <menu_item_call label="Landmark" name="Landmark"/>
<menu_item_call label="Wytnij" name="Cut"/>
<menu_item_call label="Kopiuj" name="Copy"/>
<menu_item_call label="Wklej" name="Paste"/>
diff --git a/indra/newview/skins/default/xui/pl/menu_object.xml b/indra/newview/skins/default/xui/pl/menu_object.xml
index 763b120f89..773d4221b2 100644
--- a/indra/newview/skins/default/xui/pl/menu_object.xml
+++ b/indra/newview/skins/default/xui/pl/menu_object.xml
@@ -1,6 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Object Pie">
- <menu_item_call label="Dotknij" name="Object Touch"/>
+ <menu_item_call label="Dotknij" name="Object Touch">
+ <on_enable parameter="Dotknij" name="EnableTouch"/>
+ </menu_item_call>
<menu_item_call label="Edytuj" name="Edit..."/>
<menu_item_call label="Buduj" name="Build"/>
<menu_item_call label="Otwórz" name="Open"/>
@@ -8,12 +10,12 @@
<menu_item_call label="Wstań" name="Object Stand Up"/>
<menu_item_call label="Sprawdź" name="Object Inspect"/>
<menu_item_call label="Przybliż" name="Zoom In"/>
- <context_menu label="Załóż na ▶" name="Put On">
+ <context_menu label="Załóż na" name="Put On">
<menu_item_call label="Załóż" name="Wear"/>
- <context_menu label="Dołącz ▶" name="Object Attach"/>
- <context_menu label="Dołącz HUD ▶" name="Object Attach HUD"/>
+ <context_menu label="Dołącz" name="Object Attach"/>
+ <context_menu label="Dołącz HUD" name="Object Attach HUD"/>
</context_menu>
- <context_menu label="Usuń ▶" name="Remove">
+ <context_menu label="Usuń" name="Remove">
<menu_item_call label="Raport" name="Report Abuse..."/>
<menu_item_call label="Zablokuj" name="Object Mute"/>
<menu_item_call label="Zwróć" name="Return..."/>
diff --git a/indra/newview/skins/default/xui/pl/menu_outfit_gear.xml b/indra/newview/skins/default/xui/pl/menu_outfit_gear.xml
new file mode 100644
index 0000000000..1a70e76ec7
--- /dev/null
+++ b/indra/newview/skins/default/xui/pl/menu_outfit_gear.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="Gear Outfit">
+ <menu_item_call label="Załóż - Zastąp obecny strój" name="wear"/>
+ <menu_item_call label="Załóż - Dodaj do bieżącego stroju" name="wear_add"/>
+ <menu_item_call label="Zdejmij - Usuń z obecnego stroju" name="take_off"/>
+ <menu label="Nowe ubranie" name="New Clothes">
+ <menu_item_call label="Nowa koszula" name="New Shirt"/>
+ <menu_item_call label="Nowe spodnie" name="New Pants"/>
+ <menu_item_call label="Nowe buty" name="New Shoes"/>
+ <menu_item_call label="Nowe skarpetki" name="New Socks"/>
+ <menu_item_call label="Nowa kurtka" name="New Jacket"/>
+ <menu_item_call label="Nowa spódnica" name="New Skirt"/>
+ <menu_item_call label="Nowe rękawiczki" name="New Gloves"/>
+ <menu_item_call label="Nowa podkoszulka" name="New Undershirt"/>
+ <menu_item_call label="Nowa bielizna" name="New Underpants"/>
+ <menu_item_call label="Nowa maska alpha" name="New Alpha"/>
+ <menu_item_call label="Nowy tatuaż" name="New Tattoo"/>
+ </menu>
+ <menu label="Nowe części ciała" name="New Body Parts">
+ <menu_item_call label="Nowy kształt" name="New Shape"/>
+ <menu_item_call label="Nowa skórka" name="New Skin"/>
+ <menu_item_call label="Nowe włosy" name="New Hair"/>
+ <menu_item_call label="Nowe oczy" name="New Eyes"/>
+ </menu>
+ <menu_item_call label="Zmień nazwę stroju" name="rename"/>
+ <menu_item_call label="Usuń strój" name="delete_outfit"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/pl/menu_outfit_tab.xml b/indra/newview/skins/default/xui/pl/menu_outfit_tab.xml
new file mode 100644
index 0000000000..998e25f38e
--- /dev/null
+++ b/indra/newview/skins/default/xui/pl/menu_outfit_tab.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<context_menu name="Outfit">
+ <menu_item_call label="Załóż - Zastąp obecny strój" name="wear_replace"/>
+ <menu_item_call label="Załóż - Dodaj do obecnego stroju" name="wear_add"/>
+ <menu_item_call label="Zdejmij - Usuń z obecnego stroju" name="take_off"/>
+ <menu_item_call label="Edytuj strój" name="edit"/>
+ <menu_item_call label="Zmień nazwę stroju" name="rename"/>
+ <menu_item_call label="Usuń strój" name="delete"/>
+</context_menu>
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 079b8558da..9e59102788 100644
--- a/indra/newview/skins/default/xui/pl/menu_participant_list.xml
+++ b/indra/newview/skins/default/xui/pl/menu_participant_list.xml
@@ -2,19 +2,20 @@
<context_menu name="Participant List Context Menu">
<menu_item_check label="Sortuj według imienia" name="SortByName"/>
<menu_item_check label="Sortuj według ostatniego mówcy" name="SortByRecentSpeakers"/>
- <menu_item_call label="Zobacz Profil" name="View Profile"/>
- <menu_item_call label="Dodaj Znajomość" name="Add Friend"/>
+ <menu_item_call label="Zobacz profil" name="View Profile"/>
+ <menu_item_call label="Dodaj znajomość" name="Add Friend"/>
<menu_item_call label="IM" name="IM"/>
<menu_item_call label="Zadzwoń" name="Call"/>
<menu_item_call label="Udostępnij" name="Share"/>
<menu_item_call label="Zapłać" name="Pay"/>
+ <menu_item_check label="PrzeglÄ…daj ikonki" name="View Icons"/>
<menu_item_check label="Zablokuj głos" name="Block/Unblock"/>
<menu_item_check label="Zablokuj tekst" name="MuteText"/>
- <context_menu label="Opcje Moderatora &gt;" name="Moderator Options">
+ <context_menu label="Opcje Moderatora" name="Moderator Options">
<menu_item_check label="Czat/IM dozwolony" name="AllowTextChat"/>
<menu_item_call label="Wycisz tego uczestnika" name="ModerateVoiceMuteSelected"/>
- <menu_item_call label="Wycisz wszystkich pozostałych" name="ModerateVoiceMuteOthers"/>
<menu_item_call label="Odblokuj wyciszenie tego uczestnika" name="ModerateVoiceUnMuteSelected"/>
- <menu_item_call label="Odblokuj wyciszenie wszystkich" name="ModerateVoiceUnMuteOthers"/>
+ <menu_item_call label="Wycisz wszystkich" name="ModerateVoiceMute"/>
+ <menu_item_call label="Cofnij wyciszenie wszystkim" name="ModerateVoiceUnmute"/>
</context_menu>
</context_menu>
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 567482dcda..ace5ebf888 100644
--- a/indra/newview/skins/default/xui/pl/menu_people_groups.xml
+++ b/indra/newview/skins/default/xui/pl/menu_people_groups.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu name="menu_group_plus">
- <menu_item_call label="Zobacz Info" name="View Info"/>
+ <menu_item_call label="Zobacz info" name="View Info"/>
<menu_item_call label="Czat" name="Chat"/>
<menu_item_call label="Rozmowa" name="Call"/>
<menu_item_call label="Aktywuj" name="Activate"/>
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 4be60d9b83..c70ea2315f 100644
--- 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
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu name="menu_group_plus">
- <menu_item_check label="Wyświetlaj ikonki Grupy" name="Display Group Icons"/>
- <menu_item_call label="Opuść zaznaczone Grupy" name="Leave Selected Group"/>
+ <menu_item_check label="Wyświetlaj ikonki grupy" name="Display Group Icons"/>
+ <menu_item_call label="Opuść zaznaczone grupy" name="Leave Selected Group"/>
</menu>
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 afe3a5200b..a8cc6b4a60 100644
--- a/indra/newview/skins/default/xui/pl/menu_people_nearby.xml
+++ b/indra/newview/skins/default/xui/pl/menu_people_nearby.xml
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Avatar Context Menu">
- <menu_item_call label="Zobacz Profil" name="View Profile"/>
- <menu_item_call label="Dodaj Znajomość" name="Add Friend"/>
- <menu_item_call label="Usuń z listy Znajomych" name="Remove Friend"/>
+ <menu_item_call label="Zobacz profil" name="View Profile"/>
+ <menu_item_call label="Dodaj znajomość" name="Add Friend"/>
+ <menu_item_call label="Usuń z listy znajomych" name="Remove Friend"/>
<menu_item_call label="IM" name="IM"/>
<menu_item_call label="Zadzwoń" name="Call"/>
<menu_item_call label="Mapa" name="Map"/>
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 bc89402a96..c924185c6f 100644
--- a/indra/newview/skins/default/xui/pl/menu_people_nearby_multiselect.xml
+++ b/indra/newview/skins/default/xui/pl/menu_people_nearby_multiselect.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Multi-Selected People Context Menu">
- <menu_item_call label="Dodaj Znajomych" name="Add Friends"/>
- <menu_item_call label="Usuń Znajomych" name="Remove Friend"/>
+ <menu_item_call label="Dodaj znajomych" name="Add Friends"/>
+ <menu_item_call label="Usuń znajomych" name="Remove Friend"/>
<menu_item_call label="IM" name="IM"/>
<menu_item_call label="Zadzwoń" name="Call"/>
<menu_item_call label="Udostępnij" name="Share"/>
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 8f196612a8..e9c00f51a9 100644
--- a/indra/newview/skins/default/xui/pl/menu_picks_plus.xml
+++ b/indra/newview/skins/default/xui/pl/menu_picks_plus.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<toggleable_menu name="picks_plus_menu">
<menu_item_call label="Stwórz" name="create_pick"/>
- <menu_item_call label="Nowa Reklama" name="create_classified"/>
+ <menu_item_call label="Nowa reklama" name="create_classified"/>
</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/pl/menu_place.xml b/indra/newview/skins/default/xui/pl/menu_place.xml
index 312bfc6bb0..c3b72d6abb 100644
--- a/indra/newview/skins/default/xui/pl/menu_place.xml
+++ b/indra/newview/skins/default/xui/pl/menu_place.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<toggleable_menu name="place_overflow_menu">
- <menu_item_call label="Zapisz Landmark" name="landmark"/>
+ <menu_item_call label="Zapisz landmark" name="landmark"/>
<menu_item_call label="Utwórz" name="pick"/>
- <menu_item_call label="Kup PrzepustkÄ™" name="pass"/>
+ <menu_item_call label="Kup przepustkÄ™" name="pass"/>
<menu_item_call label="Edytuj" name="edit"/>
</toggleable_menu>
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 6175671fb9..3d0c1c87fb 100644
--- a/indra/newview/skins/default/xui/pl/menu_place_add_button.xml
+++ b/indra/newview/skins/default/xui/pl/menu_place_add_button.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu name="menu_folder_gear">
<menu_item_call label="Dodaj folder" name="add_folder"/>
- <menu_item_call label="Dodaj do Landmarków" name="add_landmark"/>
+ <menu_item_call label="Dodaj do landmarków" name="add_landmark"/>
</menu>
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 d17b6c1033..65417cef22 100644
--- a/indra/newview/skins/default/xui/pl/menu_places_gear_folder.xml
+++ b/indra/newview/skins/default/xui/pl/menu_places_gear_folder.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu name="menu_folder_gear">
- <menu_item_call label="Dodaj do Landmarków" name="add_landmark"/>
+ <menu_item_call label="Dodaj do landmarków" name="add_landmark"/>
<menu_item_call label="Dodaj folder" name="add_folder"/>
<menu_item_call label="Wytnij" name="cut"/>
<menu_item_call label="Kopiuj" name="copy_folder"/>
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 0720aea8aa..36787dd0aa 100644
--- a/indra/newview/skins/default/xui/pl/menu_places_gear_landmark.xml
+++ b/indra/newview/skins/default/xui/pl/menu_places_gear_landmark.xml
@@ -3,10 +3,10 @@
<menu_item_call label="Teleportuj" name="teleport"/>
<menu_item_call label="Więcej informacji" name="more_info"/>
<menu_item_call label="Pokaż na mapie" name="show_on_map"/>
- <menu_item_call label="Dodaj do Landmarków" name="add_landmark"/>
+ <menu_item_call label="Dodaj do landmarków" name="add_landmark"/>
<menu_item_call label="Dodaj folder" name="add_folder"/>
<menu_item_call label="Wytnij" name="cut"/>
- <menu_item_call label="Kopiuj Landmark" name="copy_landmark"/>
+ <menu_item_call label="Kopiuj landmark" name="copy_landmark"/>
<menu_item_call label="Kopiuj SLurl" name="copy_slurl"/>
<menu_item_call label="Wklej" name="paste"/>
<menu_item_call label="Zmień nazwę" name="rename"/>
diff --git a/indra/newview/skins/default/xui/pl/menu_save_outfit.xml b/indra/newview/skins/default/xui/pl/menu_save_outfit.xml
new file mode 100644
index 0000000000..4bc65eca38
--- /dev/null
+++ b/indra/newview/skins/default/xui/pl/menu_save_outfit.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<toggleable_menu name="save_outfit_menu">
+ <menu_item_call label="Zapisz" name="save_outfit"/>
+ <menu_item_call label="Zapisz jako" name="save_as_new_outfit"/>
+</toggleable_menu>
diff --git a/indra/newview/skins/default/xui/pl/menu_script_chiclet.xml b/indra/newview/skins/default/xui/pl/menu_script_chiclet.xml
new file mode 100644
index 0000000000..256500a402
--- /dev/null
+++ b/indra/newview/skins/default/xui/pl/menu_script_chiclet.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="ScriptChiclet Menu">
+ <menu_item_call label="Zamknij" name="Close"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/pl/menu_slurl.xml b/indra/newview/skins/default/xui/pl/menu_slurl.xml
index 719959df6a..862f538aa7 100644
--- a/indra/newview/skins/default/xui/pl/menu_slurl.xml
+++ b/indra/newview/skins/default/xui/pl/menu_slurl.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu name="Popup">
- <menu_item_call label="O Miejscu" name="about_url"/>
- <menu_item_call label="Teleportuj do Miejsca" name="teleport_to_url"/>
+ <menu_item_call label="O miejscu" name="about_url"/>
+ <menu_item_call label="Teleportuj do miejsca" name="teleport_to_url"/>
<menu_item_call label="Mapa" name="show_on_map"/>
</menu>
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 2161963a61..0e58592d46 100644
--- a/indra/newview/skins/default/xui/pl/menu_teleport_history_gear.xml
+++ b/indra/newview/skins/default/xui/pl/menu_teleport_history_gear.xml
@@ -2,5 +2,5 @@
<menu name="Teleport History Gear Context Menu">
<menu_item_call label="Rozwiń wszystkie foldery" name="Expand all folders"/>
<menu_item_call label="Schowaj wszystkie foldery" name="Collapse all folders"/>
- <menu_item_call label="Wyczyść Historię Teleportacji" name="Clear Teleport History"/>
+ <menu_item_call label="Wyczyść historię teleportacji" name="Clear Teleport History"/>
</menu>
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 4529246b56..812f87bc1a 100644
--- a/indra/newview/skins/default/xui/pl/menu_text_editor.xml
+++ b/indra/newview/skins/default/xui/pl/menu_text_editor.xml
@@ -4,5 +4,5 @@
<menu_item_call label="Kopiuj" name="Copy"/>
<menu_item_call label="Wklej" name="Paste"/>
<menu_item_call label="Usuń" name="Delete"/>
- <menu_item_call label="Zaznacz Wszystko" name="Select All"/>
+ <menu_item_call label="Zaznacz wszystko" name="Select All"/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/pl/menu_topinfobar.xml b/indra/newview/skins/default/xui/pl/menu_topinfobar.xml
new file mode 100644
index 0000000000..53536c8f1c
--- /dev/null
+++ b/indra/newview/skins/default/xui/pl/menu_topinfobar.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="menu_topinfobar">
+ <menu_item_check label="Pokaż współprzędne" name="Show Coordinates"/>
+ <menu_item_check label="Pokaż O Posiadłości" name="Show Parcel Properties"/>
+ <menu_item_call label="Landmark" name="Landmark"/>
+ <menu_item_call label="Kopiuj" name="Copy"/>
+</menu>
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 7c90e6582d..db729be725 100644
--- a/indra/newview/skins/default/xui/pl/menu_url_agent.xml
+++ b/indra/newview/skins/default/xui/pl/menu_url_agent.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Url Popup">
- <menu_item_call label="Pokaż Profil Rezydenta" name="show_agent"/>
+ <menu_item_call label="Pokaż profil Rezydenta" name="show_agent"/>
<menu_item_call label="Kopiuj nazwÄ™ do schowka" name="url_copy_label"/>
<menu_item_call label="Kopiuj SLurl do schowka" name="url_copy"/>
</context_menu>
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 109f96e562..f340b3296a 100644
--- a/indra/newview/skins/default/xui/pl/menu_url_group.xml
+++ b/indra/newview/skins/default/xui/pl/menu_url_group.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Url Popup">
- <menu_item_call label="Pokaż szczegóły o Grupie" name="show_group"/>
- <menu_item_call label="Kopiuj GrupÄ™ do schowka" name="url_copy_label"/>
+ <menu_item_call label="Pokaż szczegóły o grupie" name="show_group"/>
+ <menu_item_call label="Kopiuj grupÄ™ do schowka" name="url_copy_label"/>
<menu_item_call label="Kopiuj SLurl do schowka" name="url_copy"/>
</context_menu>
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 ce3309cba0..e36fa0dd2b 100644
--- a/indra/newview/skins/default/xui/pl/menu_url_inventory.xml
+++ b/indra/newview/skins/default/xui/pl/menu_url_inventory.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Url Popup">
- <menu_item_call label="Pokaż obiekt w Szafie" name="show_item"/>
+ <menu_item_call label="Pokaż obiekt w szafie" name="show_item"/>
<menu_item_call label="Kopiuj nazwÄ™ do schowka" name="url_copy_label"/>
<menu_item_call label="Kopiuj SLurl do schowka" name="url_copy"/>
</context_menu>
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 43b945b8be..1b8dd62137 100644
--- a/indra/newview/skins/default/xui/pl/menu_url_parcel.xml
+++ b/indra/newview/skins/default/xui/pl/menu_url_parcel.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Url Popup">
- <menu_item_call label="Pokaż szczegóły o Miejscu" name="show_parcel"/>
+ <menu_item_call label="Pokaż szczegóły o miejscu" name="show_parcel"/>
<menu_item_call label="Pokaż na mapie" name="show_on_map"/>
<menu_item_call label="Kopiuj SLurl do schowka" name="url_copy"/>
</context_menu>
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 456146d8e5..4d4a5b4c4d 100644
--- a/indra/newview/skins/default/xui/pl/menu_url_slurl.xml
+++ b/indra/newview/skins/default/xui/pl/menu_url_slurl.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Url Popup">
- <menu_item_call label="Pokaż szczegóły o Miejscu" name="show_place"/>
+ <menu_item_call label="Pokaż szczegóły o miejscu" name="show_place"/>
<menu_item_call label="Pokaż na mapie" name="show_on_map"/>
<menu_item_call label="Teleportuj do miejsca" name="teleport_to_location"/>
<menu_item_call label="Kopiuj SLurl do schowka" name="url_copy"/>
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 7376fb3afc..e225546930 100644
--- a/indra/newview/skins/default/xui/pl/menu_url_teleport.xml
+++ b/indra/newview/skins/default/xui/pl/menu_url_teleport.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Url Popup">
<menu_item_call label="Teleportuj do tego miejsca" name="teleport"/>
- <menu_item_call label="Pokaż na Mapie" name="show_on_map"/>
+ <menu_item_call label="Pokaż na mapie" name="show_on_map"/>
<menu_item_call label="Kopiuj SLurl do schowka" name="url_copy"/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/pl/menu_viewer.xml b/indra/newview/skins/default/xui/pl/menu_viewer.xml
index d1f0ac0e5c..a71961ada7 100644
--- a/indra/newview/skins/default/xui/pl/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/pl/menu_viewer.xml
@@ -2,47 +2,49 @@
<menu_bar name="Main Menu">
<menu label="Ja" name="Me">
<menu_item_call label="Ustawienia" name="Preferences"/>
- <menu_item_call label="Moja Tablica" name="Manage My Account"/>
+ <menu_item_call label="Dashboard" name="Manage My Account"/>
<menu_item_call label="Kup L$" name="Buy and Sell L$"/>
<menu_item_call label="Mój Profil" name="Profile"/>
- <menu_item_call label="Mój Wygląd" name="Appearance"/>
+ <menu_item_call label="Zmień strój" name="ChangeOutfit"/>
<menu_item_check label="Moja Szafa" name="Inventory"/>
<menu_item_check label="Moja Szafa" name="ShowSidetrayInventory"/>
- <menu_item_check label="Moje Gesty" name="Gestures"/>
+ <menu_item_check label="Moje gesturki" name="Gestures"/>
+ <menu_item_check label="Mój głos" name="ShowVoice"/>
<menu label="Mój Status" name="Status">
- <menu_item_call label="Tryb Oddalenia" name="Set Away"/>
- <menu_item_call label="Tryb Pracy" name="Set Busy"/>
+ <menu_item_call label="Tryb oddalenia" name="Set Away"/>
+ <menu_item_call label="Tryb pracy" name="Set Busy"/>
</menu>
- <menu_item_call label="Zażądaj Statusu Administratora" name="Request Admin Options"/>
- <menu_item_call label="Wyłącz Status Administratora" name="Leave Admin Options"/>
+ <menu_item_call label="Zażądaj statusu administratora" name="Request Admin Options"/>
+ <menu_item_call label="Wyłącz atatus administratora" name="Leave Admin Options"/>
<menu_item_call label="Wyłącz [APP_NAME]" name="Quit"/>
</menu>
<menu label="Komunikacja" name="Communicate">
<menu_item_call label="Znajomi" name="My Friends"/>
<menu_item_call label="Grupy" name="My Groups"/>
- <menu_item_check label="Czat Lokalny" name="Nearby Chat"/>
- <menu_item_call label="Osoby w Pobliżu" name="Active Speakers"/>
+ <menu_item_check label="Czat lokalny" name="Nearby Chat"/>
+ <menu_item_call label="Osoby w pobliżu" name="Active Speakers"/>
</menu>
<menu label="Åšwiat" name="World">
<menu_item_check label="Mini-Mapa" name="Mini-Map"/>
<menu_item_check label="Mapa Åšwiata" name="World Map"/>
- <menu_item_call label="Zrób Zdjęcie" name="Take Snapshot"/>
- <menu_item_call label="Zapamiętaj to Miejsce" name="Create Landmark Here"/>
+ <menu_item_call label="Zrób zdjęcie" name="Take Snapshot"/>
+ <menu_item_call label="Zapamiętaj to miejsce (LM)" name="Create Landmark Here"/>
<menu label="Miejsce" name="Land">
- <menu_item_call label="O Posiadłości" name="About Land"/>
+ <menu_item_call label="Profil miejsca" name="Place Profile"/>
+ <menu_item_call label="O posiadłości" name="About Land"/>
<menu_item_call label="Region/MajÄ…tek" name="Region/Estate"/>
</menu>
- <menu_item_call label="Kup Posiadłość" name="Buy Land"/>
- <menu_item_call label="Moje Posiadłości" name="My Land"/>
+ <menu_item_call label="Kup posiadłość" name="Buy Land"/>
+ <menu_item_call label="Moje posiadłości" name="My Land"/>
<menu label="Pokaż" name="LandShow">
- <menu_item_check label="Ustawienia Ruchu" name="Movement Controls"/>
- <menu_item_check label="Zobacz Ustawienia" name="Camera Controls"/>
- <menu_item_check label="Linie Bana" name="Ban Lines"/>
+ <menu_item_check label="Ustawienia ruchu" name="Movement Controls"/>
+ <menu_item_check label="Zobacz ustawienia" name="Camera Controls"/>
+ <menu_item_check label="Linie bana" name="Ban Lines"/>
<menu_item_check label="Emitery" name="beacons"/>
- <menu_item_check label="Granice Posiadłości" name="Property Lines"/>
- <menu_item_check label="Właściciele Posiadłości" name="Land Owners"/>
+ <menu_item_check label="Granice posiadłości" name="Property Lines"/>
+ <menu_item_check label="Właściciele posiadłości" name="Land Owners"/>
<menu_item_check label="Współrzędne" name="Coordinates"/>
- <menu_item_check label="Właściwości Posiadłości" name="Parcel Properties"/>
+ <menu_item_check label="Właściwości posiadłości" name="Parcel Properties"/>
</menu>
<menu_item_call label="Teleportuj do Miejsca Startu" name="Teleport Home"/>
<menu_item_call label="Ustaw Miejsce Startu" name="Set Home to Here"/>
@@ -51,106 +53,101 @@
<menu_item_call label="Południe" name="Noon"/>
<menu_item_call label="Zachód Słońca" name="Sunset"/>
<menu_item_call label="Północ" name="Midnight"/>
- <menu_item_call label="Używaj Czasu Regionu" name="Revert to Region Default"/>
- <menu_item_call label="Edytor Åšrodowiska" name="Environment Editor"/>
+ <menu_item_call label="Używaj czasu Regionu" name="Revert to Region Default"/>
+ <menu_item_call label="Edytor środowiska" name="Environment Editor"/>
</menu>
</menu>
<menu label="Buduj" name="BuildTools">
<menu_item_check label="Buduj" name="Show Build Tools"/>
- <menu label="Wybierz Narzędzie Budowania" name="Select Tool">
- <menu_item_call label="Narzędzie Ogniskowej" name="Focus"/>
- <menu_item_call label="Narzędzie Ruchu" name="Move"/>
- <menu_item_call label="Narzędzie Edycji" name="Edit"/>
- <menu_item_call label="Stwórz Narzędzie" name="Create"/>
- <menu_item_call label="Narzędzie Posiadłości" name="Land"/>
- </menu>
- <menu label="Edytuj" name="Edit">
- <menu_item_call label="Cofnij" name="Undo"/>
- <menu_item_call label="Cofnij" name="Redo"/>
- <menu_item_call label="Wytnij" name="Cut"/>
- <menu_item_call label="Kopiuj" name="Copy"/>
- <menu_item_call label="Wklej" name="Paste"/>
- <menu_item_call label="Usuń" name="Delete"/>
- <menu_item_call label="Zduplikuj" name="Duplicate"/>
- <menu_item_call label="Zaznacz Wszystko" name="Select All"/>
- <menu_item_call label="Cofnij Zaznaczenie" name="Deselect"/>
+ <menu label="Wybierz narzędzie budowania" name="Select Tool">
+ <menu_item_call label="Narzędzie ogniskowej" name="Focus"/>
+ <menu_item_call label="Narzędzie ruchu" name="Move"/>
+ <menu_item_call label="Narzędzie edycji" name="Edit"/>
+ <menu_item_call label="Stwórz narzędzie" name="Create"/>
+ <menu_item_call label="Narzędzie posiadłości" name="Land"/>
</menu>
<menu_item_call label="Linkuj" name="Link"/>
<menu_item_call label="Rozlinkuj" name="Unlink"/>
- <menu_item_check label="Edytuj Zgrupowane Obiekty" name="Edit Linked Parts"/>
- <menu_item_call label="Ogniskowa Selekcji" name="Focus on Selection"/>
- <menu_item_call label="Przybliż do Selekcji" name="Zoom to Selection"/>
+ <menu_item_check label="Edytuj zlinkowane obiekty" name="Edit Linked Parts"/>
+ <menu label="Wybierz zlinkowane części" name="Select Linked Parts">
+ <menu_item_call label="Wybierz następną część" name="Select Next Part"/>
+ <menu_item_call label="Zaznacz poprzednią część" name="Select Previous Part"/>
+ <menu_item_call label="Uwzględnij następną część" name="Include Next Part"/>
+ <menu_item_call label="Uwzględnij poprzednią część" name="Include Previous Part"/>
+ </menu>
+ <menu_item_call label="Ogniskowa selekcji" name="Focus on Selection"/>
+ <menu_item_call label="Przybliż do selekcji" name="Zoom to Selection"/>
<menu label="Obiekt" name="Object">
<menu_item_call label="Kup" name="Menu Object Buy"/>
<menu_item_call label="Weź" name="Menu Object Take"/>
- <menu_item_call label="Weź Kopię" name="Take Copy"/>
- <menu_item_call label="Zapisz Obiekt do Szafy" name="Save Object Back to My Inventory"/>
- <menu_item_call label="Zapisz do Treści Obiektu" name="Save Object Back to Object Contents"/>
+ <menu_item_call label="Weź kopię" name="Take Copy"/>
+ <menu_item_call label="Zapisz obiekt do Szafy" name="Save Object Back to My Inventory"/>
+ <menu_item_call label="Zapisz do treści obiektu" name="Save Object Back to Object Contents"/>
</menu>
<menu label="Skrypty" name="Scripts">
- <menu_item_call label="Zrekompiluj Skrypt w Selekcji (Mono)" name="Mono"/>
- <menu_item_call label="Zrekompiluj Skrypty" name="LSL"/>
- <menu_item_call label="Reset Skryptów" name="Reset Scripts"/>
- <menu_item_call label="Ustaw Uruchamienie Skryptów" name="Set Scripts to Running"/>
- <menu_item_call label="Wstrzymaj Działanie Skryptów w Selekcji" name="Set Scripts to Not Running"/>
+ <menu_item_call label="Zrekompiluj skrypt w selekcji (Mono)" name="Mono"/>
+ <menu_item_call label="Zrekompiluj skrypty" name="LSL"/>
+ <menu_item_call label="Reset skryptów" name="Reset Scripts"/>
+ <menu_item_call label="Ustaw uruchamienie skryptów" name="Set Scripts to Running"/>
+ <menu_item_call label="Wstrzymaj działanie skryptów w selekcji" name="Set Scripts to Not Running"/>
</menu>
<menu label="Opcje" name="Options">
- <menu_item_call label="Ustaw DomyÅ›lne Pozwolenia Åadowania" name="perm prefs"/>
- <menu_item_check label="Pokaż Zaawansowane Pozwolenia" name="DebugPermissions"/>
- <menu_item_check label="Wybierz Tylko Moje Obiekty" name="Select Only My Objects"/>
- <menu_item_check label="Wybierz Tylko Obiekty Przesuwalne" name="Select Only Movable Objects"/>
- <menu_item_check label="Wybierz przez Otoczenie" name="Select By Surrounding"/>
- <menu_item_check label="Zobacz UkrytÄ… SelekcjÄ™" name="Show Hidden Selection"/>
- <menu_item_check label="Pokaż Promień Emitera dla Selekcji" name="Show Light Radius for Selection"/>
- <menu_item_check label="Pokaż Emiter Selekcji" name="Show Selection Beam"/>
- <menu_item_check label="Uruchom SiatkÄ™" name="Snap to Grid"/>
- <menu_item_call label="PrzeciÄ…gnij Obiekt do Siatki" name="Snap Object XY to Grid"/>
- <menu_item_call label="Wybierz Zaznaczenie Siatki" name="Use Selection for Grid"/>
- <menu_item_call label="Opcje Siatki" name="Grid Options"/>
+ <menu_item_call label="Ustaw domyślne pozwolenia ładowania" name="perm prefs"/>
+ <menu_item_check label="Pokaż zaawansowane pozwolenia" name="DebugPermissions"/>
+ <menu_item_check label="Wybierz tylko moje obiekty" name="Select Only My Objects"/>
+ <menu_item_check label="Wybierz tylko obiekty przesuwalne" name="Select Only Movable Objects"/>
+ <menu_item_check label="Wybierz przez otoczenie" name="Select By Surrounding"/>
+ <menu_item_check label="Zobacz ukrytÄ… selekcjÄ™" name="Show Hidden Selection"/>
+ <menu_item_check label="Pokaż promień emitera dla selekcji" name="Show Light Radius for Selection"/>
+ <menu_item_check label="Pokaż emiter selekcji" name="Show Selection Beam"/>
+ <menu_item_check label="Uruchom siatkÄ™" name="Snap to Grid"/>
+ <menu_item_call label="PrzeciÄ…gnij obiekt do siatki" name="Snap Object XY to Grid"/>
+ <menu_item_call label="Wybierz zaznaczenie siatki" name="Use Selection for Grid"/>
+ <menu_item_call label="Opcje siatki" name="Grid Options"/>
</menu>
- <menu label="Wybierz Zlinkowane Części" name="Select Linked Parts">
- <menu_item_call label="Wybierz Następną Część" name="Select Next Part"/>
- <menu_item_call label="Zaznacz Poprzednią Część" name="Select Previous Part"/>
- <menu_item_call label="Uwzględnij Następną Część" name="Include Next Part"/>
- <menu_item_call label="Uwzględnij Poprzednią Część" name="Include Previous Part"/>
+ <menu label="Załaduj" name="Upload">
+ <menu_item_call label="teksturÄ™ (L$[COST])..." name="Upload Image"/>
+ <menu_item_call label="dźwięk (L$[COST])..." name="Upload Sound"/>
+ <menu_item_call label="animacjÄ™ (L$[COST])..." name="Upload Animation"/>
+ <menu_item_call label="zbiór plików (L$[COST] za jeden plik)..." name="Bulk Upload"/>
</menu>
</menu>
<menu label="Pomoc" name="Help">
<menu_item_call label="[SECOND_LIFE] Portal Pomocy" name="Second Life Help"/>
<menu_item_call label="Złóż Raport o Nadużyciu" name="Report Abuse"/>
- <menu_item_call label="Zgłoś Błędy Klienta" name="Report Bug"/>
+ <menu_item_call label="Zgłoś błędy klienta" name="Report Bug"/>
<menu_item_call label="O [APP_NAME]" name="About Second Life"/>
</menu>
<menu label="Zaawansowane" name="Advanced">
- <menu_item_call label="Zatrzymaj Wszystkie Animacje" name="Stop Animating My Avatar"/>
- <menu_item_call label="Odswież Wyświetlanie Tekstur" name="Rebake Texture"/>
- <menu_item_call label="Domyślne Ustawienia Rozmiaru Interfejsu" name="Set UI Size to Default"/>
- <menu_item_call label="Ustaw Rozmiar Interfejsu..." name="Set Window Size..."/>
- <menu_item_check label="Ogranicz Dystans Selekcji" name="Limit Select Distance"/>
- <menu_item_check label="Wyłącz Ograniczenia Zasięgu Kamery" name="Disable Camera Distance"/>
- <menu_item_check label="Wysoka Rozdzielczość Zdjęć" name="HighResSnapshot"/>
- <menu_item_check label="Zapisuj Zdjęcia na Dysk Twardy bez Efektu Dźwiękowego" name="QuietSnapshotsToDisk"/>
- <menu_item_check label="Skompresuj Zdjęcie na Dysk Twardy" name="CompressSnapshotsToDisk"/>
+ <menu_item_check label="Pokaż menu Zaawansowane" name="Show Advanced Menu"/>
+ <menu_item_call label="Zatrzymaj wszystkie animacje" name="Stop Animating My Avatar"/>
+ <menu_item_call label="Odswież wyświetlanie tekstur" name="Rebake Texture"/>
+ <menu_item_call label="Domyślne ustawienia rozmiaru interfejsu" name="Set UI Size to Default"/>
+ <menu_item_call label="Ustaw rozmiar interfejsu..." name="Set Window Size..."/>
+ <menu_item_check label="Ogranicz dystans selekcji" name="Limit Select Distance"/>
+ <menu_item_check label="Wyłącz ograniczenia zasięgu kamery" name="Disable Camera Distance"/>
+ <menu_item_check label="Wysoka rozdzielczość zdjęć" name="HighResSnapshot"/>
+ <menu_item_check label="Zapisuj zdjęcia na dysk twardy bez efektu dźwiękowego" name="QuietSnapshotsToDisk"/>
+ <menu_item_check label="Skompresuj zdjęcie na dysk twardy" name="CompressSnapshotsToDisk"/>
<menu label="Narzędzia" name="Performance Tools">
- <menu_item_call label="Pomiar Lagów" name="Lag Meter"/>
+ <menu_item_call label="Pomiar lagów" name="Lag Meter"/>
<menu_item_check label="Statystyki" name="Statistics Bar"/>
- <menu_item_check label="Pokaż Wartość Renderowania Awatara" name="Avatar Rendering Cost"/>
+ <menu_item_check label="Pokaż wartość renderowania awatara" name="Avatar Rendering Cost"/>
</menu>
- <menu label="Podkreślanie i Widoczność" name="Highlighting and Visibility">
- <menu_item_check label="Efekt Emiterów" name="Cheesy Beacon"/>
- <menu_item_check label="Ukryj CzÄ…steczki" name="Hide Particles"/>
- <menu_item_check label="Ukryj Zaznaczone" name="Hide Selected"/>
- <menu_item_check label="Pokaż Przeźroczyste Obiekty" name="Highlight Transparent"/>
- <menu_item_check label="Pokaż Załączniki HUD" name="Show HUD Attachments"/>
- <menu_item_check label="Pokaż Celownik Myszki" name="ShowCrosshairs"/>
- <menu_item_check label="Pokaż Podpowiedzi Posiadłości" name="Land Tips"/>
+ <menu label="Podkreślanie i widoczność" name="Highlighting and Visibility">
+ <menu_item_check label="Efekt emiterów" name="Cheesy Beacon"/>
+ <menu_item_check label="Ukryj czÄ…steczki" name="Hide Particles"/>
+ <menu_item_check label="Ukryj zaznaczone" name="Hide Selected"/>
+ <menu_item_check label="Pokaż przeźroczyste obiekty" name="Highlight Transparent"/>
+ <menu_item_check label="Pokaż załączniki HUD" name="Show HUD Attachments"/>
+ <menu_item_check label="Pokaż celownik myszki" name="ShowCrosshairs"/>
</menu>
- <menu label="Rodzaje Renderowania" name="Rendering Types">
+ <menu label="Rodzaje renderowania" name="Rendering Types">
<menu_item_check label="Podstawowe" name="Simple"/>
- <menu_item_check label="Maska Przezroczysta" name="Alpha"/>
+ <menu_item_check label="Maska alpha" name="Alpha"/>
<menu_item_check label="Drzewo" name="Tree"/>
<menu_item_check label="Awatary" name="Character"/>
- <menu_item_check label="Płaszczyzna Powierzchni" name="SurfacePath"/>
+ <menu_item_check label="Płaszczyzna powierzchni" name="SurfacePath"/>
<menu_item_check label="Niebo" name="Sky"/>
<menu_item_check label="Woda" name="Water"/>
<menu_item_check label="Ziemia" name="Ground"/>
@@ -160,162 +157,163 @@
<menu_item_check label="CzÄ…steczki" name="Particles"/>
<menu_item_check label="Zderzenie" name="Bump"/>
</menu>
- <menu label="Opcje Renderowania" name="Rendering Features">
+ <menu label="Opcje renderowania" name="Rendering Features">
<menu_item_check label="UI" name="UI"/>
<menu_item_check label="Zaznaczone" name="Selected"/>
<menu_item_check label="Podświetlenie" name="Highlighted"/>
- <menu_item_check label="Tekstury Dynamiczne" name="Dynamic Textures"/>
- <menu_item_check label="Cień Stopy" name="Foot Shadows"/>
+ <menu_item_check label="Tekstury dynamiczne" name="Dynamic Textures"/>
+ <menu_item_check label="Cień stopy" name="Foot Shadows"/>
<menu_item_check label="Mgła" name="Fog"/>
- <menu_item_check label="Obiekty Elastyczne" name="Flexible Objects"/>
+ <menu_item_check label="Obiekty elastyczne" name="Flexible Objects"/>
</menu>
- <menu_item_check label="Uruchom Wiele Wątków" name="Run Multiple Threads"/>
- <menu_item_call label="Wyczyść Bufor Danych Grupy" name="ClearGroupCache"/>
- <menu_item_check label="Wygładzanie Ruchu Myszki" name="Mouse Smoothing"/>
+ <menu_item_check label="Uruchom wiele wątków" name="Run Multiple Threads"/>
+ <menu_item_check label="Użyj plugin Read Thread" name="Use Plugin Read Thread"/>
+ <menu_item_call label="Wyczyść bufor danych grupy" name="ClearGroupCache"/>
+ <menu_item_check label="Wygładzanie ruchu myszki" name="Mouse Smoothing"/>
<menu label="Skróty" name="Shortcuts">
<menu_item_call label="Obraz (L$[COST])..." name="Upload Image"/>
<menu_item_check label="Szukaj" name="Search"/>
- <menu_item_call label="Zwolnij Klawisze" name="Release Keys"/>
- <menu_item_call label="Domyślne Ustawienia Rozmiaru Interfejsu" name="Set UI Size to Default"/>
+ <menu_item_call label="Zwolnij klawisze" name="Release Keys"/>
+ <menu_item_call label="Domyślne ustawienia rozmiaru interfejsu" name="Set UI Size to Default"/>
+ <menu_item_check label="Pokaż menu Zaawansowane" name="Show Advanced Menu - legacy shortcut"/>
<menu_item_check label="Biegnij" name="Always Run"/>
- <menu_item_check label="Zacznij Latać" name="Fly"/>
- <menu_item_call label="Zamknij Okno" name="Close Window"/>
- <menu_item_call label="Zamknij Wszystkie Okna" name="Close All Windows"/>
- <menu_item_call label="Zapisz Zdjęcie na Dysk Twardy" name="Snapshot to Disk"/>
- <menu_item_call label="Widok Panoramiczny" name="Mouselook"/>
- <menu_item_check label="Wolna Kamera" name="Joystick Flycam"/>
- <menu_item_call label="Reset Widoku" name="Reset View"/>
- <menu_item_call label="Zobacz Ostatniego Rozmówcę" name="Look at Last Chatter"/>
- <menu label="Wybierz Narzędzie Budowania" name="Select Tool">
- <menu_item_call label="Narzędzie Ogniskowej" name="Focus"/>
- <menu_item_call label="Narzędzie Ruchu" name="Move"/>
- <menu_item_call label="Narzędzie Edycji" name="Edit"/>
- <menu_item_call label="Stwórz Narzędzie" name="Create"/>
- <menu_item_call label="Narzędzia Posiadłości" name="Land"/>
+ <menu_item_check label="Zacznij latać" name="Fly"/>
+ <menu_item_call label="Zamknij okno" name="Close Window"/>
+ <menu_item_call label="Zamknij wszystkie okna" name="Close All Windows"/>
+ <menu_item_call label="Zapisz zdjęcie na dysk twardy" name="Snapshot to Disk"/>
+ <menu_item_call label="Widok panoramiczny" name="Mouselook"/>
+ <menu_item_check label="Wolna kamera" name="Joystick Flycam"/>
+ <menu_item_call label="Reset widoku" name="Reset View"/>
+ <menu_item_call label="Zobacz ostatniego rozmówcę" name="Look at Last Chatter"/>
+ <menu label="Wybierz narzędzie budowania" name="Select Tool">
+ <menu_item_call label="Narzędzie ogniskowej" name="Focus"/>
+ <menu_item_call label="Narzędzie ruchu" name="Move"/>
+ <menu_item_call label="Narzędzie edycji" name="Edit"/>
+ <menu_item_call label="Stwórz narzędzie" name="Create"/>
+ <menu_item_call label="Narzędzia posiadłości" name="Land"/>
</menu>
<menu_item_call label="Przybliż" name="Zoom In"/>
- <menu_item_call label="Domyślne Przybliżenie" name="Zoom Default"/>
+ <menu_item_call label="Domyślne przybliżenie" name="Zoom Default"/>
<menu_item_call label="Oddal" name="Zoom Out"/>
- <menu_item_call label="Rozwiń Widok Pełnoekranowy" name="Toggle Fullscreen"/>
</menu>
- <menu_item_call label="Pokaż Ustawienia Debugowania" name="Debug Settings"/>
- <menu_item_check label="Pokaż Menu Progresu" name="Debug Mode"/>
+ <menu_item_call label="Pokaż ustawienia debugowania" name="Debug Settings"/>
+ <menu_item_check label="Pokaż menu progresu" name="Debug Mode"/>
</menu>
- <menu label="Postęp..." name="Develop">
+ <menu label="Rozwinięcie..." name="Develop">
<menu label="Konsola" name="Consoles">
- <menu_item_check label="Konsola Tekstur" name="Texture Console"/>
- <menu_item_check label="Debugowanie Zdarzeń Konsoli" name="Debug Console"/>
- <menu_item_call label="Konsola Powiadomień" name="Notifications"/>
- <menu_item_check label="Konsola Rozmiaru Tekstury" name="Texture Size"/>
- <menu_item_check label="Konsola Kategorii Tekstur" name="Texture Category"/>
- <menu_item_check label="Szybkie Timery" name="Fast Timers"/>
+ <menu_item_check label="Konsola tekstur" name="Texture Console"/>
+ <menu_item_check label="Debugowanie zdarzeń konsoli" name="Debug Console"/>
+ <menu_item_call label="Konsola powiadomień" name="Notifications"/>
+ <menu_item_check label="Konsola rozmiaru tekstury" name="Texture Size"/>
+ <menu_item_check label="Konsola kategorii tekstur" name="Texture Category"/>
+ <menu_item_check label="Szybkie timery" name="Fast Timers"/>
<menu_item_check label="Pamięć" name="Memory"/>
- <menu_item_call label="Info Regionu do Debugowania Konsoli" name="Region Info to Debug Console"/>
+ <menu_item_call label="Info Regionu do debugowania konsoli" name="Region Info to Debug Console"/>
<menu_item_check label="Kamera" name="Camera"/>
<menu_item_check label="Wiatr" name="Wind"/>
<menu_item_check label="Znak" name="Badge"/>
</menu>
- <menu label="Pokaż Informacje" name="Display Info">
- <menu_item_check label="Pokaż Czas" name="Show Time"/>
- <menu_item_check label="Pokaż Informacje o Renderowaniu" name="Show Render Info"/>
- <menu_item_check label="Pokaż Kolor pod Kursorem" name="Show Color Under Cursor"/>
- <menu_item_check label="Pokaż Aktualizacje Obiektów" name="Show Updates"/>
+ <menu label="Pokaż informacje" name="Display Info">
+ <menu_item_check label="Pokaż czas" name="Show Time"/>
+ <menu_item_check label="Pokaż informacje o renderowaniu" name="Show Render Info"/>
+ <menu_item_check label="Pokaż kolor pod kursorem" name="Show Color Under Cursor"/>
+ <menu_item_check label="Pokaż aktualizacje obiektów" name="Show Updates"/>
</menu>
- <menu label="Reset Błędu" name="Force Errors">
- <menu_item_call label="Aktywacja Punktu Załamania" name="Force Breakpoint"/>
- <menu_item_call label="Reset Błędów LL" name="Force LLError And Crash"/>
- <menu_item_call label="Reset Błędów Pamięci" name="Force Bad Memory Access"/>
- <menu_item_call label="Reset Pętli" name="Force Infinite Loop"/>
- <menu_item_call label="Reset Sterowników" name="Force Driver Carsh"/>
- <menu_item_call label="WyjÄ…tek Programu" name="Force Software Exception"/>
- <menu_item_call label="Uruchom Rozłączenie" name="Force Disconnect Viewer"/>
- <menu_item_call label="Symulacja Wycieku Pamięci" name="Memory Leaking Simulation"/>
+ <menu label="Reset błędu" name="Force Errors">
+ <menu_item_call label="Aktywacja punktu załamania" name="Force Breakpoint"/>
+ <menu_item_call label="Reset błędów LL" name="Force LLError And Crash"/>
+ <menu_item_call label="Reset błędów pamięci" name="Force Bad Memory Access"/>
+ <menu_item_call label="Reset pętli" name="Force Infinite Loop"/>
+ <menu_item_call label="Reset sterowników" name="Force Driver Carsh"/>
+ <menu_item_call label="WyjÄ…tek programu" name="Force Software Exception"/>
+ <menu_item_call label="Uruchom rozłączenie" name="Force Disconnect Viewer"/>
+ <menu_item_call label="Symulacja wycieku pamięci" name="Memory Leaking Simulation"/>
</menu>
- <menu label="Test Renderowania" name="Render Tests">
- <menu_item_check label="Kamera Poza Zasiegiem" name="Camera Offset"/>
- <menu_item_check label="Losowa Ilość Klatek" name="Randomize Framerate"/>
- <menu_item_check label="Test Klatki Obrazu" name="Frame Test"/>
+ <menu label="Test renderowania" name="Render Tests">
+ <menu_item_check label="Kamera poza zasiegiem" name="Camera Offset"/>
+ <menu_item_check label="Losowa ilość klatek" name="Randomize Framerate"/>
+ <menu_item_check label="Test klatki obrazu" name="Frame Test"/>
</menu>
<menu label="Renderowanie" name="Rendering">
<menu_item_check label="Osie" name="Axes"/>
- <menu_item_check label="Tryb Obrazu Szkieletowego" name="Wireframe"/>
- <menu_item_check label="Globalne Oświetlenie" name="Global Illumination"/>
- <menu_item_check label="Tekstury Animacji" name="Animation Textures"/>
- <menu_item_check label="Wyłącz Tekstury" name="Disable Textures"/>
- <menu_item_check label="Renderowania Załączonego Światła" name="Render Attached Lights"/>
- <menu_item_check label="Renderowanie Załączonych Cząsteczek" name="Render Attached Particles"/>
- <menu_item_check label="Wyświetlaj Obiekty Odblaskowe" name="Hover Glow Objects"/>
+ <menu_item_check label="Tryb obrazu szkieletowego" name="Wireframe"/>
+ <menu_item_check label="Globalne oświetlenie" name="Global Illumination"/>
+ <menu_item_check label="Tekstury animacji" name="Animation Textures"/>
+ <menu_item_check label="Wyłącz tekstury" name="Disable Textures"/>
+ <menu_item_check label="Renderowania załączonego światła" name="Render Attached Lights"/>
+ <menu_item_check label="Renderowanie załączonych cząsteczek" name="Render Attached Particles"/>
+ <menu_item_check label="Wyświetlaj obiekty odblaskowe" name="Hover Glow Objects"/>
</menu>
<menu label="Sieć" name="Network">
- <menu_item_check label="Zatrzymaj Awatara" name="AgentPause"/>
- <menu_item_call label="Upuść Pakiet Pamięci" name="Drop a Packet"/>
+ <menu_item_check label="Zatrzymaj awatara" name="AgentPause"/>
+ <menu_item_call label="Upuść pakiet pamięci" name="Drop a Packet"/>
</menu>
- <menu_item_call label="Zderzenia, Popchnięcia &amp; Uderzenia" name="Bumps, Pushes &amp;amp; Hits"/>
+ <menu_item_call label="Zderzenia, popchnięcia &amp; uderzenia" name="Bumps, Pushes &amp;amp; Hits"/>
<menu label="Åšwiat" name="World">
- <menu_item_check label="Domyślne Ustawienia Środowiska Regionu" name="Sim Sun Override"/>
- <menu_item_check label="Efekty Emiterów" name="Cheesy Beacon"/>
- <menu_item_check label="Ustalona Pogoda" name="Fixed Weather"/>
- <menu_item_call label="Zachowaj Bufor Pamięci Obiektów Regionu" name="Dump Region Object Cache"/>
+ <menu_item_check label="Domyślne ustawienia środowiska Regionu" name="Sim Sun Override"/>
+ <menu_item_check label="Efekty emiterów" name="Cheesy Beacon"/>
+ <menu_item_check label="Ustalona pogoda" name="Fixed Weather"/>
+ <menu_item_call label="Zachowaj bufor pamięci obiektów regionu" name="Dump Region Object Cache"/>
</menu>
<menu label="UI" name="UI">
- <menu_item_call label="Test PrzeglÄ…darki Internetowej" name="Web Browser Test"/>
- <menu_item_call label="Drukuj Zaznaczone Informacje o Obiekcie" name="Print Selected Object Info"/>
- <menu_item_call label="Statystyki Pamięci" name="Memory Stats"/>
- <menu_item_check label="Kliknij Podójnie by Uruchomić Auto-Pilota" name="Double-ClickAuto-Pilot"/>
- <menu_item_check label="Debugowanie Zdarzeń Klikania" name="Debug Clicks"/>
- <menu_item_check label="Debugowanie Zdarzeń Myszy" name="Debug Mouse Events"/>
+ <menu_item_call label="Test przeglÄ…darki internetowej" name="Web Browser Test"/>
+ <menu_item_call label="Drukuj zaznaczone informacje o obiekcie" name="Print Selected Object Info"/>
+ <menu_item_call label="Statystyki pamięci" name="Memory Stats"/>
+ <menu_item_check label="Kliknij podójnie by uruchomić auto-pilota" name="Double-ClickAuto-Pilot"/>
+ <menu_item_check label="Debugowanie zdarzeń klikania" name="Debug Clicks"/>
+ <menu_item_check label="Debugowanie zdarzeń myszy" name="Debug Mouse Events"/>
</menu>
<menu label="XUI" name="XUI">
- <menu_item_call label="Załaduj Ustawienia Koloru" name="Reload Color Settings"/>
- <menu_item_call label="Pokaż Test Czcionki" name="Show Font Test"/>
+ <menu_item_call label="Załaduj ustawienia koloru" name="Reload Color Settings"/>
+ <menu_item_call label="Pokaż test czcionki" name="Show Font Test"/>
<menu_item_call label="Załaduj z XML" name="Load from XML"/>
<menu_item_call label="Zapisz jako XML" name="Save to XML"/>
- <menu_item_check label="Pokaż Nazwy XUI" name="Show XUI Names"/>
- <menu_item_call label="Wyślij Wiadomość (IM) Testową" name="Send Test IMs"/>
+ <menu_item_check label="Pokaż nazwy XUI" name="Show XUI Names"/>
+ <menu_item_call label="Wyślij wiadomość (IM) testową" name="Send Test IMs"/>
</menu>
<menu label="Awatar" name="Character">
- <menu label="Grab Baked Texture" name="Grab Baked Texture">
- <menu_item_call label="Tęczówka Oka" name="Iris"/>
+ <menu label="Przesuń bakowaną teksturę" name="Grab Baked Texture">
+ <menu_item_call label="Tęczówka oka" name="Iris"/>
<menu_item_call label="Głowa" name="Head"/>
- <menu_item_call label="Górna Część Ciała" name="Upper Body"/>
- <menu_item_call label="Dolna Część Ciała" name="Lower Body"/>
+ <menu_item_call label="Górna część ciała" name="Upper Body"/>
+ <menu_item_call label="Dolna część ciała" name="Lower Body"/>
<menu_item_call label="Spódnica" name="Skirt"/>
</menu>
- <menu label="Testy Postaci" name="Character Tests">
- <menu_item_call label="Przesuń Geometrię Postaci" name="Toggle Character Geometry"/>
- <menu_item_check label="Pozwól na Zaznaczanie Awatarów" name="Allow Select Avatar"/>
+ <menu label="Testy postaci" name="Character Tests">
+ <menu_item_call label="Przesuń geometrię postaci" name="Toggle Character Geometry"/>
+ <menu_item_check label="Pozwól na zaznaczanie awatarów" name="Allow Select Avatar"/>
</menu>
- <menu_item_call label="Powrót do Domyślnych Parametrów" name="Force Params to Default"/>
- <menu_item_check label="Info o Animacji" name="Animation Info"/>
- <menu_item_check label="Wolne Animacje" name="Slow Motion Animations"/>
- <menu_item_check label="Wyłącz Poziom Detalu" name="Disable LOD"/>
- <menu_item_check label="Pokaż Szczegóły Kolizji" name="Show Collision Skeleton"/>
- <menu_item_check label="Wyświetl Cel Aganta" name="Display Agent Target"/>
- <menu_item_call label="Debugowanie Tekstur Awatara" name="Debug Avatar Textures"/>
+ <menu_item_call label="Powrót do domyślnych parametrów" name="Force Params to Default"/>
+ <menu_item_check label="Info o animacji" name="Animation Info"/>
+ <menu_item_check label="Wolne animacje" name="Slow Motion Animations"/>
+ <menu_item_check label="Wyłącz poziom detalu" name="Disable LOD"/>
+ <menu_item_check label="Pokaż szczegóły kolizji" name="Show Collision Skeleton"/>
+ <menu_item_check label="Wyświetl cel agenta" name="Display Agent Target"/>
+ <menu_item_call label="Debugowanie tekstur awatara" name="Debug Avatar Textures"/>
</menu>
<menu_item_check label="Tekstury HTTP" name="HTTP Textures"/>
<menu_item_check label="Aktywacja okna konsoli podczas następnego uruchomienia" name="Console Window"/>
- <menu_item_check label="Pokaż Menu Administratora" name="View Admin Options"/>
- <menu_item_call label="Uzyskaj Status Administratora" name="Request Admin Options"/>
- <menu_item_call label="Opuść Status Administratora" name="Leave Admin Options"/>
+ <menu_item_check label="Pokaż menu administratora" name="View Admin Options"/>
+ <menu_item_call label="Uzyskaj status administratora" name="Request Admin Options"/>
+ <menu_item_call label="Opuść status administratora" name="Leave Admin Options"/>
</menu>
<menu label="Administrator" name="Admin">
<menu label="Object">
- <menu_item_call label="Weź Kopię" name="Take Copy"/>
- <menu_item_call label="Reset Właściciela" name="Force Owner To Me"/>
- <menu_item_call label="Reset Przyzwolenia Właściciela" name="Force Owner Permissive"/>
+ <menu_item_call label="Weź kopię" name="Take Copy"/>
+ <menu_item_call label="Reset właściciela" name="Force Owner To Me"/>
+ <menu_item_call label="Reset przyzwolenia właściciela" name="Force Owner Permissive"/>
<menu_item_call label="Usuń" name="Delete"/>
<menu_item_call label="Zablokuj" name="Lock"/>
</menu>
<menu label="Posiadłość" name="Parcel">
- <menu_item_call label="Reset Właściciela" name="Owner To Me"/>
- <menu_item_call label="Ustawienia Treści Lindenów" name="Set to Linden Content"/>
- <menu_item_call label="Odzyskaj Posiadłość Publiczną" name="Claim Public Land"/>
+ <menu_item_call label="Reset właściciela" name="Owner To Me"/>
+ <menu_item_call label="Ustawienia treści Lindenów" name="Set to Linden Content"/>
+ <menu_item_call label="Odzyskaj posiadłość publiczną" name="Claim Public Land"/>
</menu>
<menu label="Region" name="Region">
- <menu_item_call label="Zachowaj Tymczasowo BazÄ™ Asset" name="Dump Temp Asset Data"/>
- <menu_item_call label="Zachowaj Ustawienie Regionu" name="Save Region State"/>
+ <menu_item_call label="Zachowaj tymczasowo bazÄ™ asset" name="Dump Temp Asset Data"/>
+ <menu_item_call label="Zachowaj ustawienie Regionu" name="Save Region State"/>
</menu>
- <menu_item_call label="Boskie Nadzędzia" name="God Tools"/>
+ <menu_item_call label="Boskie narzędzia" name="God Tools"/>
</menu>
</menu_bar>
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
new file mode 100644
index 0000000000..b31949a098
--- /dev/null
+++ b/indra/newview/skins/default/xui/pl/menu_wearable_list_item.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<context_menu name="Outfit Wearable Context Menu">
+ <menu_item_call label="ZastÄ…p" name="wear_replace"/>
+ <menu_item_call label="Załóż" name="wear_wear"/>
+ <menu_item_call label="Dodaj" name="wear_add"/>
+ <menu_item_call label="Zdejmij/Odłącz" name="take_off_or_detach"/>
+ <menu_item_call label="Odłącz" name="detach"/>
+ <context_menu label="Dołącz do" name="wearable_attach_to"/>
+ <context_menu label="Dołącz do załączników HUD" name="wearable_attach_to_hud"/>
+ <menu_item_call label="Zdejmij" name="take_off"/>
+ <menu_item_call label="Edytuj" name="edit"/>
+ <menu_item_call label="Profil obiekty" name="object_profile"/>
+ <menu_item_call label="Pokaż oryginalny" name="show_original"/>
+</context_menu>
diff --git a/indra/newview/skins/default/xui/pl/menu_wearing_gear.xml b/indra/newview/skins/default/xui/pl/menu_wearing_gear.xml
new file mode 100644
index 0000000000..4930bd7540
--- /dev/null
+++ b/indra/newview/skins/default/xui/pl/menu_wearing_gear.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="Gear Wearing">
+ <menu_item_call label="Edytuj strój" name="edit"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/pl/menu_wearing_tab.xml b/indra/newview/skins/default/xui/pl/menu_wearing_tab.xml
new file mode 100644
index 0000000000..6ee55133fe
--- /dev/null
+++ b/indra/newview/skins/default/xui/pl/menu_wearing_tab.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<context_menu name="Wearing">
+ <menu_item_call label="Edytuj strój" name="edit"/>
+</context_menu>
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 ae860249bb..7213b26165 100644
--- a/indra/newview/skins/default/xui/pl/mime_types_mac.xml
+++ b/indra/newview/skins/default/xui/pl/mime_types_mac.xml
@@ -19,7 +19,7 @@
To miejsce posiada zawartość filmową
</tooltip>
<playtip name="movie_playtip">
- OglÄ…daj Film
+ OglÄ…daj film
</playtip>
</widgetset>
<widgetset name="image">
@@ -46,7 +46,7 @@
</widgetset>
<scheme name="rtsp">
<label name="rtsp_label">
- Synchroniczne Strumienie Medialne
+ Synchroniczne strumienie mediów
</label>
</scheme>
<mimetype name="blank">
@@ -111,7 +111,7 @@
</mimetype>
<mimetype name="application/xhtml+xml">
<label name="application/xhtml+xml_label">
- Strona Internetowa (XHTML)
+ Strona internetowa (XHTML)
</label>
</mimetype>
<mimetype name="application/x-director">
@@ -171,7 +171,7 @@
</mimetype>
<mimetype name="text/html">
<label name="text/html_label">
- Strona Internetowa
+ Strona internetowa
</label>
</mimetype>
<mimetype name="text/plain">
diff --git a/indra/newview/skins/default/xui/pl/notifications.xml b/indra/newview/skins/default/xui/pl/notifications.xml
index 12d68ed30e..7fcd7b5e04 100644
--- a/indra/newview/skins/default/xui/pl/notifications.xml
+++ b/indra/newview/skins/default/xui/pl/notifications.xml
@@ -67,8 +67,8 @@ Szczegóły błędu: Błąd o nazwie &apos;[_NAME]&apos; nie został odnaleziony
[MESSAGE]
<usetemplate name="okcancelbuttons" notext="Anuluj" yestext="Tak"/>
</notification>
- <notification name="BadInstallation">
- Podczas aktualizacji [APP_NAME] wystąpił błąd. Proszę odwiedzić stronę [http://get.secondlife.com download the latest version] by ściągnąć najnowszą wersje klienta.
+ <notification name="BadInstallation">
+ Podczas aktualizacji [APP_NAME] wystąpił błąd. Proszę odwiedzić stronę [http://get.secondlife.com pobierz najnowsza wersję] aby ściągnąć ostatnią wersję klienta.
<usetemplate name="okbutton" yestext="OK"/>
</notification>
<notification name="LoginFailedNoNetwork">
@@ -78,7 +78,7 @@ Sprawdź stan swojego połączenia sieciowego.
<usetemplate name="okbutton" yestext="OK"/>
</notification>
<notification name="MessageTemplateNotFound">
- Wzór komunikatu dla [PATH] nie odnaleziony.
+ Wzór komunikatu dla [PATH] nie został odnaleziony.
<usetemplate name="okbutton" yestext="OK"/>
</notification>
<notification name="WearableSave">
@@ -103,7 +103,7 @@ Wybierz pojedynczy obiekt i spróbuj jeszcze raz.
</notification>
<notification name="SaveClothingBodyChanges">
Zapisać wszystkie zmiany dotyczące ubrania/cześci ciała?
- <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Nie Zapisuj" yestext="Zapisz"/>
+ <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Nie zapisuj" yestext="Zapisz"/>
</notification>
<notification name="FriendsAndGroupsOnly">
Osoby spoza listy znajomych, których rozmowy głosowe i IM są ignorowane, nie wiedzą o tym.
@@ -128,14 +128,14 @@ Czy chcesz dać prawa modyfikacji wybranym osobom?
<usetemplate name="okcancelbuttons" notext="Nie" yestext="Tak"/>
</notification>
<notification name="UnableToCreateGroup">
- Założenie grupy niemożliwe.
+ Założenie grupy nie jest możliwe.
[MESSAGE]
<usetemplate name="okbutton" yestext="OK"/>
</notification>
<notification name="PanelGroupApply">
[NEEDS_APPLY_MESSAGE]
[WANT_APPLY_MESSAGE]
- <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Ignoruj Zmiany" yestext="Zastosuj Zmiany"/>
+ <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Ignoruj zmiany" yestext="Zastosuj zmiany"/>
</notification>
<notification name="MustSpecifyGroupNoticeSubject">
Aby wysłać ogłoszenie do grupy musisz nadać mu tytuł.
@@ -181,7 +181,7 @@ Chcesz kontynuować?
<notification name="JoinGroupNoCost">
Dołączasz do grupy [NAME].
Czy chcesz kontynuować?
- <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="Zaakceptuj"/>
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="Akceptuj"/>
</notification>
<notification name="JoinGroupCannotAfford">
Członkostwo w tej grupie kosztuje [COST]L$
@@ -272,7 +272,7 @@ Skrypty muszą pozostać aktywne dla prawidłowego działania broni.
<notification name="MultipleFacesSelected">
Obecnie zaznaczono wiele powierzchni.
Jeśli działanie będzie kontynuowane, oddzielne media będą ustawione na wielu powierzchniach obiektu.
-W celu umieszczenia mediów tylko na jednej powierzchni skorzystaj z Wybierz Powierzchnię i kliknij na wybranej powierzchni obiektu oraz kliknij Dodaj.
+W celu umieszczenia mediów tylko na jednej powierzchni skorzystaj z Wybierz powierzchnię i kliknij na wybranej powierzchni obiektu oraz kliknij Dodaj.
<usetemplate ignoretext="Media zostanÄ… ustawione na wielu zaznaczonych powierzchniach" name="okcancelignore" notext="Anuluj" yestext="OK"/>
</notification>
<notification name="MustBeInParcel">
@@ -322,6 +322,9 @@ Limit [MAX_ATTACHMENTS] załączników został przekroczony. Proszę najpierw od
Czy chcesz przejść na stronę www.secondlife.com by założyć konto?
<usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
</notification>
+ <notification name="InvalidCredentialFormat">
+ Wpisz imię i nazwisko Twojego awatara w pole Użytkownika a następnie zaloguj się ponownie.
+ </notification>
<notification name="AddClassified">
Ogłoszenia reklamowe ukazują się w zakładce Reklama w wyszukiwarce (Szukaj) oraz na [http://secondlife.com/community/classifieds secondlife.com] przez tydzień.
Napisz treść swojej reklamy, kliknij Zamieść by dodać katalogu ogłoszeń.
@@ -340,15 +343,19 @@ Czy na pewno chcesz kontynuować?
<usetemplate ignoretext="Potwierdź przed usunięciem mediów z obiektu" name="okcancelignore" notext="Nie" yestext="Tak"/>
</notification>
<notification name="ClassifiedSave">
- Zapisać zmiany w Reklamie [NAME]?
+ Zapisać zmiany w reklamie [NAME]?
<usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Nie Zapisuj" yestext="Zapisz"/>
</notification>
<notification name="ClassifiedInsufficientFunds">
- Nie posiadasz wystarczających środków aby dodać Reklamę.
+ Nie posiadasz wystarczających środków aby dodać reklamę.
<usetemplate name="okbutton" yestext="OK"/>
</notification>
<notification name="DeleteAvatarPick">
- Usunąć wybór [PICK] z kategorii Lubię?
+ Usuń zdjęcie &lt;nolink&gt;[PICK]&lt;/nolink&gt;?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
+ <notification name="DeleteOutfits">
+ Skasować wybrane stroje?
<usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
</notification>
<notification name="PromptGoToEventsPage">
@@ -379,27 +386,27 @@ Pamiętaj: Opcja ta wyczyszcza bufor danych.
<usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
</notification>
<notification name="SaveChanges">
- Zapisać Zmiany?
- <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Nie Zapisuj" yestext="Zapisz"/>
+ Zapisać zmiany?
+ <usetemplate canceltext="Anuluj" name="yesnocancelbuttons" notext="Nie zapisuj" yestext="Zapisz"/>
</notification>
<notification name="GestureSaveFailedTooManySteps">
- Nie można zapisać gestu.
-Ten gest ma zbyt wiele etapów.
+ Nie można zapisać gesturki.
+Ta gesturka ma zbyt wiele etapów.
Usuń kilka etapów i zapisz jeszcze raz.
</notification>
<notification name="GestureSaveFailedTryAgain">
- Zapis gestu nie powiódł się. Spróbuj jeszcze raz za kilka minut.
+ Zapis gesturki nie powiódł się. Spróbuj jeszcze raz za kilka minut.
</notification>
<notification name="GestureSaveFailedObjectNotFound">
- Nie można zapisać gestu ponieważ obiekt lub szafa powiązanego obiektu nie został znaleziony.
+ Nie można zapisać gesturki ponieważ obiekt lub szafa powiązanego obiektu nie został znaleziony.
Obiekt może znajdować się zbyt daleko albo został usunięty.
</notification>
<notification name="GestureSaveFailedReason">
- Nie można zapisać gestu z następującego powodu: [REASON]. Spróbuj zapisać jeszcze raz później.
+ Nie można zapisać gesturki z następującego powodu: [REASON]. Spróbuj zapisać jeszcze raz później.
</notification>
<notification name="SaveNotecardFailObjectNotFound">
Nie można zapisać notki ponieważ obiekt lub szafa powiązanego obiektu nie został znaleziony.
-Obiekt może znajdować się zbyt daleko albo został usuniety.
+Obiekt może znajdować się zbyt daleko albo został usunięty.
</notification>
<notification name="SaveNotecardFailReason">
Nie można zapisać notki z następującego powodu: [REASON]. Spróbuj zapisać jeszcze raz później.
@@ -415,19 +422,19 @@ Czy chcesz załadować ostatnią wersję zapisaną na serwerze?
</notification>
<notification name="SaveScriptFailObjectNotFound">
Nie można zapisać skryptu ponieważ obiekt w którym się zawiera nie został znaleziony.
-Obiekt może znajdować się zbyt daleko albo został usuniety.
+Obiekt może znajdować się zbyt daleko albo został usunięty.
</notification>
<notification name="SaveBytecodeFailReason">
Nie można zapisać skompilowanego skryptu z następującego powodu: [REASON]. Spróbuj zapisać jeszcze raz póżniej.
</notification>
<notification name="StartRegionEmpty">
Oops, Twoje miejsce startu nie zostało określone.
-Wpisz proszÄ™ nazwÄ™ regionu w lokalizacjÄ™ startu w polu Lokalizacja Startu lub wybierz Moja Ostatnia Lokalizacja albo Miejsce Startu.
+Wpisz proszÄ™ nazwÄ™ regionu w lokalizacjÄ™ startu w polu Lokalizacja Startu lub wybierz Moja ostatnia lokalizacja albo Miejsce Startu.
<usetemplate name="okbutton" yestext="OK"/>
</notification>
<notification name="CouldNotStartStopScript">
Nie można uruchomić lub zatrzymać skryptu ponieważ obiekt w którym się zawiera nie został znaleziony.
-Obiekt może znajdować się zbyt daleko albo został usuniety.
+Obiekt może znajdować się zbyt daleko albo został usunięty.
</notification>
<notification name="CannotDownloadFile">
Nie można załadować pliku
@@ -446,7 +453,7 @@ Po więcej info, odwiedź stronę [_URL] .
</notification>
<notification name="UnknownGPU">
Twój system jest wyposażony w kartę graficzną, która nie jest rozpoznana przez [APP_NAME].
-Zdarza się to częstow w przypadku nowego sprzętu, który nie był testowany z [APP_NAME]. Prawdopodobnie wystarczy dostosowanie ustawień grafiki aby działanie było poprawne.
+Zdarza się to często w przypadku nowego sprzętu, który nie był testowany z [APP_NAME]. Prawdopodobnie wystarczy dostosowanie ustawień grafiki aby działanie było poprawne.
(Ja &gt; Właściwości &gt; Grafika).
<form name="form">
<ignore name="ignore" text="Karta graficzna nie została zidentyfikowana."/>
@@ -454,7 +461,7 @@ Zdarza się to częstow w przypadku nowego sprzętu, który nie był testowany z
</notification>
<notification name="DisplaySettingsNoShaders">
[APP_NAME] zawiesił się podczas inicjalizacji sterowników graficznych.
-Jakość grafiki została zmniejszona - może pomoże.
+Jakość grafiki została zmniejszona - może to pomóc.
Pewne funkcje graficzne zostały wyłączone. Zalecamy aktualizcje sterowników graficznych.
Możesz podnieść jakość grafiki pod Ustawienia &gt; Grafika.
</notification>
@@ -462,8 +469,9 @@ Możesz podnieść jakość grafiki pod Ustawienia &gt; Grafika.
Region [REGION] nie pozwala na formowanie powierzchni ziemi.
</notification>
<notification name="CannotCopyWarning">
- Nie masz praw do kopiowania tego obiektu. Ten obiek zniknie z Twojej szafy jeżeli go dasz innej osobie.
-Na pewno chcesz podarować ten obiekt?
+ Nie masz pozwolenia na kopiowanie następujących obiektów:
+[ITEMS]
+i stracisz je w momencie przekazania. Czy na pewno chcesz oddać te obiekty?
<usetemplate name="okcancelbuttons" notext="Nie" yestext="Tak"/>
</notification>
<notification name="CannotGiveItem">
@@ -583,6 +591,10 @@ Oczekiwana - [VALIDS]
<notification name="CannotEncodeFile">
Kodowanie pliku: [FILE] nie powidło się.
</notification>
+ <notification name="CorruptedProtectedDataStore">
+ Nie można wpisać Twojego imienia użytkownika ani hasła. To może się zdarzyć kiedy zmieniasz ustawienia sieci.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
<notification name="CorruptResourceFile">
Skorumpowany plik zasobów: [FILE]
</notification>
@@ -903,6 +915,36 @@ Zaproponować znajomość [NAME]?
<button name="Cancel" text="Anuluj"/>
</form>
</notification>
+ <notification label="Zapisz strój" name="SaveOutfitAs">
+ Zapisz to co noszę jako nowy strój:
+ <form name="form">
+ <input name="message">
+ [DESC] (nowe)
+ </input>
+ <button name="Offer" text="OK"/>
+ <button name="Cancel" text="Anuluj"/>
+ </form>
+ </notification>
+ <notification label="Zapisz część stroju" name="SaveWearableAs">
+ Zapisz obiekt w mojej Szafie jako:
+ <form name="form">
+ <input name="message">
+ [DESC] (nowy)
+ </input>
+ <button name="Offer" text="OK"/>
+ <button name="Cancel" text="Anuluj"/>
+ </form>
+ </notification>
+ <notification label="Zmień nazwę stroju" name="RenameOutfit">
+ Nowa nazwa stroju:
+ <form name="form">
+ <input name="new_name">
+ [NAME]
+ </input>
+ <button name="Offer" text="OK"/>
+ <button name="Cancel" text="Anuluj"/>
+ </form>
+ </notification>
<notification name="RemoveFromFriends">
Chcesz usunąć [FIRST_NAME] [LAST_NAME] z listy Twoich znajomych?
<usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
@@ -930,13 +972,19 @@ ze wszystkich posiadłości w tym symulatorze?
<usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
</notification>
<notification name="BlankClassifiedName">
- Musisz nadać tytuł Twojej Reklamie.
+ Musisz nadać tytuł Twojej reklamie.
</notification>
<notification name="MinClassifiedPrice">
Minimalna cena za publikacjÄ™ wynosi [MIN_PRICE]L$.
Wybierz wyższą cenę.
</notification>
+ <notification name="ConfirmItemDeleteHasLinks">
+ Co najmiej jeden z elementów, które masz posiada połączone z nim obiekty. Jeśli go usuniesz połączenia zostaną usunięte na stałe. Zaleca się usunięcie połączeń w pierwszej kolejności.
+
+Jesteś pewnien/pewna, że chcesz usunąć te elementy?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
+ </notification>
<notification name="ConfirmObjectDeleteLock">
Przynajmnie jeden z wybranych obiektów jest zablokowany.
@@ -1058,7 +1106,7 @@ Możesz normalnie używać [SECOND_LIFE], inni użytkownicy będą Cię widzieli
Jeżeli używasz [SECOND_LIFE] po raz pierwszy to musisz stworzyć konto żeby móc się zalogować.
Czy chcesz przejść na stronę [http://join.secondlife.com secondlife.com] żeby stworzyć nowe konto?
- <usetemplate name="okcancelbuttons" notext="Kontynuuj" yestext="Nowe Konto..."/>
+ <usetemplate name="okcancelbuttons" notext="Kontynuuj" yestext="Nowe konto..."/>
</notification>
<notification name="LoginPacketNeverReceived">
Problemy z połączeniem. Problem może być spowodowany Twoim połączeniem z Internetem albo może istnieć po stronie [SECOND_LIFE_GRID].
@@ -1079,6 +1127,42 @@ Wybierz awatara właściwej płci.
Ten wybór będzie można później zmienić.
<usetemplate name="okcancelbuttons" notext="Kobieta" yestext="Mężczyzna"/>
</notification>
+ <notification name="CantTeleportToGrid">
+ Nie można teleportować do [SLURL], ponieważ jest na innym gridzie ([GRID]) niż obecny grid ([CURRENT_GRID]). Proszę zamknąć przeglądarkę i spróbować ponownie.
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="GeneralCertificateError">
+ Połączenie z serwerem nie mogło zostać nawiązane.
+[REASON]
+
+SubjectName: [SUBJECT_NAME_STRING]
+IssuerName: [ISSUER_NAME_STRING]
+Valid From: [VALID_FROM]
+Valid To: [VALID_TO]
+MD5 Fingerprint: [SHA1_DIGEST]
+SHA1 Fingerprint: [MD5_DIGEST]
+Key Usage: [KEYUSAGE]
+Extended Key Usage: [EXTENDEDKEYUSAGE]
+Subject Key Identifier: [SUBJECTKEYIDENTIFIER]
+ <usetemplate name="okbutton" yestext="OK"/>
+ </notification>
+ <notification name="TrustCertificateError">
+ Wydawca certyfikatu dla tego serwera nie jest znany.
+
+Informacje o certyfikacie:
+SubjectName: [SUBJECT_NAME_STRING]
+IssuerName: [ISSUER_NAME_STRING]
+Valid From: [VALID_FROM]
+Valid To: [VALID_TO]
+MD5 Fingerprint: [SHA1_DIGEST]
+SHA1 Fingerprint: [MD5_DIGEST]
+Key Usage: [KEYUSAGE]
+Extended Key Usage: [EXTENDEDKEYUSAGE]
+Subject Key Identifier: [SUBJECTKEYIDENTIFIER]
+
+Czy chcesz zaufać temu wydawcy?
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="Zaufaj"/>
+ </notification>
<notification name="NotEnoughCurrency">
[NAME] [PRICE]L$ Masz za mało L$.
</notification>
@@ -1139,14 +1223,14 @@ Zamień teksturę [TEXTURE_NUM] na 24-o bitową teksturę o wymiarze 512x512 lub
[MAX_AGENTS] [LIST_TYPE] limit przekroczony o [NUM_EXCESS].
</notification>
<notification name="MaxAllowedGroupsOnRegion">
- Możesz mieć maksymalnie [MAX_GROUPS] Dozwolonych Grup.
+ Możesz mieć maksymalnie [MAX_GROUPS] dozwolonych grup.
<usetemplate name="okcancelbuttons" notext="Anuluj" yestext="Ustal"/>
</notification>
<notification name="MaxManagersOnRegion">
- Możesz mieć maksymalnie [MAX_MANAGER] Zarządców Majątku.
+ Możesz mieć maksymalnie [MAX_MANAGER] zarządców Majątku.
</notification>
<notification name="OwnerCanNotBeDenied">
- Nie możesz dodać właściciela majątku do listy &apos;Nieporządanych Rezydentów (banów)&apos; majątku.
+ Nie możesz dodać właściciela majątku do listy &apos;Niepożądanych Rezydentów (banów)&apos; majątku.
</notification>
<notification name="CanNotChangeAppearanceUntilLoaded">
Nie możesz zmienić wyglądu podczas ładowania ubrań i kształtów.
@@ -1155,7 +1239,7 @@ Zamień teksturę [TEXTURE_NUM] na 24-o bitową teksturę o wymiarze 512x512 lub
Tytuł Twojej reklamy musi zaczynać się od litery (A-Z) albo cyfry. Znaki przestankowe są niedozwolone.
</notification>
<notification name="CantSetBuyObject">
- Nie możesz wybrać Kup Obiekt ponieważ obiekt nie jest na sprzedaż.
+ Nie możesz wybrać Kup obiekt ponieważ obiekt nie jest na sprzedaż.
Wybierz obiekt na sprzedaż i spróbuj jeszcze raz.
</notification>
<notification name="FinishedRawDownload">
@@ -1223,7 +1307,7 @@ Pobrać i zapisać w folderze Aplikacji?
<usetemplate name="okcancelbuttons" notext="Kontynuuj" yestext="Załaduj"/>
</notification>
<notification name="DeedObjectToGroup">
- Przekazanie tego obiektu spowoduje, że Grupa:
+ Przekazanie tego obiektu spowoduje, że grupa:
* Otrzyma L$ zapłacone temu obiektowi
<usetemplate ignoretext="Proszę potwierdzić decyzję przed przepisaniem obiektu do grupy" name="okcancelignore" notext="Anuluj" yestext="Przekaż"/>
</notification>
@@ -1245,15 +1329,15 @@ Pobrać i zapisać w folderze Aplikacji?
</notification>
<notification name="WebLaunchPublicIssue">
Odwiedź [SECOND_LIFE] katalog publicznych problemów, gdzie możesz zgłaszać błędy i inne problemy.
- <usetemplate ignoretext="Uruchom przeglądarkę internetową by wysłać Błędy Klienta" name="okcancelignore" notext="Anuluj" yestext="OK"/>
+ <usetemplate ignoretext="Uruchom przeglądarkę internetową by wysłać Błędy klienta" name="okcancelignore" notext="Anuluj" yestext="OK"/>
</notification>
<notification name="WebLaunchSupportWiki">
Otwórz oficjalny blog Lindenów żeby zobaczyć nowe wiadomości i informacje.
<usetemplate ignoretext="Uruchom przeglądarkę internetową by zobaczyć blog" name="okcancelignore" notext="Anuluj" yestext="OK"/>
</notification>
<notification name="WebLaunchLSLGuide">
- Czy chcesz otworzyć samouczek Języka Skryptowania?
- <usetemplate ignoretext="Uruchom przeglądarkę internetową by samouczek Języka Skryptowania" name="okcancelignore" notext="Anuluj" yestext="OK"/>
+ Czy chcesz otworzyć samouczek Języka skryptowania?
+ <usetemplate ignoretext="Uruchom przeglądarkę internetową by samouczek Języka skryptowania" name="okcancelignore" notext="Anuluj" yestext="OK"/>
</notification>
<notification name="WebLaunchLSLWiki">
Czy napewno chcesz odwiedzić portal LSL Portal?
@@ -1301,7 +1385,7 @@ Chcesz opuścić grupę?
Tryb Pracy jest włączony.
Czat i IM będą ukryte. Wysłane IM będą otrzymywały Twoją odpowiedź Trybu Pracy. Propozycje teleportacji będą odrzucone.
Dodatkowo, wszystkie podarowane dla Ciebie obiekty będą automatycznie zapisywane w folderze &quot;Kosz&quot; w Twojej szafie.
- <usetemplate ignoretext="Status zmieniony na Tryb Pracy" name="okignore" yestext="OK"/>
+ <usetemplate ignoretext="Status zmieniony na Tryb pracy" name="okignore" yestext="OK"/>
</notification>
<notification name="JoinedTooManyGroupsMember">
Należysz już do maksymalnej ilości grup. Opuść proszę przynajmniej jedną grupę żeby przyjąć członkostwo w tej grupie, albo odmów.
@@ -1382,7 +1466,11 @@ Dodatkowo, wszystkie podarowane dla Ciebie obiekty będą automatycznie zapisywa
</notification>
<notification name="TeleportToClassified">
Teleportuj do [CLASSIFIED]?
- <usetemplate ignoretext="Potwierdź, że chcesz teleportować się do lokalizacji z Reklamy" name="okcancelignore" notext="Anuluj" yestext="Teleportuj"/>
+ <usetemplate ignoretext="Potwierdź, że chcesz teleportować się do lokalizacji z reklamy" name="okcancelignore" notext="Anuluj" yestext="Teleportuj"/>
+ </notification>
+ <notification name="TeleportToHistoryEntry">
+ Teleportuj do [HISTORY_ENTRY]?
+ <usetemplate ignoretext="Potwierdź teleportację do lokalizacji z historii" name="okcancelignore" notext="Anuluj" yestext="Teleportuj"/>
</notification>
<notification label="Wiadomość do Wszystkich w Twoim Majątku" name="MessageEstate">
Wpisz krótką wiadomość która zostanie wysłana do wszystkich osób w Twoim majątku.
@@ -1401,7 +1489,7 @@ Kontynuować?
<usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
</notification>
<notification label="Zmiana Dostępu do Majątku Lindenów" name="ChangeLindenAccess">
- Dokonujesz zmiany w liście dostępu Regionu Głównego należącego do Lindenów (Regiony Główne, Teen Grid, Orientacja).
+ Dokonujesz zmiany w liście dostępu Regionu głównego należącego do Lindenów (Regiony Główne, Teen Grid, Orientacja).
Żądana operacja jest wyjątkowo niebezpieczna dla wszystkich Rezydentów przebywających w regionie i powinna być używana wyłącznie w celu zablokowania opcji pozwalającej na przeniesienie obiektów/L$ do/z sieci.
Dodatkowo, zmiany dokonane w Regionie Głównym mogą spowodować problemy przestrzeni serwerowej innych regionów.
@@ -1468,15 +1556,18 @@ Skorzystaj z [SECOND_LIFE]:Pomoc by uzyskać więcej informacji na temat dostęp
Ze względu na Twój wiek, nie jesteś uprawniony do przebywania w tym regionie.
</notification>
<notification name="RegionEntryAccessBlocked_Change">
- Ze względu na Twój wiek, nie jesteś uprawniony do przebywania w tym regionie.
+ Nie masz zezwolenia na przebywanie w tym Regionie z powodu Twojego statusu ustawień wieku.
-Możesz wybrać &apos;Zmień Ustawienia&apos; by dokonać zmian w ustawieniach Twojego wieku by uzyskać dostęp do regionu. Wówczas będziesz w stanie znaleźć oraz mieć dostęp do [REGIONMATURITY] treści. Jeżeli zdecydujesz się na powrót do poprzednich ustawień, wybierz Ja &gt; Ustawienia &gt; Główne.
+W celu uzyskania dostępu do tego regiony zmień proszę swój status ustawień wieku. Będziesz mógł/mogła szukać i mieć dostęp do treści [REGIONMATURITY]. W celu cofnięcia zmian wybierz z menu Ja &gt; Ustawienia &gt; Ogólne.
<form name="form">
- <button name="OK" text="Zmień Ustawienia"/>
+ <button name="OK" text="Zmień ustawienia"/>
<button default="true" name="Cancel" text="Zamknij"/>
<ignore name="ignore" text="Moje ustawienia wieku nie dopuszczajÄ… do regionu"/>
</form>
</notification>
+ <notification name="PreferredMaturityChanged">
+ Twoja obecna klasyfikacja wieku to [RATING].
+ </notification>
<notification name="LandClaimAccessBlocked">
W związku ze statusem ustawień Twojego wieku, nie możesz odzyskać tej posiadłości. Możesz potrzebować weryfikacji wieku bądź instalacji najnowszej wersji klienta.
@@ -1602,7 +1693,7 @@ Wybierz pojedynczy obiekt i spróbuj jeszcze raz.
Zostaniesz właścicielem tego obiektu z następującymi prawami:
Modyfikacje: [MODIFYPERM]
Kopiowanie: [COPYPERM]
- Odsprzedawanie i Oddawanie: [RESELLPERM]
+ Odsprzedawanie i oddawanie: [RESELLPERM]
<usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
</notification>
<notification name="BuyOriginalNoOwner">
@@ -1610,7 +1701,7 @@ Zostaniesz właścicielem tego obiektu z następującymi prawami:
Zostaniesz właścicielem tego obiektu z następującymi prawami:
Modyfikacje: [MODIFYPERM]
Kopiowanie: [COPYPERM]
- Odsprzedawanie i Oddawanie: [RESELLPERM]
+ Odsprzedawanie i oddawanie: [RESELLPERM]
<usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
</notification>
<notification name="BuyCopy">
@@ -1618,7 +1709,7 @@ Zostaniesz właścicielem tego obiektu z następującymi prawami:
Obiekt zostanie skopiowany do Twojej szafy z następującymi prawami:
Modyfikacje: [MODIFYPERM]
Kopiowanie: [COPYPERM]
- Odsprzedawanie i Oddawanie: [RESELLPERM]
+ Odsprzedawanie i oddawanie: [RESELLPERM]
<usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
</notification>
<notification name="BuyCopyNoOwner">
@@ -1626,7 +1717,7 @@ Obiekt zostanie skopiowany do Twojej szafy z następującymi prawami:
Obiekt zostanie skopiowany do Twojej szafy z następującymi prawami:
Modyfikacje: [MODIFYPERM]
Kopiowanie: [COPYPERM]
- Odsprzedawanie i Oddawanie: [RESELLPERM]
+ Odsprzedawanie i oddawanie: [RESELLPERM]
<usetemplate name="okcancelbuttons" notext="Anuluj" yestext="OK"/>
</notification>
<notification name="BuyContents">
@@ -1679,7 +1770,7 @@ Przenieść obiekty szafy?
<usetemplate ignoretext="Uprzedź przed przeniesieniem zawartości niekopiowalnej z obiektu, która może uszkodzić skrypty obiektu" name="okcancelignore" notext="Anuluj" yestext="OK"/>
</notification>
<notification name="ClickActionNotPayable">
- Uwaga: Opcja Zapłać Obiektowi została wybrana, ale żeby ta opcja działała musi być dodany skrypt z funkcją money().
+ Uwaga: Opcja Zapłać obiektowi została wybrana, ale żeby ta opcja działała musi być dodany skrypt z funkcją money().
<form name="form">
<ignore name="ignore" text="Opcja Zapłać Obiektowi została aktywowana podczas budowania obiektów bez skryptu z funkcją money()."/>
</form>
@@ -1745,18 +1836,18 @@ Linden Lab
Chcesz go zamienić na wybrany obiekt?
<form name="form">
<ignore name="ignore" save_option="true" text="Obecnie masz już dołączony obiekt do tej części Twojego ciała.Chcesz go zamienić na wybrany obiekt?"/>
- <button ignore="Zamień Automatycznie" name="Yes" text="OK"/>
- <button ignore="Nie Zamieniaj" name="No" text="Anuluj"/>
+ <button ignore="Zamień automatycznie" name="Yes" text="OK"/>
+ <button ignore="Nie zamieniaj" name="No" text="Anuluj"/>
</form>
</notification>
<notification label="Ostrzeżenie Trybu Pracy" name="BusyModePay">
- Jesteś w Trybie Pracy co oznacza, że nie dostaniesz żadnych obiektów w zamian za tą opłatę.
+ Jesteś w Trybie pracy co oznacza, że nie dostaniesz żadnych obiektów w zamian za tą opłatę.
-Chcesz wyłączyć Tryb Pracy przed zakończeniem tej tranzakcji?
+Chcesz wyłączyć Tryb pracy przed zakończeniem tej tranzakcji?
<form name="form">
<ignore name="ignore" save_option="true" text="Jesteś w Trybie Pracy co oznacza, że nie dostaniesz żadnych obiektów w zamian za tą opłatę. Chcesz wyłączyć Tryb Pracy przed zakończeniem tej transakcji?"/>
- <button ignore="Zawsz wyłączaj Tryb Pracy" name="Yes" text="OK"/>
- <button ignore="Nie wyłączaj Trybu Pracy" name="No" text="Anuluj"/>
+ <button ignore="Zawsz wyłączaj tryb pracy" name="Yes" text="OK"/>
+ <button ignore="Nie wyłączaj trybu pracy" name="No" text="Anuluj"/>
</form>
</notification>
<notification name="ConfirmDeleteProtectedCategory">
@@ -1780,8 +1871,8 @@ Chcesz wyłączyć Tryb Pracy przed zakończeniem tej tranzakcji?
<usetemplate name="okcancelbuttons" notext="Anuluj" yestext="Tak"/>
</notification>
<notification name="ConfirmEmptyLostAndFound">
- Na pewno chcesz permanentnie usunąć zawartość Twojego foldera Zgubione i Odnalezione?
- <usetemplate ignoretext="Potwierdź przed usunięciem zawartości foldera Zagubione i Odnalezione" name="okcancelignore" notext="Nie" yestext="Tak"/>
+ Na pewno chcesz permanentnie usunąć zawartość Twojego foldera Zgubione i odnalezione?
+ <usetemplate ignoretext="Potwierdź przed usunięciem zawartości foldera Zagubione i odnalezione" name="okcancelignore" notext="Nie" yestext="Tak"/>
</notification>
<notification name="CopySLURL">
Następujący link SLURL został skopiowany do schowka:
@@ -1807,14 +1898,14 @@ Zamieść go na stronie internetowej żeby umożliwić innym łatwy dostęp do t
Ten plik cyklu dziennego używa brakującego pliku nieba: [SKY].
</notification>
<notification name="PPSaveEffectAlert">
- Efekt Post-Procesu już istnieje. Chcesz zapisać nowy na jego miejsce?
+ Efekt post-procesu już istnieje. Chcesz zapisać nowy na jego miejsce?
<usetemplate name="okcancelbuttons" notext="Nie" yestext="Tak"/>
</notification>
<notification name="NewSkyPreset">
Nazwij nowe niebo.
<form name="form">
<input name="message">
- Nowe Ustawienie
+ Nowe ustawienie
</input>
<button name="OK" text="OK"/>
<button name="Cancel" text="Anuluj"/>
@@ -1827,7 +1918,7 @@ Zamieść go na stronie internetowej żeby umożliwić innym łatwy dostęp do t
Nazwij nowe ustawienie wody.
<form name="form">
<input name="message">
- Nowe Ustawienie
+ Nowe ustawienie
</input>
<button name="OK" text="OK"/>
<button name="Cancel" text="Anuluj"/>
@@ -1889,14 +1980,17 @@ Zamieść go na stronie internetowej żeby umożliwić innym łatwy dostęp do t
<notification name="SystemMessageTip">
[MESSAGE]
</notification>
+ <notification name="IMSystemMessageTip">
+ [MESSAGE]
+ </notification>
<notification name="Cancelled">
Anulowane
</notification>
<notification name="CancelledSit">
- Siadanie Anulowane
+ Siadanie anulowane
</notification>
<notification name="CancelledAttach">
- Dołączenie Anulowane
+ Dołączenie anulowane
</notification>
<notification name="ReplacedMissingWearable">
Barkujące ubranie/części ciała zastąpiono domyślnymi obiektami.
@@ -1933,7 +2027,7 @@ Zamieść go na stronie internetowej żeby umożliwić innym łatwy dostęp do t
Gesturka [NAME] nie znaleziony w bazie danych.
</notification>
<notification name="UnableToLoadGesture">
- Åadowanie gestu [NAME] nie powiodÅ‚o siÄ™.
+ Åadowanie gesturki [NAME] nie powiodÅ‚o siÄ™.
</notification>
<notification name="LandmarkMissing">
Miejsce (LM) nie znalezione w bazie danych.
@@ -1947,7 +2041,7 @@ Spróbuj jeszcze raz.
Ponieważ to ma wpływ na wpisywane hasło, możesz chcieć go wyłączyć.
</notification>
<notification name="NotecardMissing">
- Notka nie znaleziona w bazie danych.
+ Notka nie została znaleziona w bazie danych.
</notification>
<notification name="NotecardNoPermissions">
Nie masz pozwolenia na zobaczenie notki.
@@ -2037,7 +2131,7 @@ Spróbuj wybrać mniejszy obszar.
Pewne frazy podczas wyszukiwania zostały usunięte w związku z restrykcjami zawartymi w Standardach Społecznościowych (Community Standards).
</notification>
<notification name="NoContentToSearch">
- Proszę wybrać przynajmiej jeden z podanych rodzajów treści jaką zawiera region podczas wyszukiwania (&apos;PG&apos;, &apos;Mature&apos;, lub &apos;Adult&apos;).
+ Proszę wybrać przynajmiej jeden z podanych rodzajów treści jaką zawiera region podczas wyszukiwania (&apos;General&apos;, &apos;Moderate&apos;, lub &apos;Adult&apos;).
</notification>
<notification name="GroupVote">
[NAME] zaprasza do głosowania nad propozycją:
@@ -2054,7 +2148,7 @@ Spróbuj wybrać mniejszy obszar.
[MESSAGE]
</notification>
<notification name="EventNotification">
- Zawiadomienie o Imprezie:
+ Zawiadomienie o imprezie:
[NAME]
[DATE]
@@ -2073,12 +2167,12 @@ Spróbuj wybrać mniejszy obszar.
</form>
</notification>
<notification name="DeactivatedGesturesTrigger">
- Zablokowane gesty z jednakowym aktywowaniem:
+ Zablokowane gesturki z jednakowym aktywowaniem:
[NAMES]
</notification>
<notification name="NoQuickTime">
Wygląda na to, że QuickTime z Apple nie jest zainstalowany na Twoim komputerze.
-Jeżeli chcesz odtwarzać media na tej posiadłości które używają QuickTime idź do [http://www.apple.com/quicktime QuickTime site] i zainstaluj odtwarzacz.
+Jeżeli chcesz odtwarzać media na tej posiadłości które używają QuickTime idź do [http://www.apple.com/quicktime strona QuickTime] i zainstaluj odtwarzacz.
</notification>
<notification name="NoPlugin">
Nie znaleziono wtyczki mediów dla &quot;[MIME_TYPE]&quot; typu mime. Media tego typu będą niedostępne.
@@ -2228,15 +2322,6 @@ Spróbuj ponowanie za kilka minut.
<button name="Mute" text="Zablokuj"/>
</form>
</notification>
- <notification name="ObjectGiveItemUnknownUser">
- Obiekt [OBJECTFROMNAME] należący (właściciel nieznany) dał Ci [OBJECTTYPE]:
-[ITEM_SLURL]
- <form name="form">
- <button name="Keep" text="Zachowaj"/>
- <button name="Discard" text="Wyrzuć"/>
- <button name="Mute" text="Zablokuj"/>
- </form>
- </notification>
<notification name="UserGiveItem">
[NAME_SLURL] dał Ci [OBJECTTYPE]:
[ITEM_SLURL]
@@ -2260,9 +2345,9 @@ Spróbuj ponowanie za kilka minut.
</form>
</notification>
<notification name="TeleportOffered">
- [NAME] proponuje Ci teleportcjÄ™ do siebie:
+ [NAME_SLURL] proponuje Ci teleportacjÄ™ do siebie:
-[MESSAGE]
+[MESSAGE] - [MATURITY_STR] &lt;icon&gt;[MATURITY_ICON]&lt;/icon&gt;
<form name="form">
<button name="Teleport" text="Teleportuj"/>
<button name="Cancel" text="Anuluj"/>
@@ -2280,11 +2365,11 @@ Spróbuj ponowanie za kilka minut.
</form>
</notification>
<notification name="OfferFriendship">
- [NAME] proponuje Ci znajomość.
+ [NAME_SLURL] proponuje znajomość.
[MESSAGE]
-(Z zalożenia będzie widzić swój status online.)
+(Będziecie mogli widzieć swój status online)
<form name="form">
<button name="Accept" text="Zaakceptuj"/>
<button name="Decline" text="Odmów"/>
@@ -2480,11 +2565,26 @@ Wybierz Zaakceptuj żeby zacząć czat albo Odmów żeby nie przyjąć zaproszen
<notification name="VoiceLoginRetry">
Tworzymy kanał głosu dla Ciebie. Moze potrwać minutę.
</notification>
+ <notification name="VoiceEffectsExpired">
+ Subskrypcja jednego lub więcej z Voice Morph wygasła.
+[[URL] Kliknij tutaj] oby odnowić subskrypcję.
+ </notification>
+ <notification name="VoiceEffectsExpiredInUse">
+ Czas aktywności Voice Morph wygasł, normalne ustawienia Twojego głosu zostały zastosowane.
+[[URL] Kliknij tutaj] aby odnowić subskrypcję.
+ </notification>
+ <notification name="VoiceEffectsWillExpire">
+ Jedno lub więcej z Twoich Voice Morph wygaśnie za mniej niż [INTERVAL] dni.
+[[URL] Klinij tutaj] aby odnowić subskrypcję.
+ </notification>
+ <notification name="VoiceEffectsNew">
+ Nowe Voice Morph są dostępne!
+ </notification>
<notification name="Cannot enter parcel: not a group member">
Nie masz dostępu do posiadłości, nie należysz do właściwej grupy.
</notification>
<notification name="Cannot enter parcel: banned">
- Masz wzbroniny dostęp to tej posiadłości (ban).
+ Masz wzbroniony wstęp na tą posiadłości (ban).
</notification>
<notification name="Cannot enter parcel: not on access list">
Nie masz dostępu do posiadłości, nie jesteś na liście dostępu.
@@ -2545,6 +2645,95 @@ Zostaną zablokowane na kilka sekund dla bezpieczeństwa.
Wybrany przycisk nie może zostać wyświetlony w tej chwili.
Przycisk zostanie wyświetlony w przypadku dostatecznej ilości przestrzeni.
</notification>
+ <notification name="ShareNotification">
+ Zaznacz Rezydentów, z którymi chcesz się podzielić.
+ </notification>
+ <notification name="ShareItemsConfirmation">
+ Jesteś pewien/pewna, że chcesz udostępnić następujące obiekty:
+
+[ITEMS]
+
+następującym Rezydentom:
+
+[RESIDENTS]
+ <usetemplate name="okcancelbuttons" notext="Anuluj" yestext="Ok"/>
+ </notification>
+ <notification name="ItemsShared">
+ Obiekty zostały udostępnione.
+ </notification>
+ <notification name="DeedToGroupFail">
+ Przekazanie grupie nie powiodło się.
+ </notification>
+ <notification name="AvatarRezNotification">
+ ( [EXISTENCE] sekund w Second Life)
+Awatar &apos;[NAME]&apos; rozchmurzył się po [TIME] sekundach.
+ </notification>
+ <notification name="AvatarRezSelfBakedDoneNotification">
+ ( [EXISTENCE] sekund w Second Life)
+You finished baking your outfit after [TIME] seconds.
+ </notification>
+ <notification name="AvatarRezSelfBakedUpdateNotification">
+ ( [EXISTENCE] sekund w Second Life )
+Wysłano aktualizację wyglądu po [TIME] sekundach.
+[STATUS]
+ </notification>
+ <notification name="AvatarRezCloudNotification">
+ ( [EXISTENCE] sekund w Second Life )
+Awatar &apos;[NAME]&apos; stał się chmurą.
+ </notification>
+ <notification name="AvatarRezArrivedNotification">
+ ( [EXISTENCE] sekund w Second Life)
+Awatar &apos;[NAME]&apos; pojawił się.
+ </notification>
+ <notification name="AvatarRezLeftCloudNotification">
+ ( [EXISTENCE] sekund w Second Life )
+Awatar &apos;[NAME]&apos; pozostał [TIME] sekund chmurą.
+ </notification>
+ <notification name="AvatarRezEnteredAppearanceNotification">
+ ( [EXISTENCE] sekund w Second Life )
+Awatar &apos;[NAME]&apos; rozpoczÄ…Å‚ edycjÄ™ wyglÄ…du.
+ </notification>
+ <notification name="AvatarRezLeftAppearanceNotification">
+ ( [EXISTENCE] sekund w Second Life )
+Awatar &apos;[NAME]&apos; opuścił edycję wyglądu.
+ </notification>
+ <notification name="NoConnect">
+ Występuje problem z połączeniem [PROTOCOL] [HOSTID].
+Proszę sprawdź swoją sieć i ustawienia firewall.
+ <form name="form">
+ <button name="OK" text="OK"/>
+ </form>
+ </notification>
+ <notification name="NoVoiceConnect">
+ Występuje problem z Twoim połączniem głosowym:
+
+[HOSTID]
+
+Komunikacja głosowa nie będzie dostępna.
+Proszę sprawdź swoją sieć i ustawienia firewall.
+ <form name="form">
+ <button name="OK" text="OK"/>
+ </form>
+ </notification>
+ <notification name="AvatarRezLeftNotification">
+ ( [EXISTENCE] sekund w Second Life)
+Awatar &apos;[NAME]&apos; pozostał w pełni załadowany.
+ </notification>
+ <notification name="AvatarRezSelfBakeNotification">
+ ( [EXISTENCE] sekund w Second Life )
+You [ACTION] a [RESOLUTION] baked texture for &apos;[BODYREGION]&apos; after [TIME] seconds.
+ </notification>
+ <notification name="ConfirmLeaveCall">
+ Czy jestes pewien/pewna, że chcesz zakończyć rozmowę?
+ <usetemplate ignoretext="Potwierdź zanim rozmowa głosowa zostanie zakończona" name="okcancelignore" notext="Nie" yestext="Tak"/>
+ </notification>
+ <notification name="ConfirmMuteAll">
+ Wybrano wyciszenie wszystkich uczestników rozmowy głosowej w grupie.
+To spowoduje również wyciszenie wszystkich Rezydentów, którzy dołączą póżniej do rozmowy, nawet jeśli zakończysz rozmowę.
+
+Wyciszyć wszystkich?
+ <usetemplate ignoretext="Potwierdź zanim zostaną wyciszeni wszyscy uczestnicy rozmowy głosowej w grupie" name="okcancelignore" notext="Anuluj" yestext="Ok"/>
+ </notification>
<global name="UnsupportedCPU">
- Prędkość Twojego CPU nie spełnia minimalnych wymagań.
</global>
@@ -2569,4 +2758,7 @@ Jeżeli wciąż masz problemy sprawdź: [SUPPORT_SITE].
Jeśli jesteś właścicielem posiadłości, możesz ustawić na niej miejsce startu.
W innym przypadku możesz poszukać na mapie miejsca oznaczone jako &quot;Infohub&quot;.
</global>
+ <global name="You died and have been teleported to your home location">
+ Nastąpiła śmierć i teleportacja do Miejsca Startu.
+ </global>
</notifications>
diff --git a/indra/newview/skins/default/xui/pl/outfit_accordion_tab.xml b/indra/newview/skins/default/xui/pl/outfit_accordion_tab.xml
new file mode 100644
index 0000000000..bac885e5d8
--- /dev/null
+++ b/indra/newview/skins/default/xui/pl/outfit_accordion_tab.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<!-- *NOTE: mantipov: this xml is intended to be used inside panel_outfits_list.xml for each outfit folder-->
+<!-- All accordion tabs in the My Appearance/My Outfits panel will be created from this one at runtume-->
+<accordion_tab name="Mockup Tab" title="Mockup Tab"/>
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 57dc8a3dd7..ab1d8d7007 100644
--- a/indra/newview/skins/default/xui/pl/panel_active_object_row.xml
+++ b/indra/newview/skins/default/xui/pl/panel_active_object_row.xml
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="panel_activeim_row">
<string name="unknown_obj">
- Nieznany Obiekt
+ Nieznany obiekt
</string>
<text name="object_name">
- Nienazwany Obiekt
+ Nienazwany obiekt
</text>
</panel>
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 6cd47c6ce7..ba0c85e4ef 100644
--- a/indra/newview/skins/default/xui/pl/panel_adhoc_control_panel.xml
+++ b/indra/newview/skins/default/xui/pl/panel_adhoc_control_panel.xml
@@ -5,10 +5,10 @@
<button label="Dzwoń" name="call_btn"/>
</layout_panel>
<layout_panel name="end_call_btn_panel">
- <button label="Zakończ Rozmowe" name="end_call_btn"/>
+ <button label="Zakończ rozmowę" name="end_call_btn"/>
</layout_panel>
<layout_panel name="voice_ctrls_btn_panel">
- <button label="Przełączniki Głosu" name="voice_ctrls_btn"/>
+ <button label="Przełączniki głosu" name="voice_ctrls_btn"/>
</layout_panel>
</layout_stack>
</panel>
diff --git a/indra/newview/skins/default/xui/pl/panel_audio_device.xml b/indra/newview/skins/default/xui/pl/panel_audio_device.xml
deleted file mode 100644
index fa8dde77eb..0000000000
--- a/indra/newview/skins/default/xui/pl/panel_audio_device.xml
+++ /dev/null
@@ -1,26 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<panel name="device_settings">
- <text name="Audio Devices">
- UrzÄ…dzenia Audio
- </text>
- <text name="Input device (microphone):">
- Urządzenia Wejściowe (mikrofon):
- </text>
- <text name="Output device (speakers):">
- Urządzenia Wyjściowe (głośniki):
- </text>
- <text name="Input level:">
- Poziom Wejścia
- </text>
- <text_editor name="voice_intro_text1">
- Użyj suwaka by dostosować jak głośno Cię słychać dla innych Rezydentów. W celu przetestowania poziomu wejścia, zacznij mówić do mikrofonu.
- </text_editor>
- <volume_slider name="mic_volume_slider"
- tool_tip="By zmienić poziom głośności użyj suwaka" />
- <text name="wait_text">
- Proszę poczekać
- </text>
- <string name="default_text">
- Domyślne
- </string>
-</panel>
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 122d834bdd..62cb392ba7 100644
--- a/indra/newview/skins/default/xui/pl/panel_block_list_sidetray.xml
+++ b/indra/newview/skins/default/xui/pl/panel_block_list_sidetray.xml
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="block_list_panel">
<text name="title_text">
- Lista Blokad
+ Lista blokad
</text>
- <scroll_list name="blocked" tool_tip="Lista Zablokowanych Osób"/>
+ <scroll_list name="blocked" tool_tip="Lista zablokowanych osób"/>
<button label="Zablokuj Rezydenta..." label_selected="Zablokuj Rezydenta..." name="Block resident..." tool_tip="Wybierz Rezydenta aby zablokować"/>
<button label="Zablokuj obiekt według nazwy..." label_selected="Zablokuj obiekt według nazwy..." name="Block object by name..."/>
- <button label="Odblokuj" label_selected="Odblokuj" name="Unblock" tool_tip="Usuń Rezydenta lub Obiekt z Listy Zablokowanych"/>
+ <button label="Odblokuj" label_selected="Odblokuj" name="Unblock" tool_tip="Usuń Rezydenta lub obiekt z listy zablokowanych"/>
</panel>
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
new file mode 100644
index 0000000000..cebb6e3cfe
--- /dev/null
+++ b/indra/newview/skins/default/xui/pl/panel_body_parts_list_item.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="wearable_item">
+ <text name="item_name" value="..."/>
+ <panel name="btn_lock" tool_tip="Nie masz pozwolenia na edycjÄ™"/>
+ <panel name="btn_edit_panel">
+ <button name="btn_edit" tool_tip="Edytuj ten kształt"/>
+ </panel>
+</panel>
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
new file mode 100644
index 0000000000..560bfe78f4
--- /dev/null
+++ b/indra/newview/skins/default/xui/pl/panel_bodyparts_list_button_bar.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="clothing_list_button_bar_panel">
+ <button label="Switch" name="switch_btn"/>
+ <button label="Zakupy &gt;" name="bodyparts_shop_btn"/>
+</panel>
diff --git a/indra/newview/skins/default/xui/pl/panel_bottomtray.xml b/indra/newview/skins/default/xui/pl/panel_bottomtray.xml
index e21d8a077d..a0f4eb5244 100644
--- a/indra/newview/skins/default/xui/pl/panel_bottomtray.xml
+++ b/indra/newview/skins/default/xui/pl/panel_bottomtray.xml
@@ -1,11 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="bottom_tray">
- <string name="SpeakBtnToolTip">
- Włącza/Wyłącza mikrofon
- </string>
- <string name="VoiceControlBtnToolTip">
- Pokazuje/Ukrywa panel kontroli głosu
- </string>
+ <string name="SpeakBtnToolTip" value="Włącza/wyłącza mikrofon"/>
+ <string name="VoiceControlBtnToolTip" value="Pokazuje/Ukrywa panel kontroli głosu"/>
<layout_stack name="toolbar_stack">
<layout_panel name="speak_panel">
<talk_button name="talk">
@@ -13,16 +9,31 @@
</talk_button>
</layout_panel>
<layout_panel name="gesture_panel">
- <gesture_combo_list label="Gestury" name="Gesture" tool_tip="Pokazuje/Ukrywa gestury"/>
+ <gesture_combo_list label="Gesturki" name="Gesture" tool_tip="Pokazuje/Ukrywa gesturki"/>
</layout_panel>
<layout_panel name="movement_panel">
- <button label="Ruch" name="movement_btn" tool_tip="Pokaż/Ukryj Ustawienia Ruchu"/>
+ <button label="Ruch" name="movement_btn" tool_tip="Pokaż/Ukryj ustawienia ruchu"/>
</layout_panel>
<layout_panel name="cam_panel">
- <button label="Widok" name="camera_btn" tool_tip="Pokaż/Ukryj Ustawienia Kamery"/>
+ <button label="Widok" name="camera_btn" tool_tip="Pokaż/Ukryj ustawienia kamery"/>
</layout_panel>
<layout_panel name="snapshot_panel">
- <button label="" name="snapshots" tool_tip="Zrób Zdjęcie"/>
+ <button label="" name="snapshots" tool_tip="Zrób zdjęcie"/>
+ </layout_panel>
+ <layout_panel name="sidebar_btn_panel">
+ <button label="Schowek" name="sidebar_btn" tool_tip="Pokazuje/ukrywa schowek"/>
+ </layout_panel>
+ <layout_panel name="build_btn_panel">
+ <button label="Buduj" name="build_btn" tool_tip="Pokazuje/ukrywa narzędzia budowania"/>
+ </layout_panel>
+ <layout_panel name="search_btn_panel">
+ <button label="Szukaj" name="search_btn" tool_tip="Pokazuje/ukrywa Szukaj"/>
+ </layout_panel>
+ <layout_panel name="world_map_btn_panel">
+ <button label="Mapa" name="world_map_btn" tool_tip="Pokazuje/ukrywa MapÄ™ Åšwiata"/>
+ </layout_panel>
+ <layout_panel name="mini_map_btn_panel">
+ <button label="Mini-Mapa" name="mini_map_btn" tool_tip="Pokazuje/ukrywa Mini-MapÄ™"/>
</layout_panel>
<layout_panel name="im_well_panel">
<chiclet_im_well name="im_well">
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 77d2e86b7e..e32c12a8ee 100644
--- a/indra/newview/skins/default/xui/pl/panel_bottomtray_lite.xml
+++ b/indra/newview/skins/default/xui/pl/panel_bottomtray_lite.xml
@@ -2,7 +2,7 @@
<panel name="bottom_tray_lite">
<layout_stack name="toolbar_stack_lite">
<layout_panel name="gesture_panel">
- <gesture_combo_list label="Gest" name="Gest" tool_tip="Pokaż/ukryj gestury"/>
+ <gesture_combo_list label="Gesturki" name="Gesturki" tool_tip="Pokaż/ukryj gesturki"/>
</layout_panel>
</layout_stack>
</panel>
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
new file mode 100644
index 0000000000..17a6d1eb8b
--- /dev/null
+++ b/indra/newview/skins/default/xui/pl/panel_clothing_list_button_bar.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="clothing_list_button_bar_panel">
+ <button label="Dodaj +" name="add_btn"/>
+ <button label="Zakupy &gt;" name="clothing_shop_btn"/>
+</panel>
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
new file mode 100644
index 0000000000..42d1ead400
--- /dev/null
+++ b/indra/newview/skins/default/xui/pl/panel_clothing_list_item.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="wearable_item">
+ <button name="btn_delete" tool_tip="Usuń ze stroju"/>
+ <text name="item_name" value="..."/>
+ <panel name="btn_lock" tool_tip="Nie masz pozwolenia na edycjÄ™"/>
+ <panel name="btn_edit_panel">
+ <button name="btn_edit" tool_tip="Edytuj część stroju"/>
+ </panel>
+</panel>
diff --git a/indra/newview/skins/default/xui/pl/panel_cof_wearables.xml b/indra/newview/skins/default/xui/pl/panel_cof_wearables.xml
new file mode 100644
index 0000000000..970b994c20
--- /dev/null
+++ b/indra/newview/skins/default/xui/pl/panel_cof_wearables.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="cof_wearables">
+ <accordion name="cof_wearables_accordion">
+ <accordion_tab name="tab_attachments" title="Załączniki"/>
+ <accordion_tab name="tab_clothing" title="Ubranie"/>
+ <accordion_tab name="tab_body_parts" title="Części ciała"/>
+ </accordion>
+</panel>
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
new file mode 100644
index 0000000000..f9fba4d79f
--- /dev/null
+++ b/indra/newview/skins/default/xui/pl/panel_deletable_wearable_list_item.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="deletable_wearable_item">
+ <button name="btn_delete" tool_tip="Usuń ze stroju"/>
+ <text name="item_name" value="..."/>
+</panel>
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
new file mode 100644
index 0000000000..83210808f1
--- /dev/null
+++ b/indra/newview/skins/default/xui/pl/panel_dummy_clothing_list_item.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="dummy_clothing_item">
+ <text name="item_name" value="..."/>
+ <panel name="btn_add_panel">
+ <button name="btn_add" tool_tip="Dodaj więcej obiektów tego typu"/>
+ </panel>
+</panel>
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 ac2739633e..a22d4b0482 100644
--- a/indra/newview/skins/default/xui/pl/panel_edit_alpha.xml
+++ b/indra/newview/skins/default/xui/pl/panel_edit_alpha.xml
@@ -1,10 +1,10 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="edit_alpha_panel">
<panel name="avatar_alpha_color_panel">
- <texture_picker label="Alpha Dolnej Części Ciała" name="Lower Alpha" tool_tip="Kliknij aby wybrać teksturę"/>
- <texture_picker label="Alpha Górnej Części Ciała" name="Upper Alpha" tool_tip="Kliknij aby wybrać teksturę"/>
- <texture_picker label="Alpha Głowy" name="Head Alpha" tool_tip="Kliknij aby wybrać teksturę"/>
- <texture_picker label="Alpha Oka" name="Eye Alpha" tool_tip="Kliknij aby wybrać teksturę"/>
- <texture_picker label="Alpha Włosów" name="Hair Alpha" tool_tip="Kliknij aby wybrać teksturę"/>
+ <texture_picker label="Alpha dolnej części ciała" name="Lower Alpha" tool_tip="Kliknij aby wybrać teksturę"/>
+ <texture_picker label="Alpha górnej części ciała" name="Upper Alpha" tool_tip="Kliknij aby wybrać teksturę"/>
+ <texture_picker label="Alpha głowy" name="Head Alpha" tool_tip="Kliknij aby wybrać teksturę"/>
+ <texture_picker label="Alpha oka" name="Eye Alpha" tool_tip="Kliknij aby wybrać teksturę"/>
+ <texture_picker label="Alpha włosów" name="Hair Alpha" tool_tip="Kliknij aby wybrać teksturę"/>
</panel>
</panel>
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 6395d5c59a..07f9b3a13f 100644
--- a/indra/newview/skins/default/xui/pl/panel_edit_classified.xml
+++ b/indra/newview/skins/default/xui/pl/panel_edit_classified.xml
@@ -10,7 +10,7 @@
Zapisz
</string>
<text name="title">
- Edytuj ReklamÄ™
+ Edytuj reklamÄ™
</text>
<scroll_container name="profile_scroll">
<panel name="scroll_content_panel">
@@ -31,10 +31,10 @@
</text>
<button label="Ustaw na bieżącą lokalizację" name="set_to_curr_location_btn"/>
<text name="category_label" value="Kategoria:"/>
- <text name="content_type_label" value="Typ Zawartości:"/>
- <icons_combo_box label="Treść Ogólna" name="content_type">
- <icons_combo_box.item label="Moderuj Treść" name="mature_ci" value="Mature"/>
- <icons_combo_box.item label="Treść Ogólna" name="pg_ci" value="PG"/>
+ <text name="content_type_label" value="Typ zawartości:"/>
+ <icons_combo_box label="Treść General" name="content_type">
+ <icons_combo_box.item label="Treść Moderate" name="mature_ci" value="Mature"/>
+ <icons_combo_box.item label="Treść General" name="pg_ci" value="PG"/>
</icons_combo_box>
<text name="price_for_listing_label" value="Cena za wyświetlenie:"/>
<spinner label="L$" name="price_for_listing" tool_tip="Cena za umieszczenie reklamy." value="50"/>
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 5e7a3a8fa0..390a5313b5 100644
--- a/indra/newview/skins/default/xui/pl/panel_edit_eyes.xml
+++ b/indra/newview/skins/default/xui/pl/panel_edit_eyes.xml
@@ -3,7 +3,9 @@
<panel name="avatar_eye_color_panel">
<texture_picker label="Iris" name="Iris" tool_tip="Kliknij aby wybrać teksturę"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="eyes_main_tab" title="Oczy"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="eyes_main_tab" title="Oczy"/>
+ </accordion>
+ </panel>
</panel>
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 8b16506d9c..166e3c4551 100644
--- a/indra/newview/skins/default/xui/pl/panel_edit_gloves.xml
+++ b/indra/newview/skins/default/xui/pl/panel_edit_gloves.xml
@@ -4,7 +4,9 @@
<texture_picker label="Materiał" name="Fabric" tool_tip="Kliknij aby wybrać teksturę"/>
<color_swatch label="Kolor/Barwa" name="Color/Tint" tool_tip="Kliknij aby wybrać teksturę"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="gloves_main_tab" title="Rękawiczki"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="gloves_main_tab" title="Rękawiczki"/>
+ </accordion>
+ </panel>
</panel>
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 567ff10506..cbcba97eb6 100644
--- a/indra/newview/skins/default/xui/pl/panel_edit_hair.xml
+++ b/indra/newview/skins/default/xui/pl/panel_edit_hair.xml
@@ -3,10 +3,12 @@
<panel name="avatar_hair_color_panel">
<texture_picker label="Tekstura" name="Texture" tool_tip="Kliknij aby wybrać teksturę"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="hair_color_tab" title="Kolor"/>
- <accordion_tab name="hair_style_tab" title="Styl"/>
- <accordion_tab name="hair_eyebrows_tab" title="Brwi"/>
- <accordion_tab name="hair_facial_tab" title="Twarzy"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="hair_color_tab" title="Kolor"/>
+ <accordion_tab name="hair_style_tab" title="Styl"/>
+ <accordion_tab name="hair_eyebrows_tab" title="Brwi"/>
+ <accordion_tab name="hair_facial_tab" title="Twarzy"/>
+ </accordion>
+ </panel>
</panel>
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 f4ea9303aa..ba0b908394 100644
--- a/indra/newview/skins/default/xui/pl/panel_edit_jacket.xml
+++ b/indra/newview/skins/default/xui/pl/panel_edit_jacket.xml
@@ -5,7 +5,9 @@
<texture_picker label="Dolny materiał" name="Lower Fabric" tool_tip="Kliknij aby wybrać teksturę"/>
<color_swatch label="Kolor/Barwa" name="Color/Tint" tool_tip="Kliknij aby wybrać kolor"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="jacket_main_tab" title="Kurtka"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="jacket_main_tab" title="Kurtka"/>
+ </accordion>
+ </panel>
</panel>
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 247d63c5a3..4adac604f4 100644
--- a/indra/newview/skins/default/xui/pl/panel_edit_pants.xml
+++ b/indra/newview/skins/default/xui/pl/panel_edit_pants.xml
@@ -4,7 +4,9 @@
<texture_picker label="Materiał" name="Fabric" tool_tip="Kliknij aby wybrać teksturę"/>
<color_swatch label="Kolor/Barwa" name="Color/Tint" tool_tip="Kliknij aby wybrać kolor"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="pants_main_tab" title="Spodnie"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="pants_main_tab" title="Spodnie"/>
+ </accordion>
+ </panel>
</panel>
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 edd7415751..c9790f5eba 100644
--- a/indra/newview/skins/default/xui/pl/panel_edit_profile.xml
+++ b/indra/newview/skins/default/xui/pl/panel_edit_profile.xml
@@ -33,8 +33,8 @@
WWW:
</text>
<check_box label="Pokaż w wyszukiwarce" name="show_in_search_checkbox"/>
- <text name="title_acc_status_text" value="Moje Konto:"/>
- <text name="my_account_link" value="[[URL] idź do Dashboard]"/>
+ <text name="title_acc_status_text" value="Moje konto:"/>
+ <text name="my_account_link" value="[[URL] idź do dashboard]"/>
<text name="acc_status_text" value="Rezydent. Brak danych konta."/>
<text name="title_partner_text" value="Partner:"/>
<text name="partner_edit_link" value="[[URL] Edytuj]"/>
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 3cacbd7fdd..54f9fdc21c 100644
--- a/indra/newview/skins/default/xui/pl/panel_edit_shape.xml
+++ b/indra/newview/skins/default/xui/pl/panel_edit_shape.xml
@@ -1,23 +1,26 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="edit_shape_panel">
- <panel name="avatar_sex_panel">
- <text name="gender_text">
- Płeć:
- </text>
- <radio_group name="sex_radio">
- <radio_item label="Kobieta" name="radio"/>
- <radio_item label="Mężczyzna" name="radio2"/>
- </radio_group>
+ <string name="meters">
+ Metry
+ </string>
+ <string name="feet">
+ Feet
+ </string>
+ <string name="height">
+ Wysokość:
+ </string>
+ <text name="avatar_height"/>
+ <panel label="Koszula" name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="shape_body_tab" title="Ciało"/>
+ <accordion_tab name="shape_head_tab" title="Głowa"/>
+ <accordion_tab name="shape_eyes_tab" title="Oczy"/>
+ <accordion_tab name="shape_ears_tab" title="Uszy"/>
+ <accordion_tab name="shape_nose_tab" title="Nos"/>
+ <accordion_tab name="shape_mouth_tab" title="Usta"/>
+ <accordion_tab name="shape_chin_tab" title="Podbródek"/>
+ <accordion_tab name="shape_torso_tab" title="Tors"/>
+ <accordion_tab name="shape_legs_tab" title="Nogi"/>
+ </accordion>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="shape_body_tab" title="Ciało"/>
- <accordion_tab name="shape_head_tab" title="Głowa"/>
- <accordion_tab name="shape_eyes_tab" title="Oczy"/>
- <accordion_tab name="shape_ears_tab" title="Uszy"/>
- <accordion_tab name="shape_nose_tab" title="Nos"/>
- <accordion_tab name="shape_mouth_tab" title="Usta"/>
- <accordion_tab name="shape_chin_tab" title="Podbródek"/>
- <accordion_tab name="shape_torso_tab" title="Tułów"/>
- <accordion_tab name="shape_legs_tab" title="Nogi"/>
- </accordion>
</panel>
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 27d8981e80..3bcf992d4d 100644
--- a/indra/newview/skins/default/xui/pl/panel_edit_shirt.xml
+++ b/indra/newview/skins/default/xui/pl/panel_edit_shirt.xml
@@ -4,7 +4,9 @@
<texture_picker label="Materiał" name="Fabric" tool_tip="Kliknij by wybrać grafikę"/>
<color_swatch label="Kolor/Odcień" name="Color/Tint" tool_tip="Kliknij by wybrać kolor"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="shirt_main_tab" title="Spódnica"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="shirt_main_tab" title="Spódnica"/>
+ </accordion>
+ </panel>
</panel>
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 09eb1008e8..e2c00c0506 100644
--- a/indra/newview/skins/default/xui/pl/panel_edit_shoes.xml
+++ b/indra/newview/skins/default/xui/pl/panel_edit_shoes.xml
@@ -4,7 +4,9 @@
<texture_picker label="Materiał" name="Fabric" tool_tip="Kliknij aby wybrać teksturę"/>
<color_swatch label="Kolor/Barwa" name="Color/Tint" tool_tip="Kliknij aby wybrać kolor"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="shoes_main_tab" title="Buty"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="shoes_main_tab" title="Buty"/>
+ </accordion>
+ </panel>
</panel>
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 617aad8650..9e0acd3cec 100644
--- a/indra/newview/skins/default/xui/pl/panel_edit_skin.xml
+++ b/indra/newview/skins/default/xui/pl/panel_edit_skin.xml
@@ -5,10 +5,12 @@
<texture_picker label="Górny tatuaż" name="Upper Tattoos" tool_tip="Kliknij aby wybrać teksturę"/>
<texture_picker label="Dolny tatuaż" name="Lower Tattoos" tool_tip="Kliknij aby wybrać teksturę"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="skin_color_tab" title="Kolor skórki"/>
- <accordion_tab name="skin_face_tab" title="Szczegóły twarzy"/>
- <accordion_tab name="skin_makeup_tab" title="Makijaż"/>
- <accordion_tab name="skin_body_tab" title="Szczegóły budowy ciała"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="skin_color_tab" title="Kolor skórki"/>
+ <accordion_tab name="skin_face_tab" title="Szczegóły twarzy"/>
+ <accordion_tab name="skin_makeup_tab" title="Makijaż"/>
+ <accordion_tab name="skin_body_tab" title="Szczegóły ciała"/>
+ </accordion>
+ </panel>
</panel>
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 f89148ffac..3fa9cefeb6 100644
--- a/indra/newview/skins/default/xui/pl/panel_edit_skirt.xml
+++ b/indra/newview/skins/default/xui/pl/panel_edit_skirt.xml
@@ -4,7 +4,9 @@
<texture_picker label="Materiał" name="Fabric" tool_tip="Kliknij aby wybrać teksturę"/>
<color_swatch label="Kolor/Barwa" name="Color/Tint" tool_tip="Kliknij aby wybrać kolor"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="skirt_main_tab" title="Spódnica"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="skirt_main_tab" title="Spódnica"/>
+ </accordion>
+ </panel>
</panel>
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 5481c73804..bb2cd637b5 100644
--- a/indra/newview/skins/default/xui/pl/panel_edit_socks.xml
+++ b/indra/newview/skins/default/xui/pl/panel_edit_socks.xml
@@ -4,7 +4,9 @@
<texture_picker label="Materiał" name="Fabric" tool_tip="Kliknij aby wybrać teksturę"/>
<color_swatch label="Kolor/Barwa" name="Color/Tint" tool_tip="Kliknij aby wybrać kolor"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="socks_main_tab" title="Skarpetki"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="socks_main_tab" title="Skarpetki"/>
+ </accordion>
+ </panel>
</panel>
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 b5e1828588..6fd1e2277a 100644
--- a/indra/newview/skins/default/xui/pl/panel_edit_tattoo.xml
+++ b/indra/newview/skins/default/xui/pl/panel_edit_tattoo.xml
@@ -4,5 +4,6 @@
<texture_picker label="Tatuaż głowy" name="Head Tattoo" tool_tip="Kliknij by wybrać grafikę"/>
<texture_picker label="Tatuaż górnej części ciała" name="Upper Tattoo" tool_tip="Kliknij by wybrać grafikę"/>
<texture_picker label="Tatuaż dolnej części ciała" name="Lower Tattoo" tool_tip="Kliknij by wybrać grafikę"/>
+ <color_swatch label="Color/Barwa" name="Color/Tint" tool_tip="Kliknij aby wybrać kolor"/>
</panel>
</panel>
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 94034aa8ab..010d9b53d9 100644
--- a/indra/newview/skins/default/xui/pl/panel_edit_underpants.xml
+++ b/indra/newview/skins/default/xui/pl/panel_edit_underpants.xml
@@ -4,7 +4,9 @@
<texture_picker label="Materiał" name="Fabric" tool_tip="Kliknij aby wybrać kolor"/>
<color_swatch label="Kolor/Barwa" name="Color/Tint" tool_tip="Kliknij aby wybrać kolor"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="underpants_main_tab" title="Bielizna"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="underpants_main_tab" title="Bielizna"/>
+ </accordion>
+ </panel>
</panel>
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 72b72b76de..63ae1215e0 100644
--- a/indra/newview/skins/default/xui/pl/panel_edit_undershirt.xml
+++ b/indra/newview/skins/default/xui/pl/panel_edit_undershirt.xml
@@ -4,7 +4,9 @@
<texture_picker label="Materiał" name="Fabric" tool_tip="Kliknij aby wybrać teksturę"/>
<color_swatch label="Kolor/Barwa" name="Color/Tint" tool_tip="Kliknij aby wybrać kolor"/>
</panel>
- <accordion name="wearable_accordion">
- <accordion_tab name="undershirt_main_tab" title="Podkoszulek"/>
- </accordion>
+ <panel name="accordion_panel">
+ <accordion name="wearable_accordion">
+ <accordion_tab name="undershirt_main_tab" title="Podkoszulek"/>
+ </accordion>
+ </panel>
</panel>
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 cf17afea3f..da2c26f02b 100644
--- a/indra/newview/skins/default/xui/pl/panel_edit_wearable.xml
+++ b/indra/newview/skins/default/xui/pl/panel_edit_wearable.xml
@@ -40,7 +40,7 @@
Edycja bielizny
</string>
<string name="edit_alpha_title">
- Edycja maski Alpha
+ Edycja maski alpha
</string>
<string name="edit_tattoo_title">
Edycja tatuażu
@@ -72,7 +72,7 @@
<string name="jacket_desc_text">
Kurtka:
</string>
- <string name="skirt_skirt_desc_text">
+ <string name="skirt_desc_text">
Spódnica:
</string>
<string name="gloves_desc_text">
@@ -85,17 +85,24 @@
Bielizna:
</string>
<string name="alpha_desc_text">
- Maska Alpha:
+ Maska alpha:
</string>
<string name="tattoo_desc_text">
Tatuaż:
</string>
- <text name="edit_wearable_title" value="Edycja Kształtu"/>
+ <labeled_back_button label="Zapisz" name="back_btn" tool_tip="Powrót do edycji stroju"/>
+ <text name="edit_wearable_title" value="Edycja kształtu"/>
<panel label="Koszula" name="wearable_type_panel">
<text name="description_text" value="Kształt:"/>
+ <radio_group name="sex_radio">
+ <radio_item label="" name="sex_male" tool_tip="Mężczyzna" value="1"/>
+ <radio_item label="" name="sex_female" tool_tip="Kobieta" value="0"/>
+ </radio_group>
+ <icon name="male_icon" tool_tip="Mężczyzna"/>
+ <icon name="female_icon" tool_tip="Kobieta"/>
</panel>
<panel name="button_panel">
<button label="Zapisz" name="save_as_button"/>
- <button label="Wróć" name="revert_button"/>
+ <button label="Cofnij zmiany" name="revert_button"/>
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/pl/panel_friends.xml b/indra/newview/skins/default/xui/pl/panel_friends.xml
deleted file mode 100644
index fca0dad380..0000000000
--- a/indra/newview/skins/default/xui/pl/panel_friends.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="friends">
- <string name="Multiple">
- Znajomi
- </string>
- <scroll_list name="friend_list" tool_tip="By wybrać wielu znajomych za jednym razem przetrzymaj klawisz shift lub control">
- <column name="icon_online_status" tool_tip="Status dostępności"/>
- <column label="ImiÄ™" name="friend_name" tool_tip="ImiÄ™"/>
- <column name="icon_visible_online" tool_tip="Ta osoba może widzieć czy jesteś w Second Life"/>
- <column name="icon_visible_map" tool_tip="Ta osoba może zlokalizować Cię na mapie"/>
- <column name="icon_edit_mine" tool_tip="Ta osoba może edytować, usunąć lub wziąć Twoje obiekty"/>
- <column name="icon_edit_theirs" tool_tip="Możesz edytować obiekty tej osoby"/>
- </scroll_list>
- <button label="Czat/IM" name="im_btn" tool_tip="Rozpocznij sesjÄ™ czatu/IM"/>
- <button label="Profil" name="profile_btn" tool_tip="Pokaż zdjęcia, grupy i inne informacje"/>
- <button label="Teleportuj" name="offer_teleport_btn" tool_tip="Zaoferuj teleportacjÄ™ do siebie"/>
- <button label="Zapłać" name="pay_btn" tool_tip="Zapłać L$ tej osobie"/>
- <button label="Usuń" name="remove_btn" tool_tip="Usuń tę osobę z listy znajomych"/>
- <button label="Dodaj" name="add_btn" tool_tip="Zaoferuj znajomość"/>
-</panel>
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 b57ec8f2e6..4e373cdf8f 100644
--- a/indra/newview/skins/default/xui/pl/panel_group_control_panel.xml
+++ b/indra/newview/skins/default/xui/pl/panel_group_control_panel.xml
@@ -8,10 +8,10 @@
<button label="Dzwoń" name="call_btn"/>
</layout_panel>
<layout_panel name="end_call_btn_panel">
- <button label="Zakończ Rozmowę" name="end_call_btn"/>
+ <button label="Zakończ rozmowę" name="end_call_btn"/>
</layout_panel>
<layout_panel name="voice_ctrls_btn_panel">
- <button label="Przełączniki Głosu" name="voice_ctrls_btn"/>
+ <button label="Przełączniki głosu" name="voice_ctrls_btn"/>
</layout_panel>
</layout_stack>
</panel>
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 67fa0bf085..a4d76badf0 100644
--- a/indra/newview/skins/default/xui/pl/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/pl/panel_group_general.xml
@@ -23,7 +23,7 @@ By otrzymać pomoc i dodatkowe wskazówki przesuń kursor na przyciski.
<button label="DOÅÄ„CZ TERAZ!" name="btn_join"/>
</panel>
<text_editor name="charter">
- Status Grupy
+ Status grupy
</text_editor>
<name_list name="visible_members">
<name_list.columns label="Członek" name="name"/>
@@ -34,7 +34,7 @@ By otrzymać pomoc i dodatkowe wskazówki przesuń kursor na przyciski.
ja
</text>
<text name="active_title_label">
- Mój Aktywny Tytuł:
+ Mój aktywny tytuł:
</text>
<combo_box name="active_title" tool_tip="Ustaw tytuł który wyświetla się kiedy grupa jest aktywna."/>
<check_box label="Otrzymuj grupowe ogłoszenia" name="receive_notices" tool_tip="Zaznacz jeżeli chcesz otrzymywać ogłoszenia z tej grupy. Anuluj z zaznaczenia, jeżeli nie chcesz otrzymywać żadnych ogłoszeń z tej grupy."/>
@@ -47,8 +47,11 @@ By otrzymać pomoc i dodatkowe wskazówki przesuń kursor na przyciski.
<check_box label="Opłata wstępu" name="check_enrollment_fee" tool_tip="Ustaw opłatę za przyłączenie się do grupy."/>
<spinner label="L$" name="spin_enrollment_fee" tool_tip="Nowi członkowie grupy muszą zapłacić wymaganą opłatę by dołączyć do grupy."/>
<combo_box name="group_mature_check" tool_tip="Wybierz jeżeli uważasz, iż Twoja grupa klasyfikowana jest jako &apos;Mature&apos;.">
- <combo_box.item label="Treść &apos;PG&apos;" name="pg"/>
- <combo_box.item label="Treść &apos;Mature&apos;" name="mature"/>
+ <combo_item name="select_mature">
+ - Wybierz klasyfikacjÄ™ wieku -
+ </combo_item>
+ <combo_box.item label="Treść &apos;Moderate&apos;" name="mature"/>
+ <combo_box.item label="Treść &apos;General&apos;" name="pg"/>
</combo_box>
<check_box initial_value="true" label="Wyświetlaj w wyszukiwarce" name="show_in_group_list" tool_tip="Udostępnij info o grupie w wyszukiwarce"/>
</panel>
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 509c2893cf..e637588cf0 100644
--- a/indra/newview/skins/default/xui/pl/panel_group_info_sidetray.xml
+++ b/indra/newview/skins/default/xui/pl/panel_group_info_sidetray.xml
@@ -27,9 +27,9 @@
</layout_panel>
<layout_panel name="button_row">
<button label="Czat" name="btn_chat"/>
- <button label="Konferencja Głosowa" name="btn_call" tool_tip="Konferencja Głosowa"/>
+ <button label="Konferencja głosowa" name="btn_call" tool_tip="Konferencja głosowa"/>
<button label="Zapisz" label_selected="Zapisz" name="btn_apply"/>
- <button label="Stwórz nową Grupę" name="btn_create" tool_tip="Stwórz nową Grupę"/>
+ <button label="Stwórz nową grupę" name="btn_create" tool_tip="Stwórz nową grupę"/>
</layout_panel>
</layout_stack>
</panel>
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 e520c06944..1822551e86 100644
--- a/indra/newview/skins/default/xui/pl/panel_group_invite.xml
+++ b/indra/newview/skins/default/xui/pl/panel_group_invite.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Zaproszenie do Grupy" name="invite_panel">
<panel.string name="confirm_invite_owner_str">
- Jesteś pewny, że chcesz wybrać nowych właścieli grupy? Ta decyzja jest ostateczna!
+ Jesteś pewny/a, że chcesz wybrać nowych właścieli grupy? Ta decyzja jest ostateczna!
</panel.string>
<panel.string name="loading">
(ładowanie...)
@@ -18,10 +18,10 @@
<text name="role_text">
Wybierz rolę dla nowego członka:
</text>
- <combo_box name="role_name" tool_tip="Wybierz z listy Role, które możesz przypisać Członkom"/>
+ <combo_box name="role_name" tool_tip="Wybierz z listy Role, które możesz przypisać członkom"/>
<button label="Wyślij Zaproszenia" name="ok_button"/>
<button label="Anuluj" name="cancel_button"/>
<string name="GroupInvitation">
- Zaproszenie do Grupy
+ Zaproszenie do grupy
</string>
</panel>
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 a52b7f7745..d29393de2d 100644
--- a/indra/newview/skins/default/xui/pl/panel_group_land_money.xml
+++ b/indra/newview/skins/default/xui/pl/panel_group_land_money.xml
@@ -1,13 +1,16 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Posiadłości i L$" name="land_money_tab">
<panel.string name="help_text">
- Ostrzeżenie pojawia siÄ™ kiedy ÅÄ…czna Powierzchnia PosiadÅ‚oÅ›ci jest mniejsza lub = Kontrybucjom
+ Ostrzeżenie pojawia się kiedy łączna powierzchnia posiadłości jest mniejsza lub = Kontrybucjom
</panel.string>
<panel.string name="cant_view_group_land_text">
- Nie masz pozwolenia na oglądanie Posiadłości Grupy.
+ Nie masz pozwolenia na oglądanie posiadłości grupy.
+ </panel.string>
+ <panel.string name="epmty_view_group_land_text">
+ Brak wstępu
</panel.string>
<panel.string name="cant_view_group_accounting_text">
- Nie masz dostępu do konta, finansów Grupy.
+ Nie masz dostępu do konta, finansów grupy.
</panel.string>
<panel.string name="loading_txt">
Åadowanie...
@@ -30,19 +33,19 @@
</text>
<button label="Mapa" label_selected="Mapa" name="map_button"/>
<text name="total_land_in_use_label">
- Używane Posiadłości:
+ Używane posiadłości:
</text>
<text name="total_land_in_use_value">
[AREA] m²
</text>
<text name="land_available_label">
- Dostępne Posiadłości:
+ Dostępne posiadłości:
</text>
<text name="land_available_value">
[AREA] m²
</text>
<text name="your_contribution_label">
- Twoje Kontrybucje:
+ Twoje kontrybucje:
</text>
<text name="your_contribution_units">
m²
@@ -51,10 +54,10 @@
([AMOUNT] max)
</text>
<text name="group_over_limit_text">
- Należy zwięszyć kredyt na używanie Posiadłości.
+ Należy zwięszyć kredyt na używanie posiadłości.
</text>
<text name="group_money_heading">
- L$ Grupy
+ L$ grupy
</text>
</panel>
<tab_container name="group_money_tab_container">
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 31882ab0e6..5b62d13880 100644
--- a/indra/newview/skins/default/xui/pl/panel_group_notices.xml
+++ b/indra/newview/skins/default/xui/pl/panel_group_notices.xml
@@ -19,11 +19,11 @@ Limit dzienny ogłoszeń dla grupy wynosi 200.
<text name="notice_list_none_found">
Nie znaleziono
</text>
- <button label="Stwórz Ogłoszenie" label_selected="Stwórz Nowe Ogłoszenie" name="create_new_notice" tool_tip="Stwórz Ogłoszenie"/>
+ <button label="Stwórz Ogłoszenie" label_selected="Stwórz nowe ogłoszenie" name="create_new_notice" tool_tip="Stwórz ogłoszenie"/>
<button label="Odśwież" label_selected="Odśwież Listę" name="refresh_notices" tool_tip="Użyj Odśwież by zobaczyć czy nowe ogłoszenia zostały wysłane."/>
- <panel label="Stwórz Nowe Ogłoszenie" name="panel_create_new_notice">
+ <panel label="Stwórz nowe ogłoszenie" name="panel_create_new_notice">
<text name="lbl">
- Stwórz Ogłoszenie
+ Stwórz ogłoszenie
</text>
<text name="lbl3">
Temat:
@@ -37,6 +37,7 @@ Limit dzienny ogłoszeń dla grupy wynosi 200.
<text name="string">
Przeciągnij i upuść załącznik tutaj aby go dodać:
</text>
+ <button label="Szafa" name="open_inventory" tool_tip="Otwórz Szafę"/>
<button label="Usuń załącznik" label_selected="Usuń Załącznik" name="remove_attachment" tool_tip="Usuń załącznik z noty"/>
<button label="Wyślij" label_selected="Wyślij" name="send_notice"/>
<group_drop_target name="drop_target" tool_tip="Przeciągnij załącznik ze swojej Szafy na pole docelowe aby wysłać go z Ogłoszeniem. Musisz posiadać prawo do kopiowania i transferu załącznika aby go dodać do ogłoszenia."/>
@@ -54,6 +55,6 @@ Limit dzienny ogłoszeń dla grupy wynosi 200.
<text name="lbl4">
Treść:
</text>
- <button label="Otwórz Załącznik" label_selected="Otwórz Załącznik" name="open_attachment"/>
+ <button label="Otwórz załącznik" label_selected="Otwórz załącznik" name="open_attachment"/>
</panel>
</panel>
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 d81c3f68f2..d27a81217a 100644
--- a/indra/newview/skins/default/xui/pl/panel_group_notify.xml
+++ b/indra/newview/skins/default/xui/pl/panel_group_notify.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="instant_message" name="panel_group_notify">
<panel label="header" name="header">
- <text name="title" value="ImiÄ™ Nadawcy / Nazwa Grupy"/>
+ <text name="title" value="ImiÄ™ nadawcy / Nazwa grupy"/>
</panel>
<text name="attachment" value="Załącznik"/>
<button label="OK" name="btn_ok"/>
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 8a422e2586..9e9c79d26a 100644
--- a/indra/newview/skins/default/xui/pl/panel_group_roles.xml
+++ b/indra/newview/skins/default/xui/pl/panel_group_roles.xml
@@ -9,17 +9,20 @@
<tab_container name="roles_tab_container">
<panel label="CZÅONKOWIE" name="members_sub_tab" tool_tip="CzÅ‚onkowie">
<panel.string name="help_text">
- Możesz dodawać i usuwać Funkcje przypisane do Członków.
-Możesz wybrać wielu Członków naciskając Ctrl i klikając na ich imionach.
+ Możesz dodawać i usuwać funkcje przypisane do członków.
+Możesz wybrać wielu członków naciskając Ctrl i klikając na ich imionach.
</panel.string>
- <filter_editor label="Filtruj Członków" name="filter_input"/>
+ <panel.string name="donation_area">
+ [AREA] m²
+ </panel.string>
+ <filter_editor label="Filtruj członków" name="filter_input"/>
<name_list name="member_list">
<name_list.columns label="Członek" name="name"/>
<name_list.columns label="Dotacje" name="donated"/>
<name_list.columns label="Status" name="online"/>
</name_list>
- <button label="ZaproÅ› do Grupy" name="member_invite"/>
- <button label="Usuń z Grupy" name="member_eject"/>
+ <button label="ZaproÅ› do grupy" name="member_invite"/>
+ <button label="Usuń z grupy" name="member_eject"/>
</panel>
<panel label="FUNKCJE" name="roles_sub_tab">
<panel.string name="help_text">
@@ -34,22 +37,22 @@ jedną lub wiele funkcji. Każda grupa może posiadać maksymalnie 10 funkcji,
<panel.string name="power_folder_icon">
Inv_FolderClosed
</panel.string>
- <filter_editor label="Filtruj Funkcje" name="filter_input"/>
+ <filter_editor label="Filtruj funkcje" name="filter_input"/>
<scroll_list name="role_list">
<scroll_list.columns label="Funkcja" name="name"/>
<scroll_list.columns label="Tytuł" name="title"/>
<scroll_list.columns label="#" name="members"/>
</scroll_list>
- <button label="Stwórz Nową Funkcję" name="role_create"/>
- <button label="Usuń Funkcję" name="role_delete"/>
+ <button label="Stwórz nową funkcję" name="role_create"/>
+ <button label="Usuń funkcję" name="role_delete"/>
</panel>
<panel label="PRZYWILEJE" name="actions_sub_tab" tool_tip="Możesz sprawdzić szczegóły dotyczące dangego przywileju oraz jakie funkcje oraz jacy członkowie posiadają prawo korzystania z niego.">
<panel.string name="help_text">
- Przywileje pozwalają Członkom przypisanym do Funkcji na wykonywanie różnych zadań.
-Istnieje wiele Przywilei.
+ Przywileje pozwalają członkom przypisanym do funkcji na wykonywanie różnych zadań.
+Istnieje wiele przywilejów.
</panel.string>
- <filter_editor label="Filtruj Przywileje" name="filter_input"/>
- <scroll_list name="action_list" tool_tip="Wybierz przywilej by zobaczyć szczegóły">
+ <filter_editor label="Filtruj przywileje" name="filter_input"/>
+ <scroll_list name="action_list" tool_tip="Wybierz przywilej aby zobaczyć szczegóły">
<scroll_list.columns label="" name="icon"/>
<scroll_list.columns label="" name="action"/>
</scroll_list>
@@ -66,49 +69,40 @@ Istnieje wiele Przywilei.
<text name="static2">
Przywileje
</text>
- <scroll_list name="member_allowed_actions" tool_tip="By zobaczyć szczegóły, wybierz zakładkę Przywileje">
+ <scroll_list name="member_allowed_actions" tool_tip="Aby zobaczyć szczegóły, wybierz zakładkę Przywileje">
<scroll_list.columns label="" name="icon"/>
<scroll_list.columns label="" name="action"/>
</scroll_list>
</panel>
<panel name="roles_footer">
<text name="static">
- Nazwa Funkcji
+ Nazwa funkcji
</text>
- <line_editor name="role_name">
- Liczba
- </line_editor>
+ <line_editor name="role_name"/>
<text name="static3">
- Nazwa Funkcji
+ Nazwa funkcji
</text>
- <line_editor name="role_title">
- (proszę czekać)
- </line_editor>
+ <line_editor name="role_title"/>
<text name="static2">
Opis
</text>
- <text_editor name="role_description">
- (proszę czekać)
- </text_editor>
+ <text_editor name="role_description"/>
<text name="static4">
- Przypisane Funkcje
+ Przypisane funkcje
</text>
- <check_box label="Opcja widoczności jest aktywna" name="role_visible_in_list" tool_tip="Opcja ta pozwala określić widoczność członków pełniących tę funkcję dla ludzi spoza Grupy."/>
+ <check_box label="Opcja widoczności jest aktywna" name="role_visible_in_list" tool_tip="Opcja ta pozwala określić widoczność członków pełniących tę funkcję dla ludzi spoza grupy."/>
<text name="static5" tool_tip="Przywileje przypisane do wybranej Funkcji.">
- Przypisane Przywileje
+ Przypisane przywileje
</text>
- <scroll_list name="role_allowed_actions" tool_tip="By zobaczyć szczegóły dozwolonych przywilejów wybierz zakładkę Przywileje">
+ <scroll_list name="role_allowed_actions" tool_tip="Aby zobaczyć szczegóły dozwolonych przywilejów wybierz zakładkę Przywileje">
<scroll_list.columns label="" name="icon"/>
<scroll_list.columns label="" name="checkbox"/>
<scroll_list.columns label="" name="action"/>
</scroll_list>
</panel>
<panel name="actions_footer">
- <text name="static">
- Opis Przywileju
- </text>
<text_editor name="action_description">
- Przywilej &apos;Usuń Członka z Grupy&apos;. Tylko Właściciel może usunąć innego Właściciela.
+ Przywilej &apos;Usuń członka z grupy&apos;. Tylko właściciel może usunąć innego właściciela.
</text_editor>
<text name="static2">
Funkcje z tym przywilejem
diff --git a/indra/newview/skins/default/xui/pl/panel_groups.xml b/indra/newview/skins/default/xui/pl/panel_groups.xml
deleted file mode 100644
index 9df90fc797..0000000000
--- a/indra/newview/skins/default/xui/pl/panel_groups.xml
+++ /dev/null
@@ -1,18 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
-<panel name="groups">
- <scroll_list name="group list">
- <column label="" name="name" />
- </scroll_list>
- <text name="groupdesc">
- Twoja aktywna grupa jest pogrubiona.
- </text>
- <text name="groupcount">
- Należysz do [COUNT] grup (maksimum to [MAX]).
- </text>
- <button label="Czat/IM" name="IM" tool_tip="Rozpocznij sesjÄ™ czatu (IM)" />
- <button label="O Grupie" name="Info" />
- <button label="Wybierz" name="Activate" />
- <button label="Opuść" name="Leave" />
- <button label="Stwórz..." name="Create" />
- <button label="Szukaj..." name="Search..." />
-</panel>
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 ffd75994cb..4aadd3b93b 100644
--- a/indra/newview/skins/default/xui/pl/panel_im_control_panel.xml
+++ b/indra/newview/skins/default/xui/pl/panel_im_control_panel.xml
@@ -20,10 +20,10 @@
<button label="Dzwoń" name="call_btn"/>
</layout_panel>
<layout_panel name="end_call_btn_panel">
- <button label="Zakończ Rozmowę" name="end_call_btn"/>
+ <button label="Zakończ rozmowę" name="end_call_btn"/>
</layout_panel>
<layout_panel name="voice_ctrls_btn_panel">
- <button label="Przełączniki Głosu" name="voice_ctrls_btn"/>
+ <button label="Przełączniki głosu" name="voice_ctrls_btn"/>
</layout_panel>
</layout_stack>
</panel>
diff --git a/indra/newview/skins/default/xui/pl/panel_inventory_item.xml b/indra/newview/skins/default/xui/pl/panel_inventory_item.xml
new file mode 100644
index 0000000000..d18047fbcf
--- /dev/null
+++ b/indra/newview/skins/default/xui/pl/panel_inventory_item.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="inventory_item">
+ <text name="item_name" value="..."/>
+</panel>
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 64479176fa..3370f6f58e 100644
--- a/indra/newview/skins/default/xui/pl/panel_landmark_info.xml
+++ b/indra/newview/skins/default/xui/pl/panel_landmark_info.xml
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="landmark_info">
- <string name="title_create_landmark" value="Zapamiętaj Miejsce"/>
- <string name="title_edit_landmark" value="Edytuj Zapamiętane Miejsce"/>
- <string name="title_landmark" value="Zapamiętane Miejsce (LM)"/>
+ <string name="title_create_landmark" value="Zapamiętaj miejsce (LM)"/>
+ <string name="title_edit_landmark" value="Edytuj landmarki"/>
+ <string name="title_landmark" value="Landmarki (LM)"/>
<string name="not_available" value="(N\A)"/>
<string name="unknown" value="(nieznane)"/>
<string name="public" value="(publiczne)"/>
@@ -19,7 +19,7 @@
[wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local]
</string>
<button name="back_btn" tool_tip="Cofnij"/>
- <text name="title" value="Profil Miejsca"/>
+ <text name="title" value="Profil miejsca"/>
<scroll_container name="place_scroll">
<panel name="scrolling_panel">
<text name="maturity_value" value="nieznany"/>
diff --git a/indra/newview/skins/default/xui/pl/panel_login.xml b/indra/newview/skins/default/xui/pl/panel_login.xml
index 6b0061926b..b5899f1009 100644
--- a/indra/newview/skins/default/xui/pl/panel_login.xml
+++ b/indra/newview/skins/default/xui/pl/panel_login.xml
@@ -8,24 +8,31 @@
</panel.string>
<layout_stack name="login_widgets">
<layout_panel name="login">
- <text name="first_name_text">
- ImiÄ™:
+ <text name="username_text">
+ Użytkownik:
</text>
- <line_editor label="ImiÄ™" name="first_name_edit" tool_tip="[SECOND_LIFE] First Name"/>
- <line_editor label="Nazwisko" name="last_name_edit" tool_tip="[SECOND_LIFE] Last Name"/>
- <check_box label="Zapamiętaj Hasło" name="remember_check"/>
+ <line_editor label="Użytkownik" name="username_edit" tool_tip="[SECOND_LIFE] Użytkownik"/>
+ <text name="password_text">
+ Hasło:
+ </text>
+ <check_box label="Zapamiętaj hasło" name="remember_check"/>
+ <button label="Połącz" name="connect_btn"/>
<text name="start_location_text">
Rozpocznij w:
</text>
<combo_box name="start_location_combo">
+ <combo_box.item label="Ostatnie Miejsce" name="MyLastLocation"/>
<combo_box.item label="Moje Miejsce Startu" name="MyHome"/>
+ <combo_box.item label="&lt;Wpisz Region&gt;" name="Typeregionname"/>
</combo_box>
- <button label="Połącz" name="connect_btn"/>
</layout_panel>
<layout_panel name="links">
<text name="create_new_account_text">
Utwórz nowe konto
</text>
+ <text name="forgot_password_text">
+ Nie pamiętasz hasła?
+ </text>
<text name="login_help">
Potrzebujesz pomocy z logowaniem siÄ™?
</text>
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 e0d9def8b3..8d6fa1173c 100644
--- a/indra/newview/skins/default/xui/pl/panel_main_inventory.xml
+++ b/indra/newview/skins/default/xui/pl/panel_main_inventory.xml
@@ -9,62 +9,20 @@
<text name="ItemcountText">
Obiekty:
</text>
- <menu_bar name="Inventory Menu">
- <menu label="Plik" name="File">
- <menu_item_call label="Otwórz" name="Open"/>
- <menu label="Załaduj" name="upload">
- <menu_item_call label="obraz (L$[COST])..." name="Upload Image"/>
- <menu_item_call label="dźwięk (L$[COST])..." name="Upload Sound"/>
- <menu_item_call label="animacjÄ™ (L$[COST])..." name="Upload Animation"/>
- <menu_item_call label="zbiór plików (L$[COST] za jeden plik)..." name="Bulk Upload"/>
- </menu>
- <menu_item_call label="Nowe Okno" name="New Window"/>
- <menu_item_call label="Pokaż Filtry" name="Show Filters"/>
- <menu_item_call label="Zresetuj Filtry" name="Reset Current"/>
- <menu_item_call label="Zamknij Wszystkie Foldery" name="Close All Folders"/>
- <menu_item_call label="Opróżnij Kosz" name="Empty Trash"/>
- <menu_item_call label="Opróżnij Folder Zgubione i Znalezione" name="Empty Lost And Found"/>
- </menu>
- <menu label="Stwórz" name="Create">
- <menu_item_call label="Nowy folder" name="New Folder"/>
- <menu_item_call label="Nowy skrypt" name="New Script"/>
- <menu_item_call label="Nowa nota" name="New Note"/>
- <menu_item_call label="Nowy gest" name="New Gesture"/>
- <menu label="Nowe Ubranie" name="New Clothes">
- <menu_item_call label="NowÄ… kkoszulkÄ™" name="New Shirt"/>
- <menu_item_call label="Nowe spodnie" name="New Pants"/>
- <menu_item_call label="Nowe buty" name="New Shoes"/>
- <menu_item_call label="Nowe skarpetki" name="New Socks"/>
- <menu_item_call label="NowÄ… kurtkÄ™" name="New Jacket"/>
- <menu_item_call label="Nową spódnicę" name="New Skirt"/>
- <menu_item_call label="Nowe rękawiczki" name="New Gloves"/>
- <menu_item_call label="Nowy podkoszulek" name="New Undershirt"/>
- <menu_item_call label="NowÄ… bieliznÄ™" name="New Underpants"/>
- <menu_item_call label="Nowe ubranie Alpha" name="New Alpha"/>
- <menu_item_call label="Nowy tatuaż" name="New Tattoo"/>
- </menu>
- <menu label="Nową Część Ciała" name="New Body Parts">
- <menu_item_call label="Nowy kształt" name="New Shape"/>
- <menu_item_call label="Nową skórkę" name="New Skin"/>
- <menu_item_call label="Nowe włosy" name="New Hair"/>
- <menu_item_call label="Nowe oczy" name="New Eyes"/>
- </menu>
- </menu>
- <menu label="UporzÄ…dkuj" name="Sort">
- <menu_item_check label="Wegług bazwy" name="By Name"/>
- <menu_item_check label="Według daty" name="By Date"/>
- <menu_item_check label="Foldery zawsze według nazwy" name="Folders Always By Name"/>
- <menu_item_check label="Foldery Systemowe od góry" name="System Folders To Top"/>
- </menu>
- </menu_bar>
<filter_editor label="Filtr" name="inventory search editor"/>
<tab_container name="inventory filter tabs">
<inventory_panel label="Wszystkie obiekty" name="All Items"/>
- <inventory_panel label="Ostatnio dodane obiekty" name="Recent Items"/>
+ <recent_inventory_panel label="Ostatnio dodane obiekty" name="Recent Items"/>
</tab_container>
- <panel name="bottom_panel">
- <button name="options_gear_btn" tool_tip="Pokaż dodatkowe opcje"/>
- <button name="add_btn" tool_tip="Dodaj nowy obiekt"/>
- <dnd_button name="trash_btn" tool_tip="Usuń wybrany obiekt"/>
- </panel>
+ <layout_stack name="bottom_panel">
+ <layout_panel name="options_gear_btn_panel">
+ <button name="options_gear_btn" tool_tip="Pokaż dodatkowe opcje"/>
+ </layout_panel>
+ <layout_panel name="add_btn_panel">
+ <button name="add_btn" tool_tip="Dodaj nowy obiekt"/>
+ </layout_panel>
+ <layout_panel name="trash_btn_panel">
+ <dnd_button name="trash_btn" tool_tip="Usuń zaznaczony obiekt"/>
+ </layout_panel>
+ </layout_stack>
</panel>
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 03b063ddfe..914a2aee73 100644
--- a/indra/newview/skins/default/xui/pl/panel_media_settings_general.xml
+++ b/indra/newview/skins/default/xui/pl/panel_media_settings_general.xml
@@ -1,24 +1,24 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Ogólne" name="Media Settings General">
<text name="home_label">
- Strona Domowa:
+ Strona domowa:
</text>
<text name="home_fails_whitelist_label">
- (ta strona nie została zaakceptowana przez filtr listy dostępowej)
+ (ta strona nie została zaakceptowana przez filtr listy dostępowej (Biała Lista)
</text>
<line_editor name="home_url" tool_tip="Strona domowa dla źródla mediów"/>
<text name="preview_label">
Pokaż
</text>
<text name="current_url_label">
- Obecna Strona:
+ Obecna strona:
</text>
<text name="current_url" tool_tip="The current page for this media source" value=""/>
<button label="Zresetuj" name="current_url_reset_btn"/>
<check_box initial_value="false" label="Pętla" name="auto_loop"/>
- <check_box initial_value="false" label="Interakcja Kliknięcia" name="first_click_interact"/>
+ <check_box initial_value="false" label="Interakcja kliknięcia" name="first_click_interact"/>
<check_box initial_value="false" label="Autopowiększenie" name="auto_zoom"/>
- <check_box initial_value="false" label="Automatyczne Odtwarzanie Mediów" name="auto_play"/>
+ <check_box initial_value="false" label="Automatyczne odtwarzanie mediów" name="auto_play"/>
<text name="media_setting_note">
Pamiętaj: Rezydenci mogą zmienić to ustawienie
</text>
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 939bcbbb42..a87c29d7b3 100644
--- a/indra/newview/skins/default/xui/pl/panel_media_settings_permissions.xml
+++ b/indra/newview/skins/default/xui/pl/panel_media_settings_permissions.xml
@@ -11,10 +11,19 @@
Mini
</combo_item>
</combo_box>
+ <text name="owner_label">
+ Właściciel
+ </text>
<check_box initial_value="false" label="Pozwól na nawigację &amp; interaktywność" name="perms_owner_interact"/>
- <check_box initial_value="false" label="Pokaż Pasek Kontroli" name="perms_owner_control"/>
- <check_box initial_value="false" label="Pozwól na nawigację &amp; Interaktywność" name="perms_group_interact"/>
- <check_box initial_value="false" label="Pokaż Pasek Kontroli" name="perms_group_control"/>
+ <check_box initial_value="false" label="Pokaż pasek kontroli" name="perms_owner_control"/>
+ <text name="group_label">
+ Grupa:
+ </text>
+ <check_box initial_value="false" label="Pozwól na nawigację &amp; interaktywność" name="perms_group_interact"/>
+ <check_box initial_value="false" label="Pokaż pasek kontroli" name="perms_group_control"/>
+ <text name="anyone_label">
+ Każdy
+ </text>
<check_box initial_value="false" label="Pozwól na nawigację &amp; interaktywność" name="perms_anyone_interact"/>
- <check_box initial_value="false" label="Pokaż Pasek Kontroli" name="perms_anyone_control"/>
+ <check_box initial_value="false" label="Pokaż pasek kontroli" name="perms_anyone_control"/>
</panel>
diff --git a/indra/newview/skins/default/xui/pl/panel_my_profile.xml b/indra/newview/skins/default/xui/pl/panel_my_profile.xml
index 7ca762b825..fefab15af0 100644
--- a/indra/newview/skins/default/xui/pl/panel_my_profile.xml
+++ b/indra/newview/skins/default/xui/pl/panel_my_profile.xml
@@ -10,11 +10,11 @@
<scroll_container name="profile_scroll">
<panel name="scroll_content_panel">
<panel name="second_life_image_panel">
- <icon label="" name="2nd_life_edit_icon" tool_tip="Kliknij przycisk Edytuj Profil by zmienić zdjęcie"/>
+ <icon label="" name="2nd_life_edit_icon" tool_tip="Kliknij przycisk Edytuj profil by zmienić zdjęcie"/>
<text name="title_sl_descr_text" value="[SECOND_LIFE]:"/>
</panel>
<panel name="first_life_image_panel">
- <icon label="" name="real_world_edit_icon" tool_tip="Kliknij przycisk Edytuj Profil by zmienić zdjęcie"/>
+ <icon label="" name="real_world_edit_icon" tool_tip="Kliknij przycisk Edytuj profil by zmienić zdjęcie"/>
<text name="title_rw_descr_text" value="Życie#1:"/>
</panel>
<text name="title_member_text" value="Urodziny:"/>
@@ -28,8 +28,8 @@
</scroll_container>
</layout_panel>
<layout_panel name="profile_me_buttons_panel">
- <button label="Edytuj Profil" name="edit_profile_btn" tool_tip="Edytuj swoje dane"/>
- <button label="Edytuj Wygląd" name="edit_appearance_btn" tool_tip="Stwórz/edytuj swój wygląd: dane fizyczne, ubrania itp."/>
+ <button label="Edytuj profil" name="edit_profile_btn" tool_tip="Edytuj swoje dane"/>
+ <button label="Edytuj wygląd" name="edit_appearance_btn" tool_tip="Stwórz/edytuj swój wygląd: dane fizyczne, ubrania itp."/>
</layout_panel>
</layout_stack>
</panel>
diff --git a/indra/newview/skins/default/xui/pl/panel_nearby_chat.xml b/indra/newview/skins/default/xui/pl/panel_nearby_chat.xml
deleted file mode 100644
index bcecaeabb3..0000000000
--- a/indra/newview/skins/default/xui/pl/panel_nearby_chat.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<!-- All our XML is utf-8 encoded. -->
-<panel name="nearby_chat">
- <panel name="chat_caption">
- <text name="sender_name">
- CZAT LOKALNY
- </text>
- </panel>
-</panel>
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 2d1decd960..63cf96b571 100644
--- a/indra/newview/skins/default/xui/pl/panel_nearby_chat_bar.xml
+++ b/indra/newview/skins/default/xui/pl/panel_nearby_chat_bar.xml
@@ -7,5 +7,5 @@
320
</string>
<line_editor label="Kliknij tutaj aby rozmawiać." name="chat_box" tool_tip="Naciśnij Enter aby mówić, Ctrl + Enter aby krzyknąć"/>
- <button name="show_nearby_chat" tool_tip="Pokazuje/ukrywa pobliski Czat"/>
+ <button name="show_nearby_chat" tool_tip="Pokazuje/ukrywa pobliski czat"/>
</panel>
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 a05c0d856f..c9f951f7c6 100644
--- a/indra/newview/skins/default/xui/pl/panel_nearby_media.xml
+++ b/indra/newview/skins/default/xui/pl/panel_nearby_media.xml
@@ -1,13 +1,16 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="nearby_media">
+ <string name="media_item_count_format">
+ (%ld media items)
+ </string>
<string name="empty_item_text">
&lt;empty&gt;
</string>
<string name="parcel_media_name">
- Strumień Mediów Posiadłości
+ Strumień mediów posiadłości
</string>
<string name="parcel_audio_name">
- Strumień Audio Posiadłości
+ Strumień audio posiadłości
</string>
<string name="playing_suffix">
(odtwarzanie)
@@ -16,19 +19,20 @@
<button label="Zatrzymaj" name="all_nearby_media_disable_btn" tool_tip="Wyłącz wszystkie media w pobliżu"/>
<button label="Włącz" name="all_nearby_media_enable_btn" tool_tip="Włącz wszystkie media w pobliżu"/>
<button name="open_prefs_btn" tool_tip="Uruchom preferencje medialne"/>
- <button label="Więcej &gt;&gt;" label_selected="Mniej &lt;&lt;" name="more_less_btn" tool_tip="Zaawansowane"/>
+ <button label="Więcej &gt;&gt;" label_selected="Mniej &lt;&lt;" name="more_btn" tool_tip="Zaawansowane"/>
+ <button label="Więcej &gt;&gt;" label_selected="Mniej &lt;&lt;" name="less_btn" tool_tip="Zaawansowane"/>
</panel>
<panel name="nearby_media_panel">
- <text name="nearby_media">
+ <text name="nearby_media_title">
Media w pobliżu
</text>
- <text name="show">
+ <text name="show_text">
Pokaż:
</text>
<combo_box name="show_combo">
<combo_box.item label="Wszystkie" name="All"/>
- <combo_box.item label="Na obecnej Parceli" name="WithinParcel"/>
- <combo_box.item label="Poza Posiadłością" name="OutsideParcel"/>
+ <combo_box.item label="Na obecnej posiadłości" name="WithinParcel"/>
+ <combo_box.item label="Poza posiadłością" name="OutsideParcel"/>
<combo_box.item label="Na innych awatarach" name="OnOthers"/>
</combo_box>
<scroll_list name="media_list">
@@ -44,19 +48,19 @@
<button name="stop_btn" tool_tip="Zatrzymaj wybrane media"/>
</layout_panel>
<layout_panel name="play">
- <button name="play_btn" tool_tip="Odtwarzaj wybrane media"/>
+ <button name="play_btn" tool_tip="Włącz wybrane media"/>
</layout_panel>
<layout_panel name="pause">
<button name="pause_btn" tool_tip="Zatrzymaj wybrane media"/>
</layout_panel>
<layout_panel name="volume_slider_ctrl">
- <slider_bar initial_value="0.5" name="volume_slider" tool_tip="Regulacja audio dla wybranych mediów"/>
+ <slider_bar initial_value="0.5" name="volume_slider" tool_tip="Głośność audio dla wybranych mediów"/>
</layout_panel>
<layout_panel name="mute">
<button name="mute_btn" tool_tip="Wycisz audio wybranych mediów"/>
</layout_panel>
<layout_panel name="zoom">
- <button name="zoom_btn" tool_tip="Przybliż do wybranych mediów"/>
+ <button name="zoom_btn" tool_tip="Przybliż wybrane media"/>
</layout_panel>
<layout_panel name="unzoom">
<button name="unzoom_btn" tool_tip="Oddal od wybranych mediów"/>
diff --git a/indra/newview/skins/default/xui/pl/panel_notes.xml b/indra/newview/skins/default/xui/pl/panel_notes.xml
index 35cb7e1bce..ec6008065f 100644
--- a/indra/newview/skins/default/xui/pl/panel_notes.xml
+++ b/indra/newview/skins/default/xui/pl/panel_notes.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Notatki &amp; Prywatność" name="panel_notes">
<layout_stack name="layout">
- <panel name="notes_stack">
+ <layout_panel name="notes_stack">
<scroll_container name="profile_scroll">
<panel name="profile_scroll_panel">
<text name="status_message" value="Notatki:"/>
@@ -11,13 +11,13 @@
<check_box label="Edytowanie, kasowanie lub zabieranie moich obiektów" name="objects_check"/>
</panel>
</scroll_container>
- </panel>
- <panel name="notes_buttons_panel">
+ </layout_panel>
+ <layout_panel name="notes_buttons_panel">
<button label="Dodaj do znajomych" name="add_friend" tool_tip="Zaoferuj znajomość Rezydentowi"/>
<button label="IM" name="im" tool_tip="Otwórz wiadomości IM"/>
<button label="Dzwoń" name="call" tool_tip="Zadzwoń do Rezydenta"/>
<button label="Mapa" name="show_on_map_btn" tool_tip="Pokaż Rezydenta na mapie"/>
<button label="Teleportuj" name="teleport" tool_tip="Teleportuj"/>
- </panel>
+ </layout_panel>
</layout_stack>
</panel>
diff --git a/indra/newview/skins/default/xui/pl/panel_online_status.xml b/indra/newview/skins/default/xui/pl/panel_online_status.xml
deleted file mode 100644
index fdc489f375..0000000000
--- a/indra/newview/skins/default/xui/pl/panel_online_status.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="friend_online_status" name="friend_online_status"/>
diff --git a/indra/newview/skins/default/xui/pl/panel_outfit_edit.xml b/indra/newview/skins/default/xui/pl/panel_outfit_edit.xml
new file mode 100644
index 0000000000..31502cccba
--- /dev/null
+++ b/indra/newview/skins/default/xui/pl/panel_outfit_edit.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<!-- Side tray Outfit Edit panel -->
+<panel label="Edytuj strój" name="outfit_edit">
+ <string name="No Outfit" value="Brak stroju"/>
+ <string name="unsaved_changes" value="Zmiany niezachowane"/>
+ <string name="now_editing" value="Obecnie edytujesz"/>
+ <panel.string name="not_available">
+ (N\A)
+ </panel.string>
+ <panel.string name="unknown">
+ (nieznany)
+ </panel.string>
+ <string name="Filter.All" value="Wszystko"/>
+ <string name="Filter.Clothes/Body" value="Ubrania/Ciało"/>
+ <string name="Filter.Objects" value="Obiekty"/>
+ <string name="Filter.Clothing" value="Ubranie"/>
+ <string name="Filter.Bodyparts" value="Części ciała"/>
+ <string name="replace_body_part" value="Kliknij aby zastąpić Twój obecny ksztalt"/>
+ <text name="title" value="Edytuj strój"/>
+ <panel label="bottom_panel" name="header_panel">
+ <panel label="bottom_panel" name="outfit_name_and_status">
+ <text name="status" value="Trwa edycja..."/>
+ <text name="curr_outfit_name" value="[Current Outfit]"/>
+ </panel>
+ </panel>
+ <layout_stack name="im_panels">
+ <layout_panel label="Panel kontrolny IM" name="outfit_wearables_panel">
+ <layout_stack name="filter_panels">
+ <layout_panel name="add_button_and_combobox">
+ <button label="Dodaj..." name="show_add_wearables_btn" tool_tip="Otwórz/Zamknij"/>
+ </layout_panel>
+ <layout_panel name="filter_panel">
+ <filter_editor label="Filtruj części stroju w Szafie" name="look_item_filter"/>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
+ <layout_panel name="add_wearables_panel">
+ <button label="Załóż obiekt" name="plus_btn"/>
+ </layout_panel>
+ </layout_stack>
+ <panel name="no_add_wearables_button_bar">
+ <button name="shop_btn_1" tool_tip="Odwiedź stronę SL Marketplace. Możesz również zaznaczyć rzecz, którą masz na sobie a następnie kliknąć tutaj aby zobaczyć więcej rzeczy tego rodzaju."/>
+ </panel>
+ <panel name="add_wearables_button_bar">
+ <button name="shop_btn_2" tool_tip="Odwiedź stronę SL Marketplace. Możesz również zaznaczyć rzecz, którą masz na sobie a następnie kliknąć tutaj aby zobaczyć więcej rzeczy tego rodzaju."/>
+ </panel>
+ <panel name="save_revert_button_bar">
+ <button label="Zapisz" name="save_btn"/>
+ <button label="Cofnij zmiany" name="revert_btn" tool_tip="Cofnij do ostatniej zapisanej wersji"/>
+ </panel>
+</panel>
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 5e7fd46754..2d2ada25e8 100644
--- a/indra/newview/skins/default/xui/pl/panel_outfits_inventory.xml
+++ b/indra/newview/skins/default/xui/pl/panel_outfits_inventory.xml
@@ -1,14 +1,17 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Rzeczy" name="Outfits">
+ <panel.string name="wear_outfit_tooltip">
+ Załóż zaznaczony strój
+ </panel.string>
+ <panel.string name="wear_items_tooltip">
+ Załóż wybrane obiekty
+ </panel.string>
<tab_container name="appearance_tabs">
- <inventory_panel label="MOJE UBRANIA" name="outfitslist_tab"/>
- <inventory_panel label="ZAÅOÅ»ONE" name="cof_tab"/>
+ <panel label="MOJE UBRANIA" name="outfitslist_tab"/>
+ <panel label="ZAÅOÅ»ONE" name="cof_tab"/>
</tab_container>
<panel name="bottom_panel">
- <button name="options_gear_btn" tool_tip="Pokaż opcje dodatkowe"/>
- <dnd_button name="trash_btn" tool_tip="Usuń zaznaczony obiekt"/>
- <button label="Zapisz Ubranie" name="make_outfit_btn" tool_tip="Zapisz wyglÄ…d jako ubranie"/>
+ <button label="Zapisz jako" name="save_btn"/>
<button label="Ubierz" name="wear_btn" tool_tip="Ubierz wybrany obiekt"/>
- <button label="M" name="look_edit_btn"/>
</panel>
</panel>
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 5b77c390ca..2f8c008f98 100644
--- 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
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu name="menu_gear_default">
- <menu_item_call label="ZastÄ…p Obecne Ubranie" name="wear"/>
- <menu_item_call label="Dodaj do Obecnego Ubrania" name="add"/>
- <menu_item_call label="Usuń z Obecnego Ubrania" name="remove"/>
+ <menu_item_call label="Zastąp obecny strój" name="wear"/>
+ <menu_item_call label="Dodaj do obecnego stroju" name="add"/>
+ <menu_item_call label="Usuń z obecnego stroju" name="remove"/>
<menu_item_call label="Zmień nazwę" name="rename"/>
- <menu_item_call label="Usuń Link" name="remove_link"/>
- <menu_item_call label="Usuń Ubranie" name="delete"/>
+ <menu_item_call label="Usuń link" name="remove_link"/>
+ <menu_item_call label="Usuń strój" name="delete"/>
</menu>
diff --git a/indra/newview/skins/default/xui/pl/panel_outfits_list.xml b/indra/newview/skins/default/xui/pl/panel_outfits_list.xml
new file mode 100644
index 0000000000..ed3057399d
--- /dev/null
+++ b/indra/newview/skins/default/xui/pl/panel_outfits_list.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="Outfits">
+ <panel name="bottom_panel">
+ <button name="options_gear_btn" tool_tip="Pokaż dodatkowe opcje"/>
+ <button name="trash_btn" tool_tip="Usuń wybrany strój"/>
+ </panel>
+</panel>
diff --git a/indra/newview/skins/default/xui/pl/panel_outfits_wearing.xml b/indra/newview/skins/default/xui/pl/panel_outfits_wearing.xml
new file mode 100644
index 0000000000..5559c151e7
--- /dev/null
+++ b/indra/newview/skins/default/xui/pl/panel_outfits_wearing.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="Wearing">
+ <panel name="bottom_panel">
+ <button name="options_gear_btn" tool_tip="Pokaż dodatkowe opcje"/>
+ </panel>
+</panel>
diff --git a/indra/newview/skins/default/xui/pl/panel_people.xml b/indra/newview/skins/default/xui/pl/panel_people.xml
index 09958c84d6..19df36c9ee 100644
--- a/indra/newview/skins/default/xui/pl/panel_people.xml
+++ b/indra/newview/skins/default/xui/pl/panel_people.xml
@@ -1,20 +1,29 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!-- Side tray panel -->
<panel label="Ludzie" name="people_panel">
- <string name="no_people" value="Brak ludzi"/>
- <string name="no_one_near" value="Nikogo w pobliżu"/>
- <string name="no_friends_online" value="Brak dostępnych Znajomych"/>
- <string name="no_friends" value="Brak Znajomych"/>
- <string name="people_filter_label" value="Filtruj Ludzi"/>
- <string name="groups_filter_label" value="Filtruj Grupy"/>
- <string name="no_filtered_groups_msg" value="[secondlife:///app/search/groups Może spróbuj odnaleźć Grupę korzystając z Szukaj?]"/>
- <string name="no_groups_msg" value="[secondlife:///app/search/groups Spróbuj wyszukać grupy aby do nich dołączyć.]"/>
+ <string name="no_recent_people" value="Brak ostatnich rozmówców. Chcesz spotkać ludzi? Spróbuj [secondlife:///app/search/people Szukaj] or the [secondlife:///app/worldmap Mapa Świata]."/>
+ <string name="no_filtered_recent_people" value="Nie znaleziono tego czego szukasz? Spróbuj [secondlife:///app/search/groups/[SEARCH_TERM] Szukaj]."/>
+ <string name="no_one_near" value="Nie ma nikogo w pobliżu. Chcesz spotkać ludzi? Spróbuj [secondlife:///app/search/people Szukaj] lub [secondlife:///app/worldmap Mapa Świata]."/>
+ <string name="no_one_filtered_near" value="Nie znaleziono tego czego szukasz? Spróbuj [secondlife:///app/search/groups/[SEARCH_TERM] Szukaj]."/>
+ <string name="no_friends_online" value="Brak dostępnych znajomych"/>
+ <string name="no_friends" value="Brak znajomych"/>
+ <string name="no_friends_msg">
+ Wyszukaj znajomych [secondlife:///app/search/people Szukaj] lub kliknij prawym przyciskiem na Rezydenta aby zaproponować mu znajomość.
+Chcesz spotkać ludzi? Spróbuj [secondlife:///app/worldmap Mapa Świata].
+ </string>
+ <string name="no_filtered_friends_msg">
+ Nie znaleziono tego czego szukasz? Spróbuj [secondlife:///app/search/groups/[SEARCH_TERM] Szukaj].
+ </string>
+ <string name="people_filter_label" value="Filtruj ludzi"/>
+ <string name="groups_filter_label" value="Filtruj grupy"/>
+ <string name="no_filtered_groups_msg" value="Nie znaleziono tego czego szukasz? Spróbuj [secondlife:///app/search/groups/[SEARCH_TERM] Szukaj]."/>
+ <string name="no_groups_msg" value="Chcesz dołączyć do grup? Spróbuj [secondlife:///app/search/groups Szukaj]."/>
<filter_editor label="Filtr" name="filter_input"/>
<tab_container name="tabs">
<panel label="W POBLIŻU" name="nearby_panel">
<panel label="bottom_panel" name="bottom_panel">
<button name="nearby_view_sort_btn" tool_tip="Opcje"/>
- <button name="add_friend_btn" tool_tip="Dodaj wybranego Rezydenta do Znajomych"/>
+ <button name="add_friend_btn" tool_tip="Dodaj wybranego Rezydenta do znajomych"/>
</panel>
</panel>
<panel label="ZNAJOMI" name="friends_panel">
@@ -27,10 +36,6 @@
<button name="add_btn" tool_tip="Zaproponuj znajomość"/>
<button name="del_btn" tool_tip="Usuń wybraną osobę ze swojej listy znajomych"/>
</panel>
- <text name="no_friends_msg">
- By dodać nową znajomość skorzystaj ze strony [secondlife:///app/search/people ogólne wyszukiwanie] lub kliknij prawym przyciskiem myszki na Rezydenta by wysłać mu zaproszenie.
-Jeżeli szukasz ludzi, z którymi można się spotkać, kliknij tutaj [secondlife:///app/worldmap skorzystaj z mapy].
- </text>
</panel>
<panel label="GRUPY" name="groups_panel">
<panel label="bottom_panel" name="bottom_panel">
@@ -42,18 +47,18 @@ Jeżeli szukasz ludzi, z którymi można się spotkać, kliknij tutaj [secondlif
<panel label="OSTATNIE" name="recent_panel">
<panel label="bottom_panel" name="bottom_panel">
<button name="recent_viewsort_btn" tool_tip="Opcje"/>
- <button name="add_friend_btn" tool_tip="Dodaj wybranego Rezydenta do Znajomych"/>
+ <button name="add_friend_btn" tool_tip="Dodaj wybranego Rezydenta do znajomych"/>
</panel>
</panel>
</tab_container>
<panel name="button_bar">
- <button width="55" label="Profil" name="view_profile_btn" tool_tip="Pokaż zdjęcie, grupy i inne informacje o Rezydencie"/>
- <button width="35" label="IM" name="im_btn" tool_tip="Rozpocznij rozmowÄ™ prywatnÄ… (IM)"/>
- <button width="62" label="Zadzwoń" name="call_btn" tool_tip="Zadzwoń do tego Rezydenta"/>
- <button width="72" label="Podziel siÄ™" name="share_btn"/>
- <button width="70" label="Teleportuj" name="teleport_btn" tool_tip="Zaproponuj teleportacjÄ™"/>
- <button width="69" label="Profil grupy" name="group_info_btn" tool_tip="Pokaż informacje o grupie"/>
- <button width="124" label="Konferencja Grupowa" name="chat_btn" tool_tip="Rozpocznij konferencÄ™"/>
- <button width="108" label="Rozmowa Głosowa" name="group_call_btn" tool_tip="Rozmowa Głosowa w tej Grupie"/>
+ <button label="Profil" name="view_profile_btn" tool_tip="Pokaż zdjęcie, grupy i inne informacje o Rezydencie" width="55"/>
+ <button label="IM" name="im_btn" tool_tip="Rozpocznij rozmowÄ™ prywatnÄ… (IM)" width="35"/>
+ <button label="Zadzwoń" name="call_btn" tool_tip="Zadzwoń do tego Rezydenta" width="62"/>
+ <button label="Podziel się" name="share_btn" tool_tip="Udostępnij obiekt z Szafy" width="72"/>
+ <button label="Teleportuj" name="teleport_btn" tool_tip="Zaproponuj teleportacjÄ™" width="70"/>
+ <button label="Profil grupy" name="group_info_btn" tool_tip="Pokaż informacje o grupie" width="69"/>
+ <button label="Konferencja Grupowa" name="chat_btn" tool_tip="Rozpocznij konferencÄ™" width="124"/>
+ <button label="Rozmowa Głosowa" name="group_call_btn" tool_tip="Rozmowa głosowa w tej grupie" width="108"/>
</panel>
</panel>
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 3714a141db..7a71a10034 100644
--- a/indra/newview/skins/default/xui/pl/panel_place_profile.xml
+++ b/indra/newview/skins/default/xui/pl/panel_place_profile.xml
@@ -11,8 +11,8 @@
<string name="unknown" value="(nieznany)"/>
<string name="public" value="(publiczny)"/>
<string name="none_text" value="(żaden)"/>
- <string name="sale_pending_text" value="(Sprzedaż w Toku Realizacji)"/>
- <string name="group_owned_text" value="(Własność Grupy)"/>
+ <string name="sale_pending_text" value="(Sprzedaż w toku realizacji)"/>
+ <string name="group_owned_text" value="(Własność grupy)"/>
<string name="price_text" value="L$"/>
<string name="area_text" value="m²"/>
<string name="all_residents_text" value="Każdemu"/>
@@ -52,7 +52,7 @@
<panel name="parcel_characteristics_panel">
<text name="rating_label" value="Rodzaj:"/>
<text name="rating_value" value="nieznane"/>
- <text name="voice_label" value="Komunikacja Głosowa:"/>
+ <text name="voice_label" value="Komunikacja głosowa:"/>
<text name="voice_value" value="Włączone"/>
<text name="fly_label" value="Lataj:"/>
<text name="fly_value" value="Włączone"/>
@@ -92,7 +92,7 @@
<text name="covenant_label" value="Umowa:"/>
</panel>
</accordion_tab>
- <accordion_tab name="sales_tab" title="Na Sprzedaż">
+ <accordion_tab name="sales_tab" title="Na sprzedaż">
<panel name="sales_panel">
<text name="sales_price_label" value="Cena:"/>
<text name="area_label" value="Powierzchnia:"/>
diff --git a/indra/newview/skins/default/xui/pl/panel_places.xml b/indra/newview/skins/default/xui/pl/panel_places.xml
index c7f3f00d98..23f724317e 100644
--- a/indra/newview/skins/default/xui/pl/panel_places.xml
+++ b/indra/newview/skins/default/xui/pl/panel_places.xml
@@ -5,11 +5,12 @@
<filter_editor label="Filtruj Moje Miejsca" name="Filter"/>
<panel name="button_panel">
<button label="Teleportuj" name="teleport_btn" tool_tip="Teleportuj do wybranego miejsca"/>
- <button label="Mapa" name="map_btn"/>
+ <button label="Mapa" name="map_btn" tool_tip="Pokaż miejsce na Mapie Świata"/>
<button label="Edytuj" name="edit_btn" tool_tip="Edytuj informacje landmarka"/>
<button label="▼" name="overflow_btn" tool_tip="Pokaż opcje dodatkowe"/>
- <button label="Zamknij" name="close_btn"/>
- <button label="Anuluj" name="cancel_btn"/>
<button label="Zapisz" name="save_btn"/>
+ <button label="Anuluj" name="cancel_btn"/>
+ <button label="Zamknij" name="close_btn"/>
+ <button label="Profil" name="profile_btn" tool_tip="Pokaż opis miejsca"/>
</panel>
</panel>
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 9905bbbc18..b267610d33 100644
--- a/indra/newview/skins/default/xui/pl/panel_preferences_advanced.xml
+++ b/indra/newview/skins/default/xui/pl/panel_preferences_advanced.xml
@@ -13,13 +13,17 @@
</text>
<check_box label="Buduj/Edytuj" name="edit_camera_movement" tool_tip="Używaj automatycznego pozycjonowania kamery aktywując i deaktywując tryb edycji"/>
<check_box label="Wygląd" name="appearance_camera_movement" tool_tip="Używaj automatycznego pozycjonowania kamery podczas trybu edycji"/>
+ <check_box initial_value="prawda" label="Schowek" name="appearance_sidebar_positioning" tool_tip="Użyj automatycznego pozycjonowania kamery dla schowka"/>
<check_box label="Pokaż w trybie widoku panoramicznego" name="first_person_avatar_visible"/>
<check_box label="Aktywacja klawiszy strzałek do poruszania awatarem" name="arrow_keys_move_avatar_check"/>
- <check_box label="kliknij-kliknij-przytrzymaj, aby uruchomić" name="tap_tap_hold_to_run"/>
+ <check_box label="Kliknij-kliknij-przytrzymaj, aby uruchomić" name="tap_tap_hold_to_run"/>
<check_box label="Poruszaj ustami awatara kiedy używana jest komunikacja głosowa" name="enable_lip_sync"/>
- <check_box label="Czat Chmurkowy" name="bubble_text_chat"/>
+ <check_box label="Czat chmurkowy" name="bubble_text_chat"/>
<slider label="Intensywność" name="bubble_chat_opacity"/>
<color_swatch name="background" tool_tip="Wybierz kolor czatu w chmurce"/>
+ <text name="UI Size:">
+ Rozmiar UI
+ </text>
<check_box label="Pokaż błędy skryptu w:" name="show_script_errors"/>
<radio_group name="show_location">
<radio_item label="Czat Lokalny" name="0"/>
@@ -27,6 +31,7 @@
</radio_group>
<check_box label="Włącz/Wyłącz głos:" name="push_to_talk_toggle_check" tool_tip="Jeżeli jesteś w trybie mówienia, w celu aktywacji lub deaktywacji swojego mikrofonu wybierz i wyłącz przycisk Mów tylko raz. Jeżeli nie jesteś w trybie mówienia, mikrofon przesyła Twój głos tylko w momencie aktywacji pełnej przycisku Mów."/>
<line_editor label="Naciśnij Mów by rozpocząć komunikację głosową" name="modifier_combo"/>
- <button label="wybierz Klawisz" name="set_voice_hotkey_button"/>
- <button label="Środkowy Przycisk Myszki" name="set_voice_middlemouse_button" tool_tip="Zresetuj do środkowego przycisku myszy"/>
+ <button label="Wybierz klawisz" name="set_voice_hotkey_button"/>
+ <button label="Środkowy przycisk myszki" name="set_voice_middlemouse_button" tool_tip="Zresetuj do środkowego przycisku myszy"/>
+ <button label="Inne urzÄ…dzenia" name="joystick_setup_button"/>
</panel>
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 e843342aa2..d53a99e8c1 100644
--- a/indra/newview/skins/default/xui/pl/panel_preferences_alerts.xml
+++ b/indra/newview/skins/default/xui/pl/panel_preferences_alerts.xml
@@ -4,7 +4,7 @@
Powiadom mnie:
</text>
<check_box label="Kiedy wydajÄ™ lub otrzymujÄ™ L$" name="notify_money_change_checkbox"/>
- <check_box label="Kiedy moi Znajomi zalogowujÄ… siÄ™ i wylogowujÄ…" name="friends_online_notify_checkbox"/>
+ <check_box label="Kiedy moi znajomi zalogowujÄ… siÄ™ i wylogowujÄ…" name="friends_online_notify_checkbox"/>
<text name="show_label">
Zawsze pokazuj:
</text>
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 ae13cf662f..e980d71ce4 100644
--- a/indra/newview/skins/default/xui/pl/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/pl/panel_preferences_chat.xml
@@ -45,6 +45,7 @@
</text>
<check_box initial_value="true" label="Używaj animacji podczas pisania" name="play_typing_animation"/>
<check_box label="Wysyłaj wszystkie wiadomości (IM) na moją skrzynkę pocztową kiedy jestem niedostępny" name="send_im_to_email"/>
+ <check_box label="Zwykły tekst IM i historia czatu" name="plain_text_chat_history"/>
<text name="show_ims_in_label">
Pokaż wiadomości (IM) w:
</text>
@@ -55,4 +56,27 @@
<radio_item label="Osobne okna" name="radio" value="0"/>
<radio_item label="Etykiety" name="radio2" value="1"/>
</radio_group>
+ <check_box label="Przetłumacz Czat" name="translate_chat_checkbox" />
+ <text name="translate_language_text">
+ Czat Język:
+ </text>
+ <combo_box name="translate_language_combobox">
+ <combo_box.item name="System Default Language" label="Domyślny" />
+ <combo_box.item name="English" label="English (Angielski)" />
+ <combo_box.item name="Danish" label="Dansk (Duński)" />
+ <combo_box.item name="German" label="Deutsch (Niemiecki)" />
+ <combo_box.item name="Spanish" label="Español (Hiszpański)" />
+ <combo_box.item name="French" label="Français (Francuski)" />
+ <combo_box.item name="Italian" label="Italiano (Włoski)" />
+ <combo_box.item name="Hungarian" label="Magyar (Węgierski)" />
+ <combo_box.item name="Dutch" label="Nederlands (Niderlandzki)" />
+ <combo_box.item name="Polish" label="Polski" />
+ <combo_box.item name="Portugese" label="Português (Portugalski)" />
+ <combo_box.item name="Russian" label="РуÑÑкий (Rosyjski)" />
+ <combo_box.item name="Turkish" label="Türkçe (Turecki)" />
+ <combo_box.item name="Ukrainian" label="УкраїнÑька (UkraiÅ„ski)" />
+ <combo_box.item name="Chinese" label="中文 (简体) (Chiński)" />
+ <combo_box.item name="Japanese" label="日本語 (Japoński)" />
+ <combo_box.item name="Korean" label="한국어 (Koreański)" />
+ </combo_box>
</panel>
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 e7134f23c3..65ea349aec 100644
--- a/indra/newview/skins/default/xui/pl/panel_preferences_general.xml
+++ b/indra/newview/skins/default/xui/pl/panel_preferences_general.xml
@@ -13,7 +13,7 @@
<combo_box.item label="Italiano (Włoski) - Beta" name="Italian"/>
<combo_box.item label="Nederlands (Niderlandzki) - Beta" name="Dutch"/>
<combo_box.item label="Polski - Beta" name="Polish"/>
- <combo_box.item label="Portugués (Portugalski) - Beta" name="Portugese"/>
+ <combo_box.item label="Português (Portugalski) - Beta" name="Portugese"/>
<combo_box.item label="日本語 (Japoński) - Beta" name="(Japanese)"/>
</combo_box>
<text name="language_textbox2">
@@ -24,16 +24,16 @@
</text>
<text name="maturity_desired_textbox"/>
<combo_box name="maturity_desired_combobox">
- <combo_box.item label="&apos;PG&apos;, &apos;Mature&apos; oraz &apos;Adult&apos;" name="Desired_Adult"/>
- <combo_box.item label="&apos;PG&apos; i &apos;Mature&apos;" name="Desired_Mature"/>
- <combo_box.item label="&apos;PG&apos;" name="Desired_PG"/>
+ <combo_box.item label="&apos;General&apos;, &apos;Mature&apos; oraz &apos;Adult&apos;" name="Desired_Adult"/>
+ <combo_box.item label="&apos;General&apos; i &apos;Mature&apos;" name="Desired_Mature"/>
+ <combo_box.item label="&apos;General&apos;" name="Desired_PG"/>
</combo_box>
<text name="start_location_textbox">
Miejsce Startu:
</text>
<combo_box name="start_location_combo">
- <combo_box.item label="Ostatnie Miejsce" name="MyLastLocation" tool_tip="Domyślnie loguj mnie do ostatnio odwiedzonego miejsca."/>
- <combo_box.item label="Mój Start" name="MyHome" tool_tip="Domyślnie loguj mnie do mojego miejsca startu."/>
+ <combo_box.item label="Ostatnie Miejsce" name="MyLastLocation" tool_tip="Domyślnie loguj mnie w ostatnio odwiedzonym miejscu."/>
+ <combo_box.item label="Mój Start" name="MyHome" tool_tip="Domyślnie loguj mnie w moim Miejscu Startu."/>
</combo_box>
<check_box initial_value="true" label="Pokaż przy zalogowaniu" name="show_location_checkbox"/>
<text name="name_tags_textbox">
@@ -45,8 +45,8 @@
<radio_item label="Pokaż w skrócie" name="radio3" value="2"/>
</radio_group>
<check_box label="Wyświetl moje imię:" name="show_my_name_checkbox1"/>
- <check_box initial_value="true" label="Używaj Małych Imion Awatarów" name="small_avatar_names_checkbox"/>
- <check_box label="Wyświetl Tytuł Grupowy" name="show_all_title_checkbox1"/>
+ <check_box initial_value="true" label="Używaj małych imion awatarów" name="small_avatar_names_checkbox"/>
+ <check_box label="Wyświetl tytuł grupowy" name="show_all_title_checkbox1"/>
<text name="effects_color_textbox">
Kolor moich efektów:
</text>
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 bc08e025dd..e60d540066 100644
--- a/indra/newview/skins/default/xui/pl/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/pl/panel_preferences_graphics1.xml
@@ -1,8 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Grafika" name="Display panel">
- <text name="UI Size:">
- UI rozmiar:
- </text>
<text name="QualitySpeed">
Jakość i prędkość:
</text>
@@ -29,23 +26,23 @@
<text name="ShadersText">
Cieniowanie pixeli (shadery):
</text>
- <check_box initial_value="true" label="Mapowanie Wypukłości i Połysk" name="BumpShiny"/>
- <check_box initial_value="true" label="Podstawowe Shadery" name="BasicShaders" tool_tip="Wyłączenie tej opcji może naprawić błędy niektórych sterowników graficznych."/>
- <check_box initial_value="true" label="Shadery Atmosfery" name="WindLightUseAtmosShaders"/>
+ <check_box initial_value="true" label="Mapowanie wypukłości i połysk" name="BumpShiny"/>
+ <check_box initial_value="true" label="Podstawowe shadery" name="BasicShaders" tool_tip="Wyłączenie tej opcji może naprawić błędy niektórych sterowników graficznych."/>
+ <check_box initial_value="true" label="Shadery atmosfery" name="WindLightUseAtmosShaders"/>
<check_box initial_value="true" label="Refleksy w wodzie" name="Reflections"/>
<text name="ReflectionDetailText">
Ustawienia refleksów:
</text>
<radio_group name="ReflectionDetailRadio">
<radio_item label="Teren i drzewa" name="0"/>
- <radio_item label="Obiekty Statyczne" name="1"/>
- <radio_item label="Awatary i Obiekty" name="2"/>
+ <radio_item label="Obiekty statyczne" name="1"/>
+ <radio_item label="Awatary i obiekty" name="2"/>
<radio_item label="Wszystko" name="3"/>
</radio_group>
<text name="AvatarRenderingText">
Rendering awatarów
</text>
- <check_box initial_value="true" label="Impostoryzacja Awatarowa" name="AvatarImpostors"/>
+ <check_box initial_value="true" label="Impostoryzacja awatarowa" name="AvatarImpostors"/>
<check_box initial_value="true" label="Rendering awatara przez GPU" name="AvatarVertexProgram"/>
<check_box initial_value="true" label="Oddzielne warstwy ubrań" name="AvatarCloth"/>
<slider label="Pole widzenia:" name="DrawDistance"/>
@@ -53,7 +50,8 @@
m
</text>
<slider label="Liczba czÄ…steczek:" name="MaxParticleCount"/>
- <slider label="Jakość Post-Procesu:" name="RenderPostProcess"/>
+ <slider label="Max. # awatarów bez impostoryzacji:" name="MaxNumberAvatarDrawn"/>
+ <slider label="Jakość post-procesu:" name="RenderPostProcess"/>
<text name="MeshDetailText">
Szczególy obiektów:
</text>
@@ -89,7 +87,7 @@
</text>
<radio_group name="LightingDetailRadio">
<radio_item label="Tylko Słońce i Księżyc" name="SunMoon" value="0"/>
- <radio_item label="Tylko Bliskie Światła" name="LocalLights" value="1"/>
+ <radio_item label="Tylko bliskie światła" name="LocalLights" value="1"/>
</radio_group>
<text name="TerrainDetailText">
Szczegóły terenu:
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 9504019f79..fd9cdd6ff0 100644
--- a/indra/newview/skins/default/xui/pl/panel_preferences_privacy.xml
+++ b/indra/newview/skins/default/xui/pl/panel_preferences_privacy.xml
@@ -10,7 +10,7 @@
<check_box label="Mój status online jest dostępny tylko dla znajomych i grup do których należę" name="online_visibility"/>
<check_box label="Możliwość wysyłania wiadomości prywatnej (IM) oraz rozmowy głosowej tylko dla znajomych i grup do których należę" name="voice_call_friends_only_check"/>
<check_box label="Wyłącz mikrofon po zakończeniu rozmowy głosowej" name="auto_disengage_mic_check"/>
- <check_box label="Akceptuj Ciasteczka" name="cookies_enabled"/>
+ <check_box label="Akceptuj ciasteczka" name="cookies_enabled"/>
<text name="Logs:">
Logi:
</text>
@@ -21,5 +21,5 @@
Lokalizacja zapisu:
</text>
<button label="PrzeglÄ…daj" label_selected="PrzeglÄ…daj" name="log_path_button"/>
- <button label="Lista Zablokowanych" name="block_list"/>
+ <button label="Lista zablokowanych" name="block_list"/>
</panel>
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 98fdffeb50..b6578d21ca 100644
--- a/indra/newview/skins/default/xui/pl/panel_preferences_setup.xml
+++ b/indra/newview/skins/default/xui/pl/panel_preferences_setup.xml
@@ -1,11 +1,11 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Ustawienia" name="Input panel">
- <button label="Ustawienia Joysticka" name="joystick_setup_button"/>
+ <button label="Ustawienia joysticka" name="joystick_setup_button"/>
<text name="Mouselook:">
Widok panoramiczny:
</text>
<text name=" Mouse Sensitivity">
- Czułość Myszki
+ Czułość myszki
</text>
<slider name="mouse_sensitivity"/>
<check_box label="Zmień klawisze myszki" name="invert_mouse"/>
@@ -41,9 +41,9 @@
<check_box label="Zezwalaj na wtyczki" name="browser_plugins_enabled"/>
<check_box label="Akceptuj ciasteczka z Internetu" name="cookies_enabled"/>
<check_box label="Zezwalaj na Javascript" name="browser_javascript_enabled"/>
- <check_box label="Używaj Serwera Proxy" name="web_proxy_enabled"/>
+ <check_box label="Używaj serwera proxy" name="web_proxy_enabled"/>
<text name="Proxy location">
- Lokalizacja Proxy:
+ Lokalizacja proxy:
</text>
<line_editor name="web_proxy_editor" tool_tip="Nazwa lub IP proxy, którego chcesz użyć"/>
<spinner label="Numer portu:" name="web_proxy_port"/>
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 6ab5be77d8..eaf9ae809b 100644
--- a/indra/newview/skins/default/xui/pl/panel_preferences_sound.xml
+++ b/indra/newview/skins/default/xui/pl/panel_preferences_sound.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Dźwięki" name="Preference Media panel">
<slider label="Główny" name="System Volume"/>
- <check_box label="Wycisz podczas minimalizacji" name="mute_when_minimized"/>
+ <check_box initial_value="true" label="Wycisz podczas minimalizacji" name="mute_when_minimized"/>
<slider label="Interfejs" name="UI Volume"/>
<slider label="Otoczenie" name="Wind Volume"/>
<slider label="Efekty dźwiękowe" name="SFX Volume"/>
@@ -9,25 +9,31 @@
<check_box label="Odtwarzaj media audio" name="music_enabled"/>
<slider label="Media" name="Media Volume"/>
<check_box label="Odtwarzaj media" name="enable_media"/>
- <slider label="Komunikacja Głosowa" name="Voice Volume"/>
+ <slider label="Komunikacja głosowa" name="Voice Volume"/>
<check_box label="Pozwól na rozmowy głosowe" name="enable_voice_check"/>
- <check_box label="Automatycznie odtwarzaj media" name="media_auto_play_btn" tool_tip="Zaznacz tę funkcję by uruchomić automatyczne uruchamianie mediów"/>
- <check_box label="Uruchom media załączone do innych awatarów" name="media_show_on_others_btn" tool_tip="Odznacz tę funkcję by ukryć media załączone to awatarów w publiżu"/>
+ <check_box label="Automatycznie odtwarzaj media" name="media_auto_play_btn" tool_tip="Zaznacz tę funkcję aby uruchomić automatyczne uruchamianie mediów" value="true"/>
+ <check_box label="Uruchom media załączone do innych awatarów" name="media_show_on_others_btn" tool_tip="Odznacz tę funkcję by ukryć media załączone to awatarów w publiżu" value="true"/>
<text name="voice_chat_settings">
- Ustawienia Komunikacji Głosowej
+ Ustawienia komunikacji głosowej
</text>
<text name="Listen from">
Odtwarzaj z:
</text>
<radio_group name="ear_location">
- <radio_item label="Pozycji kamery" name="0"/>
- <radio_item label="Pozycji Awatara" name="1"/>
+ <radio_item label="pozycji kamery" name="0"/>
+ <radio_item label="pozycji awatara" name="1"/>
</radio_group>
- <button label="Wejściowe/Wyjściowe Urządzenia" name="device_settings_btn"/>
- <panel label="Ustawienia Sprzętowe" name="device_settings_panel">
+ <button label="Wejściowe/Wyjściowe urządzenia" name="device_settings_btn"/>
+ <panel label="Ustawienia sprzętowe" name="device_settings_panel">
<panel.string name="default_text">
Domyślne
</panel.string>
+ <panel.string name="default system device">
+ Domyślne ustawienia sprzętowe
+ </panel.string>
+ <panel.string name="no device">
+ Brak sprzętu
+ </panel.string>
<text name="Input">
Wejściowe
</text>
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 f10ce5ea4d..b5763e1291 100644
--- a/indra/newview/skins/default/xui/pl/panel_prim_media_controls.xml
+++ b/indra/newview/skins/default/xui/pl/panel_prim_media_controls.xml
@@ -13,9 +13,9 @@
50
</string>
<layout_stack name="progress_indicator_area">
- <panel name="media_progress_indicator">
+ <layout_panel name="media_progress_indicator">
<progress_bar name="media_progress_bar" tool_tip="Wczytywanie mediów"/>
- </panel>
+ </layout_panel>
</layout_stack>
<layout_stack name="media_controls">
<layout_panel name="back">
@@ -25,7 +25,7 @@
<button name="fwd_btn" tool_tip="Przejdź do następnego"/>
</layout_panel>
<layout_panel name="home">
- <button name="home_btn" tool_tip="Strona Domowa"/>
+ <button name="home_btn" tool_tip="Strona domowa"/>
</layout_panel>
<layout_panel name="media_stop">
<button name="media_stop_btn" tool_tip="Zatrzymaj media"/>
@@ -37,13 +37,13 @@
<button name="stop_btn" tool_tip="Zatrzymaj wczytywanie"/>
</layout_panel>
<layout_panel name="play">
- <button name="play_btn" tool_tip="Odtwarzaj Media"/>
+ <button name="play_btn" tool_tip="Odtwarzaj media"/>
</layout_panel>
<layout_panel name="pause">
<button name="pause_btn" tool_tip="Wstrzymaj media"/>
</layout_panel>
<layout_panel name="media_address">
- <line_editor name="media_address_url" tool_tip="URL Mediów"/>
+ <line_editor name="media_address_url" tool_tip="URL mediów"/>
<layout_stack name="media_address_url_icons">
<layout_panel>
<icon name="media_whitelist_flag" tool_tip="Biała Lista aktywna"/>
@@ -63,14 +63,14 @@
<button name="skip_forward_btn" tool_tip="Przewiń do przodu"/>
</layout_panel>
<layout_panel name="media_volume">
- <button name="media_mute_button" tool_tip="Wycisz Media"/>
- <slider name="volume_slider" tool_tip="Głośność Mediów"/>
+ <button name="media_mute_button" tool_tip="Wycisz media"/>
+ <slider name="volume_slider" tool_tip="Głośność mediów"/>
</layout_panel>
<layout_panel name="zoom_frame">
<button name="zoom_frame_btn" tool_tip="Przybliż do mediów"/>
</layout_panel>
<layout_panel name="close">
- <button name="close_btn" tool_tip="Oddal"/>
+ <button name="close_btn" tool_tip="Oddal od mediów"/>
</layout_panel>
<layout_panel name="new_window">
<button name="new_window_btn" tool_tip="Otwórz URL w przeglądarce"/>
diff --git a/indra/newview/skins/default/xui/pl/panel_profile.xml b/indra/newview/skins/default/xui/pl/panel_profile.xml
index 766ed94822..97c2fdd417 100644
--- a/indra/newview/skins/default/xui/pl/panel_profile.xml
+++ b/indra/newview/skins/default/xui/pl/panel_profile.xml
@@ -34,8 +34,8 @@
<button label="▼" name="overflow_btn" tool_tip="Zapłać lub udostępnij obiekty Rezydentowi"/>
</layout_panel>
<layout_panel name="profile_me_buttons_panel">
- <button label="Edytuj Profil" name="edit_profile_btn" tool_tip="Edytuj swoje dane"/>
- <button label="Edytuj Wygląd" name="edit_appearance_btn" tool_tip="Stwórz/edytuj swój wygląd: dane fizyczne, ubranie..."/>
+ <button label="Edytuj profil" name="edit_profile_btn" tool_tip="Edytuj swoje dane"/>
+ <button label="Edytuj wygląd" name="edit_appearance_btn" tool_tip="Stwórz/edytuj swój wygląd: dane fizyczne, ubranie..."/>
</layout_panel>
</layout_stack>
</panel>
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 2b37dd96b7..932e3631ab 100644
--- a/indra/newview/skins/default/xui/pl/panel_region_covenant.xml
+++ b/indra/newview/skins/default/xui/pl/panel_region_covenant.xml
@@ -19,7 +19,7 @@
Umowa:
</text>
<text name="covenant_timestamp_text">
- Ostatnia Modyfikacja Wed Dec 31 16:00:00 1969
+ Ostatnia modyfikacja Wed Dec 31 16:00:00 1969
</text>
<button label="?" name="covenant_help"/>
<text_editor name="covenant_editor">
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 a796274738..1b64827725 100644
--- a/indra/newview/skins/default/xui/pl/panel_region_estate.xml
+++ b/indra/newview/skins/default/xui/pl/panel_region_estate.xml
@@ -29,10 +29,10 @@
<check_box label="Rezydenci, którzy dokonali weryfikacji wieku" name="limit_age_verified" tool_tip="Zbanuj Rezydentów, którzy nie zweryfikowali swojego wieku. Odwiedź stronę [SUPPORT_SITE] po więcej informacji."/>
<check_box label="Rozmowy dozwolone" name="voice_chat_check"/>
<button label="?" name="voice_chat_help"/>
- <check_box label="Teleportacja Dozwolona" name="allow_direct_teleport"/>
+ <check_box label="Teleportacja dozwolona" name="allow_direct_teleport"/>
<button label="?" name="allow_direct_teleport_help"/>
<text name="abuse_email_text">
- Email reporty o nadużyciach do:
+ Wysyłaj (email) reporty o nadużyciach do:
</text>
<line_editor name="abuse_email_address"/>
<string name="email_unsupported">
@@ -41,7 +41,7 @@
<button label="?" name="abuse_email_address_help"/>
<button label="Zastosuj" name="apply_btn"/>
<button label="Wyrzuć Rezydenta z Majątku..." name="kick_user_from_estate_btn"/>
- <button label="Wyślij Wiadomość do Majątku..." name="message_estate_btn"/>
+ <button label="Wyślij wiadomość do Majątku..." name="message_estate_btn"/>
<text name="estate_manager_label">
ZarzÄ…dcy MajÄ…tku:
</text>
@@ -57,7 +57,7 @@
<button label="Usuń..." name="remove_allowed_avatar_btn"/>
<button label="Dodaj..." name="add_allowed_avatar_btn"/>
<text name="allow_group_label">
- Dozwolone Grupy:
+ Dozwolone grupy:
</text>
<button label="?" name="allow_group_help"/>
<name_list name="allowed_group_name_list"/>
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 1410a2a882..601571f62e 100644
--- a/indra/newview/skins/default/xui/pl/panel_region_general.xml
+++ b/indra/newview/skins/default/xui/pl/panel_region_general.xml
@@ -25,15 +25,15 @@
<check_box label="Odsprzedaż dozwolona" name="allow_land_resell_check"/>
<check_box label="ÅÄ…czenie/Dzielenie dozwolone" name="allow_parcel_changes_check"/>
<check_box label="Zablokuj wyszukiwanie" name="block_parcel_search_check" tool_tip="Pozwól na wyświetlanie nazwy regionu i posiadłości w wynikach wyszukiwania"/>
- <spinner label="Limit Gości" name="agent_limit_spin"/>
+ <spinner label="Limit gości" name="agent_limit_spin"/>
<spinner label="Ekstra obiekty" name="object_bonus_spin"/>
<text label="Ograniczenia wieku" name="access_text">
Rodzaj:
</text>
<icons_combo_box label="&apos;Mature&apos;" name="access_combo">
<icons_combo_box.item label="&apos;Adult&apos;" name="Adult" value="42"/>
- <icons_combo_box.item label="&apos;Mature&apos;" name="Mature" value="21"/>
- <icons_combo_box.item label="&apos;PG&apos;" name="PG" value="13"/>
+ <icons_combo_box.item label="&apos;Moderate&apos;" name="Mature" value="21"/>
+ <icons_combo_box.item label="&apos;General&apos;" name="PG" value="13"/>
</icons_combo_box>
<button label="Zastosuj" name="apply_btn"/>
<button label="Teleportuj do Miejsca Startu jednego Rezydenta..." name="kick_btn"/>
diff --git a/indra/newview/skins/default/xui/pl/panel_region_general_layout.xml b/indra/newview/skins/default/xui/pl/panel_region_general_layout.xml
deleted file mode 100644
index ffa8f1e18a..0000000000
--- a/indra/newview/skins/default/xui/pl/panel_region_general_layout.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="Region" name="General">
- <text name="region_text_lbl">
- Region:
- </text>
- <text name="region_text">
- nieznany
- </text>
- <text name="version_channel_text_lbl">
- Wersja:
- </text>
- <text name="version_channel_text">
- nieznany
- </text>
- <text name="region_type_lbl">
- Typ:
- </text>
- <text name="region_type">
- nieznany
- </text>
- <check_box label="Zablokuj zmiany terenu" name="block_terraform_check"/>
- <check_box label="Zablokuj latanie" name="block_fly_check"/>
- <check_box label="Uszkodzenia dozwolone" name="allow_damage_check"/>
- <check_box label="Zablokuj popychanie" name="restrict_pushobject"/>
- <check_box label="Odsprzedaż dozwolona" name="allow_land_resell_check"/>
- <check_box label="ÅÄ…czenie/Dzielenie dozwolone" name="allow_parcel_changes_check"/>
- <check_box label="Zablokuj wyszukiwanie" name="block_parcel_search_check" tool_tip="Pozwól na wyświetlanie nazwy Regionu i Posiadłości w wynikach wyszukiwania"/>
- <spinner label="Limit Gości" name="agent_limit_spin"/>
- <spinner label="Ekstra obiekty" name="object_bonus_spin"/>
- <text label="Restrykcje wieku" name="access_text">
- Rodzaj:
- </text>
- <combo_box label="Moderuj" name="access_combo">
- <combo_box.item label="Adult" name="Adult"/>
- <combo_box.item label="Moderuj" name="Mature"/>
- <combo_box.item label="Ogólne" name="PG"/>
- </combo_box>
- <button label="Zastosuj" name="apply_btn"/>
- <button label="Teleportuj do Miejsca Startu jednego Rezydenta..." name="kick_btn"/>
- <button label="Teleportuj do Miejsca Startu wszystkich Rezydentów..." name="kick_all_btn"/>
- <button label="Wyślij wiadomość do Regionu..." name="im_btn"/>
- <button label="Obsługa teleportera..." name="manage_telehub_btn"/>
-</panel>
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 917ae91774..f22b4a5989 100644
--- a/indra/newview/skins/default/xui/pl/panel_region_terrain.xml
+++ b/indra/newview/skins/default/xui/pl/panel_region_terrain.xml
@@ -19,12 +19,12 @@
<slider label="Pora doby" name="sun_hour_slider" />
<button label="Zastosuj" name="apply_btn" />
<button label="Zapisz surowy teren..." name="download_raw_btn"
- tool_tip="Dostępne tylko dla Właścicieli Majątku, nie dla Zarządców" />
+ tool_tip="Dostępne tylko dla właścicieli Majątku, nie dla zarządców" />
<button label="?" name="download_raw_help" />
<button label="Załaduj surowy teren..." name="upload_raw_btn"
- tool_tip="Dostępne tylko dla Właścicieli Majątku, nie dla Zarządców" />
+ tool_tip="Dostępne tylko dla właścicieli Majątku, nie dla zarządców" />
<button label="?" name="upload_raw_help" />
- <button label="Ustal Teren" name="bake_terrain_btn"
+ <button label="Ustal teren" name="bake_terrain_btn"
tool_tip="Zapamiętaj obecny teren jako punkt odniesienia dla limitów podnoszenia i opuszczania" />
<button label="?" name="bake_terrain_help" />
</panel>
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 156f3db63f..c6ed2457f1 100644
--- a/indra/newview/skins/default/xui/pl/panel_region_texture.xml
+++ b/indra/newview/skins/default/xui/pl/panel_region_texture.xml
@@ -7,7 +7,7 @@
brak danych
</text>
<text name="detail_texture_text">
- Tekstury Terenu (24-bitowe 512x512 pliki .tga wymagane)
+ Tekstury terenu (24-bitowe 512x512 pliki .tga wymagane)
</text>
<text name="height_text_lbl">
1 (Dół)
@@ -22,7 +22,7 @@
4 (Góra)
</text>
<text name="height_text_lbl5">
- Zakres Poziomów dla Tekstury
+ Zakres poziomów dla tekstury
</text>
<text name="height_text_lbl6">
Północny-Zachód
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 09c3d8ad04..fa89a3f727 100644
--- a/indra/newview/skins/default/xui/pl/panel_script_ed.xml
+++ b/indra/newview/skins/default/xui/pl/panel_script_ed.xml
@@ -27,11 +27,11 @@
</menu>
<menu label="Edytuj" name="Edit">
<menu_item_call label="Cofnij" name="Undo"/>
- <menu_item_call label="Do Przodu" name="Redo"/>
+ <menu_item_call label="Do przodu" name="Redo"/>
<menu_item_call label="Wytnij" name="Cut"/>
<menu_item_call label="Kopiuj" name="Copy"/>
<menu_item_call label="Wklej" name="Paste"/>
- <menu_item_call label="Wybierz Wszystko" name="Select All"/>
+ <menu_item_call label="Wybierz wszystko" name="Select All"/>
<menu_item_call label="Odznacz" name="Deselect"/>
<menu_item_call label="Znajdź / Zamień..." name="Search / Replace..."/>
</menu>
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 e1863517a2..a52d8aed3d 100644
--- 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
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="MÓJ AWATAR" name="script_limits_my_avatar_panel">
<text name="script_memory">
- Zużycie Skryptów przez Awatara
+ Zużycie skryptów przez awatara
</text>
<text name="loading_text">
Åadowanie...
@@ -9,7 +9,7 @@
<scroll_list name="scripts_list">
<scroll_list.columns label="Rozmiar (kb)" name="size"/>
<scroll_list.columns label="URL" name="urls"/>
- <scroll_list.columns label="Nazwa Obiektu" name="name"/>
+ <scroll_list.columns label="Nazwa obiektu" name="name"/>
<scroll_list.columns label="Lokalizacja" name="location"/>
</scroll_list>
<button label="Odśwież listę" name="refresh_list_btn"/>
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 1419a9c9f6..070f025087 100644
--- 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
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="PAMIĘĆ REGIONU" name="script_limits_region_memory_panel">
<text name="script_memory">
- Pamięć Skryptu Parceli
+ Pamięć skryptu na posiadłości
</text>
<text name="loading_text">
Åadowanie...
@@ -9,7 +9,7 @@
<scroll_list name="scripts_list">
<scroll_list.columns label="Rozmiar (kb)" name="size"/>
<scroll_list.columns label="URL" name="urls"/>
- <scroll_list.columns label="Nazwa Obiektu" name="name"/>
+ <scroll_list.columns label="Nazwa obiektu" name="name"/>
<scroll_list.columns label="Właściciel" name="owner"/>
<scroll_list.columns label="Parcela" name="parcel"/>
<scroll_list.columns label="Lokalizacja" name="location"/>
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 f34fd0e108..ff4ca23a4d 100644
--- a/indra/newview/skins/default/xui/pl/panel_side_tray.xml
+++ b/indra/newview/skins/default/xui/pl/panel_side_tray.xml
@@ -2,7 +2,7 @@
<!-- Side tray cannot show background because it is always
partially on screen to hold tab buttons. -->
<side_tray name="sidebar">
- <sidetray_tab description="Przełącz Panel Boczny" name="sidebar_openclose" tab_title="Przełącz Panel Boczny"/>
+ <sidetray_tab description="Przełącz schowek" name="sidebar_openclose" tab_title="Przełącz schowek"/>
<sidetray_tab description="Miejsce Startu." name="sidebar_home" tab_title="Home">
<panel label="miejsce startu" name="panel_home"/>
</sidetray_tab>
@@ -24,6 +24,6 @@
<panel label="Edytuj SzafÄ™" name="sidepanel_inventory"/>
</sidetray_tab>
<sidetray_tab description="Zmień swój obecny wygląd i ubranie." name="sidebar_appearance" tab_title="My Appearance">
- <panel label="Edytuj WyglÄ…d" name="sidepanel_appearance"/>
+ <panel label="Edytuj wyglÄ…d" name="sidepanel_appearance"/>
</sidetray_tab>
</side_tray>
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 0f99f3911c..9f7f7f1238 100644
--- a/indra/newview/skins/default/xui/pl/panel_stand_stop_flying.xml
+++ b/indra/newview/skins/default/xui/pl/panel_stand_stop_flying.xml
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<!-- Width and height of this panel should be synchronized with "panel_modes" in the floater_moveview.xml-->
<panel name="panel_stand_stop_flying">
- <button label="Wstań" name="stand_btn" tool_tip="Kliknij tutaj by wstać."/>
+ <button label="Wstań" name="stand_btn" tool_tip="Kliknij tutaj aby wstać."/>
<button label="Zatrzymaj latanie" name="stop_fly_btn" tool_tip="Zatrzymaj latanie"/>
</panel>
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 313c2732ff..5e97dd8961 100644
--- a/indra/newview/skins/default/xui/pl/panel_status_bar.xml
+++ b/indra/newview/skins/default/xui/pl/panel_status_bar.xml
@@ -21,11 +21,13 @@
<panel.string name="buycurrencylabel">
L$ [AMT]
</panel.string>
- <button label="" label_selected="" name="buycurrency" tool_tip="Bilans"/>
- <button label="Kup L$" name="buyL" tool_tip="Kliknij aby kupić L$"/>
- <text name="TimeText" tool_tip="Obecny Czas (Pacyficzny)">
+ <panel name="balance_bg">
+ <text name="balance" tool_tip="Mój bilans" value="L$20"/>
+ <button label="Kup L$" name="buyL" tool_tip="Kliknij aby kupić więcej L$"/>
+ </panel>
+ <text name="TimeText" tool_tip="Obecny czas (Pacyficzny)">
24:00 AM PST
</text>
- <button name="media_toggle_btn" tool_tip="Start/Stop Wszystkie Media (Muzyka, Video, WWW)"/>
- <button name="volume_btn" tool_tip="Regulacja Głośności"/>
+ <button name="media_toggle_btn" tool_tip="Start/Stop wszystkie media (Muzyka, Video, WWW)"/>
+ <button name="volume_btn" tool_tip="Regulacja głośności"/>
</panel>
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 d143843eaf..b43bd96536 100644
--- a/indra/newview/skins/default/xui/pl/panel_teleport_history.xml
+++ b/indra/newview/skins/default/xui/pl/panel_teleport_history.xml
@@ -1,10 +1,11 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="Teleport History">
<accordion name="history_accordion">
+ <no_matched_tabs_text name="no_matched_teleports_msg" value="Nie znaleziono tego czego szukasz? Spróbuj [secondlife:///app/search/places/[SEARCH_TERM] Szukaj]."/>
+ <no_visible_tabs_text name="no_teleports_msg" value="Historia teleportacji jest pusta. Spróbuj [secondlife:///app/search/places/ Szukaj]."/>
<accordion_tab name="today" title="Dzisiaj"/>
<accordion_tab name="yesterday" title="Wczoraj"/>
<accordion_tab name="2_days_ago" title="2 dni temu"/>
- 5
<accordion_tab name="3_days_ago" title="3 dni temu"/>
<accordion_tab name="4_days_ago" title="4 dni temu"/>
<accordion_tab name="5_days_ago" title="5 dni temu"/>
diff --git a/indra/newview/skins/default/xui/pl/panel_voice_effect.xml b/indra/newview/skins/default/xui/pl/panel_voice_effect.xml
new file mode 100644
index 0000000000..f8a076424f
--- /dev/null
+++ b/indra/newview/skins/default/xui/pl/panel_voice_effect.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="panel_voice_effect">
+ <string name="no_voice_effect">
+ Wyłącz Voice Morph
+ </string>
+ <string name="preview_voice_effects">
+ PrzeglÄ…daj Voice Morphing â–¶
+ </string>
+ <string name="get_voice_effects">
+ Uzyskaj Voice Morphing â–¶
+ </string>
+ <combo_box name="voice_effect" tool_tip="Wybierz Voice Morph aby zmienić Twój głos">
+ <combo_box.item label="Wyłącz Voice Morph" name="no_voice_effect"/>
+ </combo_box>
+</panel>
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 849b01a1ce..69f18be767 100644
--- a/indra/newview/skins/default/xui/pl/panel_world_map.xml
+++ b/indra/newview/skins/default/xui/pl/panel_world_map.xml
@@ -30,6 +30,12 @@
<panel.string name="world_map_northwest">
NW
</panel.string>
+ <panel.string name="world_map_person">
+ 1 osoba
+ </panel.string>
+ <panel.string name="world_map_people">
+ [NUMBER] ludzi
+ </panel.string>
<text label="N" name="floater_map_north" text="N">
N
</text>
diff --git a/indra/newview/skins/default/xui/pl/role_actions.xml b/indra/newview/skins/default/xui/pl/role_actions.xml
index ccfa5f222e..53530fff5e 100644
--- a/indra/newview/skins/default/xui/pl/role_actions.xml
+++ b/indra/newview/skins/default/xui/pl/role_actions.xml
@@ -1,27 +1,27 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<role_actions>
- <action_set description="Przywileje pozwajające na dodawanie i usuwanie Członków oraz pozwalają nowym Członkom na dodawanie się bez zaproszenia." name="Membership">
- <action description="Zapraszanie do Grupy" longdescription="Zapraszanie nowych Ludzi do Grupy używając przycisku &apos;Zaproś&apos; w sekcji Ról &gt; Członkowie" name="member invite"/>
- <action description="Usuwanie z Grupy" longdescription="Usuwanie Członków z Grupy używając &apos;Usuń z Grupy&apos;; pod Członkowie &gt; Członkowie. Właściciel może usunąć każdego za wyjątkiem innego Właściciela. Jeżeli nie jesteś Właścicielem możesz tylko usuwać Członków w Funkcji Każdy i tylko wtedy kiedy nie mają żadnej innej Funkcji. Aby odebrać Członkowi Funkcję musisz mieć Przywilej &apos;Odbieranie Funkcji&apos;." name="member eject"/>
+ <action_set description="Przywileje pozwajające na dodawanie i usuwanie członków oraz pozwalają nowym członkom na dodawanie się bez zaproszenia." name="Membership">
+ <action description="Zapraszanie do grupy" longdescription="Zapraszanie nowych ludzi do grupy używając przycisku &apos;Zaproś&apos; w sekcji Ról &gt; Członkowie" name="member invite"/>
+ <action description="Usuwanie z grupy" longdescription="Usuwanie członków z grupy używając &apos;Usuń z Grupy&apos;; pod Członkowie &gt; Członkowie. Właściciel może usunąć każdego za wyjątkiem innego Właściciela. Jeżeli nie jesteś Właścicielem możesz tylko usuwać Członków w Funkcji Każdy i tylko wtedy kiedy nie mają żadnej innej Funkcji. Aby odebrać Członkowi Funkcję musisz mieć Przywilej &apos;Odbieranie Funkcji&apos;." name="member eject"/>
<action description="Selekcja opcji &apos;Wolne Zapisy&apos; i wybór &apos;Opłaty Wstępnej&apos;" longdescription="Selekcja opcji &apos;Wolne Zapisy&apos; (pozwala nowym Członkom na dodawanie się bez zaproszenia) i wybór &apos;Opłaty Wstępnej&apos; w Ustawieniach Grupy w sekcji Ogólne." name="member options"/>
</action_set>
- <action_set description="Przywileje pozwalające na dodawanie, usuwanie i edycję Funkcji w Grupie, oraz na nadawanie i odbieranie Funkcji, oraz na przypisywanie Przywilejów do Funkcji." name="Roles">
- <action description="Dodawanie Funkcji" longdescription="Dodawanie nowych Funkcji pod Członkowie &gt; Funkcje." name="role create"/>
- <action description="Usuwanie Funkcji" longdescription="Usuń Funkcje w zakładce Funkcje &gt; Funkcje" name="role delete"/>
- <action description="Zmiany nazw Funkcji, Tytułów i Opisów i widoczność Członków w Informacjach o Grupie" longdescription="Zmiany nazw Funkcji, Tytułów i Opisów i wybór czy Członkowie z daną Rolą są widoczni Informacji o Grupie w dolnej części sekcji Funkcji &gt; Funkcje po wybraniu Funkcje." name="role properties"/>
- <action description="Przypisywanie Członków do posiadanych Funkcji" longdescription="Przypisywanie Członków do Funkcji w sekcji Przypisane Funkcje pod Członkowie &gt; Członkowie. Członek z tym Przywilejem może dodawać Członków do Funkcji które sam już posiada." name="role assign member limited"/>
- <action description="Przypisywanie Członków do wszystkich Funkcji" longdescription="Przypisywanie Członków do wszystkich Funkcji w sekcji Przypisane Funkcje pod Członkowie &gt; Członkowie. *UWAGA* Członek w Funkcji z tym Przywilejem może przypisać siebie i innych Członków nie będących Właścicielami do Funkcji dających więcej Przywilejów niż posiadane obecnie potencjalnie dające możliwości zbliżone do możliwości Właściciela. Udzielaj tego Przywileju z rozwagą." name="role assign member"/>
- <action description="Odbieranie Funkcji" longdescription="Odbieranie Funkcji w sekcji Przypisane Funkcje pod Członkowie &gt; Członkowie. Funkcja Właściciela nie może być odebrana." name="role remove member"/>
- <action description="Dodawanie i Usuwanie Przywilejów z Funkcji" longdescription="Dodawanie i Usuwanie Przywilejów z Funkcji w sekcji Przwileje pod Członkowie &gt; Funkcje. *UWAGA* Członek w Funkcji z tym Przywilejem może przypisać sobie i innym Członkom nie będącym Właścicielami wszystkie Przywileje potencjalnie dające możliwości zbliżone do możliwości Właściciela. Udzielaj tego Przywileju z rozwagą." name="role change actions"/>
+ <action_set description="Przywileje pozwalające na dodawanie, usuwanie i edycję funkcji w grupie, oraz na nadawanie i odbieranie funkcji, oraz na przypisywanie Przywilejów do Funkcji." name="Roles">
+ <action description="Dodawanie funkcji" longdescription="Dodawanie nowych funkcji pod Członkowie &gt; Funkcje." name="role create"/>
+ <action description="Usuwanie funkcji" longdescription="Usuń Funkcje w zakładce Funkcje &gt; Funkcje" name="role delete"/>
+ <action description="Zmiany nazw funkcji, tytułów i opisów i widoczność członków w informacjach o grupie" longdescription="Zmiany nazw Funkcji, Tytułów i Opisów i wybór czy Członkowie z daną Rolą są widoczni Informacji o Grupie w dolnej części sekcji Funkcji &gt; Funkcje po wybraniu Funkcje." name="role properties"/>
+ <action description="Przypisywanie członków do posiadanych funkcji" longdescription="Przypisywanie Członków do Funkcji w sekcji Przypisane Funkcje pod Członkowie &gt; Członkowie. Członek z tym Przywilejem może dodawać Członków do Funkcji które sam już posiada." name="role assign member limited"/>
+ <action description="Przypisywanie członków do wszystkich funkcji" longdescription="Przypisywanie Członków do wszystkich Funkcji w sekcji Przypisane Funkcje pod Członkowie &gt; Członkowie. *UWAGA* Członek w Funkcji z tym Przywilejem może przypisać siebie i innych Członków nie będących Właścicielami do Funkcji dających więcej Przywilejów niż posiadane obecnie potencjalnie dające możliwości zbliżone do możliwości Właściciela. Udzielaj tego Przywileju z rozwagą." name="role assign member"/>
+ <action description="Odbieranie funkcji" longdescription="Odbieranie Funkcji w sekcji Przypisane Funkcje pod Członkowie &gt; Członkowie. Funkcja Właściciela nie może być odebrana." name="role remove member"/>
+ <action description="Dodawanie i usuwanie przywilejów z funkcji" longdescription="Dodawanie i Usuwanie Przywilejów z Funkcji w sekcji Przwileje pod Członkowie &gt; Funkcje. *UWAGA* Członek w Funkcji z tym Przywilejem może przypisać sobie i innym Członkom nie będącym Właścicielami wszystkie Przywileje potencjalnie dające możliwości zbliżone do możliwości Właściciela. Udzielaj tego Przywileju z rozwagą." name="role change actions"/>
</action_set>
<action_set description="Przywileje pozwalające na edycję atrybutów Grupy takich jak widoczność w wyszukiwarce, status i insygnia." name="Group Identity">
- <action description="Zmiany Statusu Grupy, Insygniów, &apos;Widoczność w Wyszukiwarce&apos; i widoczność Członków w Informacjach o Grupie." longdescription="Zmiany Statusu Grupy, Insygniów, i Widoczność w Wyszukiwarce. Dostęp poprzez ustawienia Ogólne." name="group change identity"/>
+ <action description="Zmiany statusu grupy, insygniów, &apos;Widoczność w Wyszukiwarce&apos; i widoczność Członków w Informacjach o Grupie." longdescription="Zmiany Statusu Grupy, Insygniów, i Widoczność w Wyszukiwarce. Dostęp poprzez ustawienia Ogólne." name="group change identity"/>
</action_set>
- <action_set description="Przywileje pozwalające na przypisywanie, modyfikacje i sprzedaż Posiadłości Grupy. Aby zobaczyć okno O Posiadłości wybierz grunt prawym klawiszem myszki i wybierz &apos;O Posiadłości&apos; albo wybierz ikonę &apos;i&apos; w głównym menu." name="Parcel Management">
- <action description="Przypisywanie i kupowanie Posiadłości dla Grupy" longdescription="Przypisywanie i kupowanie Posiadłości dla Grupy. Dostęp poprzez O Posiadlości &gt; ustawienia Ogólne." name="land deed"/>
- <action description="Oddawanie Posiadłości do Linden Lab" longdescription="Oddawanie Posiadłości do Linden Lab. *UWAGA* Członek w Funkcji z tym Przywilejem może porzucać Posiadlości Grupy poprzez O Posiadlości &gt; ustawienia Ogólne oddając Posiadłości za darmo do Linden Labs! Udzielaj tego Przywileju z rozwagą." name="land release"/>
- <action description="Sprzedaż Posiadłości" longdescription="Sprzedaż Posiadłości. *UWAGA* Członek w Funkcji z tym Przywilejem może sprzedawać Posiadlości Grupy poprzez O Posiadlości &gt; ustawienia Ogólne! Udzielaj tego Przywileju z rozwagą." name="land set sale info"/>
- <action description="PodziaÅ‚ i ÅÄ…czenie PosiadÅ‚oÅ›ci" longdescription="PodziaÅ‚ i ÅÄ…czenie PosiadÅ‚oÅ›ci. DostÄ™p poprzez wybranie gruntu prawym klawiszem myszki, &apos;Edycja Terenu&apos;, i przesuwanie myszkÄ… po gruncie wybierajÄ…c obszar. Aby podzielić wybierz obszar i naciÅ›nij &apos;Podziel&apos;. Aby połączyć wybierz dwie albo wiÄ™cej sÄ…siadujÄ…ce PosiadÅ‚oÅ›ci i naciÅ›nij &apos;Połącz&apos;." name="land divide join"/>
+ <action_set description="Przywileje pozwalające na przypisywanie, modyfikacje i sprzedaż posiadłości grupy. Aby zobaczyć okno O Posiadłości wybierz grunt prawym klawiszem myszki i wybierz &apos;O Posiadłości&apos; albo wybierz ikonę &apos;i&apos; w głównym menu." name="Parcel Management">
+ <action description="Przypisywanie i kupowanie posiadłości dla grupy" longdescription="Przypisywanie i kupowanie Posiadłości dla Grupy. Dostęp poprzez O Posiadlości &gt; ustawienia Ogólne." name="land deed"/>
+ <action description="Oddawanie posiadłości do Linden Lab" longdescription="Oddawanie Posiadłości do Linden Lab. *UWAGA* Członek w Funkcji z tym Przywilejem może porzucać Posiadlości Grupy poprzez O Posiadlości &gt; ustawienia Ogólne oddając Posiadłości za darmo do Linden Labs! Udzielaj tego Przywileju z rozwagą." name="land release"/>
+ <action description="Sprzedaż posiadłości" longdescription="Sprzedaż Posiadłości. *UWAGA* Członek w Funkcji z tym Przywilejem może sprzedawać Posiadlości Grupy poprzez O Posiadlości &gt; ustawienia Ogólne! Udzielaj tego Przywileju z rozwagą." name="land set sale info"/>
+ <action description="PodziaÅ‚ i łączenie posiadÅ‚oÅ›ci" longdescription="PodziaÅ‚ i ÅÄ…czenie PosiadÅ‚oÅ›ci. DostÄ™p poprzez wybranie gruntu prawym klawiszem myszki, &apos;Edycja Terenu&apos;, i przesuwanie myszkÄ… po gruncie wybierajÄ…c obszar. Aby podzielić wybierz obszar i naciÅ›nij &apos;Podziel&apos;. Aby połączyć wybierz dwie albo wiÄ™cej sÄ…siadujÄ…ce PosiadÅ‚oÅ›ci i naciÅ›nij &apos;Połącz&apos;." name="land divide join"/>
</action_set>
<action_set description="Przywileje pozwalające na zmianę nazwy Posiadłości, widoczność w wyszukiwarce, widoczność w wyszukiwarce, wybór miejsce lądowania i zmianę ustawień teleportacji (TP)." name="Parcel Identity">
<action description="Selekcja opcji &apos;Pokazuj w szukaniu miejsc&apos; i wybór kategorii" longdescription="Selekcja opcji &apos;Pokazuj w szukaniu miejsc&apos; i wybór kategorii Posiadłości pod O Posiadłości &gt; Opcje." name="land find places"/>
@@ -33,44 +33,44 @@
<action description="Selekcja opcji &apos;Edycja Terenu&apos;" longdescription="Selekcja opcji &apos;Edycja Terenu&apos;. *UWAGA* O Posiadłości &gt; Opcje &gt; Edycja Terenu pozwala każdemu na formowanie gruntów Twojej Posiadłości oraz na przemieszczanie roślin z Linden Labs. Udzielaj tego Przywileju z rozwagą. Selekcja opcji Edycji Terenu jest dostępna poprzez O Posiadłości &gt; Opcje." name="land edit"/>
<action description="Dodatkowe ustawienia O Posiadłości &gt; Opcje" longdescription="Selekcja opcji &apos;Bezpieczeństwo (brak uszkodzeń)&apos; &apos;Latanie&apos;, opcje dla innych Rezydentów: &apos;Tworzenie Obiektów&apos;; &apos;Edycja Terenu&apos;, &apos;Zapamiętywanie Miejsca (LM)&apos;, i &apos;Skrypty&apos; na Posiadłościach Grupy pod O Posiadłości &gt; Opcje." name="land options"/>
</action_set>
- <action_set description="Przywileje pozwalające Członkom na omijanie ograniczeń na Posiadłościach Grupy." name="Parcel Powers">
- <action description="Pozwól na Edycję Terenu" longdescription="Członkowie w Funkcji z tym Przywilejem mogą zawsze edytować teren na Posiadłościach Grupy." name="land allow edit land"/>
- <action description="Pozwól na Latanie" longdescription="Członkowie w Funkcji z tym Przywilejem mogą zawsze latać na Posiadłościach Grupy." name="land allow fly"/>
- <action description="Pozwól na Tworzenie Obiektów" longdescription="Członkowie w Funkcji z tym Przywilejem mogą zawsze tworzyć obiekty na Posiadłościach Grupy." name="land allow create"/>
- <action description="Pozwól na Zapamiętywanie Miejsc (LM)" longdescription="Członkowie w Funkcji z tym Przywilejem mogą zawsze zapamiętywać miejsca (LM) na Posiadłościach Grupy." name="land allow landmark"/>
- <action description="Pozwól na wybór Miejsca Startu na Posiadłościach Grupy" longdescription="Członkowie w Funkcji z tym Przywilejem mogą używać menu Świat &gt; Zapamiętaj Miejsce &gt; Miejsce Startu na Posiadłości przypisanej Grupie." name="land allow set home"/>
+ <action_set description="Przywileje pozwalające członkom na omijanie ograniczeń na Posiadłościach Grupy." name="Parcel Powers">
+ <action description="Pozwól na edycję terenu" longdescription="Członkowie w Funkcji z tym Przywilejem mogą zawsze edytować teren na Posiadłościach Grupy." name="land allow edit land"/>
+ <action description="Pozwól na latanie" longdescription="Członkowie w Funkcji z tym Przywilejem mogą zawsze latać na Posiadłościach Grupy." name="land allow fly"/>
+ <action description="Pozwól na tworzenie obiektów" longdescription="Członkowie w Funkcji z tym Przywilejem mogą zawsze tworzyć obiekty na Posiadłościach Grupy." name="land allow create"/>
+ <action description="Pozwól na zapamiętywanie miejsc (LM)" longdescription="Członkowie w Funkcji z tym Przywilejem mogą zawsze zapamiętywać miejsca (LM) na Posiadłościach Grupy." name="land allow landmark"/>
+ <action description="Pozwól na wybór Miejsca Startu na posiadłościach grupy" longdescription="Członkowie w Funkcji z tym Przywilejem mogą używać menu Świat &gt; Zapamiętaj Miejsce &gt; Miejsce Startu na Posiadłości przypisanej Grupie." name="land allow set home"/>
</action_set>
<action_set description="Przywileje pozwalające na dawanie i odbieranie dostępu do Posiadłości Grupy zawierające możliwości unieruchomiania i wyrzucania Rezydentów." name="Parcel Access">
- <action description="Zarządzanie Listą Dostępu do Posiadłości" longdescription="Zarządzanie Listą Dostępu do Posiadłości pod O Posiadłości &gt; Dostęp." name="land manage allowed"/>
- <action description="Zarządzanie Listą Usuniętych z Posiadłości (Bany)" longdescription="Zarządzanie Listą Dostępu do Posiadłości pod O Posiadłości &gt; Dostęp." name="land manage banned"/>
+ <action description="Zarządzanie listą dostępu do posiadłości" longdescription="Zarządzanie Listą Dostępu do Posiadłości pod O Posiadłości &gt; Dostęp." name="land manage allowed"/>
+ <action description="Zarządzanie listą usuniętych z posiadłości (Bany)" longdescription="Zarządzanie Listą Dostępu do Posiadłości pod O Posiadłości &gt; Dostęp." name="land manage banned"/>
<action description="Selekcja opcji &apos;Wstęp Płatny&apos;" longdescription="Selekcja opcji &apos;Wstęp Płatny&apos;; pod O Posiadłości &gt; Dostęp." name="land manage passes"/>
- <action description="Wyrzucanie i unieruchamianie Rezydentów na Posiadłościach" longdescription="Członkowie w Funkcji z tym Przywilejem mogą wpływać na niepożądanych na Posiadłościach Grupy Rezydentów wybierając ich prawym klawiszem myszki i wybierając &apos;;Wyrzuć&apos; albo &apos;Unieruchom&apos;." name="land admin"/>
+ <action description="Wyrzucanie i unieruchamianie Rezydentów na posiadłościach" longdescription="Członkowie w Funkcji z tym Przywilejem mogą wpływać na niepożądanych na Posiadłościach Grupy Rezydentów wybierając ich prawym klawiszem myszki i wybierając &apos;;Wyrzuć&apos; albo &apos;Unieruchom&apos;." name="land admin"/>
</action_set>
<action_set description="Przywileje pozwalające na odsyłanie obiektów i przemieszczanie roślin z Linden Lab. Użyteczne przy porządkowaniu i przemieszczaniu roślinności. *UWAGA* Odsyłanie obiektów jest nieodwracalne." name="Parcel Content">
- <action description="Odsyłanie obiektów należących do Grupy" longdescription="Odsyłanie obiektów należących do Grupy pod O Posiadłości &gt; Obiekty." name="land return group owned"/>
- <action description="Odsyłanie obiektów przypisanych do Grupy" longdescription="Odsyłanie obiektów przypisanych do Grupy pod O Posiadłości &gt; Obiekty." name="land return group set"/>
- <action description="Odsyłanie obiektów nie przypisanych do Grupy" longdescription="Odsyłanie obiektów nie przypisanych do Grupy pod O Posiadłości &gt; Obiekty." name="land return non group"/>
+ <action description="Odsyłanie obiektów należących do grupy" longdescription="Odsyłanie obiektów należących do Grupy pod O Posiadłości &gt; Obiekty." name="land return group owned"/>
+ <action description="Odsyłanie obiektów przypisanych do grupy" longdescription="Odsyłanie obiektów przypisanych do Grupy pod O Posiadłości &gt; Obiekty." name="land return group set"/>
+ <action description="Odsyłanie obiektów nie przypisanych do grupy" longdescription="Odsyłanie obiektów nie przypisanych do Grupy pod O Posiadłości &gt; Obiekty." name="land return non group"/>
<action description="Ogrodnictwo używając roślin z Linden Lab" longdescription="Możliwość przemieszczenia roślin z Linden Lab. Obiekty te mogą zostać odnalezione w Twojej Szafie, w folderze Biblioteka &gt; Folderze Obiektów lub mogą zostać stworzone dzięki aktywacji Narzędzi Edycji." name="land gardening"/>
</action_set>
<action_set description="Przywileje pozwalające na odsyłanie obiektów i przemieszczenia roślin z Linden Lab. Użyteczne przy porządkowaniu i przemieszczenia roślinności. *UWAGA* Odsyłanie obiektów jest nieodwracalne." name="Object Management">
- <action description="Przypisywanie obiektów do Grupy" longdescription="Przypisywanie obiektów do Grupy w Narzędziach Edycji &gt; Ogólne" name="object deed"/>
+ <action description="Przypisywanie obiektów do grupy" longdescription="Przypisywanie obiektów do Grupy w Narzędziach Edycji &gt; Ogólne" name="object deed"/>
<action description="Manipulowanie (wklejanie, kopiowanie, modyfikacja) obiektami należącymi do Grupy" longdescription="Manipulowanie (wklejanie, kopiowanie, modyfikacja) obiektami należącymi do Grupy w Narzędziach Edycji &gt; Ogólne" name="object manipulate"/>
- <action description="Sprzedaż obiektów należących do Grupy" longdescription="Sprzedaż obiektów należących do Grupy pod Narzędzia Edycji &gt; Ogólne." name="object set sale"/>
+ <action description="Sprzedaż obiektów należących do grupy" longdescription="Sprzedaż obiektów należących do Grupy pod Narzędzia Edycji &gt; Ogólne." name="object set sale"/>
</action_set>
<action_set description="Przywileje pozwalające na wybór opłat grupowych, otrzymywanie dochodu i ograniczanie dostępu do historii konta grupy." name="Accounting">
<action description="Opłaty grupowe i dochód grupowy" longdescription="Członkowie w Funkcji z tym Przywilejem będą automatycznie wnosić opłaty grupowe i będą otrzymywać dochód grupowy. Tzn. będą codziennie otrzymywać część dochodu ze sprzedaży Posiadłości Grupy oraz będą partycypować w kosztach ogłoszeń itp." name="accounting accountable"/>
</action_set>
<action_set description="Przywileje pozwalające na wysyłanie, odbieranie i czytanie Notek Grupy." name="Notices">
- <action description="Wysyłanie Notek" longdescription="Członkowie w Funkcji z tym Przywilejem mogą wysyłać Notki wybierając O Grupie &gt; Notek." name="notices send"/>
- <action description="Odbieranie Notek i dostęp do dawniejszych Notek" longdescription="Członkowie w Funkcji z tym Przywilejem mogą odbierać nowe i czytać dawniejsze Notki wybierając O Grupie &gt; Notki." name="notices receive"/>
+ <action description="Wysyłanie notek" longdescription="Członkowie w Funkcji z tym Przywilejem mogą wysyłać Notki wybierając O Grupie &gt; Notek." name="notices send"/>
+ <action description="Odbieranie notek i dostęp do dawniejszych notek" longdescription="Członkowie w Funkcji z tym Przywilejem mogą odbierać nowe i czytać dawniejsze Notki wybierając O Grupie &gt; Notki." name="notices receive"/>
</action_set>
<action_set description="Przywileje pozwalające na zgłaszanie Propozycji, głosowanie nad Propozycjami i śledzenie historii głosowania." name="Proposals">
- <action description="Zgłaszanie Propozycji" longdescription="Członkowie w Funkcji z tym Przywilejem mogą zgłaszać Propozycje do głosowania wybierając O Grupie &gt; Propozycje." name="proposal start"/>
- <action description="Głosowanie nad Propozycjami" longdescription="Członkowie w Funkcji z tym Przywilejem mogą głosować nad Propozycjami zgłoszonymi do głosowania wybierając O Grupie &gt; Propozycje." name="proposal vote"/>
+ <action description="Zgłaszanie propozycji" longdescription="Członkowie w Funkcji z tym Przywilejem mogą zgłaszać Propozycje do głosowania wybierając O Grupie &gt; Propozycje." name="proposal start"/>
+ <action description="Głosowanie nad propozycjami" longdescription="Członkowie w Funkcji z tym Przywilejem mogą głosować nad Propozycjami zgłoszonymi do głosowania wybierając O Grupie &gt; Propozycje." name="proposal vote"/>
</action_set>
<action_set description="Przywileje kontrolujÄ…ce czat i rozmowy grupowe." name="Chat">
- <action description="Dostęp do Czatu Grupowego" longdescription="Członkowie w Funkcji z tym Przywilejem mogą uczestniczyć w czacie i rozmowach grupowych." name="join group chat"/>
- <action description="Dostęp do Rozmów Grupowych" longdescription="Członkowie w Funkcji z tym Przywilejem mogą uczestniczyć w rozmowach grupowych. UWAGA: Dostęp do Czatu Grupowego jest wymagany dla rozmów grupowych." name="join voice chat"/>
- <action description="Moderator Czatu Grupowego" longdescription="Członkowie w Funkcji z tym Przywilejem mogą kontrolować dostęp do czatu i rozmów grupowych." name="moderate group chat"/>
+ <action description="Dostęp do czatu grupowego" longdescription="Członkowie w Funkcji z tym Przywilejem mogą uczestniczyć w czacie i rozmowach grupowych." name="join group chat"/>
+ <action description="Dostęp do rozmów grupowych" longdescription="Członkowie w Funkcji z tym Przywilejem mogą uczestniczyć w rozmowach grupowych. UWAGA: Dostęp do Czatu Grupowego jest wymagany dla rozmów grupowych." name="join voice chat"/>
+ <action description="Moderator czatu grupowego" longdescription="Członkowie w Funkcji z tym Przywilejem mogą kontrolować dostęp do czatu i rozmów grupowych." name="moderate group chat"/>
</action_set>
</role_actions>
diff --git a/indra/newview/skins/default/xui/pl/sidepanel_appearance.xml b/indra/newview/skins/default/xui/pl/sidepanel_appearance.xml
index ecbf262777..cea903769c 100644
--- a/indra/newview/skins/default/xui/pl/sidepanel_appearance.xml
+++ b/indra/newview/skins/default/xui/pl/sidepanel_appearance.xml
@@ -1,10 +1,16 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Ubrania" name="appearance panel">
- <string name="No Outfit" value="Bez Ubrania"/>
+ <string name="No Outfit" value="Bez stroju"/>
+ <string name="Unsaved Changes" value="Zmiany niezachowane"/>
+ <string name="Now Wearing" value="Obecnie założone..."/>
+ <string name="Changing outfits" value="Zmiana stroju"/>
<panel name="panel_currentlook">
- <text name="currentlook_title">
- (niezapisane)
+ <button label="E" name="editappearance_btn"/>
+ <button label="O" name="openoutfit_btn"/>
+ <text name="currentlook_status">
+ (Status)
</text>
+ <button label="" name="edit_outfit_btn" tool_tip="Edytuj ten strój"/>
</panel>
- <filter_editor label="PrzeglÄ…daj Ubrania" name="Filter"/>
+ <filter_editor label="PrzeglÄ…daj stroje" name="Filter"/>
</panel>
diff --git a/indra/newview/skins/default/xui/pl/sidepanel_inventory.xml b/indra/newview/skins/default/xui/pl/sidepanel_inventory.xml
index d7a813b1b7..9e5280bcc4 100644
--- a/indra/newview/skins/default/xui/pl/sidepanel_inventory.xml
+++ b/indra/newview/skins/default/xui/pl/sidepanel_inventory.xml
@@ -2,10 +2,12 @@
<panel label="Rzeczy" name="objects panel">
<panel label="" name="sidepanel__inventory_panel">
<panel name="button_panel">
- <button label="Profil" name="info_btn"/>
- <button label="Ubierz" name="wear_btn"/>
+ <button label="Profil" name="info_btn" tool_tip="Pokaż profil obiektu"/>
+ <button label="Udostępnij" name="share_btn" tool_tip="Udostępnij obiekt z Szafy"/>
+ <button label="Zakupy" name="shop_btn" tool_tip="Otwórz stronę Marketplace"/>
+ <button label="Ubierz" name="wear_btn" tool_tip="Załóż wybrany strój"/>
<button label="Odtwarzaj" name="play_btn"/>
- <button label="Teleportuj" name="teleport_btn"/>
+ <button label="Teleportuj" name="teleport_btn" tool_tip="Teleportuj siÄ™ w wybrane miejsce"/>
</panel>
</panel>
</panel>
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 3b038a7102..e39bbd75c5 100644
--- a/indra/newview/skins/default/xui/pl/sidepanel_item_info.xml
+++ b/indra/newview/skins/default/xui/pl/sidepanel_item_info.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="item properties" title="Profil Obiektu">
+<panel name="item properties" title="Profil obiektu">
<panel.string name="unknown">
(nieznany)
</panel.string>
@@ -15,9 +15,15 @@
<panel.string name="acquiredDate">
[wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local]
</panel.string>
- <text name="title" value="Profil Obiektu"/>
- <text name="where" value="(Szafa)"/>
- <panel label="">
+ <panel.string name="origin_inventory">
+ (Szafa)
+ </panel.string>
+ <panel.string name="origin_inworld">
+ (W Åšwiecie)
+ </panel.string>
+ <text name="title" value="Profil obiektu"/>
+ <text name="origin" value="(Szafa)"/>
+ <panel label="" name="item_profile">
<text name="LabelItemNameTitle">
Nazwa:
</text>
@@ -35,15 +41,13 @@
<text name="LabelAcquiredTitle">
Nabyte:
</text>
- <text name="LabelAcquiredDate">
- Wed May 24 12:50:46 2006
- </text>
+ <text name="LabelAcquiredDate"/>
<panel name="perms_inv">
<text name="perm_modify">
- Ty możesz:
+ Możesz:
</text>
<check_box label="Zmienia" name="CheckOwnerModify"/>
- <check_box label="Kopiuje" name="CheckOwnerCopy"/>
+ <check_box label="Kopiuj" name="CheckOwnerCopy"/>
<check_box label="Sprzedaje/Oddaje" name="CheckOwnerTransfer"/>
<text name="AnyoneLabel">
Każdy:
@@ -52,18 +56,18 @@
<text name="GroupLabel">
Grupa:
</text>
- <check_box label="Udostępnij" name="CheckShareWithGroup" tool_tip="Pozwól wszystkim członkom ustawionej grupy na dzielenie prawa do modyfikacji dla tego obiektu. Musisz Przypisać aby aktywować ograniczenia wynikające z roli."/>
+ <check_box label="Udostępnij" name="CheckShareWithGroup" tool_tip="Pozwól wszystkim członkom ustawionej grupy na dzielenie prawa do modyfikacji dla tego obiektu. Musisz przypisać obiekt grupie aby aktywować ograniczenia wynikające z roli."/>
<text name="NextOwnerLabel">
- Następny Właściciel:
+ Następny właściciel:
</text>
<check_box label="Modyfikuje" name="CheckNextOwnerModify"/>
<check_box label="Kopiuje" name="CheckNextOwnerCopy"/>
- <check_box label="Sprzedaje/Oddaje" name="CheckNextOwnerTransfer" tool_tip="Następny właściciel może oddać lub sprzedać ten obiekt"/>
+ <check_box label="Sprzedaje/Oddaje" name="CheckNextOwnerTransfer" tool_tip="Następny właściciel może oddawać lub sprzedawać ten obiekt"/>
</panel>
- <check_box label="Na Sprzedaż" name="CheckPurchase"/>
+ <check_box label="Na sprzedaż" name="CheckPurchase"/>
<combo_box name="combobox sale copy">
- <combo_box.item label="Kopia" name="Copy"/>
- <combo_box.item label="Originał" name="Original"/>
+ <combo_box.item label="Kopiuje" name="Copy"/>
+ <combo_box.item label="Oryginalny" name="Original"/>
</combo_box>
<spinner label="Cena: L$" name="Edit Cost"/>
</panel>
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 17cd13f970..d8cf456c64 100644
--- a/indra/newview/skins/default/xui/pl/sidepanel_task_info.xml
+++ b/indra/newview/skins/default/xui/pl/sidepanel_task_info.xml
@@ -37,7 +37,7 @@
Sprzedaż mieszana
</panel.string>
<text name="title" value="Profil Obiektu"/>
- <text name="where" value="(w świecie)"/>
+ <text name="where" value="(W Åšwiecie)"/>
<panel label="" name="properties_panel">
<text name="Name:">
Nazwa:
@@ -83,7 +83,7 @@
<check_box label="Kopiuj" name="checkbox allow everyone copy"/>
<check_box label="Przesuń" name="checkbox allow everyone move"/>
<text name="GroupLabel">
- Groupie:
+ Grupie:
</text>
<check_box label="Udostępnij" name="checkbox share with group" tool_tip="Udostępnij prawa do modyfikacji tego obiektu wszystkim członkom, którzy posiadają przywilej modyfikacji obiektów grupy. By ograniczyć, przypisz obiekt do grupy."/>
<text name="NextOwnerLabel">
diff --git a/indra/newview/skins/default/xui/pl/strings.xml b/indra/newview/skins/default/xui/pl/strings.xml
index c72f783a51..f90e357373 100644
--- a/indra/newview/skins/default/xui/pl/strings.xml
+++ b/indra/newview/skins/default/xui/pl/strings.xml
@@ -50,7 +50,7 @@
Åadowanie Å›wiata...
</string>
<string name="LoginInitializingBrowser">
- Inicjalizacja PrzeglÄ…darki Internetu...
+ Inicjalizacja przeglÄ…darki internetowej...
</string>
<string name="LoginInitializingMultimedia">
Inicjalizacja multimediów...
@@ -62,22 +62,22 @@
Weryfikacja bufora danych na dysku (może trwać od 60 do 90 sekund)...
</string>
<string name="LoginProcessingResponse">
- Przetwarzanie Odpowiedzi...
+ Przetwarzanie odpowiedzi...
</string>
<string name="LoginInitializingWorld">
- Inicjalizacja świata...
+ Inicjacja świata...
</string>
<string name="LoginDecodingImages">
Przetwarzanie obrazów...
</string>
<string name="LoginInitializingQuicktime">
- Inicjalizacja QuickTime...
+ Inicjacja QuickTime...
</string>
<string name="LoginQuicktimeNotFound">
- QuickTime nie został znaleziony - inicjalizacja przerwana.
+ QuickTime nie został znaleziony - inicjacja przerwana.
</string>
<string name="LoginQuicktimeOK">
- QuickTime zainicjalizowany.
+ QuickTime zainicjowany.
</string>
<string name="LoginWaitingForRegionHandshake">
Oczekiwanie na połączenie z regionem...
@@ -88,6 +88,24 @@
<string name="LoginDownloadingClothing">
Åadowanie ubrania...
</string>
+ <string name="InvalidCertificate">
+ Serwer zwrócił nieważny lub zniekształcony certyfikat. Proszę skontaktuj się z administratorem Grida.
+ </string>
+ <string name="CertInvalidHostname">
+ Nazwa hosta jest nieważna, proszę sprawdź SLURL lub nazwę hosta Grida.
+ </string>
+ <string name="CertExpired">
+ Termin ważności certyfikatu zwróconego przez Grid minął. Proszę sprawdzić swój zegar systemowy lub skontaktować się z administratorem Grida.
+ </string>
+ <string name="CertKeyUsage">
+ Certyfikat zwrócony przez serwer nie może być użyty dla SSL. Proszę skontaktuj się z administratorem Grida.
+ </string>
+ <string name="CertBasicConstraints">
+ Zbyt wiele certyfikatów w łańcuchu certyfikatów serwera. Proszę skontaktować się z administratorem Grida.
+ </string>
+ <string name="CertInvalidSignature">
+ Podpis certyfikatu zwrócony przez Grid nie mógł zostać zweryfikowany. Proszę skontaktować się z administratorem Grida.
+ </string>
<string name="LoginFailedNoNetwork">
Błąd sieci: Brak połączenia z siecią, sprawdź status swojego połączenia internetowego.
</string>
@@ -95,7 +113,7 @@
Logowanie nie powiodło się.
</string>
<string name="Quit">
- Wyłącz Program
+ Wyłącz program
</string>
<string name="AgentLostConnection">
Ten region może mieć problemy. Sprawdź podłączenie do Internetu.
@@ -134,28 +152,28 @@
(Grupa)
</string>
<string name="TooltipForSaleL$">
- Na Sprzedaż: L$[AMOUNT]
+ Na sprzedaż: L$[AMOUNT]
</string>
<string name="TooltipFlagGroupBuild">
- Budowanie Grupowe
+ Budowanie grupowe
</string>
<string name="TooltipFlagNoBuild">
- Budowanie Zabronione
+ Budowanie zabronione
</string>
<string name="TooltipFlagNoEdit">
- Edycja Zabroniona
+ Edycja zabroniona
</string>
<string name="TooltipFlagNotSafe">
- Niebezpieczny Obszar
+ Niebezpieczny obszar
</string>
<string name="TooltipFlagNoFly">
- Latanie Zabronione
+ Latanie zabronione
</string>
<string name="TooltipFlagGroupScripts">
- Skrypty Grupowe
+ Skrypty grupowe
</string>
<string name="TooltipFlagNoScripts">
- Skrypty Zabronione
+ Skrypty zabronione
</string>
<string name="TooltipLand">
Posiadłość:
@@ -163,11 +181,12 @@
<string name="TooltipMustSingleDrop">
Tylko pojedynczy obiekt może być tutaj przeciągnięty
</string>
+ <string name="TooltipPrice" value="L$[AMOUNT]:"/>
<string name="TooltipHttpUrl">
- Kliknij by zobaczyć zawartość tej strony internetowej
+ Kliknij aby zobaczyć zawartość tej strony internetowej
</string>
<string name="TooltipSLURL">
- Kliknij by zobaczyć szczegóły tego miejsca
+ Kliknij aby zobaczyć szczegóły tego miejsca
</string>
<string name="TooltipAgentUrl">
Kliknij aby zobaczyc profil Rezydenta
@@ -191,36 +210,35 @@
Kliknij aby wysłać temu Rezydentowi zaproszenie do Znajomych
</string>
<string name="TooltipGroupUrl">
- Kliknij by zobaczyć opis tej grupy
+ Kliknij aby zobaczyć opis tej grupy
</string>
<string name="TooltipEventUrl">
- Klinij by zobaczyć szczegóły tego wydarzenia
+ Klinij aby zobaczyć szczegóły tego wydarzenia
</string>
<string name="TooltipClassifiedUrl">
- Kliknij by zobaczyć tę reklamę
+ Kliknij aby zobaczyć tę reklamę
</string>
<string name="TooltipParcelUrl">
- Kliknij by zobaczyć opis tej posiadłości
+ Kliknij aby zobaczyć opis tej posiadłości
</string>
<string name="TooltipTeleportUrl">
- Kliknij by teleportować się do tego miejsca
+ Kliknij aby teleportować się do tego miejsca
</string>
<string name="TooltipObjectIMUrl">
- Kliknij by zobaczyć opis tego obiektu
+ Kliknij aby zobaczyć opis tego obiektu
</string>
<string name="TooltipMapUrl">
- Kliknij by zobaczyć to miejsce na mapie
+ Kliknij aby zobaczyć to miejsce na mapie
</string>
<string name="TooltipSLAPP">
- Kliknij by uruchomić secondlife:// command
+ Kliknij aby uruchomić secondlife:// command
</string>
<string name="CurrentURL" value=" Obecny Adres: [CurrentURL]"/>
- <string name="TooltipPrice" value="L$[PRICE]-"/>
<string name="SLurlLabelTeleport">
Teleportuj do
</string>
<string name="SLurlLabelShowOnMap">
- Pokaż na Mapie
+ Pokaż na mapie
</string>
<string name="SLappAgentMute">
Zablokuj
@@ -246,6 +264,9 @@
<string name="BUTTON_CLOSE_WIN">
Zamknij (Ctrl+W)
</string>
+ <string name="BUTTON_CLOSE_CHROME">
+ Zamknij
+ </string>
<string name="BUTTON_RESTORE">
Odzyskaj
</string>
@@ -265,13 +286,16 @@
Wyszukiwanie...
</string>
<string name="NoneFound">
- Nieodnaleziono.
+ Nie odnaleziono.
</string>
<string name="RetrievingData">
Odzyskiwanie danych...
</string>
<string name="ReleaseNotes">
- O Tej Wersji
+ O tej wersji
+ </string>
+ <string name="RELEASE_NOTES_BASE_URL">
+ http://wiki.secondlife.com/wiki/Release_Notes/
</string>
<string name="LoadingData">
Åadowanie danych...
@@ -285,6 +309,9 @@
<string name="GroupNameNone">
(brak danych)
</string>
+ <string name="AvalineCaller">
+ Avaline [ORDER]
+ </string>
<string name="AssetErrorNone">
OK
</string>
@@ -295,7 +322,7 @@
Pobieranie danych: brak pliku
</string>
<string name="AssetErrorNotInDatabase">
- Pobieranie danych: dane nie znalezione w bazie danych
+ Pobieranie danych: dane nie zostały znalezione w bazie danych
</string>
<string name="AssetErrorEOF">
Koniec pliku
@@ -337,22 +364,22 @@
ubrania
</string>
<string name="object">
- obieku
+ obiek
</string>
<string name="note card">
notatki
</string>
<string name="folder">
- folderu
+ folder
</string>
<string name="root">
podstawy
</string>
<string name="lsl2 script">
- skryptu LSL2
+ skrypt LSL2
</string>
<string name="lsl bytecode">
- kodu LSL
+ kod LSL
</string>
<string name="tga texture">
tekstury typu tga
@@ -364,22 +391,22 @@
zdjęcia
</string>
<string name="lost and found">
- Zgubione i Odnalezione
+ Zgubione i odnalezione
</string>
<string name="targa image">
- obrau typu targa
+ obraz typu targa
</string>
<string name="trash">
Kosz
</string>
<string name="jpeg image">
- obrazu typu jpeg
+ obraz typu jpg
</string>
<string name="animation">
- animacji
+ animacja
</string>
<string name="gesture">
- gesturki
+ gesturka
</string>
<string name="simstate">
simstate
@@ -415,16 +442,16 @@
Salto
</string>
<string name="anim_express_laugh">
- Åšmiech do Rozpuku
+ Åšmiech do rozpuku
</string>
<string name="anim_express_toothsmile">
- Wielki Uśmiech
+ Wielki uśmiech
</string>
<string name="anim_blowkiss">
Całusek
</string>
<string name="anim_express_bored">
- Ale Nudy!
+ Ale nudy!
</string>
<string name="anim_bow">
Ukłon
@@ -433,7 +460,7 @@
Oklaski
</string>
<string name="anim_courtbow">
- Dworski Ukłon
+ Dworski ukłon
</string>
<string name="anim_express_cry">
Płacz
@@ -472,10 +499,10 @@
Zakłopotanie
</string>
<string name="anim_angry_fingerwag">
- Grożenie Paluszkiem
+ Grożenie paluszkiem
</string>
<string name="anim_fist_pump">
- Udało sie!
+ Udało się!
</string>
<string name="anim_yoga_float">
Yoga
@@ -490,7 +517,7 @@
Radocha
</string>
<string name="anim_kissmybutt">
- Pocałuj Mnie Gdzieś
+ Pocałuj mnie gdzieś
</string>
<string name="anim_express_kiss">
Pocałunek
@@ -511,40 +538,40 @@
Nie-nie-nie
</string>
<string name="anim_punch_onetwo">
- Za Ciosem Cios
+ Za ciosem cios
</string>
<string name="anim_express_open_mouth">
- Szczęka Opada
+ Szczęka opada
</string>
<string name="anim_peace">
Pokój
</string>
<string name="anim_point_you">
- Wskazuj na Innych
+ Wskazuj na innych
</string>
<string name="anim_point_me">
- Wskazuj na Siebie
+ Wskazuj na siebie
</string>
<string name="anim_punch_l">
- Uderz z Lewej
+ Uderz z lewej
</string>
<string name="anim_punch_r">
- Uderz z Prawej
+ Uderz z prawej
</string>
<string name="anim_rps_countdown">
- KPN Licz
+ KPN licz
</string>
<string name="anim_rps_paper">
- KPN Papier
+ KPN papier
</string>
<string name="anim_rps_rock">
- KPN Kamień
+ KPN kamień
</string>
<string name="anim_rps_scissors">
- KPN Nożyce
+ KPN nożyce
</string>
<string name="anim_express_repulsed">
- Odrzuca Mnie
+ Odrzuca mnie
</string>
<string name="anim_kick_roundhouse_r">
Kopniak
@@ -559,7 +586,7 @@
Krzycz
</string>
<string name="anim_express_shrug">
- Wzrusz Ramionami
+ Wzrusz ramionami
</string>
<string name="anim_express_smile">
Uśmiechaj się
@@ -568,22 +595,22 @@
Pal
</string>
<string name="anim_smoke_inhale">
- Pal i ZaciÄ…gaj siÄ™
+ Pal i zaciÄ…gaj siÄ™
</string>
<string name="anim_smoke_throw_down">
- Rzuć Papierosa
+ Rzuć papierosa
</string>
<string name="anim_express_surprise">
Zaskoczenie
</string>
<string name="anim_sword_strike_r">
- Uderz Mieczem
+ Uderz mieczem
</string>
<string name="anim_angry_tantrum">
Wściekłość
</string>
<string name="anim_express_tongue_out">
- Pokaż Język
+ Pokaż język
</string>
<string name="anim_hello">
Pomachaj
@@ -595,10 +622,10 @@
Zagwiżdż
</string>
<string name="anim_express_wink">
- Puść Oko
+ Puść oko
</string>
<string name="anim_wink_hollywood">
- Puść Oko (Hollywood)
+ Puść oko (Hollywood)
</string>
<string name="anim_express_worry">
Zmartwienie
@@ -613,10 +640,13 @@
Åadowanie...
</string>
<string name="worldmap_offline">
- Mapa Świata jest Niedostępna
+ Mapa Świata jest niedostępna
+ </string>
+ <string name="worldmap_item_tooltip_format">
+ [AREA] m² L$[PRICE]
</string>
<string name="worldmap_results_none_found">
- Miejsce Nieodnalezione.
+ Miejsce nieodnalezione.
</string>
<string name="Ok">
OK
@@ -634,7 +664,7 @@
krzyczy:
</string>
<string name="ringing">
- ÅÄ…czenie z rozmowami gÅ‚osem w Å›wiecie...
+ ÅÄ…czenie z rozmowami gÅ‚osem w Åšwiecie...
</string>
<string name="connected">
Połączenie uzyskane.
@@ -673,7 +703,7 @@
Usuń prawo własności (zmień na publiczne)
</string>
<string name="LinkAndDelink">
- ÅÄ…cz / odłącz z innymi obiektów
+ ÅÄ…cz / rozłącz z innymi obiektami
</string>
<string name="AddAndRemoveJoints">
Dodaj / usuń połączenia z innymi obiektami
@@ -688,10 +718,10 @@
Kontroluj kamerÄ™
</string>
<string name="SIM_ACCESS_PG">
- &apos;PG&apos;
+ &apos;General&apos;
</string>
<string name="SIM_ACCESS_MATURE">
- &apos;Mature&apos;
+ &apos;Moderate&apos;
</string>
<string name="SIM_ACCESS_ADULT">
&apos;Adult&apos;
@@ -705,8 +735,14 @@
<string name="land_type_unknown">
(nieznane)
</string>
+ <string name="Estate / Full Region">
+ MajÄ…tek / Region
+ </string>
+ <string name="Mainland / Full Region">
+ Mainland / Region
+ </string>
<string name="all_files">
- Wszystkie Pliki
+ Wszystkie pliki
</string>
<string name="sound_files">
Dźwięki
@@ -724,16 +760,16 @@
Załaduj
</string>
<string name="targa_image_files">
- Obrazy Targa
+ Obrazy targa
</string>
<string name="bitmap_image_files">
- Obrazy Bitmap
+ Obrazy bitmap
</string>
<string name="avi_movie_file">
Pliki filmowe AVI
</string>
<string name="xaf_animation_file">
- Plik Animacji XAF
+ Plik animacji XAF
</string>
<string name="xml_file">
Plik XML
@@ -742,13 +778,13 @@
Plik RAW
</string>
<string name="compressed_image_files">
- Obrazy Skomprensowane
+ Obrazy skomprensowane
</string>
<string name="load_files">
Załaduj pliki
</string>
<string name="choose_the_directory">
- Wybierz Katalog
+ Wybierz katalog
</string>
<string name="AvatarSetNotAway">
Ustaw Nie Åšpij
@@ -802,7 +838,7 @@
Spódnica
</string>
<string name="alpha">
- Ubranie Przezroczyste
+ Ubranie Alpha
</string>
<string name="tattoo">
Tatuaż
@@ -810,6 +846,93 @@
<string name="invalid">
niewłaściwa funkcja
</string>
+ <string name="none">
+ żadne
+ </string>
+ <string name="shirt_not_worn">
+ Koszula nie jest założona
+ </string>
+ <string name="pants_not_worn">
+ Spodnie nie są założone
+ </string>
+ <string name="shoes_not_worn">
+ Buty nie są założone
+ </string>
+ <string name="socks_not_worn">
+ Skarpetki nie są założone
+ </string>
+ <string name="jacket_not_worn">
+ Kurtka nie jest założona
+ </string>
+ <string name="gloves_not_worn">
+ Rękawiczki nie są założone
+ </string>
+ <string name="undershirt_not_worn">
+ Podkoszulek nie jest założony
+ </string>
+ <string name="underpants_not_worn">
+ Bielizna nie jest założona
+ </string>
+ <string name="skirt_not_worn">
+ Spódnica nie jest założona
+ </string>
+ <string name="alpha_not_worn">
+ Alpha nie jest założone
+ </string>
+ <string name="tattoo_not_worn">
+ Tatuaż nie jest założony
+ </string>
+ <string name="invalid_not_worn">
+ nieważny
+ </string>
+ <string name="create_new_shape">
+ Nowy kształt
+ </string>
+ <string name="create_new_skin">
+ Nowa skórka
+ </string>
+ <string name="create_new_hair">
+ Nowe włosy
+ </string>
+ <string name="create_new_eyes">
+ Nowe oczy
+ </string>
+ <string name="create_new_shirt">
+ Nowa koszula
+ </string>
+ <string name="create_new_pants">
+ Nowe spodnie
+ </string>
+ <string name="create_new_shoes">
+ Nowe buty
+ </string>
+ <string name="create_new_socks">
+ Nowe skarpetki
+ </string>
+ <string name="create_new_jacket">
+ Nowa kurtka
+ </string>
+ <string name="create_new_gloves">
+ Nowe rękawiczki
+ </string>
+ <string name="create_new_undershirt">
+ Nowy podkoszulek
+ </string>
+ <string name="create_new_underpants">
+ Nowa bielizna
+ </string>
+ <string name="create_new_skirt">
+ Nowa spódnica
+ </string>
+ <string name="create_new_alpha">
+ Nowe alpha
+ </string>
+ <string name="create_new_tattoo">
+ Nowy tatuaż
+ </string>
+ <string name="create_new_invalid">
+ nieważny
+ </string>
<string name="NewWearable">
Nowa [WEARABLE_ITEM]
</string>
@@ -820,10 +943,10 @@
OK
</string>
<string name="GroupNotifyGroupNotice">
- Ogłoszenie Grupowe
+ Ogłoszenie grupowe
</string>
<string name="GroupNotifyGroupNotices">
- Ogłoszenia Grupowe
+ Ogłoszenia grupowe
</string>
<string name="GroupNotifySentBy">
Wysłane przez
@@ -832,40 +955,40 @@
Załączone:
</string>
<string name="GroupNotifyViewPastNotices">
- Zobacz poprzednie zawiadomienia lub otrzymanen wiadomości tutaj.
+ Zobacz poprzednie zawiadomienia lub otrzymane wiadomości tutaj.
</string>
<string name="GroupNotifyOpenAttachment">
- Otwórz Załącznik
+ Otwórz załącznik
</string>
<string name="GroupNotifySaveAttachment">
- Zapisz Załącznik
+ Zapisz załącznik
</string>
<string name="TeleportOffer">
Oferta teleportacji
</string>
<string name="StartUpNotifications">
- Nowe zawiadomienia zostały wysłane kiedy byłeś w trybie oddalenia...
+ Nowe zawiadomienia zostały wysłane kiedy byłeś/byłaś w trybie oddalenia...
</string>
<string name="OverflowInfoChannelString">
Masz jeszcze [%d] powiadomień
</string>
<string name="BodyPartsRightArm">
- Prawe RamiÄ™
+ Prawe ramiÄ™
</string>
<string name="BodyPartsHead">
Głowa
</string>
<string name="BodyPartsLeftArm">
- Lewe RamiÄ™
+ Lewe ramiÄ™
</string>
<string name="BodyPartsLeftLeg">
- Lewa Noga
+ Lewa noga
</string>
<string name="BodyPartsTorso">
Tułów
</string>
<string name="BodyPartsRightLeg">
- Prawa Noga
+ Prawa noga
</string>
<string name="GraphicsQualityLow">
Niska
@@ -877,10 +1000,13 @@
Wysoka
</string>
<string name="LeaveMouselook">
- Wybierz ESC by powrócić do trybu widoku normalne
+ Wybierz ESC aby powrócić do trybu widoku normalnego
</string>
<string name="InventoryNoMatchingItems">
- Obiektu nie znaleziono w Szafie. Spróbuj [secondlife:///app/search/groups &quot;Search&quot;].
+ Nie znaleziono tego czego szukasz? Spróbuj [secondlife:///app/search/all/[SEARCH_TERM] Szukaj].
+ </string>
+ <string name="PlacesNoMatchingItems">
+ Nie znaleziono tego czego szukasz? Spróbuj [secondlife:///app/search/places/[SEARCH_TERM] Szukaj].
</string>
<string name="FavoritesNoMatchingItems">
Przeciągnij landmark tutaj aby dodać go do swoich ulubionych.
@@ -905,16 +1031,18 @@
<string name="Chat" value=" Czat :"/>
<string name="Sound" value=" Dźwięk :"/>
<string name="Wait" value=" --- Zaczekaj :"/>
- <string name="AnimFlagStop" value=" Zatrzymaj AnimacjÄ™ :"/>
- <string name="AnimFlagStart" value=" Rozpocznij AnimacjÄ™ :"/>
+ <string name="AnimFlagStop" value=" Zatrzymaj animacjÄ™ :"/>
+ <string name="AnimFlagStart" value=" Rozpocznij animacjÄ™ :"/>
<string name="Wave" value=" Wave"/>
+ <string name="GestureActionNone" value="Żadne"/>
<string name="HelloAvatar" value=" Witaj, Awatarze!"/>
- <string name="ViewAllGestures" value=" Zobacz Wszystkie &gt;&gt;"/>
+ <string name="ViewAllGestures" value=" Zobacz wszystkie &gt;&gt;"/>
+ <string name="GetMoreGestures" value="Więcej gesturek &gt;&gt;"/>
<string name="Animations" value=" Animacje,"/>
<string name="Calling Cards" value=" Wizytówki,"/>
<string name="Clothing" value=" Ubrania,"/>
<string name="Gestures" value=" Gesturki,"/>
- <string name="Landmarks" value=" Ulubione Miejsca,"/>
+ <string name="Landmarks" value=" Ulubione miejsca,"/>
<string name="Notecards" value=" Notki,"/>
<string name="Objects" value=" Obiekty,"/>
<string name="Scripts" value=" Skrypty,"/>
@@ -927,7 +1055,7 @@
Moja Szafa
</string>
<string name="InvFolder My Favorites">
- Moje Ulubione
+ Moje ulubione
</string>
<string name="InvFolder Library">
Biblioteka
@@ -942,7 +1070,7 @@
Wizytówki
</string>
<string name="InvFolder Landmarks">
- Ulubione Miejsca
+ Landmarki
</string>
<string name="InvFolder Scripts">
Skrypty
@@ -957,28 +1085,28 @@
Noty
</string>
<string name="InvFolder New Folder">
- Nowy Folder
+ Nowy folder
</string>
<string name="InvFolder Inventory">
Szafa
</string>
<string name="InvFolder Uncompressed Images">
- Nieskompresowane Obrazy
+ Nieskompresowane obrazy
</string>
<string name="InvFolder Body Parts">
- Części Ciała
+ Części ciała
</string>
<string name="InvFolder Trash">
Kosz
</string>
<string name="InvFolder Photo Album">
- Album ze Zdjęciami
+ Album ze zdjęciami
</string>
<string name="InvFolder Lost And Found">
- Zagubione i Odnalezione
+ Zagubione i odnalezione
</string>
<string name="InvFolder Uncompressed Sounds">
- Nieskompresowane Dźwięki
+ Nieskompresowane dźwięki
</string>
<string name="InvFolder Animations">
Animacje
@@ -986,14 +1114,20 @@
<string name="InvFolder Gestures">
Gesturki
</string>
+ <string name="InvFolder Favorite">
+ Ulubione
+ </string>
<string name="InvFolder favorite">
Ulubione
</string>
<string name="InvFolder Current Outfit">
- Obecne Ubranie
+ Obecny strój
+ </string>
+ <string name="InvFolder Initial Outfits">
+ PoczÄ…tkowe stroje
</string>
<string name="InvFolder My Outfits">
- Moje Ubranie
+ Moje stroje
</string>
<string name="InvFolder Accessories">
Akcesoria
@@ -1041,34 +1175,34 @@
Ctrl
</string>
<string name="Chest">
- Klatka Piersiowa
+ Klatka piersiowa
</string>
<string name="Skull">
Czaszka
</string>
<string name="Left Shoulder">
- Lewe RamiÄ™
+ Lewe ramiÄ™
</string>
<string name="Right Shoulder">
- Prawe RamiÄ™
+ Prawe ramiÄ™
</string>
<string name="Left Hand">
- Lewa Dłoń
+ Lewa dłoń
</string>
<string name="Right Hand">
- Prawa Dłoń
+ Prawa dłoń
</string>
<string name="Left Foot">
- Lewa Stopa
+ Lewa stopa
</string>
<string name="Right Foot">
- Prawa Stopa
+ Prawa stopa
</string>
<string name="Spine">
Kręgosłup
</string>
<string name="Pelvis">
- Mednica
+ Miednica
</string>
<string name="Mouth">
Usta
@@ -1077,16 +1211,16 @@
Szczęka
</string>
<string name="Left Ear">
- Lewe Ucho
+ Lewe ucho
</string>
<string name="Right Ear">
- Prawe Ucho
+ Prawe ucho
</string>
<string name="Left Eyeball">
- Lewe Oko
+ Lewe oko
</string>
<string name="Right Eyeball">
- Prawe Oko
+ Prawe oko
</string>
<string name="Nose">
Nos
@@ -1095,40 +1229,40 @@
P RamiÄ™
</string>
<string name="R Forearm">
- P PrzedramiÄ™
+ P przedramiÄ™
</string>
<string name="L Upper Arm">
- L RamiÄ™
+ L ramiÄ™
</string>
<string name="L Forearm">
- L PrzedramiÄ™
+ L przedramiÄ™
</string>
<string name="Right Hip">
- Prawe Biodro
+ Prawe biodro
</string>
<string name="R Upper Leg">
- P Udo
+ P udo
</string>
<string name="R Lower Leg">
- P Dolna Noga
+ P dolna noga
</string>
<string name="Left Hip">
- Lewe Biodro
+ Lewe biodro
</string>
<string name="L Upper Leg">
- L Udo
+ L udo
</string>
<string name="L Lower Leg">
- L Dolna Noga
+ L dolna noga
</string>
<string name="Stomach">
Brzuch
</string>
<string name="Left Pec">
- Left Pec
+ Lewy Pec
</string>
<string name="Right Pec">
- Right Pec
+ Prawy Pec
</string>
<string name="YearsMonthsOld">
[AGEYEARS] [AGEMONTHS]
@@ -1200,49 +1334,49 @@
Proces
</string>
<string name="AcctTypeCharterMember">
- Wyróżniony Członek
+ Wyróżniony członek
</string>
<string name="AcctTypeEmployee">
Pracownik Linden Lab
</string>
<string name="PaymentInfoUsed">
- Dane Konta Używane
+ Dane konta używane
</string>
<string name="PaymentInfoOnFile">
- Dane Płatnicze na Koncie
+ Dane płatnicze na koncie
</string>
<string name="NoPaymentInfoOnFile">
- Brak Danych na Koncie
+ Brak danych na koncie
</string>
<string name="AgeVerified">
- Weryfikacja Wieku Przeprowadzona
+ Weryfikacja wieku przeprowadzona
</string>
<string name="NotAgeVerified">
- Brak Weryfikacji Wieku
+ Brak weryfikacji wieku
</string>
<string name="Center 2">
Åšrodek 2
</string>
<string name="Top Right">
- Prawa Góra
+ Prawa góra
</string>
<string name="Top">
Góra
</string>
<string name="Top Left">
- Lewa Góra
+ Lewa góra
</string>
<string name="Center">
Åšrodek
</string>
<string name="Bottom Left">
- Lewy Dół
+ Lewy dół
</string>
<string name="Bottom">
Dół
</string>
<string name="Bottom Right">
- Prawy Dół
+ Prawy dół
</string>
<string name="CompileQueueDownloadedCompiling">
Pobieranie zakończone, rozpoczęcie kompilacji
@@ -1263,7 +1397,7 @@
Nieznany błąd podczas próby pobierania
</string>
<string name="CompileQueueTitle">
- Postęp Rekompilacji
+ Postęp rekompilacji
</string>
<string name="CompileQueueStart">
rekompiluj
@@ -1275,13 +1409,13 @@
zresetuj
</string>
<string name="RunQueueTitle">
- Ustaw Uruchomiaj Progres
+ Ustaw uruchomiaj progres
</string>
<string name="RunQueueStart">
ustaw uruchom
</string>
<string name="NotRunQueueTitle">
- Ustaw Nie Uruchamiaj Progres
+ Ustaw nie uruchamiaj progres
</string>
<string name="NotRunQueueStart">
ustaw nie uruchamiaj
@@ -1299,7 +1433,7 @@
Skrypt (obiekt poza zasięgiem)
</string>
<string name="GodToolsObjectOwnedBy">
- Obiekt [OBJECT] należący [OWNER]
+ Obiekt [OBJECT] należący do [OWNER]
</string>
<string name="GroupsNone">
żadne
@@ -1311,6 +1445,7 @@
<string name="SummaryForTheWeek" value="Podsumowanie dla tego tygodnia, poczÄ…wszy od "/>
<string name="NextStipendDay" value="Następna wypłata będzie w "/>
<string name="GroupIndividualShare" value=" Groupa Udziały Indywidualne"/>
+ <string name="GroupColumn" value="Grupa"/>
<string name="Balance">
Stan
</string>
@@ -1354,10 +1489,10 @@
Grupy mające dostęp: ([ALLOWEDGROUPS], max [MAXACCESS])
</string>
<string name="ScriptLimitsParcelScriptMemory">
- Pamięć Skryptów Parceli
+ Pamięć skryptów Posiadłości
</string>
<string name="ScriptLimitsParcelsOwned">
- Parcele: [PARCELS]
+ Posiadłości: [PARCELS]
</string>
<string name="ScriptLimitsMemoryUsed">
Pamięć wykorzystana: [COUNT] kb z [MAX] kb; [AVAILABLE] kb pozostało
@@ -1366,7 +1501,7 @@
Pamięć wykorzystana: [COUNT] kb
</string>
<string name="ScriptLimitsParcelScriptURLs">
- Skrypty URL Parceli
+ Skrypty URL Posiadłości
</string>
<string name="ScriptLimitsURLsUsed">
URL: [COUNT] z [MAX]; [AVAILABLE] dostępne
@@ -1387,7 +1522,7 @@
Wyszukiwanie informacji...
</string>
<string name="ScriptLimitsRequestDontOwnParcel">
- Nie masz pozwolenia na sprawdzenie parceli.
+ Nie masz pozwolenia na sprawdzenie pasiadłości.
</string>
<string name="SITTING_ON">
Usiądź na
@@ -1399,22 +1534,22 @@
Głowa
</string>
<string name="ATTACH_LSHOULDER">
- Lewe RamiÄ™
+ Lewe ramiÄ™
</string>
<string name="ATTACH_RSHOULDER">
- RamiÄ™ Prawe
+ Prawe ramiÄ™
</string>
<string name="ATTACH_LHAND">
- Ręka Lewa
+ Lewa ręka
</string>
<string name="ATTACH_RHAND">
- Prawa Ręka
+ Prawa ręka
</string>
<string name="ATTACH_LFOOT">
- Lewa Stopa
+ Lewa stopa
</string>
<string name="ATTACH_RFOOT">
- Stopa Prawa
+ Prawa stopa
</string>
<string name="ATTACH_BACK">
Plecy
@@ -1429,22 +1564,22 @@
Podbródek
</string>
<string name="ATTACH_LEAR">
- Ucho Lewe
+ Ucho lewe
</string>
<string name="ATTACH_REAR">
- Prawe Ucho
+ Prawe ucho
</string>
<string name="ATTACH_LEYE">
- Lewe Oko
+ Lewe oko
</string>
<string name="ATTACH_REYE">
- Prawe Oko
+ Prawe oko
</string>
<string name="ATTACH_NOSE">
Nos
</string>
<string name="ATTACH_RUARM">
- Ramię P Górne
+ Prawe górne ramię
</string>
<string name="ATTACH_RLARM">
Prawe dolne ramiÄ™
@@ -1459,19 +1594,19 @@
Biodro prawe
</string>
<string name="ATTACH_RULEG">
- P Górna Noga
+ Prawa górna noga
</string>
<string name="ATTACH_RLLEG">
- Noga P Dolna
+ Prawa dolna noga
</string>
<string name="ATTACH_LHIP">
- Biodro Lewe
+ Biodro lewe
</string>
<string name="ATTACH_LULEG">
- L Górna Noga
+ Lewa gorna noga
</string>
<string name="ATTACH_LLLEG">
- Noga L Dolna
+ Lewa dolna noga
</string>
<string name="ATTACH_BELLY">
Brzuch
@@ -1483,28 +1618,31 @@
Lewa klatka
</string>
<string name="ATTACH_HUD_CENTER_2">
- HUD Åšrodek 2
+ HUD środek 2
</string>
<string name="ATTACH_HUD_TOP_RIGHT">
- HUD P Górny
+ HUD prawy górny
</string>
<string name="ATTACH_HUD_TOP_CENTER">
- HUD Środek Górny
+ HUD środek górny
</string>
<string name="ATTACH_HUD_TOP_LEFT">
- HUD L Góra
+ HUD lewa gora
</string>
<string name="ATTACH_HUD_CENTER_1">
- HUD Åšrodek 1
+ HUD środek 1
</string>
<string name="ATTACH_HUD_BOTTOM_LEFT">
- HUD Dolna L Strona
+ HUD lewa dolna strona
</string>
<string name="ATTACH_HUD_BOTTOM">
- HUD Dolny
+ HUD dolny
</string>
<string name="ATTACH_HUD_BOTTOM_RIGHT">
- HUD Dolna P Strona
+ HUD prawa dolna strona
+ </string>
+ <string name="Bad attachment point">
+ Nieprawidłowy punkt załączenia
</string>
<string name="CursorPos">
Linia [LINE], Kolumna [COLUMN]
@@ -1512,40 +1650,47 @@
<string name="PanelDirCountFound">
[COUNT] odnalezionych
</string>
- <string name="PanelContentsNewScript">
- Nowy Skrypt
- </string>
<string name="PanelContentsTooltip">
Zawartość obiektu
</string>
+ <string name="PanelContentsNewScript">
+ Nowy skrypt
+ </string>
<string name="BusyModeResponseDefault">
- Rezydent, do którego wysłałeś wiadomość prywatną znajduje się w trybie pracy. Oznacza to, iż Twoja wiadomość zostanie zapisana do przeglądnięcia poźniej.
+ Rezydent, do którego wysłałeś wiadomość prywatną znajduje się w trybie pracy. Oznacza to, iż Twoja wiadomość zostanie zapisana do przejrzenia poźniej.
+ </string>
+ <string name="NoOutfits">
+ Nie posiadasz jeszcze żadnych strojów. Spróbuj [secondlife:///app/search/all/ Szukaj]
+ </string>
+ <string name="NoOutfitsTabsMatched">
+ Nie znaleziono tego czego szukasz? Spróbuj [secondlife:///app/search/all/[SEARCH_TERM] Szukaj].
</string>
<string name="MuteByName">
- (według nazwy)
+ (Nazwa)
</string>
<string name="MuteAgent">
(Rezydent)
</string>
<string name="MuteObject">
- (obiekt)
+ (Obiekt)
</string>
<string name="MuteGroup">
- (grupÄ™)
+ (GrupÄ™)
+ </string>
+ <string name="MuteExternal">
+ (Zewnętrzne)
</string>
<string name="RegionNoCovenant">
Brak umowy dla tego majÄ…tku.
</string>
<string name="RegionNoCovenantOtherOwner">
- Brak umowy dla tego majątku. Każda posiadłość w tym majątku została sprzedana przez Właściciela majątku nie Linden Lab. Skontaktuj się z właścicielem majątku w celu uzuskania szczegółów sprzedaży.
- </string>
- <string name="covenant_last_modified">
- Ostatnia Modyfikacja:
+ Brak umowy dla tego majątku. Każda posiadłość w tym majątku została sprzedana przez właściciela majątku nie Linden Lab. Skontaktuj się z właścicielem majątku w celu uzuskania szczegółów sprzedaży.
</string>
+ <string name="covenant_last_modified" value="Ostatnio modyfikowano:"/>
<string name="none_text" value=" (żadne) "/>
<string name="never_text" value=" (nigdy) "/>
<string name="GroupOwned">
- Własność Grupy
+ Własność grupy
</string>
<string name="Public">
Publiczny
@@ -1629,7 +1774,7 @@
Zawartość
</string>
<string name="AcquiredItems">
- Zdobyte Obiekty
+ Zdobyte obiekty
</string>
<string name="Cancel">
Anuluj
@@ -1675,7 +1820,7 @@ Expected .wav, .tga, .bmp, .jpg, .jpeg, or .bvh
Shift+
</string>
<string name="FileSaved">
- Zapisane Pliki
+ Zapisane pliki
</string>
<string name="Receiving">
Otrzymane
@@ -1693,13 +1838,13 @@ Expected .wav, .tga, .bmp, .jpg, .jpeg, or .bvh
PDT
</string>
<string name="Forward">
- Do Przodu
+ Do przodu
</string>
<string name="Left">
- W Lewo
+ W lewo
</string>
<string name="Right">
- W Prawo
+ W prawo
</string>
<string name="Back">
Wróć
@@ -1717,10 +1862,10 @@ Expected .wav, .tga, .bmp, .jpg, .jpeg, or .bvh
Wschód
</string>
<string name="Up">
- W Górę
+ W górę
</string>
<string name="Down">
- W Dół
+ W dół
</string>
<string name="Any Category">
Każda Kategoria
@@ -1729,7 +1874,7 @@ Expected .wav, .tga, .bmp, .jpg, .jpeg, or .bvh
Zakupy
</string>
<string name="Land Rental">
- Wynajem Ziemi
+ Wynajem ziemi
</string>
<string name="Property Rental">
Wynajem Posiadłości
@@ -1738,7 +1883,7 @@ Expected .wav, .tga, .bmp, .jpg, .jpeg, or .bvh
Specjalne Oferty
</string>
<string name="New Products">
- Nowe Produkty
+ Nowe produkty
</string>
<string name="Employment">
Praca
@@ -1756,7 +1901,7 @@ Expected .wav, .tga, .bmp, .jpg, .jpeg, or .bvh
Żadne
</string>
<string name="Linden Location">
- Linden Lokacja
+ Linden Lokalizacja
</string>
<string name="Adult">
&apos;Adult&apos;
@@ -1780,7 +1925,7 @@ Expected .wav, .tga, .bmp, .jpg, .jpeg, or .bvh
Przyjazne dla nowych
</string>
<string name="Parks&amp;Nature">
- Park i Natura
+ Parki i Natura
</string>
<string name="Residential">
Mieszkalna
@@ -1798,10 +1943,10 @@ Expected .wav, .tga, .bmp, .jpg, .jpeg, or .bvh
Ty
</string>
<string name="Multiple Media">
- Multi Media
+ Multimedia
</string>
<string name="Play Media">
- Uruchom/Zatrzymaj Media
+ Uruchom/Zatrzymaj media
</string>
<string name="MBCmdLineError">
Podczas realizacji podanej komendy, wystąpił błąd.
@@ -1819,14 +1964,14 @@ Jeżeli nadal otrzymujesz ten komunikat, uruchom swój komputer ponownie.
Jeżeli problem nadal występuje, proponujemy całkowite odinstalowanie aplikacji [APP_NAME] oraz ponowną jej instalację.
</string>
<string name="MBFatalError">
- Błąd Krytyczny
+ Błąd krytyczny
</string>
<string name="MBRequiresAltiVec">
Aplikacja [APP_NAME] wymaga procesora z AltiVec (wersja G4 lub starsza).
</string>
<string name="MBAlreadyRunning">
Aplikacja [APP_NAME] została już uruchomiona.
-Sprawdź czy Twój pasek aplikacji nie ma zminimaliwoanych okien programu.
+Sprawdź czy Twój pasek aplikacji nie ma zminimalizowanych okien programu.
Jeżeli nadal otrzymujesz ten komunikat, uruchom swój komputer ponownie.
</string>
<string name="MBFrozenCrashed">
@@ -1838,7 +1983,7 @@ Czy chcesz wysłać raport na temat zawieszenia?
</string>
<string name="MBNoDirectX">
Aplikacja [APP_NAME] nie wykryła oprogramowania DirectX 9.0b lub wersji nowszej.
-[APP_NAME] używa oprogramowaniau DirectX w celu detekcji dysku twardego i/lub nieaktualizowanych dysków twardych, które mogą przyczynić się do obniżenia stabilności, wydajności systemoweu oraz zawieszeń. Jeżeli chcesz uruchomić aplikację [APP_NAME] bez problemów, doradzamy korzystanie z uruchomionym oprogramowaniem min. DirectX 9.0b.
+[APP_NAME] używa oprogramowaniau DirectX w celu wykrycia dysku twardego i/lub nieaktualizowanych dysków twardych, które mogą przyczynić się do obniżenia stabilności, wydajności systemowej oraz zawieszeń. Jeżeli chcesz uruchomić aplikację [APP_NAME] bez problemów, doradzamy korzystanie z uruchomionym oprogramowaniem min. DirectX 9.0b.
Czy chcesz kontynuować?
</string>
@@ -1856,7 +2001,7 @@ Prosimy o pobranie najnowszej wersji ze strony internetowej: www.secondlife.com.
Błąd
</string>
<string name="MBFullScreenErr">
- Niemożliwość uruchomienia trybu pełnoekranowego w proporcji [WIDTH] x [HEIGHT].
+ Nie można uruchomić trybu pełnoekranowego w proporcji [WIDTH] x [HEIGHT].
Uruchomione w oknie.
</string>
<string name="MBDestroyWinFailed">
@@ -1875,11 +2020,11 @@ Uruchomione w oknie.
Brak otrzymania formatu pikselowego opisu
</string>
<string name="MBTrueColorWindow">
- Aplikacja [APP_NAME] wymaga ustawienia Koloru na (32-bit) do uruchomienia.
+ Aplikacja [APP_NAME] wymaga ustawienia koloru na (32-bit) do uruchomienia.
Sprawdź swoje ustawienia dla wyświetlacza i ustaw tryb koloru na 32-bity.
</string>
<string name="MBAlpha">
- Aplikacja [APP_NAME] nie może zostać uruchomiona z powodu niemożliwości dostania się na kanał 8 bitowy alpha. Najcześciej jest to spowodowane błędami sterowników karty video.
+ Aplikacja [APP_NAME] nie może zostać uruchomiona, ponieważ nie jest możliwe dostanie się na kanał 8 bitowy alpha. Najcześciej jest to spowodowane błędami sterowników karty video.
Upewnij się, że posiadasz najnowsze aktualizacje sterowników karty video.
Dodatkowo, sprawdź czy Twój monitor posiada poprawną konfigurację koloru (32-bity) w Panelu Kontroli &gt; Display &gt; Ustawienia.
Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
@@ -1929,34 +2074,34 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
Pasemka
</string>
<string name="Beady Eyes">
- Oczy Załzawione
+ Oczy załzawione
</string>
<string name="Belly Size">
- Rozmiar Brzucha
+ Rozmiar brzucha
</string>
<string name="Big">
Duży
</string>
<string name="Big Butt">
- Duży Pośladek
+ Duży pośladek
</string>
<string name="Big Hair Back">
- Duże Włosy: z tyłu
+ Duże włosy: z tyłu
</string>
<string name="Big Hair Front">
- Duże Włosy: z przodu
+ Duże włosy: z przodu
</string>
<string name="Big Hair Top">
- Duże Włosy: z góry
+ Duże włosy: z góry
</string>
<string name="Big Head">
- Duża Głowa
+ Duża głowa
</string>
<string name="Big Pectorals">
- Duże Mięśnie Piersiowe
+ Duże mięśnie piersiowe
</string>
<string name="Big Spikes">
- Duże Kolce
+ Duże kolce
</string>
<string name="Black">
Czarne
@@ -1965,7 +2110,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
Blond
</string>
<string name="Blonde Hair">
- Włosy Blond
+ Włosy blond
</string>
<string name="Blush">
Rumieniec
@@ -1986,10 +2131,10 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
Piegi
</string>
<string name="Body Thick">
- Zagęszczenie Ciała
+ Zagęszczenie ciała
</string>
<string name="Body Thickness">
- Grubość Ciała
+ Grubość ciała
</string>
<string name="Body Thin">
Szczupłość
@@ -2016,25 +2161,25 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
Rozmiar czoła
</string>
<string name="Bug Eyes">
- Bug Eyes
+ Wytrzeszcz oczu
</string>
<string name="Bugged Eyes">
- Bugged Eyes
+ Wytrzeszczone oczy
</string>
<string name="Bulbous">
Bulwiasty
</string>
<string name="Bulbous Nose">
- Bulwiasty Nos
+ Bulwiasty nos
</string>
<string name="Bushy Eyebrows">
- Bujne Brwi
+ Bujne brwi
</string>
<string name="Bushy Hair">
- Bujne Włosy
+ Bujne włosy
</string>
<string name="Butt Size">
- Rozmiar Pośladków
+ Rozmiar pośladków
</string>
<string name="bustle skirt">
Bustle Skirt
@@ -2085,7 +2230,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
Rozszczepienie
</string>
<string name="Close Set Eyes">
- Close Set Eyes
+ Oczy blisko ustawione
</string>
<string name="Closed">
Zamknięte
@@ -2097,10 +2242,10 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
Zamknięte z przodu
</string>
<string name="Closed Left">
- Lewe Oko zamknięte
+ Lewe oko zamknięte
</string>
<string name="Closed Right">
- Prawe Oko zamknięte
+ Prawe oko zamknięte
</string>
<string name="Coin Purse">
Coin Purse
@@ -2112,10 +2257,10 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
Kołnierz z przodu
</string>
<string name="Corner Down">
- Corner Down
+ Kącik w dół
</string>
<string name="Corner Up">
- Corner Up
+ Kącik w górę
</string>
<string name="Creased">
Pognieciony
@@ -2124,7 +2269,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
Skrzywienie nosa
</string>
<string name="Cuff Flare">
- Cuff Flare
+ Szeroki rękaw
</string>
<string name="Dark">
Ciemne
@@ -2139,7 +2284,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
Glębokie
</string>
<string name="Default Heels">
- Domyślne Buty na Obcasie
+ Domyślne buty na obcasie
</string>
<string name="Dense">
Gęstość
@@ -2208,13 +2353,13 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
Długość rzęs
</string>
<string name="Eyeliner">
- Eyeliner
+ Kredka do oczu
</string>
<string name="Eyeliner Color">
- Kolor Eyeliner&apos;a
+ Kolor kredki do oczu&apos;a
</string>
<string name="Eyes Bugged">
- Eyes Bugged
+ Wytrzeszczone oczy
</string>
<string name="Face Shear">
Usunięcie twarzy
@@ -2223,7 +2368,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
Detale twarzy
</string>
<string name="Far Set Eyes">
- Far Set Eyes
+ Oczy szeroko rozstawione
</string>
<string name="Fat Lips">
Grube usta
@@ -2232,7 +2377,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
Kobieta
</string>
<string name="Fingerless">
- Fingerless
+ Bez palców
</string>
<string name="Fingers">
Palce
@@ -2265,7 +2410,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
Piegi
</string>
<string name="Front Fringe">
- Przednia Grzywka
+ Przednia grzywka
</string>
<string name="Full Back">
Gęstość włosów po bokach
@@ -2358,13 +2503,13 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
Wysokie obcasy
</string>
<string name="High Jaw">
- High Jaw
+ Wysoka szczęka
</string>
<string name="High Platforms">
- High Platforms
+ Wysokie obcasy
</string>
<string name="High and Tight">
- High and Tight
+ Wysokie i wÄ…skie
</string>
<string name="Higher">
Wyżej
@@ -2385,7 +2530,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
Wewnętrzna intensywność cienia
</string>
<string name="Inner Eye Corner">
- Wenwętrzny bok oka
+ Wewnętrzny bok oka
</string>
<string name="Inner Eye Shadow">
Wewnętrzny cień oka
@@ -2400,25 +2545,25 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
Zmarszczki na kurtce
</string>
<string name="Jaw Angle">
- Jaw Angle
+ Kąt szczęki
</string>
<string name="Jaw Jut">
- Jaw Jut
+ Wystająca szczęka
</string>
<string name="Jaw Shape">
- Jaw Shape
+ Kształt szczęki
</string>
<string name="Join">
Złącz
</string>
<string name="Jowls">
- Jowls
+ Dolna część policzka
</string>
<string name="Knee Angle">
KÄ…t kolana
</string>
<string name="Knock Kneed">
- Knock Kneed
+ Iksowate nogi
</string>
<string name="Large">
Duże
@@ -2427,7 +2572,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
Duże dłonie
</string>
<string name="Left Part">
- Left Part
+ Lewa część
</string>
<string name="Leg Length">
Długość nogi
@@ -2445,13 +2590,13 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
Less Curtains
</string>
<string name="Less Freckles">
- Mniej Piegów
+ Mniej piegów
</string>
<string name="Less Full">
- Mniej Pełne
+ Mniej pełne
</string>
<string name="Less Gravity">
- Mniej Ciężaru
+ Mniej ciężaru
</string>
<string name="Less Love">
Less Love
@@ -2463,7 +2608,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
Mniej umięśnienia
</string>
<string name="Less Rosy">
- Less Rosy
+ Mniej zaróżowione
</string>
<string name="Less Round">
Mniej zaaokrÄ…glone
@@ -2484,7 +2629,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
Lżejsze
</string>
<string name="Lip Cleft">
- Szerokość Rozszczepienia górnej wargi
+ Szerokość rozszczepienia górnej wargi
</string>
<string name="Lip Cleft Depth">
Głębokość rozszczepienia górnej wargi
@@ -2562,7 +2707,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
Niska szczęka
</string>
<string name="Low Platforms">
- Low Platforms
+ Niskie obcasy
</string>
<string name="Low and Loose">
Niskie i luźne
@@ -2571,10 +2716,10 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
Niżej
</string>
<string name="Lower Bridge">
- Lower Bridge
+ Dolny mostek
</string>
<string name="Lower Cheeks">
- Lower Cheeks
+ Niższe policzki
</string>
<string name="Male">
Mężczyzna
@@ -2586,7 +2731,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
Więcej
</string>
<string name="More Blush">
- More Blush
+ Bardziej zarumienione
</string>
<string name="More Body Fat">
Więcej zawartości tkanki tłuszczowej
@@ -2595,13 +2740,13 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
More Curtains
</string>
<string name="More Eyeshadow">
- More Eyeshadow
+ Ciemniejszy cień oczu
</string>
<string name="More Freckles">
Więcej piegów
</string>
<string name="More Full">
- More Full
+ Bardziej pełne
</string>
<string name="More Gravity">
Więcej ciężaru
@@ -2622,7 +2767,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
Więcej umięśnienia
</string>
<string name="More Rosy">
- More Rosy
+ Bardziej zaróżowione
</string>
<string name="More Round">
Więcej zaokrąglenia
@@ -2631,7 +2776,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
More Saddle
</string>
<string name="More Sloped">
- More Sloped
+ Bardziej spadziste
</string>
<string name="More Square">
Więcej kwadratowy
@@ -2640,7 +2785,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
Więcej górnej wargi
</string>
<string name="More Vertical">
- More Vertical
+ Bardziej pionowe
</string>
<string name="More Volume">
Więcej objętości
@@ -2652,10 +2797,10 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
WÄ…sy
</string>
<string name="Mouth Corner">
- KÄ…ciki Ust
+ KÄ…ciki ust
</string>
<string name="Mouth Position">
- Pozycja Ust
+ Pozycja ust
</string>
<string name="Mowhawk">
Mowhawk
@@ -2676,13 +2821,13 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
WÄ…skie
</string>
<string name="Narrow Back">
- Wąski Tył
+ Wąski tył
</string>
<string name="Narrow Front">
- Wąski Przód
+ Wąski przód
</string>
<string name="Narrow Lips">
- WÄ…skie Usta
+ WÄ…skie usta
</string>
<string name="Natural">
Naturalne
@@ -2694,10 +2839,10 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
Grubość karku
</string>
<string name="No Blush">
- No Blush
+ Brak rumieńca
</string>
<string name="No Eyeliner">
- Brak Eyeliner&apos;s
+ Brak kredki do oczu&apos;s
</string>
<string name="No Eyeshadow">
Brak cienia pod powiekÄ…
@@ -2799,7 +2944,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
Zewnętrzny cień
</string>
<string name="Overbite">
- Overbite
+ Przodozgryz górny
</string>
<string name="Package">
Package
@@ -2808,13 +2953,13 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
Pomalowane paznokcie
</string>
<string name="Pale">
- Pale
+ Blady
</string>
<string name="Pants Crotch">
Krocze spodni
</string>
<string name="Pants Fit">
- Pants Fit
+ Dopasowanie spodni
</string>
<string name="Pants Length">
Długość spodni
@@ -2829,7 +2974,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
Część
</string>
<string name="Part Bangs">
- Part Bangs
+ Część grzywki
</string>
<string name="Pectorals">
Mięśnie klatki piersiowej
@@ -2838,7 +2983,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
Pigment
</string>
<string name="Pigtails">
- Pigtails
+ Warkocz
</string>
<string name="Pink">
Różowe
@@ -2847,16 +2992,16 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
Róż
</string>
<string name="Platform Height">
- Platform Height
+ Wysokie obcasy
</string>
<string name="Platform Width">
- Platform Width
+ Szerokie obcasy
</string>
<string name="Pointy">
Pointy
</string>
<string name="Pointy Heels">
- Pointy Heels
+ Obcasy pointy
</string>
<string name="Ponytail">
Kucyk
@@ -2865,22 +3010,22 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
Poofy Skirt
</string>
<string name="Pop Left Eye">
- Pop Left Eye
+ Wybałuszone lewe oko
</string>
<string name="Pop Right Eye">
- Pop Right Eye
+ Wybałuszone prawe oko
</string>
<string name="Puffy">
- Puffy
+ Opuchnięty
</string>
<string name="Puffy Eyelids">
- Spuchnięte Powieki
+ Spuchnięte powieki
</string>
<string name="Rainbow Color">
- Kolor Tęczy
+ Kolor tęczy
</string>
<string name="Red Hair">
- Czerwone Włosy
+ Czerwone włosy
</string>
<string name="Regular">
Regularne
@@ -2901,13 +3046,13 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
Rudy
</string>
<string name="Rumpled Hair">
- Włosy w Nieładzie
+ Włosy w nieładzie
</string>
<string name="Saddle Bags">
Saddle Bags
</string>
<string name="Scrawny Leg">
- Scrawny Leg
+ Koścista noga
</string>
<string name="Separate">
Odzielne
@@ -2946,13 +3091,13 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
Przesuń w prawo
</string>
<string name="Shirt Bottom">
- Dolna Część Koszulki
+ Dolna część koszuli
</string>
<string name="Shirt Fit">
- Shirt Fit
+ Dopasowanie koszuli
</string>
<string name="Shirt Wrinkles">
- Zmarszczki na koszulce
+ Zmarszczki na koszuli
</string>
<string name="Shoe Height">
Wysokość buta
@@ -2970,13 +3115,13 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
Krótki kark
</string>
<string name="Short Pigtails">
- Short Pigtails
+ Krótkie warkoczyki
</string>
<string name="Short Ponytail">
- Krótki Kucyk
+ Krótki kucyk
</string>
<string name="Short Sideburns">
- Krótkie Baczki
+ Krótkie baczki
</string>
<string name="Short Torso">
Krótki tułów
@@ -2994,19 +3139,19 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
Baczki
</string>
<string name="Sides Hair">
- Boczne Włosy
+ Boczne włosy
</string>
<string name="Sides Hair Down">
- Boczne Włosy w Dół
+ Boczne włosy w dół
</string>
<string name="Sides Hair Up">
- Boczne Włosy do Góry
+ Boczne włosy do góry
</string>
<string name="Skinny Neck">
- Smukły Kark
+ Smukły kark
</string>
<string name="Skirt Fit">
- Skirt Fit
+ Dopasowanie spódnicy
</string>
<string name="Skirt Length">
Długość spódnicy
@@ -3018,19 +3163,19 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
Długość rękawów
</string>
<string name="Sleeve Looseness">
- Luźność rękawów
+ Luźne rękawy
</string>
<string name="Slit Back">
- Slit: Back
+ Rozcięcie: tył
</string>
<string name="Slit Front">
- Slit: Front
+ Rozcięcie: przód
</string>
<string name="Slit Left">
- Slit: Left
+ Rozcięcie: po prawej
</string>
<string name="Slit Right">
- Slit: Right
+ Rozcięcie: po lewej
</string>
<string name="Small">
Małe
@@ -3051,13 +3196,13 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
Długość skarpetek
</string>
<string name="Soulpatch">
- Soulpatch
+ Zarost na dolnej wardze
</string>
<string name="Sparse">
- Sparse
+ Rzadki
</string>
<string name="Spiked Hair">
- Kolczaste Włosy
+ Kolczaste włosy
</string>
<string name="Square">
Kwadratowe
@@ -3072,13 +3217,13 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
Rozciągnięta głowa
</string>
<string name="Sunken">
- Sunken
+ Zapadnięte
</string>
<string name="Sunken Chest">
- Sunken Chest
+ Zapadnięta klatka piersiowa
</string>
<string name="Sunken Eyes">
- Sunken Eyes
+ Zapadnięte oczy
</string>
<string name="Sweep Back">
Sweep Back
@@ -3090,10 +3235,10 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
Wysokość
</string>
<string name="Taper Back">
- Taper Back
+ Zwężenie do przodu
</string>
<string name="Taper Front">
- Taper Front
+ Zwężenie do tyłu
</string>
<string name="Thick Heels">
Grube obcasy
@@ -3156,7 +3301,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
Uncreased
</string>
<string name="Underbite">
- Underbite
+ Przodozgryz
</string>
<string name="Unnatural">
Nienaturalne
@@ -3183,7 +3328,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
Wysokość talii
</string>
<string name="Well-Fed">
- Well-Fed
+ Dobrze odżywiony
</string>
<string name="White Hair">
Białe włosy
@@ -3207,10 +3352,10 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
Zmarszczki
</string>
<string name="LocationCtrlAddLandmarkTooltip">
- Dodaj do Zapisanych Miejsc
+ Dodaj do landmarków
</string>
<string name="LocationCtrlEditLandmarkTooltip">
- Edytuj Zapisane Miejsca
+ Edytuj Landmarki
</string>
<string name="LocationCtrlInfoBtnTooltip">
Zobacz więcej szczegółów na temat obecnej lokalizacji
@@ -3218,6 +3363,15 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
<string name="LocationCtrlComboBtnTooltip">
Historia odwiedzonych miejsc
</string>
+ <string name="LocationCtrlAdultIconTooltip">
+ Region Adult
+ </string>
+ <string name="LocationCtrlModerateIconTooltip">
+ Region Moderate
+ </string>
+ <string name="LocationCtrlGeneralIconTooltip">
+ Region
+ </string>
<string name="UpdaterWindowTitle">
[APP_NAME] Aktualizacja
</string>
@@ -3248,6 +3402,12 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
<string name="UpdaterFailStartTitle">
Uruchomienie klienta nie powiodło się
</string>
+ <string name="ItemsComingInTooFastFrom">
+ [APP_NAME]: Obiekty ładują się zbyt szybko od [FROM_NAME], automatyczny podgląd jest wyłączony na [TIME] sekund
+ </string>
+ <string name="ItemsComingInTooFast">
+ [APP_NAME]: Obiekty ładują się zbyt szybko, automatyczny podgląd jest wyłączony na [TIME] sekund
+ </string>
<string name="IM_logging_string">
-- Zapisywanie logów rozmowy aktywowane --
</string>
@@ -3275,17 +3435,23 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
<string name="IM_moderator_label">
(Moderator)
</string>
- <string name="started_call">
- Rozpoczęta rozmowa głosowa
+ <string name="answered_call">
+ Twoja rozmowa głosowa została odebrana
+ </string>
+ <string name="you_started_call">
+ Rozmowa głosowa została rozpoczęta
</string>
- <string name="joined_call">
- Dołączył do rozmowy głosowej
+ <string name="you_joined_call">
+ Dołączyłeś/Dołączyłaś do rozmowy głosowej
+ </string>
+ <string name="name_started_call">
+ [NAME] zaczyna rozmowę głosową
</string>
<string name="ringing-im">
Rozmowa głosowa...
</string>
<string name="connected-im">
- Połączono, kliknij Zakończ Rozmowe aby się rozłączyć
+ Połączono, kliknij Zakończ rozmowę aby się rozłączyć
</string>
<string name="hang_up-im">
Rozmowa głosowa zakończona
@@ -3356,12 +3522,21 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
<string name="unread_chat_multiple">
[SOURCES] powiedział/a coś nowego
</string>
+ <string name="session_initialization_timed_out_error">
+ Inicjacja sesji wygasła
+ </string>
+ <string name="voice_morphing_url">
+ http://secondlife.com/landing/voicemorphing
+ </string>
<string name="paid_you_ldollars">
[NAME] zapłacił Ci L$[AMOUNT]
</string>
<string name="you_paid_ldollars">
Zapłacono [NAME] [AMOUNT]L$ [REASON].
</string>
+ <string name="you_paid_ldollars_no_info">
+ Zapłacono L$[AMOUNT].
+ </string>
<string name="you_paid_ldollars_no_reason">
Zapłacono [NAME] [AMOUNT]L$.
</string>
@@ -3369,7 +3544,7 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
Zapłacono [AMOUNT]L$ [REASON].
</string>
<string name="for a parcel of land">
- za posiadłość
+ za Posiadłość
</string>
<string name="for a land access pass">
za przepustkę na Posiadłość
@@ -3410,6 +3585,9 @@ Jeżeli nadal otrzymujesz ten komunikat, skontaktuj się z [SUPPORT_SITE].
<string name="group_role_owners">
Właściciele
</string>
+ <string name="group_member_status_online">
+ Obecnie w SL
+ </string>
<string name="uploading_abuse_report">
Pobieranie...
@@ -3455,7 +3633,7 @@ Raport o Nadużyciu
Nowa spódnica
</string>
<string name="New Alpha">
- Nowa Alpha
+ Nowa alpha
</string>
<string name="New Tattoo">
Nowy tatuaż
@@ -3463,13 +3641,203 @@ Raport o Nadużyciu
<string name="Invalid Wearable">
Nieaktualne ubranie/część ciała
</string>
+ <string name="New Gesture">
+ Nowa gesturka
+ </string>
<string name="New Script">
Nowy skrypt
</string>
+ <string name="New Note">
+ Stwórz nowe ogłoszenie
+ </string>
<string name="New Folder">
Nowy folder
</string>
<string name="Contents">
Zawartość
</string>
+ <string name="Gesture">
+ Gesturki
+ </string>
+ <string name="Male Gestures">
+ Gesturki dla mężczyzn
+ </string>
+ <string name="Female Gestures">
+ Gesturki dla kobiet
+ </string>
+ <string name="Other Gestures">
+ Inne gesturki
+ </string>
+ <string name="Speech Gestures">
+ Gesturki przemówienia
+ </string>
+ <string name="Common Gestures">
+ Gesturki
+ </string>
+ <string name="Male - Excuse me">
+ Mężczyzna - Excuse me
+ </string>
+ <string name="Male - Get lost">
+ Mężczyzna - Get lost
+ </string>
+ <string name="Male - Blow kiss">
+ Mężczyzna - Całusek
+ </string>
+ <string name="Male - Boo">
+ Mężczyzna - Boo
+ </string>
+ <string name="Male - Bored">
+ Mężczyzna - Znudzony
+ </string>
+ <string name="Male - Hey">
+ Mężczyzna - Hey
+ </string>
+ <string name="Male - Laugh">
+ Mężczyzna - Śmiech
+ </string>
+ <string name="Male - Repulsed">
+ Mężczyzna - Odrzucenie
+ </string>
+ <string name="Male - Shrug">
+ Mężczyzna - Wzruszenie ramionami
+ </string>
+ <string name="Male - Stick tougue out">
+ Mężczyzna - Pokaż język
+ </string>
+ <string name="Male - Wow">
+ Mężczyzna - Wow
+ </string>
+ <string name="Female - Chuckle">
+ Kobieta - Chichot
+ </string>
+ <string name="Female - Cry">
+ Kobieta - Płacze
+ </string>
+ <string name="Female - Embarrassed">
+ Kobieta - Zakłopotana
+ </string>
+ <string name="Female - Excuse me">
+ Kobieta - Excuse me
+ </string>
+ <string name="Female - Get lost">
+ Kobieta - Get lost
+ </string>
+ <string name="Female - Blow kiss">
+ Kobieta - Całusek
+ </string>
+ <string name="Female - Boo">
+ Kobieta - Boo
+ </string>
+ <string name="Female - Bored">
+ Kobieta - Znudzona
+ </string>
+ <string name="Female - Hey">
+ Kobieta - Hey
+ </string>
+ <string name="Female - Hey baby">
+ Kobieta - Hey baby
+ </string>
+ <string name="Female - Laugh">
+ Kobieta - Åšmiech
+ </string>
+ <string name="Female - Looking good">
+ Kobieta - Looking good
+ </string>
+ <string name="Female - Over here">
+ Kobieta - Over here
+ </string>
+ <string name="Female - Please">
+ Kobieta - Please
+ </string>
+ <string name="Female - Repulsed">
+ Kobieta - Odrzucenie
+ </string>
+ <string name="Female - Shrug">
+ Kobieta - Wzruszenie ramionami
+ </string>
+ <string name="Female - Stick tougue out">
+ Kobieta - Pokaż język
+ </string>
+ <string name="Female - Wow">
+ Kobieta - Wow
+ </string>
+ <string name="AvatarBirthDateFormat">
+ [mthnum,datetime,slt]/[day,datetime,slt]/[year,datetime,slt]
+ </string>
+ <string name="DefaultMimeType">
+ żadne/żadne
+ </string>
+ <string name="texture_load_dimensions_error">
+ Nie można załadować zdjęcia większego niż [WIDTH]*[HEIGHT]
+ </string>
+ <string name="words_separator" value=","/>
+ <string name="server_is_down">
+ Pomimo naszych najlepszych starań wystąpił niespodziewany problem.
+
+ Proszę sprawdzić czy na stronie status.secondlifegrid.net nie zostały umieszczone informacje o rozpoznanych problemach serwera.
+ Jeśli problemy będą występowały nadal, proszę sprawdź sieć i ustawienia firewall.
+ </string>
+ <string name="dateTimeWeekdaysNames">
+ Niedziela:Poniedziałek:Wtorek:Środa:Czwartek:Piątek:Sobota
+ </string>
+ <string name="dateTimeWeekdaysShortNames">
+ Niedz.:Pon.:Wt.:Åšr.:Czw.:Pt.:Sob.
+ </string>
+ <string name="dateTimeMonthNames">
+ Styczeń:Luty:Marzec:Kwiecień:Maj:Czerwiec:Lipiec:Sierpień:Wrzesień:Październik:Listopad:Grudzień
+ </string>
+ <string name="dateTimeMonthShortNames">
+ St.:Lt.:Mrz.:Kw.:Maj:Cz.:Lp.:Sie.:Wrz.:Li.:Paź.:Gru.
+ </string>
+ <string name="dateTimeDayFormat">
+ [MDAY]
+ </string>
+ <string name="dateTimeAM">
+ AM
+ </string>
+ <string name="dateTimePM">
+ PM
+ </string>
+ <string name="LocalEstimateUSD">
+ US$ [AMOUNT]
+ </string>
+ <string name="Membership">
+ Członkostwo
+ </string>
+ <string name="Roles">
+ Funkcje
+ </string>
+ <string name="Group Identity">
+ Status grupy
+ </string>
+ <string name="Parcel Management">
+ Parcel Management
+ </string>
+ <string name="Parcel Identity">
+ Parcel Identity
+ </string>
+ <string name="Parcel Settings">
+ Parcel Settings
+ </string>
+ <string name="Parcel Powers">
+ Parcel Powers
+ </string>
+ <string name="Parcel Access">
+ Dostęp do posiadłości
+ </string>
+ <string name="Parcel Content">
+ Parcel Content
+ </string>
+ <string name="Object Management">
+ Object Management
+ </string>
+ <string name="Accounting">
+ Accounting
+ </string>
+ <string name="Notices">
+ Ogłoszenia
+ </string>
+ <string name="Chat">
+ Czat
+ </string>
</strings>
diff --git a/indra/newview/skins/default/xui/pl/teleport_strings.xml b/indra/newview/skins/default/xui/pl/teleport_strings.xml
index 6c4723dd7e..57fb55bf4c 100644
--- a/indra/newview/skins/default/xui/pl/teleport_strings.xml
+++ b/indra/newview/skins/default/xui/pl/teleport_strings.xml
@@ -2,12 +2,12 @@
<teleport_messages>
<message_set name="errors">
<message name="invalid_tport">
- Przepraszamy, ale pojawił się błąd podczas Twojej próby teleportacji. By ponowić teleportację, wyloguj się i zaloguj ponownie.
-Jeżeli nadal otrzymujesz komunikat błędu teleportacji, sprawdź [SUPPORT_SITE].
+ Przepraszamy, ale pojawił się błąd podczas Twojej próby teleportacji. Aby ponowić teleportację, wyloguj się i zaloguj ponownie.
+Jeżeli nadal otrzymujesz komunikat o błędzie teleportacji, sprawdź [SUPPORT_SITE].
</message>
<message name="invalid_region_handoff">
- Przepraszamy, ale pojawił się błąd podczas próby zmiany regionu. By ponowić próbę przejścia na drugi region, wyloguj się i zaloguj ponownie.
-Jeżeli nadal otrzymujesz komunikat błędu podczas przejścia na drugi region, sprawdź [SUPPORT_SITE].
+ Przepraszamy, ale pojawił się błąd podczas próby zmiany regionu. Aby ponowić próbę przejścia na drugi region, wyloguj się i zaloguj ponownie.
+Jeżeli nadal otrzymujesz komunikat o błędzie podczas przejścia na drugi region, sprawdź [SUPPORT_SITE].
</message>
<message name="blocked_tport">
Przepraszamy, teleportacja jest chwilowo niedostępna. Spróbuj jeszcze raz.
@@ -26,7 +26,7 @@ Jeśli nadal nie możesz się teleportować wyloguj się i ponownie zaloguj.
Czekamy na Twoje akcesoria. Możesz poczekać kilka minut lub zrobić relog przed następną próbą teleportacji.
</message>
<message name="too_many_uploads_tport">
- Obecnie ten region ma problemy z ładowaniem obiektów w związku z czym teleportacja bardzo sie opóznia.
+ Obecnie ten region ma problemy z ładowaniem obiektów, w związku z czym teleportacja bardzo sie opóźnia.
Spróbuj jeszcze raz za kilka minut albo teleportuj się do mniej zatłoczonego miejsca.
</message>
<message name="expired_tport">
@@ -36,7 +36,7 @@ Spróbuj jeszcze raz za kilka minut albo teleportuj się do mniej zatłoczonego
Przepraszamy, ale nie udało się przeprowadzić zmiany regionu wystarczająco szybko. Spróbuj jeszcze raz za kilka minut.
</message>
<message name="no_host">
- Nie możemy znaleść miejsca docelowego. To miejsce może być chwilowo nieosiągalne albo przestało istnieć.
+ Nie możemy znaleźć miejsca docelowego. To miejsce może być chwilowo nieosiągalne albo przestało istnieć.
Spróbuj jeszcze raz za kilka minut.
</message>
<message name="no_inventory_host">
@@ -57,7 +57,7 @@ Spróbuj jeszcze raz za kilka minut.
Wysyłanie do miejsca startu.
</message>
<message name="sending_landmark">
- Lokalizowanie zapamiętanego miejsca (LM).
+ Lokalizowanie landmarka(LM).
</message>
<message name="completing">
Finalizowanie teleportacji.
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 56ffcbdece..a6b255d432 100644
--- a/indra/newview/skins/default/xui/pt/floater_about_land.xml
+++ b/indra/newview/skins/default/xui/pt/floater_about_land.xml
@@ -221,60 +221,60 @@ Vá para o menu Mundo &gt; Sobre o terreno ou selecione outro lote para mostrar
<text name="Simulator primitive usage:">
Uso de prims:
</text>
- <text left="214" name="objects_available" width="230">
+ <text name="objects_available">
[COUNT] de [MAX] ([AVAILABLE] disponíveis)
</text>
- <text name="Primitives parcel supports:" width="200">
+ <text name="Primitives parcel supports:">
Prims suportados pelo lote:
</text>
- <text left="214" name="object_contrib_text" width="152">
+ <text name="object_contrib_text">
[COUNT]
</text>
<text name="Primitives on parcel:">
Prims no lote:
</text>
- <text left="214" name="total_objects_text" width="48">
+ <text name="total_objects_text">
[COUNT]
</text>
- <text left="14" name="Owned by parcel owner:" width="180">
+ <text name="Owned by parcel owner:">
Pertencentes ao dono do lote:
</text>
- <text left="214" name="owner_objects_text" width="48">
+ <text name="owner_objects_text">
[COUNT]
</text>
- <button label="Mostrar" label_selected="Mostrar" name="ShowOwner" right="-135" width="60"/>
- <button label="Devolver" name="ReturnOwner..." right="-10" tool_tip="Devolver objetos a seus donos." width="119"/>
- <text left="14" name="Set to group:" width="180">
+ <button label="Mostrar" label_selected="Mostrar" name="ShowOwner"/>
+ <button label="Devolver" name="ReturnOwner..." tool_tip="Devolver objetos a seus donos."/>
+ <text name="Set to group:">
Reservado para o grupo:
</text>
- <text left="214" name="group_objects_text" width="48">
+ <text name="group_objects_text">
[COUNT]
</text>
- <button label="Mostrar" label_selected="Mostrar" name="ShowGroup" right="-135" width="60"/>
- <button label="Devolver" name="ReturnGroup..." right="-10" tool_tip="Devolver objetos a seus donos." width="119"/>
- <text left="14" name="Owned by others:" width="128">
+ <button label="Mostrar" label_selected="Mostrar" name="ShowGroup"/>
+ <button label="Devolver" name="ReturnGroup..." tool_tip="Devolver objetos a seus donos."/>
+ <text name="Owned by others:">
Propriedade de outros:
</text>
- <text left="214" name="other_objects_text" width="48">
+ <text name="other_objects_text">
[COUNT]
</text>
- <button label="Mostrar" label_selected="Mostrar" name="ShowOther" right="-135" width="60"/>
- <button label="Devolver" name="ReturnOther..." right="-10" tool_tip="Devolver objetos a seus donos." width="119"/>
- <text left="14" name="Selected / sat upon:" width="193">
+ <button label="Mostrar" label_selected="Mostrar" name="ShowOther"/>
+ <button label="Devolver" name="ReturnOther..." tool_tip="Devolver objetos a seus donos."/>
+ <text name="Selected / sat upon:">
Selecionado/Sentado:
</text>
- <text left="214" name="selected_objects_text" width="48">
+ <text name="selected_objects_text">
[COUNT]
</text>
<text name="Autoreturn">
Devolver objetos de outros residentes (p/ desligar tecle 0)
</text>
- <line_editor name="clean other time" right="-10"/>
+ <line_editor name="clean other time"/>
<text name="Object Owners:">
Donos dos objetos:
</text>
- <button label="Atualizar lista" label_selected="Atualizar lista" left="118" name="Refresh List" tool_tip="Refresh Object List"/>
- <button label="Devolver objetos..." label_selected="Devolver objetos..." left="230" name="Return objects..."/>
+ <button label="Atualizar lista" label_selected="Atualizar lista" name="Refresh List" tool_tip="Refresh Object List"/>
+ <button label="Devolver objetos..." label_selected="Devolver objetos..." name="Return objects..."/>
<name_list name="owner list">
<name_list.columns label="Tipo" name="type"/>
<name_list.columns label="Nome" name="name"/>
@@ -340,7 +340,7 @@ Apenas lotes maiores podem ser listados na busca.
<check_box label="Seguro (sem danos)" name="check safe" tool_tip="Se ativado, ajusta o terreno para Seguro, impedindo lutas com danos. Se não ativado, lutas com danos é habilitado."/>
<check_box label="Proibido empurrar" name="PushRestrictCheck" tool_tip="Evita scripts que empurram. Ativar essa opção ajuda a prevenir comportamentos desordeiros no seu terreno."/>
<check_box label="Mostrar terreno nos resultados de busca (L$30/semana)" name="ShowDirectoryCheck" tool_tip="Permitir que as pessoas vejam este terreno nos resultados de busca"/>
- <combo_box left="265" name="land category with adult" width="155">
+ <combo_box name="land category with adult">
<combo_box.item label="Qualquer categoria" name="item0"/>
<combo_box.item label="Locação Linden" name="item1"/>
<combo_box.item label="Adulto" name="item2"/>
@@ -355,7 +355,7 @@ Apenas lotes maiores podem ser listados na busca.
<combo_box.item label="Compras" name="item11"/>
<combo_box.item label="Outros" name="item12"/>
</combo_box>
- <combo_box left="265" name="land category" width="155">
+ <combo_box name="land category">
<combo_box.item label="Qualquer categoria" name="item0"/>
<combo_box.item label="Locação Linden" name="item1"/>
<combo_box.item label="Artes e cultura" name="item3"/>
@@ -382,7 +382,7 @@ Apenas lotes maiores podem ser listados na busca.
<text name="Teleport Routing: ">
Rota de teletransporte:
</text>
- <combo_box left="140" name="landing type" tool_tip="Rota de Teletransporte -- Selecione como tratar os teletransportes no seu lote." width="160">
+ <combo_box name="landing type" tool_tip="Rota de Teletransporte -- Selecione como tratar os teletransportes no seu lote." width="160">
<combo_box.item label="Bloqueado" name="Blocked"/>
<combo_box.item label="Ponto de aterrissagem" name="LandingPoint"/>
<combo_box.item label="Qualquer lugar" name="Anywhere"/>
@@ -427,7 +427,17 @@ Mídia:
<check_box label="Repetir mídia" name="media_loop" tool_tip="Executar a mídia repetidamente. Quando a mídia chegar ao fim, ela recomeça."/>
</panel>
<panel label="SOM" name="land_audio_panel">
+ <text name="MusicURL:">
+ URL de música:
+ </text>
<check_box label="Ocultar URL" name="hide_music_url" tool_tip="Selecionar esta opção oculta o URL de música a visitantes não autorizados aos dados do terreno."/>
+ <text name="Sound:">
+ Som:
+ </text>
+ <check_box label="Limitar sons de gestos e objetos a esta parcela" name="check sound local"/>
+ <text name="Voice settings:">
+ Voz:
+ </text>
<check_box label="Ativar voz" name="parcel_enable_voice_channel"/>
<check_box label="Ativar voz (definições do terreno)" name="parcel_enable_voice_channel_is_estate_disabled"/>
<check_box label="Limitar bate-papo de voz a este lote" name="parcel_enable_voice_channel_local"/>
diff --git a/indra/newview/skins/default/xui/pt/floater_camera.xml b/indra/newview/skins/default/xui/pt/floater_camera.xml
index 7343bd9aa8..4f3729c623 100644
--- a/indra/newview/skins/default/xui/pt/floater_camera.xml
+++ b/indra/newview/skins/default/xui/pt/floater_camera.xml
@@ -22,6 +22,35 @@
Visualizar objeto
</floater.string>
<panel name="controls">
+ <panel name="preset_views_list">
+ <panel_camera_item name="front_view">
+ <panel_camera_item.text name="front_view_text">
+ Vista frontal
+ </panel_camera_item.text>
+ </panel_camera_item>
+ <panel_camera_item name="group_view">
+ <panel_camera_item.text name="side_view_text">
+ Vista lateral
+ </panel_camera_item.text>
+ </panel_camera_item>
+ <panel_camera_item name="rear_view">
+ <panel_camera_item.text name="rear_view_text">
+ Vista de trás
+ </panel_camera_item.text>
+ </panel_camera_item>
+ </panel>
+ <panel name="camera_modes_list">
+ <panel_camera_item name="object_view">
+ <panel_camera_item.text name="object_view_text">
+ Vista de objetos
+ </panel_camera_item.text>
+ </panel_camera_item>
+ <panel_camera_item name="mouselook_view">
+ <panel_camera_item.text name="mouselook_view_text">
+ Vista do mouse
+ </panel_camera_item.text>
+ </panel_camera_item>
+ </panel>
<panel name="zoom" tool_tip="Aproximar a Câmera in direção ao Foco">
<joystick_rotate name="cam_rotate_stick" tool_tip="Girar câmera ao redor do foco"/>
<slider_bar name="zoom_slider" tool_tip="Zoom de câmera para focalizar"/>
diff --git a/indra/newview/skins/default/xui/pt/floater_customize.xml b/indra/newview/skins/default/xui/pt/floater_customize.xml
deleted file mode 100644
index a9ec0b9b1f..0000000000
--- a/indra/newview/skins/default/xui/pt/floater_customize.xml
+++ /dev/null
@@ -1,530 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater customize" title="APARÊNCIA">
- <tab_container name="customize tab container" tab_min_width="115">
- <text label="Corpo" name="body_parts_placeholder">
- Partes do corpo
- </text>
- <panel label="Forma" name="Shape">
- <button label="Reverter" label_selected="Reverter" name="Revert"/>
- <button label="Corpo" label_selected="Corpo" name="Body"/>
- <button label="Cabeça" label_selected="Cabeça" name="Head"/>
- <button label="Olhos" label_selected="Olhos" name="Eyes"/>
- <button label="Orelhas" label_selected="Orelhas" name="Ears"/>
- <button label="Nariz" label_selected="Nariz" name="Nose"/>
- <button label="Boca" label_selected="Boca" name="Mouth"/>
- <button label="Queixo" label_selected="Queixo" name="Chin"/>
- <button label="Tórax" label_selected="Tórax" name="Torso"/>
- <button label="Pernas" label_selected="Pernas" name="Legs"/>
- <radio_group name="sex radio">
- <radio_item label="Feminino" name="radio" value="0"/>
- <radio_item label="Masculino" name="radio2" value="1"/>
- </radio_group>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: não foi possível modificar
- </text>
- <text name="title_loading">
- [DESC]: carregando...
- </text>
- <text name="title_not_worn">
- [DESC]: não vestido
- </text>
- <text name="path">
- Localizado em [PATH]
- </text>
- <text name="not worn instructions">
- Para obter um físico novo, arraste um do inventário para o seu avatar. Ou crie um novo.
- </text>
- <text name="no modify instructions">
- Você não tem permissão para modificar esta vestimenta.
- </text>
- <text name="Item Action Label">
- Forma:
- </text>
- <button label="Nova" label_selected="Nova" name="Create New"/>
- <button label="Salvar" label_selected="Salvar" name="Save"/>
- <button label="Salvar como..." label_selected="Salvar como..." name="Save As"/>
- </panel>
- <panel label="Pele" name="Skin">
- <button label="Cor de pele" label_selected="Cor de pele" name="Skin Color" width="115"/>
- <button label="Detalhes faciais" label_selected="Detalhes faciais" name="Face Detail" width="115"/>
- <button label="Maquilagem" label_selected="Maquilagem" name="Makeup" width="115"/>
- <button label="Detalhes do corpo" label_selected="Detalhes do corpo" name="Body Detail" width="115"/>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: não foi possível modificar
- </text>
- <text name="title_loading">
- [DESC]: carregando..
- </text>
- <text name="title_not_worn">
- [DESC]: não vestido
- </text>
- <text name="path">
- Localizada em [PATH]
- </text>
- <text name="not worn instructions">
- Para obter uma pele nova, arraste uma do inventário para o seu avatar. Ou crie uma pele nova.
- </text>
- <text name="no modify instructions">
- Você não tem permissão para modificar esta vestimenta.
- </text>
- <text name="Item Action Label">
- Pele:
- </text>
- <texture_picker label="Tattoo: cabeça" name="Head Tattoos" tool_tip="Clique para escolher um desenho" width="86"/>
- <texture_picker label="Tattoo: superior" name="Upper Tattoos" tool_tip="Clique para escolher um desenho" width="86"/>
- <texture_picker label="Tattoo: inferior" name="Lower Tattoos" tool_tip="Clique para escolher um desenho" width="86"/>
- <button label="Novo" label_selected="Novo" name="Create New"/>
- <button label="Salvar" label_selected="Salvar" name="Save"/>
- <button label="Salvar como..." label_selected="Salvar como..." name="Save As"/>
- <button label="Reverter" label_selected="Reverter" name="Revert"/>
- </panel>
- <panel label="Cabelo" name="Hair">
- <button label="Cor" label_selected="Cor" name="Color" width="115"/>
- <button label="Estilo" label_selected="Estilo" name="Style" width="115"/>
- <button label="Sombrancelhas" label_selected="Sombrancelhas" name="Eyebrows" width="115"/>
- <button label="Rosto" label_selected="Rosto" name="Facial" width="115"/>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: não foi possível modificar
- </text>
- <text name="title_loading">
- [DESC]: carregando...
- </text>
- <text name="title_not_worn">
- [DESC]: não vestido
- </text>
- <text name="path">
- Localizado em [PATH]
- </text>
- <text name="not worn instructions">
- Para obter um cabelo novo, arraste um tipo de cabelo do inventário para o seu avatar. Ou crie um cabelo novo.
- </text>
- <text name="no modify instructions">
- Você não ter permissão para modificar essa vestimenta.
- </text>
- <text name="Item Action Label">
- Cabelo:
- </text>
- <texture_picker label="Texture" name="Texture" tool_tip="Clique para escolher uma imagem"/>
- <button label="Criar novo cabelo" label_selected="Criar novo cabelo" name="Create New"/>
- <button label="Salvar" label_selected="Salvar" name="Save"/>
- <button label="Salvar como..." label_selected="Salvar como..." name="Save As"/>
- <button label="Reverter" label_selected="Reverter" name="Revert"/>
- </panel>
- <panel label="Olhos" name="Eyes">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: não foi possível modificar
- </text>
- <text name="title_loading">
- [DESC]: carregando...
- </text>
- <text name="title_not_worn">
- [DESC]: não vestido
- </text>
- <text name="path">
- Localizado em [PATH]
- </text>
- <text name="not worn instructions">
- Para obter novos olhos, arraste um tipo de olhos do inventário para o seu avatar. Ou crie olhos novos.
- </text>
- <text name="no modify instructions">
- Você não tem permissão para alterar esta vestimenta.
- </text>
- <text name="Item Action Label">
- Olhos:
- </text>
- <texture_picker label="Ãris" name="Iris" tool_tip="Clique para escolher uma imagem"/>
- <button label="Criar novos olhos" label_selected="Criar novos olhos" name="Create New"/>
- <button label="Salvar" label_selected="Salvar" name="Save"/>
- <button label="Salvar como..." label_selected="Salvar como..." name="Save As"/>
- <button label="Reverter" label_selected="Reverter" name="Revert"/>
- </panel>
- <text label="Roupas" name="clothes_placeholder">
- Roupa
- </text>
- <panel label="Camisa" name="Shirt">
- <texture_picker label="Tecido" name="Fabric" tool_tip="Clique para escolher uma imagem"/>
- <color_swatch label="Cor/Tint" name="Color/Tint" tool_tip="Selecionar a cor"/>
- <button label="Remover" label_selected="Remover" name="Take Off"/>
- <button label="Criar nova camisa" label_selected="Criar nova camisa" name="Create New"/>
- <button label="Salvar" label_selected="Salvar" name="Save"/>
- <button label="Salvar como..." label_selected="Salvar como..." name="Save As"/>
- <button label="Reverter" label_selected="Reverter" name="Revert"/>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: não foi possível modificar
- </text>
- <text name="title_loading">
- [DESC]: carregando...
- </text>
- <text name="title_not_worn">
- [DESC]: não vestido
- </text>
- <text name="path">
- Localizado em [PATH]
- </text>
- <text name="not worn instructions">
- Para obter uma camisa nova, arraste uma do inventário para o seu avatar. Ou crie uma camisa nova.
- </text>
- <text name="no modify instructions">
- Você não ter permissão para modificar esta vestimenta.
- </text>
- <text name="Item Action Label">
- Camisa:
- </text>
- </panel>
- <panel label="Calças" name="Pants">
- <texture_picker label="Tecido" name="Fabric" tool_tip="Clique para escolher uma imagem"/>
- <color_swatch label="Cor/Tint" name="Color/Tint" tool_tip="Selecionar a cor"/>
- <button label="Remover" label_selected="Remover" name="Take Off"/>
- <button label="Criar novas calças" label_selected="Criar novas calças" name="Create New"/>
- <button label="Salvar" label_selected="Salvar" name="Save"/>
- <button label="Salvar como..." label_selected="Salvar como..." name="Save As"/>
- <button label="Reverter" label_selected="Reverter" name="Revert"/>
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: não foi possível modificar
- </text>
- <text name="title_loading">
- [DESC]: carregando...
- </text>
- <text name="title_not_worn">
- [DESC]: não vestindo
- </text>
- <text name="path">
- Localizado em [PATH]
- </text>
- <text name="not worn instructions">
- Para obter calças novas, arraste uma do inventário para o seu avatar. Ou crie calças novas.
- </text>
- <text name="no modify instructions">
- Você não tem permissão para modificar esta vestimenta.
- </text>
- <text name="Item Action Label">
- Calças:
- </text>
- </panel>
- <panel label="Sapatos" name="Shoes">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: não foi possível modificar
- </text>
- <text name="title_loading">
- [DESC]: carregando...
- </text>
- <text name="title_not_worn">
- [DESC]: não vestido
- </text>
- <text name="path">
- Localizado em [PATH]
- </text>
- <text name="not worn instructions">
- Para obter novos olhos, arraste um tipo de olhos do inventário para o seu avatar. Ou crie olhos novos.
- </text>
- <button label="Criar novos sapatos" label_selected="Criar novos sapatos" name="Create New" width="166"/>
- <text name="no modify instructions">
- Você não tem permissão para modificar esta vestimenta.
- </text>
- <text name="Item Action Label">
- Sapatos:
- </text>
- <texture_picker label="Tecido" name="Fabric" tool_tip="Clique para escolher uma imagem"/>
- <color_swatch label="Cor/Tint" name="Color/Tint" tool_tip="Selecionar a cor"/>
- <button label="Remover" label_selected="Remover" name="Take Off"/>
- <button label="Salvar" label_selected="Salvar" name="Save"/>
- <button label="Salvar como..." label_selected="Salvar como..." name="Save As"/>
- <button label="Reverter" label_selected="Reverter" name="Revert"/>
- </panel>
- <panel label="Meias" name="Socks">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: não foi possível modificar
- </text>
- <text name="title_loading">
- [DESC]: carregando...
- </text>
- <text name="title_not_worn">
- [DESC]: não vestido.
- </text>
- <text name="path">
- Localizado em [PATH]
- </text>
- <text name="not worn instructions">
- Para obter meias novas, arraste um par do inventário para o seu avatar. Ou crie meias novas.
- </text>
- <button label="Criar novas meias" label_selected="Criar novas meias" name="Create New"/>
- <text name="no modify instructions">
- Você não tem permissão para modificar essa vestimenta.
- </text>
- <text name="Item Action Label">
- Meias:
- </text>
- <texture_picker label="Tecido" name="Fabric" tool_tip="Clique para escolher uma imagem"/>
- <color_swatch label="Cor/Tint" name="Color/Tint" tool_tip="Selecionar a cor"/>
- <button label="Remover" label_selected="Remover" name="Take Off"/>
- <button label="Salvar" label_selected="Salvar" name="Save"/>
- <button label="Salvar como..." label_selected="Salvar como..." name="Save As"/>
- <button label="Reverter" label_selected="Reverter" name="Revert"/>
- </panel>
- <panel label="Jaqueta" name="Jacket">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: Não foi possível modificar
- </text>
- <text name="title_loading">
- [DESC]: carregando...
- </text>
- <text name="title_not_worn">
- [DESC]: não vestido
- </text>
- <text name="path">
- Localizado em [PATH]
- </text>
- <text name="not worn instructions">
- Para por uma jaqueta nova, arraste uma do inventário para o seu avatar. Ou crie uma jaqueta nova.
- </text>
- <button label="Criar nova jaqueta" label_selected="Criar nova jaqueta" name="Create New"/>
- <text name="no modify instructions">
- Você não tem permissão para modificar esta vestimenta.
- </text>
- <text name="Item Action Label">
- Jaqueta:
- </text>
- <texture_picker label="Tecido superior" name="Upper Fabric" tool_tip="Clique para escolher uma imagem." width="84"/>
- <texture_picker label="Tecido Inferior" name="Lower Fabric" tool_tip="Clique para escolher uma imagem." width="84"/>
- <color_swatch label="Cor/Tint" name="Color/Tint" tool_tip="Selecionar a cor"/>
- <button label="Remover" label_selected="Remover" name="Take Off"/>
- <button label="Salvar" label_selected="Salvar" name="Save"/>
- <button label="Salvar como..." label_selected="Salvar como..." name="Save As"/>
- <button label="Reverter" label_selected="Reverter" name="Revert"/>
- </panel>
- <panel label="Luvas" name="Gloves">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: não foi possível modificar
- </text>
- <text name="title_loading">
- [DESC]: carregando....
- </text>
- <text name="title_not_worn">
- [DESC]: não vestido
- </text>
- <text name="path">
- Localizado em [PATH]
- </text>
- <text name="not worn instructions">
- Para obter luvas novas, arraste um par do inventário para o seu avatar. Ou crie luvas novas.
- </text>
- <button label="Criar novas luvas" label_selected="Criar novas luvas" name="Create New"/>
- <text name="no modify instructions">
- Você não tem permissão para modificar essa vestimenta.
- </text>
- <text name="Item Action Label">
- Luvas:
- </text>
- <texture_picker label="Tecido" name="Fabric" tool_tip="Clique para escolher uma imagem"/>
- <color_swatch label="Cor/Tint" name="Color/Tint" tool_tip="Selecionar a cor"/>
- <button label="Remover" label_selected="Remover" name="Take Off"/>
- <button label="Salvar" label_selected="Salvar" name="Save"/>
- <button label="Salvar como..." label_selected="Salvar como..." name="Save As"/>
- <button label="Reverter" label_selected="Reverter" name="Revert"/>
- </panel>
- <panel label="Camiseta" name="Undershirt">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: não foi possível modificar
- </text>
- <text name="title_loading">
- [DESC]: carregando...
- </text>
- <text name="title_not_worn">
- [DESC]: não vestido
- </text>
- <text name="path">
- Localizado em [PATH]
- </text>
- <text name="not worn instructions">
- Para obter uma camiseta nova, arraste uma do inventário para o seu avatar. Ou crie uma camiseta nova.
- </text>
- <button label="Criar nova camiseta" label_selected="Criar nova camiseta" name="Create New"/>
- <text name="no modify instructions">
- Você não ter permissão para modificar essa vestimenta.
- </text>
- <text name="Item Action Label">
- Camiseta:
- </text>
- <texture_picker label="Tecido" name="Fabric" tool_tip="Clique para escolher uma imagem"/>
- <color_swatch label="Cor/Tint" name="Color/Tint" tool_tip="Selecionar a cor"/>
- <button label="Remover" label_selected="Remover" name="Take Off"/>
- <button label="Salvar" label_selected="Salvar" name="Save"/>
- <button label="Salvar como..." label_selected="Salvar como..." name="Save As"/>
- <button label="Reverter" label_selected="Reverter" name="Revert"/>
- </panel>
- <panel label="Roupas de Baixo" name="Underpants">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: não foi possível modificar
- </text>
- <text name="title_loading">
- [DESC]: carregando...
- </text>
- <text name="title_not_worn">
- [DESC]: não vestido
- </text>
- <text name="path">
- Localizado em [PATH]
- </text>
- <text name="not worn instructions">
- Para obter roupa de baixo nova, arraste um modelo do inventário para o seu avatar. Ou crie uma roupa de baixo nova.
- </text>
- <button label="Criar novas" label_selected="Criar novas" name="Create New" width="180"/>
- <text name="no modify instructions">
- Você não tem permissão para modificar essa vestimenta.
- </text>
- <text name="Item Action Label">
- Roupas de baixo:
- </text>
- <texture_picker label="Tecido" name="Fabric" tool_tip="Clique para escolher uma imagem"/>
- <color_swatch label="Cor/Tint" name="Color/Tint" tool_tip="Selecionar a cor"/>
- <button label="Remover" label_selected="Remover" name="Take Off"/>
- <button label="Salvar" label_selected="Salvar" name="Save"/>
- <button label="Salvar como..." label_selected="Salvar como..." name="Save As"/>
- <button label="Reverter" label_selected="Reverter" name="Revert"/>
- </panel>
- <panel label="Saia" name="Skirt">
- <text name="title">
- [DESC]
- </text>
- <text name="title_no_modify">
- [DESC]: não foi possível modificar
- </text>
- <text name="title_loading">
- [DESC]: carregando...
- </text>
- <text name="title_not_worn">
- [DESC]: não vestido
- </text>
- <text name="path">
- Localizado em [PATH]
- </text>
- <text name="not worn instructions">
- Para obter um saia nova, arraste uma saia do inventário para o seu avatar. Ou crie uma saia nova.
- </text>
- <button label="Criar nova saia" label_selected="Criar nova saia" name="Create New"/>
- <text name="no modify instructions">
- Você não tem permissão para modificar esta vestimenta.
- </text>
- <text name="Item Action Label">
- Saia:
- </text>
- <texture_picker label="Tecido" name="Fabric" tool_tip="Clique para escolher uma imagem"/>
- <color_swatch label="Cor/Tint" name="Color/Tint" tool_tip="Selecionar a cor"/>
- <button label="Remover" label_selected="Remover" name="Take Off"/>
- <button label="Salvar" label_selected="Salvar" name="Save"/>
- <button label="Salvar como..." label_selected="Salvar como..." name="Save As"/>
- <button label="Reverter" label_selected="Reverter" name="Revert"/>
- </panel>
- <panel label="Tatuagem" name="Tattoo">
- <text name="title">
- [DESC]:
- </text>
- <text name="title_no_modify">
- [DESC]: não pode ser modificado
- </text>
- <text name="title_loading">
- [DESC]: Carregando...
- </text>
- <text name="title_not_worn">
- [DESC]: não vestido
- </text>
- <text name="path">
- Localização: [PATH]
- </text>
- <text name="not worn instructions">
- Para por uma tatuagem nova, arraste uma tatuagem do inventário para o seu avatar. Ou crie uma tatuagem nova.
- </text>
- <button label="Criar tatuagem" label_selected="Criar tatuagem" name="Create New"/>
- <text name="no modify instructions">
- Você não está autorizado a modificar este acessório.
- </text>
- <text name="Item Action Label">
- Tatuagem:
- </text>
- <texture_picker label="Tatuagem na cabeça" name="Head Tattoo" tool_tip="Selecionar imagem"/>
- <texture_picker label="Tatuagem parte de cima" name="Upper Tattoo" tool_tip="Selecionar imagem"/>
- <texture_picker label="Tatuagem de baixo" name="Lower Tattoo" tool_tip="Selecionar imagem"/>
- <button label="Tirar" label_selected="Tirar" name="Take Off"/>
- <button label="Salvar" label_selected="Salvar" name="Save"/>
- <button label="Salvar como..." label_selected="Salvar como..." name="Save As"/>
- <button label="Reverter" label_selected="Reverter" name="Revert"/>
- </panel>
- <panel label="Alpha" name="Alpha">
- <text name="title">
- [DESC]:
- </text>
- <text name="title_no_modify">
- [DESC]: não pode ser modificado
- </text>
- <text name="title_loading">
- [DESC]: Carregando...
- </text>
- <text name="title_not_worn">
- [DESC]: não vestido
- </text>
- <text name="path">
- Localização: [PATH]
- </text>
- <text name="not worn instructions">
- Para por uma máscara alpha nova, arraste a máscara do inventário para o seu avatar. Ou crie uma máscara nova.
- </text>
- <button label="Criar Alpha novo" label_selected="Criar Alpha novo" name="Create New"/>
- <text name="no modify instructions">
- Você não está autorizado a modificar este acessório.
- </text>
- <text name="Item Action Label">
- Alpha:
- </text>
- <texture_picker label="Alpha inferior" name="Lower Alpha" tool_tip="Selecionar imagem"/>
- <texture_picker label="Alpha de cima" name="Upper Alpha" tool_tip="Selecionar imagem"/>
- <texture_picker label="Cabeça Alpha" name="Head Alpha" tool_tip="Selecionar imagem"/>
- <texture_picker label="Olhos Alpha" name="Eye Alpha" tool_tip="Selecionar imagem"/>
- <texture_picker label="Cabelo alpha" name="Hair Alpha" tool_tip="Selecionar imagem"/>
- <button label="Tirar" label_selected="Tirar" name="Take Off"/>
- <button label="Salvar" label_selected="Salvar" name="Save"/>
- <button label="Salvar como..." label_selected="Salvar como..." name="Save As"/>
- <button label="Reverter" label_selected="Reverter" name="Revert"/>
- </panel>
- </tab_container>
- <scroll_container left="249" name="panel_container"/>
- <button label="Dados do script" label_selected="Dados do script" name="script_info" tool_tip="Mostrar scripts anexados ao seu avatar"/>
- <button label="Criar look" label_selected="Criar look" name="make_outfit_btn"/>
- <button label="Cancelar" label_selected="Cancelar" name="Cancel"/>
- <button label="OK" label_selected="OK" name="Ok"/>
-</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_day_cycle_options.xml b/indra/newview/skins/default/xui/pt/floater_day_cycle_options.xml
index 306487939e..9560a3b418 100644
--- a/indra/newview/skins/default/xui/pt/floater_day_cycle_options.xml
+++ b/indra/newview/skins/default/xui/pt/floater_day_cycle_options.xml
@@ -52,8 +52,8 @@
Duração do Ciclo:
</text>
<spinner label="Hora" name="WLLengthOfDayHour"/>
- <spinner label="Minuto" name="WLLengthOfDayMin"/>
- <spinner label="Segundo" name="WLLengthOfDaySec"/>
+ <spinner label="Min." name="WLLengthOfDayMin"/>
+ <spinner label="Seg." name="WLLengthOfDaySec"/>
<text name="DayCycleText3">
Visualizar
</text>
diff --git a/indra/newview/skins/default/xui/pt/floater_device_settings.xml b/indra/newview/skins/default/xui/pt/floater_device_settings.xml
deleted file mode 100644
index 48a4a6ef6f..0000000000
--- a/indra/newview/skins/default/xui/pt/floater_device_settings.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_device_settings" title="CONFIGURAÇÃO DE DISPOSITIVO DE VOZ"/>
diff --git a/indra/newview/skins/default/xui/pt/floater_im.xml b/indra/newview/skins/default/xui/pt/floater_im.xml
deleted file mode 100644
index c81d0dd7ef..0000000000
--- a/indra/newview/skins/default/xui/pt/floater_im.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<multi_floater name="im_floater" title="Mensagem Instantânea">
- <string name="only_user_message">
- Você é o único residente nesta sessão
- </string>
- <string name="offline_message">
- [FIRST] [LAST] está offline.
- </string>
- <string name="invite_message">
- Clique no botão [BUTTON NAME] para aceitar/ conectar a este bate-papo em voz.
- </string>
- <string name="muted_message">
- Você bloqueou este residente. Se quiser retirar o bloqueio, basta enviar uma mensagem.
- </string>
- <string name="generic_request_error">
- Erro na requisição, por favor, tente novamente.
- </string>
- <string name="insufficient_perms_error">
- Você não tem permissões suficientes.
- </string>
- <string name="session_does_not_exist_error">
- A sessão deixou de existir
- </string>
- <string name="no_ability_error">
- Você não possui esta habilidade.
- </string>
- <string name="not_a_mod_error">
- Você não é um moderador de sessão.
- </string>
- <string name="muted_error">
- Um moderador do grupo desabilitou seu bate-papo em texto.
- </string>
- <string name="add_session_event">
- Não foi possível adicionar residentes ao bate-papo com [RECIPIENT].
- </string>
- <string name="message_session_event">
- Não foi possível enviar sua mensagem na sessão de bate- papo com [RECIPIENT].
- </string>
- <string name="removed_from_group">
- Você foi removido do grupo.
- </string>
- <string name="close_on_no_ability">
- Você não possui mais a habilidade de estar na sessão de bate-papo.
- </string>
-</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 39dde3408b..5543ffa41d 100644
--- a/indra/newview/skins/default/xui/pt/floater_im_session.xml
+++ b/indra/newview/skins/default/xui/pt/floater_im_session.xml
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="panel_im">
<layout_stack name="im_panels">
- <layout_panel label="Painel de controle de MI" name="panel_im_control_panel"/>
<layout_panel>
<line_editor label="Para" name="chat_editor"/>
</layout_panel>
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 2b0d6790f2..7475bdd5b8 100644
--- a/indra/newview/skins/default/xui/pt/floater_land_holdings.xml
+++ b/indra/newview/skins/default/xui/pt/floater_land_holdings.xml
@@ -7,28 +7,28 @@
<column label="Ãrea" name="area"/>
</scroll_list>
<button label="Teletransporte" label_selected="Teletransporte" name="Teleport" tool_tip="Teletransportar para o centro do terreno."/>
- <button label="Mapa" label_selected="Mapa" name="Show on Map" tool_tip="Mostrar terreno na mápa-mundi" width="130"/>
+ <button label="Mostrar no mapa" label_selected="Mapa" name="Show on Map" tool_tip="Mostrar terreno no mápa-mundi" width="130"/>
<text name="contrib_label">
- Contribuições para os seus grupos:
+ Contribuições de grupos:
</text>
<scroll_list name="grant list">
<column label="Grupo" name="group"/>
<column label="Ãrea" name="area"/>
</scroll_list>
<text name="allowed_label" width="380">
- Propriedades de terreno permitidas com o plano de pagamento atual:
+ Metragem permitida com o plano atual:
</text>
<text left_delta="390" name="allowed_text">
[AREA] m²
</text>
<text name="current_label">
- Propriedades de terrenos atuais:
+ Metragem atual:
</text>
<text left_delta="390" name="current_text">
[AREA] m²
</text>
<text name="available_label">
- Disponível para compra de terras:
+ Metragem disponível para compra:
</text>
<text left_delta="390" name="available_text">
[AREA] m²
diff --git a/indra/newview/skins/default/xui/pt/floater_map.xml b/indra/newview/skins/default/xui/pt/floater_map.xml
index f8e4e76752..6f09a5e383 100644
--- a/indra/newview/skins/default/xui/pt/floater_map.xml
+++ b/indra/newview/skins/default/xui/pt/floater_map.xml
@@ -24,6 +24,9 @@
<floater.string name="mini_map_northwest">
NO
</floater.string>
+ <floater.string name="mini_map_caption">
+ MINIMAPA
+ </floater.string>
<text label="N" name="floater_map_north" text="N">
N
</text>
diff --git a/indra/newview/skins/default/xui/pt/floater_my_friends.xml b/indra/newview/skins/default/xui/pt/floater_my_friends.xml
deleted file mode 100644
index 68f2a19998..0000000000
--- a/indra/newview/skins/default/xui/pt/floater_my_friends.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="floater_my_friends" title="CONTATOS">
- <tab_container name="friends_and_groups">
- <panel label="Amigos" name="friends_panel"/>
- <panel label="Grupos" name="groups_panel"/>
- </tab_container>
-</floater>
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
deleted file mode 100644
index dec8a7676a..0000000000
--- a/indra/newview/skins/default/xui/pt/floater_outfit_save_as.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="modal container" title="Salvar este look">
- <button label="Salvar" label_selected="Salvar" name="Save"/>
- <button label="Cancelar" label_selected="Cancelar" name="Cancel"/>
- <text name="Save item as:">
- Veja o meu novo visual:
- </text>
- <line_editor name="name ed">
- [DESC] (new)
- </line_editor>
-</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_preview_classified.xml b/indra/newview/skins/default/xui/pt/floater_preview_classified.xml
deleted file mode 100644
index bb626430ed..0000000000
--- a/indra/newview/skins/default/xui/pt/floater_preview_classified.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="classified_preview" title="INFORMAÇÕES CLASSIFICADAS">
- <floater.string name="Title">
- Classificados: [NAME]
- </floater.string>
-</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_preview_event.xml b/indra/newview/skins/default/xui/pt/floater_preview_event.xml
deleted file mode 100644
index b422580f3b..0000000000
--- a/indra/newview/skins/default/xui/pt/floater_preview_event.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="event_preview" title="DADOS DO EVENTO">
- <floater.string name="Title">
- Evento: [NAME]
- </floater.string>
-</floater>
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 48f27f1968..80bdbb0fb4 100644
--- a/indra/newview/skins/default/xui/pt/floater_preview_gesture.xml
+++ b/indra/newview/skins/default/xui/pt/floater_preview_gesture.xml
@@ -1,16 +1,16 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="gesture_preview">
<floater.string name="step_anim">
- Selecionar animação:
+ Executar animação:
</floater.string>
<floater.string name="step_sound">
- Selecionar animação:
+ Executar som:
</floater.string>
<floater.string name="step_chat">
- Diga por bate-papo:
+ Executar bate-papo:
</floater.string>
<floater.string name="step_wait">
- Espere:
+ Pausa
</floater.string>
<floater.string name="stop_txt">
Parar
@@ -24,9 +24,6 @@
<floater.string name="Title">
Gesto: [NAME]
</floater.string>
- <text name="name_text">
- Nome:
- </text>
<text name="desc_label">
Descrição:
</text>
@@ -34,18 +31,23 @@
Gatilho:
</text>
<text name="replace_text" tool_tip="Substituir a(s) palavra(s) de gatilho por estas palavras. Por exemplo, o gatilho &apos;oi&apos; substituído por &apos;olá&apos;, mudará a conversa de &apos;Eu digo oi&apos; para &apos;Eu digo olá&apos; e também executando o gesto!">
- Substituir por:
+ Trocar por:
</text>
- <line_editor name="replace_editor" tool_tip="Substituir a(s) palavra(s) gatilho por estas palavras.Por exemplo, o gatilho &apos;oi&apos; substituído por &apos;olá&apos;, mudará a conversa de &apos;Eu digo oi&apos; para &apos;Eu digo olá&apos; e também executando o gesto!"/>
+ <line_editor name="replace_editor" tool_tip="Substituir a(s) palavra(s) gatilho por estas palavras. Por exemplo, o gatilho &apos;oi&apos; substituído por &apos;olá&apos;, mudará a conversa de &apos;Eu digo oi&apos; para &apos;Eu digo olá&apos; e também executando o gesto!"/>
<text name="key_label">
- Tecla de Atalho:
+ Atalho:
</text>
<combo_box label="Nenhum" left="116" name="modifier_combo" width="76"/>
<combo_box label="Nenhum" left_delta="80" name="key_combo" width="76"/>
<text name="library_label">
Biblioteca:
</text>
- <scroll_list name="library_list" width="84"/>
+ <scroll_list name="library_list" width="84">
+ <scroll_list.rows name="action_animation" value="Animação"/>
+ <scroll_list.rows name="action_sound" value="Som"/>
+ <scroll_list.rows name="action_chat" value="Bate-papo"/>
+ <scroll_list.rows name="action_wait" value="Espere"/>
+ </scroll_list>
<button label="Incluir" left="118" name="add_btn" width="87"/>
<text name="steps_label">
Passos:
@@ -54,17 +56,20 @@
<button label="P/ cima" left_delta="-13" name="up_btn" width="114"/>
<button label="P/ baixo" name="down_btn" width="114"/>
<button label="Remover" left_delta="13" name="delete_btn" width="84"/>
+ <text name="options_text">
+ (opções)
+ </text>
<radio_group name="animation_trigger_type">
- <radio_item label="OK" name="start"/>
- <radio_item label="Pare" name="stop"/>
+ <radio_item label="Iniciar" name="start"/>
+ <radio_item label="Parar" name="stop"/>
</radio_group>
<check_box bottom_delta="34" label="até que as animações estejam concluídas" name="wait_anim_check"/>
- <check_box bottom_delta="-30" label="tempo em segundos" name="wait_time_check"/>
+ <check_box bottom_delta="-30" label="segundos:" name="wait_time_check"/>
<line_editor left_delta="130" name="wait_time_editor"/>
<text name="help_label">
- Se não incluir etapas de espera, todas as etapas ocorrem ao mesmo tempo.
+ Se não incluir uma pausa, todas as etapas ocorrem ao mesmo tempo.
</text>
- <check_box label="Ativar" name="active_check" tool_tip="Gestos ativos podem ser gatilhados escrevendo suas frases de gatilho no chat ou através de suas teclas de atalho. Gestos normalmente ficam inativos quando existe um conflito nas teclas de atalho."/>
+ <check_box label="Ativar" name="active_check" tool_tip="Gestos podem ser ativados escrevendo suas frases de gatilho no chat ou teclando o atalho. Gestos normalmente ficam inativos quando existe um conflito nas teclas de atalho."/>
<button label="Prévia" name="preview_btn"/>
<button label="Salvar" name="save_btn"/>
</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_preview_gesture_info.xml b/indra/newview/skins/default/xui/pt/floater_preview_gesture_info.xml
deleted file mode 100644
index aabcff70d3..0000000000
--- a/indra/newview/skins/default/xui/pt/floater_preview_gesture_info.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Gesture" title="ATALHO DE GESTO"/>
diff --git a/indra/newview/skins/default/xui/pt/floater_preview_gesture_shortcut.xml b/indra/newview/skins/default/xui/pt/floater_preview_gesture_shortcut.xml
deleted file mode 100644
index 64bb7785f6..0000000000
--- a/indra/newview/skins/default/xui/pt/floater_preview_gesture_shortcut.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Gesture" title="ATALHO DE GESTO">
- <text name="trigger_label">
- Bate-papo:
- </text>
- <text name="key_label">
- Tecla:
- </text>
- <combo_box label="Nenhum" name="modifier_combo"/>
- <combo_box label="Nenhum" name="key_combo"/>
- <text name="replace_text" tool_tip="Substituir a(s) palavra(s) de comando. Por exemplo, substitua o comando &apos;olá&apos; por &apos;oi&apos; para trocar &apos;Olá, tudo bem&apos; por &apos;Oi tudo bem&apos;. O gesto também será executado.">
- Trocar:
- </text>
- <line_editor name="replace_editor" tool_tip="Substituir a(s) palavra(s) de comando. Por exemplo, substitua o comando &apos;olá&apos; por &apos;oi&apos; para trocar &apos;Olá, tudo bem&apos; por &apos;Oi tudo bem&apos;. O gesto também será executado."/>
-</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_preview_gesture_steps.xml b/indra/newview/skins/default/xui/pt/floater_preview_gesture_steps.xml
deleted file mode 100644
index aabcff70d3..0000000000
--- a/indra/newview/skins/default/xui/pt/floater_preview_gesture_steps.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Gesture" title="ATALHO DE GESTO"/>
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 988f8f2ce1..de3417ea14 100644
--- a/indra/newview/skins/default/xui/pt/floater_publish_classified.xml
+++ b/indra/newview/skins/default/xui/pt/floater_publish_classified.xml
@@ -5,7 +5,7 @@
Lembre-se, o pagamento do anúncio não é reembolsável
</text>
- <spinner label="Preço do anúncio:" name="price_for_listing" tool_tip="Preço do anúncio." value="50"/>
+ <spinner label="Preço: L$" name="price_for_listing" tool_tip="Preço do anúncio." value="50"/>
<text name="l$_text" value="L$"/>
<text name="more_info_text">
Mais informações (link para ajuda com anúncios)
diff --git a/indra/newview/skins/default/xui/pt/floater_snapshot.xml b/indra/newview/skins/default/xui/pt/floater_snapshot.xml
index 1d86b0d413..d62fe3dd20 100644
--- a/indra/newview/skins/default/xui/pt/floater_snapshot.xml
+++ b/indra/newview/skins/default/xui/pt/floater_snapshot.xml
@@ -1,23 +1,75 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="Snapshot" title="Foto">
+<floater name="Snapshot" title="VISUALIZAR FOTO">
<floater.string name="unknown">
desconhecido
</floater.string>
+ <radio_group label="Tipo de foto" name="snapshot_type_radio">
+ <radio_item label="Email" name="postcard"/>
+ <radio_item label="Meu inventário (L$[AMOUNT])" name="texture"/>
+ <radio_item label="Salvar no meu PC" name="local"/>
+ </radio_group>
+ <text name="file_size_label">
+ [TAMANHO] KB
+ </text>
<button label="Atualizar a foto" name="new_snapshot_btn"/>
- <line_editor label="Descrição" name="description"/>
- <panel name="panel_snapshot_main">
- <button label="Compartilhar foto" name="share"/>
- <button label="Salvar foto" name="save"/>
- <button label="Usar como foto do perfil" name="set_profile_pic"/>
- </panel>
- <panel name="panel_snapshot_share">
- <button label="Compartilhar na web" name="share_to_web"/>
- <button label="Enviar foto por email" name="share_to_email"/>
- <button label="Atrás" name="cancel_share"/>
- </panel>
- <panel name="panel_snapshot_save">
- <button label="Salvar no meu inventário" name="save_to_inventory"/>
- <button label="Salvar no meu PC" name="save_to_computer"/>
- <button label="Atrás" name="cancel_save"/>
- </panel>
+ <button label="Enviar" name="send_btn"/>
+ <button label="Economize (L$[AMOUNT])" name="upload_btn"/>
+ <flyout_button label="Salvar" name="save_btn" tool_tip="Salvar imagem em um arquivo">
+ <flyout_button.item label="Salvar" name="save_item"/>
+ <flyout_button.item label="Salvar como..." name="saveas_item"/>
+ </flyout_button>
+ <button label="Mais" name="more_btn" tool_tip="Opções avançadas"/>
+ <button label="Menos" name="less_btn" tool_tip="Opções avançadas"/>
+ <button label="Cancelar" name="discard_btn"/>
+ <text name="type_label2">
+ Tamanho
+ </text>
+ <text name="format_label">
+ Formato
+ </text>
+ <combo_box label="Resolução" name="postcard_size_combo">
+ <combo_box.item label="Janela atual" name="CurrentWindow"/>
+ <combo_box.item label="640x480" name="640x480"/>
+ <combo_box.item label="800x600" name="800x600"/>
+ <combo_box.item label="1024x768" name="1024x768"/>
+ <combo_box.item label="Customizado" name="Custom"/>
+ </combo_box>
+ <combo_box label="Resolução" name="texture_size_combo">
+ <combo_box.item label="Janela atual" name="CurrentWindow"/>
+ <combo_box.item label="Pequeno (128x128)" name="Small(128x128)"/>
+ <combo_box.item label="Médio (256x256)" name="Medium(256x256)"/>
+ <combo_box.item label="Grande (512x512)" name="Large(512x512)"/>
+ <combo_box.item label="Customizado" name="Custom"/>
+ </combo_box>
+ <combo_box label="Resolução" name="local_size_combo">
+ <combo_box.item label="Janela atual" name="CurrentWindow"/>
+ <combo_box.item label="320x240" name="320x240"/>
+ <combo_box.item label="640x480" name="640x480"/>
+ <combo_box.item label="800x600" name="800x600"/>
+ <combo_box.item label="1024x768" name="1024x768"/>
+ <combo_box.item label="1280x1024" name="1280x1024"/>
+ <combo_box.item label="1600x1200" name="1600x1200"/>
+ <combo_box.item label="Customizado" name="Custom"/>
+ </combo_box>
+ <combo_box label="Formato" name="local_format_combo">
+ <combo_box.item label="PNG" name="PNG"/>
+ <combo_box.item label="JPEG" name="JPEG"/>
+ <combo_box.item label="BMP" name="BMP"/>
+ </combo_box>
+ <spinner label="Largura" name="snapshot_width"/>
+ <spinner label="Altura" name="snapshot_height"/>
+ <check_box label="Limitar proproções" name="keep_aspect_check"/>
+ <slider label="Qualidade da imagem" name="image_quality_slider"/>
+ <text name="layer_type_label">
+ Capturar:
+ </text>
+ <combo_box label="Camadas da imagem" name="layer_types">
+ <combo_box.item label="Cores" name="Colors"/>
+ <combo_box.item label="Profundidade" name="Depth"/>
+ </combo_box>
+ <check_box label="Interface" name="ui_check"/>
+ <check_box label="HUDs" name="hud_check"/>
+ <check_box label="Deixar aberto depois de salvo" name="keep_open_check"/>
+ <check_box label="Gerar quadro (tela inteira)" name="freeze_frame_check"/>
+ <check_box label="Atualizar" name="auto_snapshot_check"/>
</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_statistics.xml b/indra/newview/skins/default/xui/pt/floater_statistics.xml
deleted file mode 100644
index ecbf638157..0000000000
--- a/indra/newview/skins/default/xui/pt/floater_statistics.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="stats floater" title="ESTATÃSTICAS"/>
diff --git a/indra/newview/skins/default/xui/pt/floater_tools.xml b/indra/newview/skins/default/xui/pt/floater_tools.xml
index dbc8b3ffbe..67d8e35cf2 100644
--- a/indra/newview/skins/default/xui/pt/floater_tools.xml
+++ b/indra/newview/skins/default/xui/pt/floater_tools.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<floater name="toolbox floater" short_title="BUILD TOOLS" title="" width="288">
<floater.string name="status_rotate">
- Arrastar as bandas coloridas para girar o objeto
+ Arrastar as faixas coloridas para girar o objeto
</floater.string>
<floater.string name="status_scale">
Clicar e arrastar para esticar o lado selecionado
@@ -13,13 +13,13 @@
Clicar e reter para modificar a terra
</floater.string>
<floater.string name="status_camera">
- Clique e arraste para mexer a câmera
+ Clicar e arrastar para mover a câmera
</floater.string>
<floater.string name="status_grab">
- Arraste para mexer, Ctrl para levantar, Ctrl+Shift para girar
+ Arrastar para mexer, Ctrl para levantar, Ctrl+Shift para girar
</floater.string>
<floater.string name="status_place">
- Clique no mundo para construir
+ Clicar em um lugar para construir
</floater.string>
<floater.string name="status_selectland">
Clicar e arrastar para selecionar a terra
@@ -45,7 +45,7 @@
<button label="" label_selected="" name="button create" tool_tip="Criar"/>
<button label="" label_selected="" name="button land" tool_tip="Terra"/>
<text name="text status" width="280">
- Arraste para mover, shift+Arrastar para Copiar
+ Arrastar para mover, shift+Arrastar para copiar
</text>
<radio_group name="focus_radio_group">
<radio_item label="Zoom" name="radio zoom"/>
@@ -58,10 +58,10 @@
<radio_item label="Spin (Ctrl+Shift)" name="radio spin"/>
</radio_group>
<radio_group name="edit_radio_group">
- <radio_item label="Movimentar" name="radio position"/>
+ <radio_item label="Mover" name="radio position"/>
<radio_item label="Rotacionar (Ctrl)" name="radio rotate"/>
- <radio_item label="Stretch (Ctrl+Shift)" name="radio stretch"/>
- <radio_item label="Face selecionada" name="radio select face"/>
+ <radio_item label="Esticar (Ctrl+Shift)" name="radio stretch"/>
+ <radio_item label="Selecionar face" name="radio select face"/>
</radio_group>
<check_box label="Editar partes linkadas" name="checkbox edit linked parts"/>
<text name="RenderingCost" tool_tip="Mostra o cálculo do custo de renderização do objeto">
@@ -73,10 +73,10 @@
</text>
<check_box initial_value="true" label="Esticar texturas" name="checkbox stretch textures"/>
<check_box initial_value="true" label="Mostrar na grade" name="checkbox snap to grid"/>
- <combo_box name="combobox grid mode" tool_tip="Selecione o tipo de régua da grade onde o objeto será colocado">
- <combo_box.item label="Grid SL" name="World"/>
- <combo_box.item label="Grid local" name="Local"/>
- <combo_box.item label="Grid de referência" name="Reference"/>
+ <combo_box name="combobox grid mode" tool_tip="Selecione a régua da grade onde o objeto será colocado">
+ <combo_box.item label="Grade SL" name="World"/>
+ <combo_box.item label="Local" name="Local"/>
+ <combo_box.item label="Referência" name="Reference"/>
</combo_box>
<button label="Opções..." label_selected="Opções..." name="Options..." tool_tip="Mais opções de grade"/>
<button label="" label_selected="" name="ToolCube" tool_tip="Cubo"/>
@@ -99,12 +99,12 @@
<check_box initial_value="true" label="Copiar parte central" name="checkbox copy centers"/>
<check_box label="Girar cópia" name="checkbox copy rotates"/>
<radio_group name="land_radio_group">
- <radio_item label="Selecionar Terra" name="radio select land"/>
+ <radio_item label="Selecionar terra" name="radio select land"/>
<radio_item label="Aplainar" name="radio flatten"/>
- <radio_item label="Subir" name="radio raise"/>
+ <radio_item label="Elevar" name="radio raise"/>
<radio_item label="Abaixar" name="radio lower"/>
- <radio_item label="Suavizar" name="radio smooth"/>
- <radio_item label="Endurecer" name="radio noise"/>
+ <radio_item label="Alisar" name="radio smooth"/>
+ <radio_item label="Irregularizar" name="radio noise"/>
<radio_item label="Reverter" name="radio revert"/>
</radio_group>
<text name="Bulldozer:">
@@ -144,7 +144,7 @@
Você não pode modificar estes objetos
</panel.string>
<panel.string name="text modify warning">
- Selecione o objeto intereiro para configurar as autorizações
+ Selecione o objeto inteiro para configurar as autorizações
</panel.string>
<panel.string name="Cost Default">
Preço: L$
@@ -156,10 +156,10 @@
Preço unitário: L$
</panel.string>
<panel.string name="Cost Mixed">
- Preço Misturado
+ Preço misto
</panel.string>
<panel.string name="Sale Mixed">
- Venda Misturada
+ Venda mista
</panel.string>
<text name="Name:">
Nome:
@@ -193,7 +193,7 @@
<combo_box.item label="Tocar (padrão)" name="Touch/grab(default)"/>
<combo_box.item label="Sentar no objeto" name="Sitonobject"/>
<combo_box.item label="Comprar objeto" name="Buyobject"/>
- <combo_box.item label="Pagar Objeto" name="Payobject"/>
+ <combo_box.item label="Pagar objeto" name="Payobject"/>
<combo_box.item label="Abrir" name="Open"/>
<combo_box.item label="Zoom" name="Zoom"/>
</combo_box>
@@ -342,9 +342,9 @@
<text name="text revolutions">
Revoluções
</text>
- <texture_picker label="Texture de Escultura" name="sculpt texture control" tool_tip="Click to choose a picture"/>
- <check_box label="Espelho" name="sculpt mirror control" tool_tip="Flips sculpted prim along the X axis"/>
- <check_box label="De dentro para fora" name="sculpt invert control" tool_tip="Inverts the sculpted prims normals, making it appear inside-out"/>
+ <texture_picker label="Textura de escultura" name="sculpt texture control" tool_tip="Selecionar imagem"/>
+ <check_box label="Espelho" name="sculpt mirror control" tool_tip="Inverte o prim esculpido no eixo X"/>
+ <check_box label="De dentro para fora" name="sculpt invert control" tool_tip="Inverte o prim esculpido normals, making it appear inside-out"/>
<text name="label sculpt type">
Tipo costura
</text>
@@ -358,12 +358,12 @@
</panel>
<panel label="Recursos" name="Features">
<text name="select_single" width="272">
- Selecione apenas uma primitiva para editar suas características.
+ Selecione apenas um prim para editar suas características.
</text>
<text name="edit_object">
- Editar características do Objeto:
+ Editar características do objeto:
</text>
- <check_box label="Flexíbilidade" name="Flexible1D Checkbox Ctrl" tool_tip="Allows object to flex about the Z axis (Client-side only)"/>
+ <check_box label="Flexibilidade" name="Flexible1D Checkbox Ctrl" tool_tip="Allows object to flex about the Z axis (Client-side only)"/>
<spinner label="Suavidade" name="FlexNumSections"/>
<spinner label="Gravidade" name="FlexGravity"/>
<spinner label="Arrastar" name="FlexFriction"/>
@@ -438,17 +438,17 @@
<combo_box.item label="Weave" name="weave"/>
</combo_box>
<text name="tex scale">
- Repeats / Face
+ Repetições/Face
</text>
<spinner label="Horizontal (U)" name="TexScaleU"/>
- <check_box label="Flip" name="checkbox flip s"/>
+ <check_box label="Inverter" name="checkbox flip s"/>
<spinner label="Vertical (V)" name="TexScaleV"/>
- <check_box label="Flip" name="checkbox flip t"/>
- <spinner label="RotationËš" name="TexRot"/>
- <spinner label="Repeats / Meter" name="rptctrl"/>
+ <check_box label="Inverter" name="checkbox flip t"/>
+ <spinner label="Rotação˚" name="TexRot"/>
+ <spinner label="Repetições/Metro" name="rptctrl"/>
<button label="Aplicar" label_selected="Aplicar" name="button apply"/>
<text name="tex offset">
- Texture Offset
+ Offset de textura
</text>
<spinner label="Horizontal (U)" name="TexOffsetU"/>
<spinner label="Vertical (V)" name="TexOffsetV"/>
@@ -463,13 +463,13 @@
</panel>
</panel>
<panel label="Conteúdo" name="Contents">
- <button label="Novo Script" label_selected="Novo script" name="button new script"/>
+ <button label="Novo script" label_selected="Novo script" name="button new script"/>
<button label="Autorizações" name="button permissions"/>
</panel>
</tab_container>
<panel name="land info panel">
<text name="label_parcel_info">
- Informações do Lote
+ Informações do lote
</text>
<text name="label_area_price">
Preço: L$[PRICE] por [AREA] m²
@@ -480,7 +480,7 @@
<button label="Sobre terrenos" label_selected="Sobre terrenos" name="button about land"/>
<check_box label="Mostrar donos" name="checkbox show owners" tool_tip="Colorir lotes de acordo com seus donos: Green = Sua terra Aqua = Terra do seu grupo Red = Possuída por outros Yellow = À venda Purple = A leilão Grey = Pública"/>
<text name="label_parcel_modify">
- Modificar Lote
+ Modificar lote
</text>
<button label="Subdividir" label_selected="Subdividir" name="button subdivide land"/>
<button label="Juntar" label_selected="Juntar" name="button join land"/>
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 44f08b76b5..2337ee3074 100644
--- a/indra/newview/skins/default/xui/pt/floater_voice_controls.xml
+++ b/indra/newview/skins/default/xui/pt/floater_voice_controls.xml
@@ -19,10 +19,12 @@
<layout_panel name="my_panel">
<text name="user_text" value="Meu avatar:"/>
</layout_panel>
- <layout_stack name="voice_effect_and_leave_call_stack">
- <layout_panel name="leave_call_btn_panel">
- <button label="Desligar" name="leave_call_btn"/>
- </layout_panel>
- </layout_stack>
+ <layout_panel name="leave_call_panel">
+ <layout_stack name="voice_effect_and_leave_call_stack">
+ <layout_panel name="leave_call_btn_panel">
+ <button label="Desligar" name="leave_call_btn"/>
+ </layout_panel>
+ </layout_stack>
+ </layout_panel>
</layout_stack>
</floater>
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 4bc8575588..cb9b3c8c0d 100644
--- 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="CHECAR DISTORÇÃO DE VOZ">
+<floater label="Lugares" name="voice_effects" title="EFEITOS DE VOZ">
<string name="no_voice_effect">
(Não distorcer voz)
</string>
@@ -12,18 +12,19 @@
<string name="new_voice_effect">
(Novo!)
</string>
+ <text name="preview_text">
+ Visualizar
+ </text>
<text name="status_text">
- Para ouvir um efeito de Distorção de voz, clique no botão Gravar, grave alguns instantes de voz, depois clique em Distorcer voz na lista para ouvir o resultado.
-
-Para reconectar à Voz local, basta fechar esta janela.
+ Grave uma amostra da sua voz, depois clique em um efeito para ouvir o resultado.
</text>
- <button label="Gravar amostra" name="record_btn" tool_tip="Grave uma amostra da sua voz."/>
+ <button label="Gravar" name="record_btn" tool_tip="Grave uma amostra da sua voz."/>
<button label="Parar" name="record_stop_btn"/>
<text name="voice_morphing_link">
- [[URL] Distorcer voz]
+ [[URL] Assine agora]
</text>
<scroll_list name="voice_effect_list" tool_tip="Grave sua voz por alguns instantes, depois clique num efeito para ouvir a distorção.">
- <scroll_list.columns label="Distorcer voz" name="name"/>
+ <scroll_list.columns label="Nome da voz" name="name"/>
<scroll_list.columns label="Vence em" name="expires"/>
</scroll_list>
</floater>
diff --git a/indra/newview/skins/default/xui/pt/floater_wearable_save_as.xml b/indra/newview/skins/default/xui/pt/floater_wearable_save_as.xml
deleted file mode 100644
index 282bf0e268..0000000000
--- a/indra/newview/skins/default/xui/pt/floater_wearable_save_as.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<floater name="modal container" title=" ">
- <button label="Salvar" label_selected="Salvar" name="Save"/>
- <button label="Cancelar" label_selected="Cancelar" name="Cancel"/>
- <text name="Save item as:">
- Salvar item no inventário como:
- </text>
- <line_editor name="name ed">
- Novo [DESC]
- </line_editor>
-</floater>
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 878d0b1973..490a975e80 100644
--- a/indra/newview/skins/default/xui/pt/floater_world_map.xml
+++ b/indra/newview/skins/default/xui/pt/floater_world_map.xml
@@ -6,7 +6,7 @@
</text>
</panel>
<panel name="layout_panel_2">
- <button font="SansSerifSmall" label="Mostra minha localização" label_selected="Mostra minha localização" left_delta="91" name="Show My Location" tool_tip="Centrar o mapa na localização do meu avatar" />
+ <button font="SansSerifSmall" label="Mostra minha localização" label_selected="Mostra minha localização" left_delta="91" name="Show My Location" tool_tip="Centrar o mapa na localização do meu avatar"/>
<text name="me_label">
Eu
</text>
@@ -20,13 +20,13 @@
</text>
<check_box label="Terra à Venda" name="land_for_sale_chk"/>
<text name="land_sale_label">
- Venda de terreno
- </text>
- <text name="by_owner_label">
- o proprietário
+ Terreno à venda
</text>
<text name="auction_label">
- leilão de terrenos
+ leilão
+ </text>
+ <text name="by_owner_label">
+ pelo dono
</text>
<button label="Voltar ao meu início" label_selected="Voltar ao meu início" name="Go Home" tool_tip="Teletransportar para meu início"/>
<text name="Home_label">
@@ -37,14 +37,14 @@
</text>
<check_box label="PG" name="event_chk"/>
<text name="pg_label">
- Público geral
+ Geral
</text>
- <check_box label="Mature" name="event_mature_chk"/>
- <text name="mature_label">
+ <check_box initial_value="true" label="Mature" name="events_mature_chk"/>
+ <text name="events_mature_label">
Moderado
</text>
- <check_box label="Adult" name="event_adult_chk"/>
- <text name="adult_label">
+ <check_box label="Adult" name="events_adult_chk"/>
+ <text name="events_adult_label">
Adulto
</text>
</panel>
@@ -63,6 +63,9 @@
<search_editor label="Regiões por nome" name="location" tool_tip="Digite o nome da região"/>
<button label="Buscar" name="DoSearch" tool_tip="Buscar região"/>
<button name="Clear" tool_tip="Limpar linhas e redefinir mapa"/>
+ <text name="events_label">
+ Local:
+ </text>
<button font="SansSerifSmall" label="Teletransportar" label_selected="Teletransporte" name="Teleport" tool_tip="Teletransportar para o lugar selecionado"/>
<button font="SansSerifSmall" label="Copiar SLurl" name="copy_slurl" tool_tip="Copia a localização atual como um SLurl para usar na web."/>
<button font="SansSerifSmall" label="Mostrar seleção" label_selected="Mostrar Destino" left_delta="91" name="Show Destination" tool_tip="Centrar mapa no local selecionado" width="135"/>
diff --git a/indra/newview/skins/default/xui/pt/language_settings.xml b/indra/newview/skins/default/xui/pt/language_settings.xml
index f25e77574d..e1de6ffea7 100644
--- a/indra/newview/skins/default/xui/pt/language_settings.xml
+++ b/indra/newview/skins/default/xui/pt/language_settings.xml
@@ -17,6 +17,7 @@
datetimeToCodes["month"] = "%B"; // August
datetimeToCodes["mthnum"] = "%m"; // 08
datetimeToCodes["day"] = "%d"; // 31
+ datetimeToCodes["sday"] = "%-d"; // 9
datetimeToCodes["hour24"] = "%H"; // 14
datetimeToCodes["hour"] = "%H"; // 14
datetimeToCodes["hour12"] = "%I"; // 02
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 5cb1b211cf..65070f821a 100644
--- a/indra/newview/skins/default/xui/pt/menu_attachment_self.xml
+++ b/indra/newview/skins/default/xui/pt/menu_attachment_self.xml
@@ -3,11 +3,13 @@
<menu_item_call label="Tocar" name="Attachment Object Touch"/>
<menu_item_call label="Editar" name="Edit..."/>
<menu_item_call label="Tirar" name="Detach"/>
- <menu_item_call label="Largar" name="Drop"/>
<menu_item_call label="Ficar de pé" name="Stand Up"/>
<menu_item_call label="Trocar de look" name="Change Outfit"/>
+ <menu_item_call label="Editar meu look" name="Edit Outfit"/>
+ <menu_item_call label="Editar meu corpo" name="Edit My Shape"/>
<menu_item_call label="Meus amigos" name="Friends..."/>
<menu_item_call label="Meus grupos" name="Groups..."/>
<menu_item_call label="Meu perfil" name="Profile..."/>
<menu_item_call label="Depurar texturas" name="Debug..."/>
+ <menu_item_call label="Largar" name="Drop"/>
</context_menu>
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 62055303b5..755975f9a5 100644
--- a/indra/newview/skins/default/xui/pt/menu_avatar_self.xml
+++ b/indra/newview/skins/default/xui/pt/menu_avatar_self.xml
@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Self Pie">
<menu_item_call label="Ficar de pé" name="Stand Up"/>
- <context_menu label="Tirar â–¶" name="Take Off &gt;">
- <context_menu label="Roupa â–¶" name="Clothes &gt;">
+ <context_menu label="Tirar" name="Take Off &gt;">
+ <context_menu label="Roupa" name="Clothes &gt;">
<menu_item_call label="Camisa" name="Shirt"/>
<menu_item_call label="Calças" name="Pants"/>
<menu_item_call label="Saia" name="Skirt"/>
@@ -16,8 +16,8 @@
<menu_item_call label="Alpha" name="Self Alpha"/>
<menu_item_call label="Todas as roupas" name="All Clothes"/>
</context_menu>
- <context_menu label="HUD â–¶" name="Object Detach HUD"/>
- <context_menu label="Tirar â–¶" name="Object Detach"/>
+ <context_menu label="HUD" name="Object Detach HUD"/>
+ <context_menu label="Tirar" name="Object Detach"/>
<menu_item_call label="Tirar tudo" name="Detach All"/>
</context_menu>
<menu_item_call label="Trocar de look" name="Chenge Outfit"/>
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 a58353f14e..051323ae6a 100644
--- a/indra/newview/skins/default/xui/pt/menu_cof_clothing.xml
+++ b/indra/newview/skins/default/xui/pt/menu_cof_clothing.xml
@@ -1,7 +1,6 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="COF Clothing">
<menu_item_call label="Tirar" name="take_off"/>
- <menu_item_call label="Subir um nível" name="move_up"/>
- <menu_item_call label="Baixar um nível" name="move_down"/>
<menu_item_call label="Editar" name="edit"/>
+ <menu_item_call label="Trocar" name="replace"/>
</context_menu>
diff --git a/indra/newview/skins/default/xui/pt/menu_inventory.xml b/indra/newview/skins/default/xui/pt/menu_inventory.xml
index aa195e5739..1b1efd3270 100644
--- a/indra/newview/skins/default/xui/pt/menu_inventory.xml
+++ b/indra/newview/skins/default/xui/pt/menu_inventory.xml
@@ -16,7 +16,7 @@
<menu label="Novas roupas" name="New Clothes">
<menu_item_call label="Nova camisa" name="New Shirt"/>
<menu_item_call label="Nova calça" name="New Pants"/>
- <menu_item_call label="Novos calçados" name="New Shoes"/>
+ <menu_item_call label="Novos sapatos" name="New Shoes"/>
<menu_item_call label="Novas meias" name="New Socks"/>
<menu_item_call label="Nova jaqueta" name="New Jacket"/>
<menu_item_call label="Nova saia" name="New Skirt"/>
@@ -47,8 +47,8 @@
<menu_item_call label="Teletransporte" name="Landmark Open"/>
<menu_item_call label="Abrir" name="Animation Open"/>
<menu_item_call label="Abrir" name="Sound Open"/>
- <menu_item_call label="Substituir equipamento" name="Replace Outfit"/>
- <menu_item_call label="Adicionar ao equipamento" name="Add To Outfit"/>
+ <menu_item_call label="Substituir look" name="Replace Outfit"/>
+ <menu_item_call label="Adicionar a look" name="Add To Outfit"/>
<menu_item_call label="Tirar do look atual" name="Remove From Outfit"/>
<menu_item_call label="Encontrar original" name="Find Original"/>
<menu_item_call label="Remover item" name="Purge Item"/>
@@ -61,7 +61,7 @@
<menu_item_call label="Copiar" name="Copy"/>
<menu_item_call label="Colar" name="Paste"/>
<menu_item_call label="Colar como link" name="Paste As Link"/>
- <menu_item_call label="Remover link" name="Remove Link"/>
+ <menu_item_call label="Excluir" name="Remove Link"/>
<menu_item_call label="Apagar" name="Delete"/>
<menu_item_call label="Excluir pasta do sistema" name="Delete System Folder"/>
<menu_item_call label="Pasta conversa em conferência" name="Conference Chat Folder"/>
@@ -75,12 +75,11 @@
<menu_item_call label="Ativar" name="Activate"/>
<menu_item_call label="Desativar" name="Deactivate"/>
<menu_item_call label="Salvar como" name="Save As"/>
- <menu_item_call label="Retirar de si mesmo" name="Detach From Yourself"/>
- <menu_item_call label="Vestir objeto" name="Object Wear"/>
+ <menu_item_call label="Tirar de si mesmo" name="Detach From Yourself"/>
+ <menu_item_call label="Vestir" name="Wearable And Object Wear"/>
<menu label="Anexar a" name="Attach To"/>
<menu label="Anexar ao HUD" name="Attach To HUD"/>
<menu_item_call label="Editar" name="Wearable Edit"/>
- <menu_item_call label="Vestir" name="Wearable Wear"/>
<menu_item_call label="Adicionar" name="Wearable Add"/>
<menu_item_call label="Tirar" name="Take Off"/>
<menu_item_call label="--Sem opções--" name="--no options--"/>
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 fc40384891..2723f39287 100644
--- a/indra/newview/skins/default/xui/pt/menu_inventory_add.xml
+++ b/indra/newview/skins/default/xui/pt/menu_inventory_add.xml
@@ -5,6 +5,7 @@
<menu_item_call label="Som (L$[COST])..." name="Upload Sound"/>
<menu_item_call label="Animação (L$[COST])..." name="Upload Animation"/>
<menu_item_call label="Volume (L$[COST] per file)..." name="Bulk Upload"/>
+ <menu_item_call label="Autorizações de upload padrão" name="perm prefs"/>
</menu>
<menu_item_call label="Nova pasta" name="New Folder"/>
<menu_item_call label="Novo script" name="New Script"/>
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 8bae7afddc..a3e62924ec 100644
--- a/indra/newview/skins/default/xui/pt/menu_inventory_gear_default.xml
+++ b/indra/newview/skins/default/xui/pt/menu_inventory_gear_default.xml
@@ -6,9 +6,10 @@
<menu_item_call label="Mostrar filtros" name="show_filters"/>
<menu_item_call label="Restabelecer filtros" name="reset_filters"/>
<menu_item_call label="Fechar todas as pastas" name="close_folders"/>
- <menu_item_call label="Esvaziar lixeira" name="empty_trash"/>
<menu_item_call label="Esvaziar achados e perdidos" name="empty_lostnfound"/>
<menu_item_call label="Salvar textura como" name="Save Texture As"/>
+ <menu_item_call label="Compartilhar" name="Share"/>
<menu_item_call label="Encontrar original" name="Find Original"/>
<menu_item_call label="Encontrar todos os links" name="Find All Links"/>
+ <menu_item_call label="Esvaziar lixeira" name="empty_trash"/>
</menu>
diff --git a/indra/newview/skins/default/xui/pt/menu_object.xml b/indra/newview/skins/default/xui/pt/menu_object.xml
index a5969cacc3..26512fb286 100644
--- a/indra/newview/skins/default/xui/pt/menu_object.xml
+++ b/indra/newview/skins/default/xui/pt/menu_object.xml
@@ -1,6 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Object Pie">
- <menu_item_call label="Tocar" name="Object Touch"/>
+ <menu_item_call label="Tocar" name="Object Touch">
+ <on_enable parameter="Tocar" name="EnableTouch"/>
+ </menu_item_call>
<menu_item_call label="Editar" name="Edit..."/>
<menu_item_call label="Construir" name="Build"/>
<menu_item_call label="Abrir" name="Open"/>
@@ -10,10 +12,10 @@
<menu_item_call label="Mais zoom" name="Zoom In"/>
<context_menu label="Colocar no(a)" name="Put On">
<menu_item_call label="Vestir" name="Wear"/>
- <context_menu label="Anexar &gt;" name="Object Attach"/>
- <context_menu label="Anexar o HUD &gt;" name="Object Attach HUD"/>
+ <context_menu label="Anexar" name="Object Attach"/>
+ <context_menu label="Anexar o HUD" name="Object Attach HUD"/>
</context_menu>
- <context_menu label="Tirar &gt;" name="Remove">
+ <context_menu label="Tirar" name="Remove">
<menu_item_call label="Denunciar abuso" name="Report Abuse..."/>
<menu_item_call label="Bloquear" name="Object Mute"/>
<menu_item_call label="Devolver" name="Return..."/>
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 eb1c026708..11b3e653c6 100644
--- a/indra/newview/skins/default/xui/pt/menu_outfit_gear.xml
+++ b/indra/newview/skins/default/xui/pt/menu_outfit_gear.xml
@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<menu name="Gear Outfit">
<menu_item_call label="Vestir - Substituir look atual" name="wear"/>
+ <menu_item_call label="Vestir - Adicionar ao look atual" name="wear_add"/>
<menu_item_call label="Tirar - Tirar do look atual" name="take_off"/>
<menu label="Roupas novas" name="New Clothes">
<menu_item_call label="Nova camisa" name="New Shirt"/>
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 7c30e8ac55..8db5e405b3 100644
--- a/indra/newview/skins/default/xui/pt/menu_outfit_tab.xml
+++ b/indra/newview/skins/default/xui/pt/menu_outfit_tab.xml
@@ -4,6 +4,6 @@
<menu_item_call label="Vestir - Sem tirar look atual" name="wear_add"/>
<menu_item_call label="Tirar - Tirar do look atual" name="take_off"/>
<menu_item_call label="Editar look" name="edit"/>
- <menu_item_call label="Renomear" name="rename"/>
+ <menu_item_call label="Renomear look" name="rename"/>
<menu_item_call label="Excluir visual" name="delete"/>
</context_menu>
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..ee522210fb 100644
--- a/indra/newview/skins/default/xui/pt/menu_participant_list.xml
+++ b/indra/newview/skins/default/xui/pt/menu_participant_list.xml
@@ -11,7 +11,7 @@
<menu_item_check label="Ver ícones de pessoas" name="View Icons"/>
<menu_item_check label="Bloquear voz" name="Block/Unblock"/>
<menu_item_check label="Bloquear texto" name="MuteText"/>
- <context_menu label="Opções do moderador &gt;" name="Moderator Options">
+ <context_menu label="Opções do moderador" 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"/>
diff --git a/indra/newview/skins/default/xui/pt/menu_topinfobar.xml b/indra/newview/skins/default/xui/pt/menu_topinfobar.xml
new file mode 100644
index 0000000000..d9347950b1
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/menu_topinfobar.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="menu_topinfobar">
+ <menu_item_check label="Mostrar coordenadas" name="Show Coordinates"/>
+ <menu_item_check label="Mostrar as propriedades do terreno" name="Show Parcel Properties"/>
+ <menu_item_call label="Marco" name="Landmark"/>
+ <menu_item_call label="Copiar" name="Copy"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/pt/menu_viewer.xml b/indra/newview/skins/default/xui/pt/menu_viewer.xml
index 5a5a418370..33fccbedcc 100644
--- a/indra/newview/skins/default/xui/pt/menu_viewer.xml
+++ b/indra/newview/skins/default/xui/pt/menu_viewer.xml
@@ -94,7 +94,7 @@
<menu_item_call label="Scripts em modo não execução" name="Set Scripts to Not Running"/>
</menu>
<menu label="Opções" name="Options">
- <menu_item_call label="Definir permissões padrão de upload" name="perm prefs"/>
+ <menu_item_call label="Autorizações de upload padrão" name="perm prefs"/>
<menu_item_check label="Mostrar permissões avançadas" name="DebugPermissions"/>
<menu_item_check label="Só selecionar meus objetos" name="Select Only My Objects"/>
<menu_item_check label="Só selecionar objetos móveis" name="Select Only Movable Objects"/>
@@ -177,6 +177,7 @@
<menu_item_check label="Busca" name="Search"/>
<menu_item_call label="Soltar objeto" name="Release Keys"/>
<menu_item_call label="Interface tamanho padrão" name="Set UI Size to Default"/>
+ <menu_item_check label="Mostrar menu avançado - atalho antigo" name="Show Advanced Menu - legacy shortcut"/>
<menu_item_check label="Correr sempre" name="Always Run"/>
<menu_item_check label="Voar" name="Fly"/>
<menu_item_call label="Fechar janela" name="Close Window"/>
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 dbf942796c..6dce884348 100644
--- a/indra/newview/skins/default/xui/pt/menu_wearable_list_item.xml
+++ b/indra/newview/skins/default/xui/pt/menu_wearable_list_item.xml
@@ -1,11 +1,12 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<context_menu name="Outfit Wearable Context Menu">
- <menu_item_call label="Vestir" name="wear"/>
+ <menu_item_call label="Trocar" name="wear_replace"/>
+ <menu_item_call label="Vestir" name="wear_wear"/>
<menu_item_call label="Adicionar" name="wear_add"/>
<menu_item_call label="Tirar / Separar" name="take_off_or_detach"/>
<menu_item_call label="Separar" name="detach"/>
- <context_menu label="Colocar em â–¶" name="wearable_attach_to"/>
- <context_menu label="Anexar ao HUD â–¶" name="wearable_attach_to_hud"/>
+ <context_menu label="Colocar em" name="wearable_attach_to"/>
+ <context_menu label="Anexar ao HUD" name="wearable_attach_to_hud"/>
<menu_item_call label="Tirar" name="take_off"/>
<menu_item_call label="Editar" name="edit"/>
<menu_item_call label="Perfil do objeto" name="object_profile"/>
diff --git a/indra/newview/skins/default/xui/pt/menu_wearing_gear.xml b/indra/newview/skins/default/xui/pt/menu_wearing_gear.xml
new file mode 100644
index 0000000000..c0387f491a
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/menu_wearing_gear.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<menu name="Gear Wearing">
+ <menu_item_call label="Editar look" name="edit"/>
+</menu>
diff --git a/indra/newview/skins/default/xui/pt/menu_wearing_tab.xml b/indra/newview/skins/default/xui/pt/menu_wearing_tab.xml
new file mode 100644
index 0000000000..5b62d9578c
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/menu_wearing_tab.xml
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<context_menu name="Wearing">
+ <menu_item_call label="Editar look" name="edit"/>
+</context_menu>
diff --git a/indra/newview/skins/default/xui/pt/notifications.xml b/indra/newview/skins/default/xui/pt/notifications.xml
index 4a738bf0ea..a6645d8b13 100644
--- a/indra/newview/skins/default/xui/pt/notifications.xml
+++ b/indra/newview/skins/default/xui/pt/notifications.xml
@@ -355,6 +355,10 @@ Tem certeza de que quer prosseguir?
Excluir destaque &lt;nolink&gt;[PICK]&lt;/nolink&gt;?
<usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Apagar"/>
</notification>
+ <notification name="DeleteOutfits">
+ Excluir look(s) selecionado(s)?
+ <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="OK"/>
+ </notification>
<notification name="PromptGoToEventsPage">
Ir até a página web de enventos [SECOND_LIFE] ?
<url name="url">
@@ -609,8 +613,7 @@ Esperada [VALIDS]
Impossível codificar o arquivo: [FILE]
</notification>
<notification name="CorruptedProtectedDataStore">
- Não foi possível fazer a leitura dos dados protegidos, redefinindo.
- Isso pode ocorrer após mudanças na configuração da rede.
+ Não podemos preencher seu nome e senha. Isso pode ocorrer após mudanças na configuração da rede
<usetemplate name="okbutton" yestext="OK"/>
</notification>
<notification name="CorruptResourceFile">
@@ -2023,11 +2026,6 @@ Inclua um link para facilitar o acesso para visitantes. Teste o link na barra de
Fazendo o upload das fotos do site da web e do mundo...
(Leva cerca de 5 minutos)
</notification>
- <notification name="UploadConfirmation">
- O upload custa L$ [AMOUNT].
-Deseja continuar?
- <usetemplate name="okcancelbuttons" notext="Cancelar" yestext="Upload"/>
- </notification>
<notification name="UploadPayment">
Você paga L$[AMOUNT] para fazer o upload.
</notification>
@@ -2444,9 +2442,6 @@ Do objeto: [OBJECTNAME], dono: [NAME]?
<notification name="FailedToFindWearable">
Falhou ao procurar [TYPE] nomeado [DESC] no banco de dados.
</notification>
- <notification name="ShareToWebFailed">
- Falha de upload da imagem na web.
- </notification>
<notification name="InvalidWearable">
O item que você está tentando usar tem um recurso que seu Visualizador não consegue ler. Atualize o [APP_NAME] para poder vestir esse item.
</notification>
@@ -2734,7 +2729,7 @@ Avatar &apos;[NAME]&apos; saiu totalmente carregado.
</notification>
<notification name="AvatarRezSelfBakeNotification">
( [EXISTENCE] segundos de vida )
-Você carregou uma textura com [RESOLUTION] para o(a) &apos;[BODYREGION]&apos; em [TIME] segundos.
+[ACTION] de textura com [RESOLUTION] para o(a) &apos;[BODYREGION]&apos; em [TIME] segundos.
</notification>
<notification name="ConfirmLeaveCall">
Tem certeza de que quer sair desta ligação?
@@ -2772,4 +2767,7 @@ Se você continuar a receber esta mensagem, consulte o [SUPPORT_SITE].
Se você tem um terreno, seu terreno pode ser seu início.
Outra opção é procurar por lugares com a tag &apos;Infohub&apos; no mapa.
</global>
+ <global name="You died and have been teleported to your home location">
+ Você morreu e foi reenviado ao seu início.
+ </global>
</notifications>
diff --git a/indra/newview/skins/default/xui/pt/panel_audio_device.xml b/indra/newview/skins/default/xui/pt/panel_audio_device.xml
deleted file mode 100644
index 967dc27070..0000000000
--- a/indra/newview/skins/default/xui/pt/panel_audio_device.xml
+++ /dev/null
@@ -1,25 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="device_settings">
- <text name="Audio Devices">
- Dispositivos de Ãudio
- </text>
- <text name="Input device (microphone):">
- Dispositivo de entrada (microfone):
- </text>
- <text name="Output device (speakers):">
- Dispositivo de saída (falantes):
- </text>
- <text name="Input level:">
- Nível de Entrada
- </text>
- <text_editor name="voice_intro_text1">
- Ajuste a barra para controlar o volume de som para os outros residentes. Para testar o nível de entrada, basta falar em seu microfone.
- </text_editor>
- <volume_slider name="mic_volume_slider" tool_tip="Altere o volume usando este controle gradual"/>
- <text name="wait_text">
- Por Favor aguarde
- </text>
- <string name="default_text">
- Padrão
- </string>
-</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 de764d8025..87a2e1674d 100644
--- 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
@@ -1,4 +1,8 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="wearable_item">
<text name="item_name" value="..."/>
+ <panel name="btn_lock" tool_tip="Você não está autorizado a editar isso."/>
+ <panel name="btn_edit_panel">
+ <button name="btn_edit" tool_tip="Editar esta forma"/>
+ </panel>
</panel>
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 de764d8025..4b45a49f74 100644
--- a/indra/newview/skins/default/xui/pt/panel_clothing_list_item.xml
+++ b/indra/newview/skins/default/xui/pt/panel_clothing_list_item.xml
@@ -1,4 +1,9 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="wearable_item">
+ <button name="btn_delete" tool_tip="Tirar do look"/>
<text name="item_name" value="..."/>
+ <panel name="btn_lock" tool_tip="Você não está autorizado a editar isso."/>
+ <panel name="btn_edit_panel">
+ <button name="btn_edit" tool_tip="Editar este acessório"/>
+ </panel>
</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 91d90a5660..7ca5e23981 100644
--- 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
@@ -1,4 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="deletable_wearable_item">
+ <button name="btn_delete" tool_tip="Tirar do look"/>
<text name="item_name" value="..."/>
</panel>
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 6af84de0c7..3dfb5a0a16 100644
--- 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
@@ -1,4 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="dummy_clothing_item">
<text name="item_name" value="..."/>
+ <panel name="btn_add_panel">
+ <button name="btn_add" tool_tip="Adicionar mais itens deste tipo"/>
+ </panel>
</panel>
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 e921dd1bea..9890d26d35 100644
--- a/indra/newview/skins/default/xui/pt/panel_edit_wearable.xml
+++ b/indra/newview/skins/default/xui/pt/panel_edit_wearable.xml
@@ -90,6 +90,7 @@
<string name="tattoo_desc_text">
Tatuagem:
</string>
+ <labeled_back_button label="Salvar" name="back_btn" tool_tip="Voltar à edição de look"/>
<text name="edit_wearable_title" value="Editando forma"/>
<panel label="Camisa" name="wearable_type_panel">
<text name="description_text" value="Forma:"/>
@@ -102,6 +103,6 @@
</panel>
<panel name="button_panel">
<button label="Salvar como" name="save_as_button"/>
- <button label="Reverter" name="revert_button"/>
+ <button label="Desfazer mudanças" name="revert_button"/>
</panel>
</panel>
diff --git a/indra/newview/skins/default/xui/pt/panel_friends.xml b/indra/newview/skins/default/xui/pt/panel_friends.xml
deleted file mode 100644
index 34073f9ce1..0000000000
--- a/indra/newview/skins/default/xui/pt/panel_friends.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="friends">
- <string name="Multiple">
- Diversos amigos
- </string>
- <scroll_list name="friend_list" tool_tip="Aperte shift ou control enquanto clica para selecionar múltiplos amigos">
- <column name="icon_online_status" tool_tip="Status Online"/>
- <column label="Nome" name="friend_name" tool_tip="Nome"/>
- <column name="icon_visible_online" tool_tip="Amigo pode ver quando você está online"/>
- <column name="icon_visible_map" tool_tip="Amigo pode localizá-lo no mapa"/>
- <column name="icon_edit_mine" tool_tip="Amigo pode editar, apagar ou pegar seus objetos"/>
- <column name="icon_edit_theirs" tool_tip="Você pode editar os objetos deste amigo"/>
- </scroll_list>
- <button label="MI/Chamar" name="im_btn" tool_tip="Abrir sessão de Mensagem Instantânea" width="86"/>
- <button label="Perfil" name="profile_btn" tool_tip="Mostrar foto, grupos e outras informações" width="86"/>
- <button label="Teletransportar" name="offer_teleport_btn" tool_tip="Oferecer a este amigo o teletransporte para sua localização atual" width="86"/>
- <button label="Pagar" name="pay_btn" tool_tip="Dar Linden dólares (L$) a este amigo" width="86"/>
- <button label="Tirar" name="remove_btn" tool_tip="Remover esta pessoa de sua lista de amigos" width="86"/>
- <button label="Adicionar" name="add_btn" tool_tip="Oferecer amizade para um residente" width="86"/>
-</panel>
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 6060f23bba..b634ec3f64 100644
--- a/indra/newview/skins/default/xui/pt/panel_group_general.xml
+++ b/indra/newview/skins/default/xui/pt/panel_group_general.xml
@@ -48,7 +48,7 @@ Para obter mais ajuda, passe o mouse sobre as opções.
<spinner label="L$" left_delta="120" name="spin_enrollment_fee" tool_tip="Se a opção &apos;Taxa de associação&apos; estiver marcada, novos membros precisam pagar o valor definido para entrar no grupo." width="60"/>
<combo_box name="group_mature_check" tool_tip="Define se os dados do seu grupo são conteúdo moderado." width="170">
<combo_item name="select_mature">
- - Selecione Maduro -
+ - Selecione o nível de maturidade -
</combo_item>
<combo_box.item label="Conteúdo Mature" name="mature"/>
<combo_box.item label="Conteúdo PG" name="pg"/>
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 9ccb85cdf6..21136d06fb 100644
--- a/indra/newview/skins/default/xui/pt/panel_group_notices.xml
+++ b/indra/newview/skins/default/xui/pt/panel_group_notices.xml
@@ -18,7 +18,7 @@ Cada grupo pode enviar no máximo 200 avisos/dia
<text name="notice_list_none_found">
Nenhum resultado foi encontrado.
</text>
- <button label="Criar um novo aviso" label_selected="Criar nova notícia" name="create_new_notice" tool_tip="Criar um novo aviso"/>
+ <button label="Novo aviso" label_selected="Criar nova notícia" name="create_new_notice" tool_tip="Criar um novo aviso"/>
<button label="Atualizar" label_selected="Atualizar lista" name="refresh_notices" tool_tip="Atualizar lista de avisos"/>
<panel label="Criar nova notícia" name="panel_create_new_notice">
<text name="lbl">
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 9c3792ec43..c861e29624 100644
--- a/indra/newview/skins/default/xui/pt/panel_group_roles.xml
+++ b/indra/newview/skins/default/xui/pt/panel_group_roles.xml
@@ -11,6 +11,9 @@
<panel.string name="help_text">
Você pode adicionar ou remover as funções designadas aos membros. Selecione vários membros, segurando a tecla Ctrl e clicando em seus nomes.
</panel.string>
+ <panel.string name="donation_area">
+ [AREA] m²
+ </panel.string>
<filter_editor label="Filtrar por membro" name="filter_input"/>
<name_list bottom_delta="-105" height="104" name="member_list">
<name_list.columns label="Membro" name="name"/>
@@ -63,21 +66,15 @@ Há uma grande variedade de habilidades.
<text name="static">
Nome da função
</text>
- <line_editor name="role_name">
- Empregados
- </line_editor>
+ <line_editor name="role_name"/>
<text name="static3">
Título da função
</text>
- <line_editor name="role_title">
- (esperando)
- </line_editor>
+ <line_editor name="role_title"/>
<text name="static2">
Descrição
</text>
- <text_editor name="role_description">
- (esperando)
- </text_editor>
+ <text_editor name="role_description"/>
<text name="static4">
Cargos desempenhados
</text>
@@ -88,9 +85,6 @@ Há uma grande variedade de habilidades.
<scroll_list name="role_allowed_actions" tool_tip="Clique na guia Funções para ver mais detalhes"/>
</panel>
<panel name="actions_footer">
- <text name="static">
- Descrição da função
- </text>
<text_editor name="action_description">
Essa habilidade permite tirar alguem do grupo. Somente o dono do grupo poderá retirar outro dono do grupo.
</text_editor>
diff --git a/indra/newview/skins/default/xui/pt/panel_groups.xml b/indra/newview/skins/default/xui/pt/panel_groups.xml
deleted file mode 100644
index 0aea0d53dd..0000000000
--- a/indra/newview/skins/default/xui/pt/panel_groups.xml
+++ /dev/null
@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="groups">
- <text name="groupdesc" width="268">
- Seu grupo ativo atual está em negrito.
- </text>
- <text name="groupcount" width="300">
- Você pertence a [COUNT] grupos (máximo [MAX]).
- </text>
- <button width="86" label="MI/Ligação" name="IM" tool_tip="Abrir sessão de Mensagem Instantânea"/>
- <button width="86" label="Informações" name="Info"/>
- <button width="86" label="Ativar" name="Activate"/>
- <button width="86" label="Sair" name="Leave"/>
- <button width="86" label="Criar..." name="Create"/>
- <button width="86" label="Buscar..." name="Search..."/>
-</panel>
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 6196c06d09..39c19a22d4 100644
--- a/indra/newview/skins/default/xui/pt/panel_landmark_info.xml
+++ b/indra/newview/skins/default/xui/pt/panel_landmark_info.xml
@@ -1,25 +1,25 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="landmark_info">
- <string name="title_create_landmark" value="Criar Landmark"/>
- <string name="title_edit_landmark" value="Editar Landmark"/>
- <string name="title_landmark" value="Landmark"/>
- <string name="not_available" value="(N\A)"/>
+ <string name="title_create_landmark" value="Criar marco"/>
+ <string name="title_edit_landmark" value="Editar marco"/>
+ <string name="title_landmark" value="Marco"/>
+ <string name="not_available" value="(N/A)"/>
<string name="unknown" value="(desconhecido)"/>
<string name="public" value="(público)"/>
<string name="server_update_text">
Informação do lugar não disponível sem atualização do servidor.
</string>
<string name="server_error_text">
- Informações sobre esta localização não está disponível neste momento, por favor, tente novamente mais tarde.
+ No momento não há informações sobre este lugar; por favor tente novamente mais tarde.
</string>
<string name="server_forbidden_text">
- Informações sobre esta localização está indisponível devido a restrições de acesso. Por favor, verifique as permissões com o proprietário da parcela.
+ Os dados deste lugar não estão indisponíveis devido a restrições de acesso. Verifique as permissões com o proprietário do terreno ou parcela.
</string>
<string name="acquired_date">
[wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local]
</string>
<button name="back_btn" tool_tip="Atrás"/>
- <text name="title" value="Perfil do Lugar"/>
+ <text name="title" value="Perfil do lugar"/>
<scroll_container name="place_scroll">
<panel name="scrolling_panel">
<text name="maturity_value" value="desconhecido"/>
@@ -31,7 +31,7 @@
<panel name="landmark_edit_panel">
<text name="title_label" value="Título:"/>
<text name="notes_label" value="Minhas notas:"/>
- <text name="folder_label" value="Localização da Landmark:"/>
+ <text name="folder_label" value="Localização do marco:"/>
</panel>
</panel>
</scroll_container>
diff --git a/indra/newview/skins/default/xui/pt/panel_nearby_chat.xml b/indra/newview/skins/default/xui/pt/panel_nearby_chat.xml
deleted file mode 100644
index bdbf29e70b..0000000000
--- a/indra/newview/skins/default/xui/pt/panel_nearby_chat.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<!-- All our XML is utf-8 encoded. -->
-<panel name="nearby_chat">
- <panel name="chat_caption">
- <text name="sender_name">
- Bate-papo local
- </text>
- </panel>
-</panel>
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 8d08177eed..7d1b48ad76 100644
--- a/indra/newview/skins/default/xui/pt/panel_nearby_media.xml
+++ b/indra/newview/skins/default/xui/pt/panel_nearby_media.xml
@@ -23,6 +23,12 @@
<button label="Mais &gt;&gt;" label_selected="Menos &lt;&lt;" name="less_btn" tool_tip="Controles avançados"/>
</panel>
<panel name="nearby_media_panel">
+ <text name="nearby_media_title">
+ Mídia por perto
+ </text>
+ <text name="show_text">
+ Mostrar:
+ </text>
<combo_box name="show_combo">
<combo_box.item label="Tudo" name="All"/>
<combo_box.item label="Neste lote" name="WithinParcel"/>
@@ -36,7 +42,7 @@
<scroll_list.columns label="Nome" name="media_name"/>
<scroll_list.columns label="Depurar" name="media_debug"/>
</scroll_list>
- <panel>
+ <panel name="media_controls_panel">
<layout_stack name="media_controls">
<layout_panel name="stop">
<button name="stop_btn" tool_tip="Parar mídia selecionada"/>
diff --git a/indra/newview/skins/default/xui/pt/panel_notes.xml b/indra/newview/skins/default/xui/pt/panel_notes.xml
index 9aa842d9a5..6fb614a8c4 100644
--- a/indra/newview/skins/default/xui/pt/panel_notes.xml
+++ b/indra/newview/skins/default/xui/pt/panel_notes.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Anotações e Privacidade" name="panel_notes">
<layout_stack name="layout">
- <panel name="notes_stack">
+ <layout_panel name="notes_stack">
<scroll_container name="profile_scroll">
<panel name="profile_scroll_panel">
<text name="status_message" value="Minhas anotações privadas:"/>
@@ -11,13 +11,13 @@
<check_box label="Pegar, editar ou excluir objetos meus" name="objects_check"/>
</panel>
</scroll_container>
- </panel>
- <panel name="notes_buttons_panel">
+ </layout_panel>
+ <layout_panel name="notes_buttons_panel">
<button label="Adicionar amigo" name="add_friend" tool_tip="Oferecer amizade ao residente"/>
<button label="MI" name="im" tool_tip="Abrir sessão de mensagem instantânea"/>
<button label="Ligar" name="call" tool_tip="Ligar para este residente"/>
<button label="Mapa" name="show_on_map_btn" tool_tip="Exibir o residente no mapa"/>
<button label="Teletransportar" name="teleport" tool_tip="Oferecer teletransporte"/>
- </panel>
+ </layout_panel>
</layout_stack>
</panel>
diff --git a/indra/newview/skins/default/xui/pt/panel_online_status.xml b/indra/newview/skins/default/xui/pt/panel_online_status.xml
deleted file mode 100644
index fdc489f375..0000000000
--- a/indra/newview/skins/default/xui/pt/panel_online_status.xml
+++ /dev/null
@@ -1,2 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="friend_online_status" name="friend_online_status"/>
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 bbf5b397c3..12c57411db 100644
--- a/indra/newview/skins/default/xui/pt/panel_outfit_edit.xml
+++ b/indra/newview/skins/default/xui/pt/panel_outfit_edit.xml
@@ -13,7 +13,9 @@
<string name="Filter.All" value="Tudo"/>
<string name="Filter.Clothes/Body" value="Roupas/Corpo"/>
<string name="Filter.Objects" value="Objects"/>
- <string name="Filter.Custom" value="Filtro personalizado"/>
+ <string name="Filter.Clothing" value="Vestuário"/>
+ <string name="Filter.Bodyparts" value="Corpo"/>
+ <string name="replace_body_part" value="Clique para substituir sua forma atual"/>
<text name="title" value="Editar look"/>
<panel label="bottom_panel" name="header_panel">
<panel label="bottom_panel" name="outfit_name_and_status">
@@ -25,17 +27,25 @@
<layout_panel label="Painel de controle de MIs" name="outfit_wearables_panel">
<layout_stack name="filter_panels">
<layout_panel name="add_button_and_combobox">
- <button label="Adicionar mais..." name="show_add_wearables_btn"/>
+ <button label="Adicionar mais..." name="show_add_wearables_btn" tool_tip="Abrir/Fechar"/>
</layout_panel>
<layout_panel name="filter_panel">
<filter_editor label="Filtrar itens de vestuário" name="look_item_filter"/>
</layout_panel>
</layout_stack>
</layout_panel>
- <layout_panel name="add_wearables_panel"/>
+ <layout_panel name="add_wearables_panel">
+ <button label="Vestir" name="plus_btn"/>
+ </layout_panel>
</layout_stack>
+ <panel name="no_add_wearables_button_bar">
+ <button name="shop_btn_1" tool_tip="Visite o SL Marketplace. Ou selecione algum artigo do seu look e clique aqui para ver outros artigos parecidos"/>
+ </panel>
+ <panel name="add_wearables_button_bar">
+ <button name="shop_btn_2" tool_tip="Visite o SL Marketplace. Ou selecione algum artigo do seu look e clique aqui para ver outros artigos parecidos"/>
+ </panel>
<panel name="save_revert_button_bar">
<button label="Salvar" name="save_btn"/>
- <button label="Reverter" name="revert_btn"/>
+ <button label="Desfazer mudanças" name="revert_btn" tool_tip="Voltar à versão salva anterior"/>
</panel>
</panel>
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 10ef2a332f..96f4d60957 100644
--- a/indra/newview/skins/default/xui/pt/panel_outfits_inventory.xml
+++ b/indra/newview/skins/default/xui/pt/panel_outfits_inventory.xml
@@ -1,12 +1,16 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel label="Coisas" name="Outfits">
+ <panel.string name="wear_outfit_tooltip">
+ Vestir look selecionado
+ </panel.string>
+ <panel.string name="wear_items_tooltip">
+ Vestir itens selecionados
+ </panel.string>
<tab_container name="appearance_tabs">
<panel label="MEUS LOOKS" name="outfitslist_tab"/>
- <inventory_panel label="EM USO" name="cof_tab"/>
+ <panel label="EM USO" name="cof_tab"/>
</tab_container>
<panel name="bottom_panel">
- <button name="options_gear_btn" tool_tip="Mostrar opções adicionais"/>
- <dnd_button name="trash_btn" tool_tip="Remover item selecionado"/>
<button label="Salvar como" name="save_btn"/>
<button label="Vestir" name="wear_btn" tool_tip="Vestir look selecionado"/>
</panel>
diff --git a/indra/newview/skins/default/xui/pt/panel_outfits_list.xml b/indra/newview/skins/default/xui/pt/panel_outfits_list.xml
new file mode 100644
index 0000000000..2b2e7c1dbf
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/panel_outfits_list.xml
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="Outfits">
+ <panel name="bottom_panel">
+ <button name="options_gear_btn" tool_tip="Mostrar opções adicionais"/>
+ <button name="trash_btn" tool_tip="Excluir o look selecionado"/>
+ </panel>
+</panel>
diff --git a/indra/newview/skins/default/xui/pt/panel_outfits_wearing.xml b/indra/newview/skins/default/xui/pt/panel_outfits_wearing.xml
new file mode 100644
index 0000000000..9224ec4742
--- /dev/null
+++ b/indra/newview/skins/default/xui/pt/panel_outfits_wearing.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" standalone="yes"?>
+<panel name="Wearing">
+ <panel name="bottom_panel">
+ <button name="options_gear_btn" tool_tip="Mostrar opções adicionais"/>
+ </panel>
+</panel>
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 03f997f31b..af6c9ea346 100644
--- a/indra/newview/skins/default/xui/pt/panel_place_profile.xml
+++ b/indra/newview/skins/default/xui/pt/panel_place_profile.xml
@@ -7,7 +7,7 @@
<string name="allocated" value="alocados"/>
<string name="title_place" value="Perfil da região"/>
<string name="title_teleport_history" value="Teletransportes"/>
- <string name="not_available" value="(N\A)"/>
+ <string name="not_available" value="(N/A)"/>
<string name="unknown" value="(Desconhecido)"/>
<string name="public" value="(público)"/>
<string name="none_text" value="(nenhum)"/>
@@ -36,7 +36,7 @@
Dados sobre o local não disponíveis no momento. Favor tentar mais tarde.
</string>
<string name="server_forbidden_text">
- Dados sobre o local controlados por lista de acesso. Verifique se você está autorizado a acessá-los com o dono do lote.
+ Dados sobre o local controlados por lista de acesso. Verifique se você está autorizado a acessá-los com o dono do lote.
</string>
<string name="acquired_date">
[wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local]
@@ -53,18 +53,18 @@
<text name="rating_label" value="Classificação:"/>
<text name="rating_value" value="desconhecido"/>
<text name="voice_label" value="Voz:"/>
- <text name="voice_value" value="Ligar"/>
+ <text name="voice_value" value="Ligado"/>
<text name="fly_label" value="Voar:"/>
- <text name="fly_value" value="Ligar"/>
- <text name="push_label" value="Empurrar:"/>
- <text name="push_value" value="Desligar"/>
+ <text name="fly_value" value="Ligado"/>
+ <text name="push_label" value="Empurrões:"/>
+ <text name="push_value" value="Desligado"/>
<text name="build_label" value="Construir:"/>
- <text name="build_value" value="Ligar"/>
+ <text name="build_value" value="Ligado"/>
<text name="scripts_label" value="Scripts:"/>
- <text name="scripts_value" value="Ligar"/>
+ <text name="scripts_value" value="Ligado"/>
<text name="damage_label" value="Dano:"/>
- <text name="damage_value" value="Desligar"/>
- <button label="Sobre terrenos" name="about_land_btn"/>
+ <text name="damage_value" value="Desligado"/>
+ <button label="Sobre o terreno" name="about_land_btn"/>
</panel>
</accordion_tab>
<accordion_tab name="region_information_tab" title="Região">
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 02b0ef35fe..1ec674e2e2 100644
--- a/indra/newview/skins/default/xui/pt/panel_preferences_chat.xml
+++ b/indra/newview/skins/default/xui/pt/panel_preferences_chat.xml
@@ -56,4 +56,27 @@
<radio_item label="Janelas separadas" name="radio" value="0"/>
<radio_item label="Guias" name="radio2" value="1"/>
</radio_group>
+ <check_box label="Traduzir Chat" name="translate_chat_checkbox" />
+ <text name="translate_language_text">
+ Chat Língua:
+ </text>
+ <combo_box name="translate_language_combobox">
+ <combo_box.item name="System Default Language" label="Padrão do Sistema" />
+ <combo_box.item name="English" label="English (Inglês)" />
+ <combo_box.item name="Danish" label="Dansk (Dinamarquês)" />
+ <combo_box.item name="German" label="Deutsch (Alemão)" />
+ <combo_box.item name="Spanish" label="Español (Espanhol)" />
+ <combo_box.item name="French" label="Français (Francês)" />
+ <combo_box.item name="Italian" label="Italiano" />
+ <combo_box.item name="Hungarian" label="Magyar (Húngaro)" />
+ <combo_box.item name="Dutch" label="Nederlands (Holandês)" />
+ <combo_box.item name="Polish" label="Polski (Polonês)" />
+ <combo_box.item name="Portugese" label="Português" />
+ <combo_box.item name="Russian" label="РуÑÑкий (Russo)" />
+ <combo_box.item name="Turkish" label="Türkçe (Turco)" />
+ <combo_box.item name="Ukrainian" label="УкраїнÑька (Ucraniano)" />
+ <combo_box.item name="Chinese" label="中文 (简体) (Chinês)" />
+ <combo_box.item name="Japanese" label="日本語 (Japonês)" />
+ <combo_box.item name="Korean" label="한국어 (Coreano)" />
+ </combo_box>
</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 ccf213099e..c24cc96d3b 100644
--- a/indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml
+++ b/indra/newview/skins/default/xui/pt/panel_preferences_graphics1.xml
@@ -50,10 +50,7 @@ rápido
m
</text>
<slider label="Contador máx. de partículas:" name="MaxParticleCount"/>
- <slider label="Distância máx. desenho avatar:" name="MaxAvatarDrawDistance"/>
- <text name="DrawDistanceMeterText3">
- m
- </text>
+ <slider label="Máx. de avatares legítimos:" name="MaxNumberAvatarDrawn"/>
<slider label="Qualidade de Pós-processamento:" name="RenderPostProcess"/>
<text name="MeshDetailText">
Detalhes de Malha:
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 0cf2b7a4af..ba4ebdb9bf 100644
--- a/indra/newview/skins/default/xui/pt/panel_preferences_privacy.xml
+++ b/indra/newview/skins/default/xui/pt/panel_preferences_privacy.xml
@@ -21,6 +21,6 @@
Localização dos logs:
</text>
<line_editor left="278" name="log_path_string" right="-20"/>
- <button label="Navegar" label_selected="Navegar" name="log_path_button" width="120"/>
- <button label="Lista dos bloqueados" name="block_list"/>
+ <button label="Procurar" label_selected="Procurar" name="log_path_button" width="120"/>
+ <button label="Lista de bloqueados" name="block_list"/>
</panel>
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 43c970841a..5be07f4d1f 100644
--- a/indra/newview/skins/default/xui/pt/panel_preferences_sound.xml
+++ b/indra/newview/skins/default/xui/pt/panel_preferences_sound.xml
@@ -11,8 +11,8 @@
<check_box label="Ativado" name="enable_media"/>
<slider label="Bate-papo de voz" name="Voice Volume"/>
<check_box label="Ativado" name="enable_voice_check"/>
- <check_box label="Autorizar auto-play de mídias" name="media_auto_play_btn" tool_tip="Marque esta opção para auto-executar mídias, se elas quiserem"/>
- <check_box label="Tocar mídia anexada em outros avatares" name="media_show_on_others_btn" tool_tip="Desmarque esta opção para ocultar mídias anexadas em avatares por perto"/>
+ <check_box label="Autorizar auto-play de mídias" name="media_auto_play_btn" tool_tip="Marque esta opção para auto-executar mídias, se elas quiserem" value="true"/>
+ <check_box label="Tocar mídia anexada em outros avatares" name="media_show_on_others_btn" tool_tip="Desmarque esta opção para ocultar mídias anexadas em avatares por perto" value="true"/>
<text name="voice_chat_settings">
Configuração de bate-papo de voz
</text>
@@ -28,6 +28,12 @@
<panel.string name="default_text">
Padrão
</panel.string>
+ <panel.string name="default system device">
+ Dispositivo padrão do sistema
+ </panel.string>
+ <panel.string name="no device">
+ Nenhum
+ </panel.string>
<text name="Input">
Entrada
</text>
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 a1254b4da0..9e07b6772f 100644
--- a/indra/newview/skins/default/xui/pt/panel_prim_media_controls.xml
+++ b/indra/newview/skins/default/xui/pt/panel_prim_media_controls.xml
@@ -13,9 +13,9 @@
50
</string>
<layout_stack name="progress_indicator_area">
- <panel name="media_progress_indicator">
+ <layout_panel name="media_progress_indicator">
<progress_bar name="media_progress_bar" tool_tip="Carregando mídia"/>
- </panel>
+ </layout_panel>
</layout_stack>
<layout_stack name="media_controls">
<layout_panel name="back">
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 d1a5eaa11e..e06f3c74bf 100644
--- a/indra/newview/skins/default/xui/pt/panel_region_general.xml
+++ b/indra/newview/skins/default/xui/pt/panel_region_general.xml
@@ -18,26 +18,26 @@
<text name="region_type">
desconhecido
</text>
- <check_box label="Bloquear Terraform" name="block_terraform_check"/>
- <check_box label="Bloquear Vôo" name="block_fly_check"/>
- <check_box label="Permitir Dano" name="allow_damage_check"/>
- <check_box label="Restringir Empurrar" name="restrict_pushobject"/>
- <check_box label="Permitir Revenda de Terra" name="allow_land_resell_check"/>
- <check_box label="Permitir Unir/Dividir Terra" name="allow_parcel_changes_check"/>
- <check_box label="Bloquear Mostrar Terra na Busca" name="block_parcel_search_check" tool_tip="Permitir que as pessoas vejam esta região e seus lotes nos resultados de busca"/>
- <spinner label="Limit do Agente" name="agent_limit_spin"/>
- <spinner label="Objeto Bonus" name="object_bonus_spin"/>
+ <check_box label="Bloquear terraplenagem" name="block_terraform_check"/>
+ <check_box label="Bloquear voos" name="block_fly_check"/>
+ <check_box label="Permitir dano" name="allow_damage_check"/>
+ <check_box label="Restringir empurrões" name="restrict_pushobject"/>
+ <check_box label="Permitir revenda do terreno" name="allow_land_resell_check"/>
+ <check_box label="Permitir junção/divisão do terreno" name="allow_parcel_changes_check"/>
+ <check_box label="Bloquear exibição do terreno na busca" name="block_parcel_search_check" tool_tip="Permitir que as pessoas vejam esta região e seus lotes nos resultados de busca"/>
+ <spinner label="Limite do agente" name="agent_limit_spin"/>
+ <spinner label="Bônus de objetos" name="object_bonus_spin"/>
<text label="Maturidade" name="access_text">
Classificação:
</text>
<icons_combo_box label="Mature" name="access_combo">
- <icons_combo_box.item label="Adult" name="Adult" value="42"/>
- <icons_combo_box.item label="Mature" name="Mature" value="21"/>
- <icons_combo_box.item label="PG" name="PG" value="13"/>
+ <icons_combo_box.item label="Adulto" name="Adult" value="42"/>
+ <icons_combo_box.item label="Moderado" name="Mature" value="21"/>
+ <icons_combo_box.item label="Geral" name="PG" value="13"/>
</icons_combo_box>
<button label="Aplicar" name="apply_btn"/>
<button label="Teletransportar um residente para início..." name="kick_btn"/>
<button label="Teletransportar todos para início..." name="kick_all_btn"/>
- <button label="Enviar Mensagem para a Região..." name="im_btn"/>
- <button label="Gerenciar Telehub..." name="manage_telehub_btn"/>
+ <button label="Enviar mensagem para a região..." name="im_btn"/>
+ <button label="Gerenciar telehub..." name="manage_telehub_btn"/>
</panel>
diff --git a/indra/newview/skins/default/xui/pt/panel_region_general_layout.xml b/indra/newview/skins/default/xui/pt/panel_region_general_layout.xml
deleted file mode 100644
index 534b2826af..0000000000
--- a/indra/newview/skins/default/xui/pt/panel_region_general_layout.xml
+++ /dev/null
@@ -1,43 +0,0 @@
-<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel label="Região" name="General">
- <text name="region_text_lbl">
- Região:
- </text>
- <text name="region_text">
- (Desconhecido)
- </text>
- <text name="version_channel_text_lbl">
- Versão:
- </text>
- <text name="version_channel_text">
- (Desconhecido)
- </text>
- <text name="region_type_lbl">
- Tipo:
- </text>
- <text name="region_type">
- (Desconhecido)
- </text>
- <check_box label="Bloquear terraplanagens" name="block_terraform_check"/>
- <check_box label="Bloquear voos" name="block_fly_check"/>
- <check_box label="Permitir danos" name="allow_damage_check"/>
- <check_box label="Limitar empurrões" name="restrict_pushobject"/>
- <check_box label="Permitir revenda de terrenos" name="allow_land_resell_check"/>
- <check_box label="Permitir união e divisão de terrenos" name="allow_parcel_changes_check"/>
- <check_box label="Não mostrar nos resultados de pesquisa" name="block_parcel_search_check" tool_tip="Mostrar esta região e lotes nos resultados de pesquisa"/>
- <spinner label="Limite do agente" name="agent_limit_spin"/>
- <spinner label="Bônus do objeto" name="object_bonus_spin"/>
- <text label="Nível de maturidade" name="access_text">
- Classificação:
- </text>
- <combo_box label="Moderado" name="access_combo">
- <combo_box.item label="Público adulto" name="Adult"/>
- <combo_box.item label="Moderado" name="Mature"/>
- <combo_box.item label="Geral" name="PG"/>
- </combo_box>
- <button label="Aplicar" name="apply_btn"/>
- <button label="Teletransportar um residente para início..." name="kick_btn"/>
- <button label="Teletransportar todos para início..." name="kick_all_btn"/>
- <button label="Enviar mensagem para região..." name="im_btn"/>
- <button label="Gerenciar telehub..." name="manage_telehub_btn"/>
-</panel>
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 ba83fee7ba..b77064a1ff 100644
--- a/indra/newview/skins/default/xui/pt/panel_teleport_history.xml
+++ b/indra/newview/skins/default/xui/pt/panel_teleport_history.xml
@@ -1,10 +1,11 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="Teleport History">
<accordion name="history_accordion">
+ <no_matched_tabs_text name="no_matched_teleports_msg" value="Não encontrou o que procura? Tente fazer uma [secondlife:///app/search/groups/[SEARCH_TERM] Busca]."/>
+ <no_visible_tabs_text name="no_teleports_msg" value="Histórico de teletransportes vazio. Tente fazer uma [secondlife:///app/search/groups Busca]."/>
<accordion_tab name="today" title="Hoje"/>
<accordion_tab name="yesterday" title="Ontem"/>
<accordion_tab name="2_days_ago" title="2 dias atrás"/>
- 5
<accordion_tab name="3_days_ago" title="3 dias atrás"/>
<accordion_tab name="4_days_ago" title="4 dias atrás"/>
<accordion_tab name="5_days_ago" title="5 dias atrás"/>
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 08e89f46f9..1d7878408a 100644
--- a/indra/newview/skins/default/xui/pt/panel_voice_effect.xml
+++ b/indra/newview/skins/default/xui/pt/panel_voice_effect.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<panel name="panel_voice_effect">
<string name="no_voice_effect">
- Não distorcer voz
+ Distorção de voz desligada
</string>
<string name="preview_voice_effects">
Checar distorção de voz ▶
@@ -10,6 +10,6 @@
Distorcer voz â–¶
</string>
<combo_box name="voice_effect" tool_tip="Selecione um efeito de distorção para mudar sua voz.">
- <combo_box.item label="Não distorcer voz" name="no_voice_effect"/>
+ <combo_box.item label="Distorção de voz desligada" name="no_voice_effect"/>
</combo_box>
</panel>
diff --git a/indra/newview/skins/default/xui/pt/role_actions.xml b/indra/newview/skins/default/xui/pt/role_actions.xml
index 2e6e4dd133..88fd4b3ca8 100644
--- a/indra/newview/skins/default/xui/pt/role_actions.xml
+++ b/indra/newview/skins/default/xui/pt/role_actions.xml
@@ -2,7 +2,7 @@
<role_actions>
<action_set description="Esta habilidades incluem poderes de adicionar ou remover membros do grupo e permitir que novos membros se juntem sem um convite." name="Membership">
<action description="Convidar pessoas para este grupo" longdescription="Em Membros &gt; Cargos, use o botão &apos;Convidar&apos; para convidar pessoas para entrar no grupo." name="member invite"/>
- <action description="Expulsar membros deste grupo" longdescription="Em Membros &gt; Cargos, use o botão &apos;Ejetar&apos; para tirar pessoas do grupo. Proprietários podem expulsar qualquer pessoa, menos outro proprietário. Se você não é Proprietário, um membro só pode ser expulso se tiver cargo &apos;Todos&apos; e nenhum outro cargo. Para destituir um membro de seu cargo, você precisa ter a função &apos;Destituir membro com cargo&apos;." name="member eject"/>
+ <action description="Expulsar membros deste grupo" longdescription="Em Membros &gt; Cargos, use o botão &apos;Ejetar&apos; para tirar pessoas do grupo. Proprietários podem expulsar qualquer pessoa, menos outro proprietário. Se você não é Proprietário, um membro só pode ser expulso se tiver cargo &apos;Todos&apos; e nenhum outro cargo. Para destituir um membro de seu cargo, você precisa ter a função &apos;Destituir membro com cargo&apos;." name="member eject"/>
<action description="Alterna entre &apos;Inscrições abertas&apos; e &apos;Taxa de associação&apos;." longdescription="Ative &apos;Inscrições abertas&apos; para que novos membros entrem no grupo sem convite, mude a &apos;Taxa de associação&apos; na seção Geral." name="member options"/>
</action_set>
<action_set description="Estas habilidades incluem poderes de adicionar, remover e mudar funções do grupo; adicionar e remover membros em funções e designar habilidades a funções." name="Roles">
@@ -18,7 +18,7 @@
<action description="Mudar apresentação, insígnia, &apos;Publicar na web&apos;, e quais membros estão publicamente visíveis em Informações do Grupo." longdescription="Modificar o estatuto, símbolo e exibição nos resultados de busca. Use a seção Geral." name="group change identity"/>
</action_set>
<action_set description="Estas funções incluem poderes de transferir, vender e modificar os terrenos do grupo. Para acessar a janela &apos;Sobre terrenos&apos;, clique no chão com o botão direito e selecione &apos;Sobre terrenos&apos;. Ou clique no ícone &apos;i&apos; da barra de navegação." name="Parcel Management">
- <action description="Transferir e comprar terreno para o grupo" longdescription="Transfere e compre terreno para o grupo. É feito em Sobre o terreno &gt; aba Geral." name="land deed"/>
+ <action description="Transferir e comprar terreno para o grupo" longdescription="Transfere e compre terreno para o grupo. É feito em Sobre o terreno &gt; aba Geral." name="land deed"/>
<action description="Abandonar terreno para Governador Linden" longdescription="Abandone terreno para Governador Linden. *AVISO* Qualquer membro em uma função com esta habilidade pode abandonar o terreno pertencente ao grupo em Sobre o terreno &gt; aba Geral, revertendo à posse Linden sem uma venda! Certifique-se de saber o que está fazendo antes de designar esta habilidade." name="land release"/>
<action description="Definir terreno para informação de venda" longdescription="Defina informações de venda para terreno. *AVISO* Qualquer membro em uma função com esta habilidade pode vender terrenos pertencentes ao grupo em Sobre o terreno &gt; aba Geral como quiser! Certifique-se de sabe o que está fazendo antes de designar esta habilidade." name="land set sale info"/>
<action description="Subdividir e unir parcelas" longdescription="Juntar ou dividir lotes. Clique no chão com o botão direito, selecione &apos;Editar terreno&apos; e arraste o mouse sobre o terreno para ver as opções. Para dividir um terreno, selecione a área a ser dividida e clique em &apos;Dividir&apos;. Para juntar terrenos, selecione dois ou mais lotes adjacentes e clique em &apos;Juntar&apos;." name="land divide join"/>
diff --git a/indra/newview/skins/default/xui/pt/sidepanel_appearance.xml b/indra/newview/skins/default/xui/pt/sidepanel_appearance.xml
index f075f45b8f..a5048e63b2 100644
--- a/indra/newview/skins/default/xui/pt/sidepanel_appearance.xml
+++ b/indra/newview/skins/default/xui/pt/sidepanel_appearance.xml
@@ -3,12 +3,14 @@
<string name="No Outfit" value="Nenhum"/>
<string name="Unsaved Changes" value="Mudanças não salvas"/>
<string name="Now Wearing" value="Look atual..."/>
+ <string name="Changing outfits" value="Mudando de look"/>
<panel name="panel_currentlook">
<button label="E" name="editappearance_btn"/>
<button label="O" name="openoutfit_btn"/>
<text name="currentlook_status">
(Status)
</text>
+ <button label="" name="edit_outfit_btn" tool_tip="Editar este look"/>
</panel>
<filter_editor label="Filtrar looks" name="Filter"/>
</panel>
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 4fc50bac67..5af3a73d3d 100644
--- a/indra/newview/skins/default/xui/pt/sidepanel_item_info.xml
+++ b/indra/newview/skins/default/xui/pt/sidepanel_item_info.xml
@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
-<panel name="item properties" title="Perfil do objeto">
+<panel name="item properties" title="Perfil do item">
<panel.string name="unknown">
(desconhecido)
</panel.string>
@@ -15,9 +15,15 @@
<panel.string name="acquiredDate">
[wkday,datetime,local] [mth,datetime,local] [day,datetime,local] [hour,datetime,local]:[min,datetime,local]:[second,datetime,local] [year,datetime,local]
</panel.string>
- <text name="title" value="Perfil do objeto"/>
- <text name="where" value="(Inventário)"/>
- <panel label="">
+ <panel.string name="origin_inventory">
+ (Inventário)
+ </panel.string>
+ <panel.string name="origin_inworld">
+ (Inworld)
+ </panel.string>
+ <text name="title" value="Perfil do item"/>
+ <text name="origin" value="(Inventário)"/>
+ <panel label="" name="item_profile">
<text name="LabelItemNameTitle">
Nome:
</text>
@@ -35,9 +41,7 @@
<text name="LabelAcquiredTitle">
Adquirido:
</text>
- <text name="LabelAcquiredDate">
- Quarta 24 de Maio 12:50:46 2006
- </text>
+ <text name="LabelAcquiredDate"/>
<panel name="perms_inv">
<text name="perm_modify">
Você pode:
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 9193730018..dd65810b22 100644
--- a/indra/newview/skins/default/xui/pt/sidepanel_task_info.xml
+++ b/indra/newview/skins/default/xui/pt/sidepanel_task_info.xml
@@ -37,7 +37,7 @@
Venda mista
</panel.string>
<text name="title" value="Perfil do objeto"/>
- <text name="where" value="(inworld)"/>
+ <text name="where" value="(Inworld)"/>
<panel label="" name="properties_panel">
<text name="Name:">
Nome:
diff --git a/indra/newview/skins/default/xui/pt/strings.xml b/indra/newview/skins/default/xui/pt/strings.xml
index 80f52dfe46..b6ecc9347b 100644
--- a/indra/newview/skins/default/xui/pt/strings.xml
+++ b/indra/newview/skins/default/xui/pt/strings.xml
@@ -184,6 +184,7 @@
<string name="TooltipMustSingleDrop">
Apenas um item único pode ser arrastado para este local
</string>
+ <string name="TooltipPrice" value="L$[AMOUNT]"/>
<string name="TooltipHttpUrl">
Clique para ver a página web
</string>
@@ -236,7 +237,6 @@
Clique para ativar no secondlife:// comando
</string>
<string name="CurrentURL" value="URL atual: [CurrentURL]"/>
- <string name="TooltipPrice" value="L$[PRICE]-"/>
<string name="SLurlLabelTeleport">
Teletransportar para
</string>
@@ -297,6 +297,9 @@
<string name="ReleaseNotes">
Notas de versão
</string>
+ <string name="RELEASE_NOTES_BASE_URL">
+ http://wiki.secondlife.com/wiki/Release_Notes/
+ </string>
<string name="LoadingData">
Carregando...
</string>
@@ -642,6 +645,9 @@
<string name="worldmap_offline">
Offline
</string>
+ <string name="worldmap_item_tooltip_format">
+ L$[PRICE] por [AREA] m²
+ </string>
<string name="worldmap_results_none_found">
Nenhum encontrado.
</string>
@@ -843,6 +849,9 @@
<string name="invalid">
Inválido
</string>
+ <string name="none">
+ nenhum
+ </string>
<string name="shirt_not_worn">
Camisa não vestida
</string>
@@ -879,12 +888,57 @@
<string name="invalid_not_worn">
inválido
</string>
+ <string name="create_new_shape">
+ Criar novo físico
+ </string>
+ <string name="create_new_skin">
+ Criar pele nova
+ </string>
+ <string name="create_new_hair">
+ Criar cabelo novo
+ </string>
+ <string name="create_new_eyes">
+ Criar olhos novos
+ </string>
+ <string name="create_new_shirt">
+ Criar camisa nova
+ </string>
+ <string name="create_new_pants">
+ Criar calças novas
+ </string>
+ <string name="create_new_shoes">
+ Criar sapatos novos
+ </string>
+ <string name="create_new_socks">
+ Criar meias novas
+ </string>
+ <string name="create_new_jacket">
+ Criar jaqueta nova
+ </string>
+ <string name="create_new_gloves">
+ Criar luvas novas
+ </string>
+ <string name="create_new_undershirt">
+ Criar camiseta nova
+ </string>
+ <string name="create_new_underpants">
+ Criar roupa de baixo nova
+ </string>
+ <string name="create_new_skirt">
+ Criar saia nova
+ </string>
+ <string name="create_new_alpha">
+ Criar Alpha novo
+ </string>
+ <string name="create_new_tattoo">
+ Criar nova tatuagem
+ </string>
+ <string name="create_new_invalid">
+ inválido
+ </string>
<string name="NewWearable">
Novo [WEARABLE_ITEM]
</string>
- <string name="CreateNewWearable">
- Criar [WEARABLE_TYPE]
- </string>
<string name="next">
Próximo
</string>
@@ -983,6 +1037,7 @@
<string name="AnimFlagStop" value="Parar animação"/>
<string name="AnimFlagStart" value="Iniciar animação"/>
<string name="Wave" value="Acenar"/>
+ <string name="GestureActionNone" value="Nenhum"/>
<string name="HelloAvatar" value="Olá, avatar!"/>
<string name="ViewAllGestures" value="Ver todos&gt;&gt;"/>
<string name="GetMoreGestures" value="Mais &gt;&gt;"/>
@@ -1062,12 +1117,18 @@
<string name="InvFolder Gestures">
Gestos
</string>
+ <string name="InvFolder Favorite">
+ Favoritos
+ </string>
<string name="InvFolder favorite">
Favoritos
</string>
<string name="InvFolder Current Outfit">
Look atual
</string>
+ <string name="InvFolder Initial Outfits">
+ Looks iniciais
+ </string>
<string name="InvFolder My Outfits">
Meus looks
</string>
@@ -1387,6 +1448,7 @@
<string name="SummaryForTheWeek" value="Resumo para esta semana, com início em"/>
<string name="NextStipendDay" value="Próximo dia de salário é"/>
<string name="GroupIndividualShare" value="Grupo Divisão individualI"/>
+ <string name="GroupColumn" value="Grupo"/>
<string name="Balance">
Balanço
</string>
@@ -1582,21 +1644,30 @@
<string name="ATTACH_HUD_BOTTOM_RIGHT">
HUD direito inferior
</string>
+ <string name="Bad attachment point">
+ Ponto de encaixe inválido
+ </string>
<string name="CursorPos">
Linha [LINE], Coluna [COLUMN]
</string>
<string name="PanelDirCountFound">
[COUNT] encontrado
</string>
- <string name="PanelContentsNewScript">
- Novo Script
- </string>
<string name="PanelContentsTooltip">
Conteúdo do objeto
</string>
+ <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>
+ <string name="NoOutfits">
+ Você ainda não tem nenhum look. Tente encontrar um na [secondlife:///app/search/groups Busca].
+ </string>
+ <string name="NoOutfitsTabsMatched">
+ Não encontrou o que procura? Tente fazer uma [secondlife:///app/search/people/[SEARCH_TERM] Busca].
+ </string>
<string name="MuteByName">
(por nome)
</string>
@@ -3516,6 +3587,9 @@ If you continue to receive this message, contact the [SUPPORT_SITE].
<string name="group_role_owners">
Proprietários
</string>
+ <string name="group_member_status_online">
+ Conectado
+ </string>
<string name="uploading_abuse_report">
Carregando...
@@ -3569,9 +3643,15 @@ Denunciar abuso
<string name="Invalid Wearable">
Item inválido
</string>
+ <string name="New Gesture">
+ Novo gesto
+ </string>
<string name="New Script">
Novo script
</string>
+ <string name="New Note">
+ Nova nota
+ </string>
<string name="New Folder">
Nova pasta
</string>
@@ -3629,6 +3709,15 @@ Denunciar abuso
<string name="Male - Wow">
Wow - masculino
</string>
+ <string name="Female - Chuckle">
+ Engraçado - Feminino
+ </string>
+ <string name="Female - Cry">
+ Chorar - Feminino
+ </string>
+ <string name="Female - Embarrassed">
+ Com vergonha - Feminino
+ </string>
<string name="Female - Excuse me">
Perdão - fem
</string>
@@ -3647,9 +3736,21 @@ Denunciar abuso
<string name="Female - Hey">
Ôpa - feminino
</string>
+ <string name="Female - Hey baby">
+ E aí, beliza? - Feminino
+ </string>
<string name="Female - Laugh">
Risada - feminina
</string>
+ <string name="Female - Looking good">
+ Que chique - Feminino
+ </string>
+ <string name="Female - Over here">
+ Acenar - Feminino
+ </string>
+ <string name="Female - Please">
+ Por favor - Feminino
+ </string>
<string name="Female - Repulsed">
Quero distância! - feminino
</string>
@@ -3699,4 +3800,46 @@ Denunciar abuso
<string name="dateTimePM">
PM
</string>
+ <string name="LocalEstimateUSD">
+ US$ [AMOUNT]
+ </string>
+ <string name="Membership">
+ Plano
+ </string>
+ <string name="Roles">
+ Cargos
+ </string>
+ <string name="Group Identity">
+ Identidade do lote
+ </string>
+ <string name="Parcel Management">
+ Gestão do lote
+ </string>
+ <string name="Parcel Identity">
+ ID do lote
+ </string>
+ <string name="Parcel Settings">
+ Configurações do lote
+ </string>
+ <string name="Parcel Powers">
+ Poderes do lote
+ </string>
+ <string name="Parcel Access">
+ Acesso ao lote
+ </string>
+ <string name="Parcel Content">
+ Conteúdo do lote
+ </string>
+ <string name="Object Management">
+ Gestão de objetos
+ </string>
+ <string name="Accounting">
+ Contabilidade
+ </string>
+ <string name="Notices">
+ Avisos
+ </string>
+ <string name="Chat">
+ Bate-papo
+ </string>
</strings>
diff --git a/indra/newview/skins/paths.xml b/indra/newview/skins/paths.xml
index 3b91a904b0..e6d68488ea 100644
--- a/indra/newview/skins/paths.xml
+++ b/indra/newview/skins/paths.xml
@@ -1,4 +1,10 @@
<paths>
- <directory>xui/en</directory>
- <directory>xui/[LANGUAGE]</directory>
+ <directory>
+ <subdir>xui</subdir>
+ <subdir>en</subdir>
+ </directory>
+ <directory>
+ <subdir>xui</subdir>
+ <subdir>[LANGUAGE]</subdir>
+ </directory>
</paths> \ No newline at end of file
diff --git a/indra/newview/tests/llagentaccess_test.cpp b/indra/newview/tests/llagentaccess_test.cpp
index e08193f785..c970d79975 100644
--- a/indra/newview/tests/llagentaccess_test.cpp
+++ b/indra/newview/tests/llagentaccess_test.cpp
@@ -2,31 +2,25 @@
* @file llagentaccess_test.cpp
* @brief LLAgentAccess tests
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -80,7 +74,7 @@ namespace tut
typedef test_group<agentaccess> agentaccess_t;
typedef agentaccess_t::object agentaccess_object_t;
- tut::agentaccess_t tut_agentaccess("agentaccess");
+ tut::agentaccess_t tut_agentaccess("LLAgentAccess");
template<> template<>
void agentaccess_object_t::test<1>()
diff --git a/indra/newview/tests/llcapabilitylistener_test.cpp b/indra/newview/tests/llcapabilitylistener_test.cpp
index ca7d02fc68..9da851ffc4 100644
--- a/indra/newview/tests/llcapabilitylistener_test.cpp
+++ b/indra/newview/tests/llcapabilitylistener_test.cpp
@@ -4,31 +4,25 @@
* @date 2008-12-31
* @brief Test for llcapabilitylistener.cpp.
*
- * $LicenseInfo:firstyear=2008&license=viewergpl$
- *
- * Copyright (c) 2008-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2008&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
diff --git a/indra/newview/tests/lldateutil_test.cpp b/indra/newview/tests/lldateutil_test.cpp
index 7ba82fbd2c..99b346cff8 100644
--- a/indra/newview/tests/lldateutil_test.cpp
+++ b/indra/newview/tests/lldateutil_test.cpp
@@ -1,31 +1,25 @@
/**
* @file lldateutil_test.cpp
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -109,7 +103,7 @@ namespace tut
typedef test_group<dateutil> dateutil_t;
typedef dateutil_t::object dateutil_object_t;
- tut::dateutil_t tut_dateutil("dateutil");
+ tut::dateutil_t tut_dateutil("LLDateUtil");
template<> template<>
void dateutil_object_t::test<1>()
diff --git a/indra/newview/tests/lllogininstance_test.cpp b/indra/newview/tests/lllogininstance_test.cpp
index 1c29feec5f..db50b89620 100644
--- a/indra/newview/tests/lllogininstance_test.cpp
+++ b/indra/newview/tests/lllogininstance_test.cpp
@@ -2,8 +2,25 @@
* @file lllogininstance_test.cpp
* @brief Test for lllogininstance.cpp.
*
- * $LicenseInfo:firstyear=2008&license=viewergpl$
- * Copyright (c) 2008, Linden Research, Inc.
+ * $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$
*/
@@ -45,6 +62,12 @@ LLSLURL LLStartUp::sStartSLURL;
static std::string gLoginURI;
static LLSD gLoginCreds;
static bool gDisconnectCalled = false;
+
+#include "../llviewerwindow.h"
+void LLViewerWindow::setShowProgress(BOOL show) {}
+
+LLViewerWindow* gViewerWindow;
+
class LLLogin::Impl
{
};
@@ -90,6 +113,8 @@ void LLGridManager::addGrid(LLSD& grid_data)
{
}
LLGridManager::LLGridManager()
+:
+ mIsInProductionGrid(false)
{
}
@@ -226,6 +251,16 @@ S32 LLNotification::getSelectedOption(const LLSD& notification, const LLSD& resp
return response.asInteger();
}
+//-----------------------------------------------------------------------------
+#include "../llmachineid.h"
+unsigned char gMACAddress[MAC_ADDRESS_BYTES] = {77,21,46,31,89,2};
+
+S32 LLMachineID::getUniqueID(unsigned char *unique_id, size_t len)
+{
+ memcpy(unique_id, gMACAddress, len);
+ return 1;
+}
+//-----------------------------------------------------------------------------
// misc
std::string xml_escape_string(const std::string& in)
{
@@ -287,7 +322,7 @@ namespace tut
typedef test_group<lllogininstance_data> lllogininstance_group;
typedef lllogininstance_group::object lllogininstance_object;
- lllogininstance_group llsdmgr("lllogininstance");
+ lllogininstance_group llsdmgr("LLLoginInstance");
template<> template<>
void lllogininstance_object::test<1>()
diff --git a/indra/newview/tests/llmediadataclient_test.cpp b/indra/newview/tests/llmediadataclient_test.cpp
index 33d413bd21..0254c5881f 100644
--- a/indra/newview/tests/llmediadataclient_test.cpp
+++ b/indra/newview/tests/llmediadataclient_test.cpp
@@ -2,31 +2,25 @@
* @file llmediadataclient_test.cpp
* @brief LLMediaDatClient tests
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -70,8 +64,8 @@
#define MEDIA_DATA "\
<array> \
-<string>foo</string> \
-<string>bar</string> \
+<string>http://foo.example.com</string> \
+<string>http://bar.example.com</string> \
<string>baz</string> \
</array>"
@@ -167,6 +161,8 @@ public:
{ return mRep["media_data"].size(); }
virtual LLSD getMediaDataLLSD(U8 index) const
{ return mRep["media_data"][(LLSD::Integer)index]; }
+ virtual bool isCurrentMediaUrl(U8 index, const std::string &url) const
+ { return (mRep["media_data"][(LLSD::Integer)index].asString() == url); }
virtual LLUUID getID() const
{ return mRep["uuid"]; }
virtual void mediaNavigateBounceBack(U8 index)
@@ -240,7 +236,7 @@ namespace tut
typedef test_group<mediadataclient> mediadataclient_t;
typedef mediadataclient_t::object mediadataclient_object_t;
- tut::mediadataclient_t tut_mediadataclient("mediadataclient");
+ tut::mediadataclient_t tut_mediadataclient("LLMediaDataClient");
void ensure(const std::string &msg, int value, int expected)
{
@@ -567,38 +563,39 @@ namespace tut
mdc->fetchMedia(o2);
mdc->fetchMedia(o3);
mdc->fetchMedia(o4);
+
+ ensure("is in queue 1", mdc->isInQueue(o1));
+ ensure("is in queue 2", mdc->isInQueue(o2));
+ ensure("is in queue 3", mdc->isInQueue(o3));
+ ensure("is in queue 4", mdc->isInQueue(o4));
+ ensure("post records", gPostRecords->size(), 0);
- // and mark the second and fourth ones dead.
+ // and mark the second and fourth ones dead. Call removeFromQueue when marking dead, since this is what LLVOVolume will do.
dynamic_cast<LLMediaDataClientObjectTest*>(static_cast<LLMediaDataClientObject*>(o2))->markDead();
+ mdc->removeFromQueue(o2);
dynamic_cast<LLMediaDataClientObjectTest*>(static_cast<LLMediaDataClientObject*>(o4))->markDead();
+ mdc->removeFromQueue(o4);
+ // The removeFromQueue calls should remove the second and fourth ones
ensure("is in queue 1", mdc->isInQueue(o1));
- ensure("is in queue 2", mdc->isInQueue(o2));
+ ensure("is not in queue 2", !mdc->isInQueue(o2));
ensure("is in queue 3", mdc->isInQueue(o3));
- ensure("is in queue 4", mdc->isInQueue(o4));
+ ensure("is not in queue 4", !mdc->isInQueue(o4));
ensure("post records", gPostRecords->size(), 0);
::pump_timers();
- // The first tick should remove the first one
+ // The first tick should process the first item
ensure("is not in queue 1", !mdc->isInQueue(o1));
- ensure("is in queue 2", mdc->isInQueue(o2));
+ ensure("is not in queue 2", !mdc->isInQueue(o2));
ensure("is in queue 3", mdc->isInQueue(o3));
- ensure("is in queue 4", mdc->isInQueue(o4));
+ ensure("is not in queue 4", !mdc->isInQueue(o4));
ensure("post records", gPostRecords->size(), 1);
::pump_timers();
- // The second tick should skip the second and remove the third
- ensure("is not in queue 2", !mdc->isInQueue(o2));
+ // The second tick should process the third, emptying the queue
ensure("is not in queue 3", !mdc->isInQueue(o3));
- ensure("is in queue 4", mdc->isInQueue(o4));
- ensure("post records", gPostRecords->size(), 2);
-
- ::pump_timers();
-
- // The third tick should skip the fourth one and empty the queue.
- ensure("is not in queue 4", !mdc->isInQueue(o4));
ensure("post records", gPostRecords->size(), 2);
ensure("queue empty", mdc->isEmpty());
@@ -709,7 +706,7 @@ namespace tut
// queue up all 4 objects. The first two should be in the sorted
// queue [2 1], the second in the round-robin queue. The queues
// are serviced interleaved, so we should expect:
- // 2, 4, 1, 3
+ // 2, 3, 1, 4
mdc->fetchMedia(o1);
mdc->fetchMedia(o2);
mdc->fetchMedia(o3);
@@ -728,8 +725,8 @@ namespace tut
++tick_num;
// 1 The first tick should remove object 2
- ensure(STR(tick_num) + ". is not in queue 2", !mdc->isInQueue(o2));
ensure(STR(tick_num) + ". is in queue 1", mdc->isInQueue(o1));
+ ensure(STR(tick_num) + ". is not in queue 2", !mdc->isInQueue(o2));
ensure(STR(tick_num) + ". is in queue 3", mdc->isInQueue(o3));
ensure(STR(tick_num) + ". is in queue 4", mdc->isInQueue(o4));
ensure(STR(tick_num) + ". post records", gPostRecords->size(), 1);
@@ -738,22 +735,21 @@ namespace tut
::pump_timers();
++tick_num;
- // 2 The second tick should send object 4, but it will still be
- // "in the queue"
- ensure(STR(tick_num) + ". is not in queue 2", !mdc->isInQueue(o2));
+ // 2 The second tick should send object 3
ensure(STR(tick_num) + ". is in queue 1", mdc->isInQueue(o1));
- ensure(STR(tick_num) + ". is in queue 3", mdc->isInQueue(o3));
+ ensure(STR(tick_num) + ". is not in queue 2", !mdc->isInQueue(o2));
+ ensure(STR(tick_num) + ". is not in queue 3", !mdc->isInQueue(o3));
ensure(STR(tick_num) + ". is in queue 4", mdc->isInQueue(o4));
ensure(STR(tick_num) + ". post records", gPostRecords->size(), 2);
- ensure(STR(tick_num) + ". post object id", (*gPostRecords)[1]["body"][LLTextureEntry::OBJECT_ID_KEY].asUUID(), LLUUID(VALID_OBJECT_ID_4));
+ ensure(STR(tick_num) + ". post object id", (*gPostRecords)[1]["body"][LLTextureEntry::OBJECT_ID_KEY].asUUID(), LLUUID(VALID_OBJECT_ID_3));
::pump_timers();
++tick_num;
// 3 The third tick should remove object 1
- ensure(STR(tick_num) + ". is not in queue 2", !mdc->isInQueue(o2));
ensure(STR(tick_num) + ". is not in queue 1", !mdc->isInQueue(o1));
- ensure(STR(tick_num) + ". is in queue 3", mdc->isInQueue(o3));
+ ensure(STR(tick_num) + ". is not in queue 2", !mdc->isInQueue(o2));
+ ensure(STR(tick_num) + ". is not in queue 3", !mdc->isInQueue(o3));
ensure(STR(tick_num) + ". is in queue 4", mdc->isInQueue(o4));
ensure(STR(tick_num) + ". post records", gPostRecords->size(), 3);
ensure(STR(tick_num) + ". post object id", (*gPostRecords)[2]["body"][LLTextureEntry::OBJECT_ID_KEY].asUUID(), LLUUID(VALID_OBJECT_ID_1));
@@ -761,22 +757,20 @@ namespace tut
::pump_timers();
++tick_num;
- // 4 The fourth tick should send object 3, but it will still be
- // "in the queue"
- ensure(STR(tick_num) + ". is not in queue 2", !mdc->isInQueue(o2));
+ // 4 The fourth tick should send object 4
ensure(STR(tick_num) + ". is not in queue 1", !mdc->isInQueue(o1));
- ensure(STR(tick_num) + ". is in queue 3", mdc->isInQueue(o3));
- ensure(STR(tick_num) + ". is in queue 4", mdc->isInQueue(o4));
+ ensure(STR(tick_num) + ". is not in queue 2", !mdc->isInQueue(o2));
+ ensure(STR(tick_num) + ". is not in queue 3", !mdc->isInQueue(o3));
+ ensure(STR(tick_num) + ". is not in queue 4", !mdc->isInQueue(o4));
ensure(STR(tick_num) + ". post records", gPostRecords->size(), 4);
- ensure(STR(tick_num) + ". post object id", (*gPostRecords)[3]["body"][LLTextureEntry::OBJECT_ID_KEY].asUUID(), LLUUID(VALID_OBJECT_ID_3));
+ ensure(STR(tick_num) + ". post object id", (*gPostRecords)[3]["body"][LLTextureEntry::OBJECT_ID_KEY].asUUID(), LLUUID(VALID_OBJECT_ID_4));
::pump_timers();
++tick_num;
- // 5 The fifth tick should now identify objects 3 and 4 as no longer
- // needing "updating", and remove them from the queue
- ensure(STR(tick_num) + ". is not in queue 2", !mdc->isInQueue(o2));
+ // 5 The fifth tick should not change the state of anything.
ensure(STR(tick_num) + ". is not in queue 1", !mdc->isInQueue(o1));
+ ensure(STR(tick_num) + ". is not in queue 2", !mdc->isInQueue(o2));
ensure(STR(tick_num) + ". is not in queue 3", !mdc->isInQueue(o3));
ensure(STR(tick_num) + ". is not in queue 4", !mdc->isInQueue(o4));
ensure(STR(tick_num) + ". post records", gPostRecords->size(), 4);
@@ -926,7 +920,7 @@ namespace tut
// But, we need to clear the queue, or else we won't destroy MDC...
// this is a strange interplay between the queue timer and the MDC
- ensure("o2 couldn't be removed from queue", mdc->removeFromQueue(o2));
+ mdc->removeFromQueue(o2);
// tick
::pump_timers();
}
@@ -935,4 +929,41 @@ namespace tut
ensure("refcount of o3", o3->getNumRefs(), 1);
ensure("refcount of o4", o4->getNumRefs(), 1);
}
+
+ template<> template<>
+ void mediadataclient_object_t::test<13>()
+ {
+ //
+ // Test supression of redundant navigates.
+ //
+ LOG_TEST(13);
+
+ LLMediaDataClientObject::ptr_t o1 = new LLMediaDataClientObjectTest(_DATA(VALID_OBJECT_ID_1,"1.0","true"));
+ {
+ LLPointer<LLObjectMediaNavigateClient> mdc = new LLObjectMediaNavigateClient(NO_PERIOD,NO_PERIOD);
+ const char *TEST_URL = "http://foo.example.com";
+ const char *TEST_URL_2 = "http://example.com";
+ mdc->navigate(o1, 0, TEST_URL);
+ mdc->navigate(o1, 1, TEST_URL);
+ mdc->navigate(o1, 0, TEST_URL_2);
+ mdc->navigate(o1, 1, TEST_URL_2);
+
+ // This should add two requests to the queue, one for face 0 of the object and one for face 1.
+
+ ensure("before pump: 1 is in queue", mdc->isInQueue(o1));
+
+ ::pump_timers();
+
+ ensure("after first pump: 1 is in queue", mdc->isInQueue(o1));
+
+ ::pump_timers();
+
+ ensure("after second pump: 1 is not in queue", !mdc->isInQueue(o1));
+
+ ensure("first post has correct url", (*gPostRecords)[0]["body"][LLMediaEntry::CURRENT_URL_KEY].asString(), std::string(TEST_URL_2));
+ ensure("second post has correct url", (*gPostRecords)[1]["body"][LLMediaEntry::CURRENT_URL_KEY].asString(), std::string(TEST_URL_2));
+
+ }
+ }
+
}
diff --git a/indra/newview/tests/llsecapi_test.cpp b/indra/newview/tests/llsecapi_test.cpp
index caa1461987..703603e2db 100644
--- a/indra/newview/tests/llsecapi_test.cpp
+++ b/indra/newview/tests/llsecapi_test.cpp
@@ -4,37 +4,32 @@
* @date 2009-02-10
* @brief Test the sec api functionality
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden LregisterSecAPIab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * Copyright (C) 2010, Linden Research, Inc.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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.
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * 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 "../llviewernetwork.h"
#include "../test/lltut.h"
#include "../llsecapi.h"
+#include "../llsechandler_basic.h"
#include "../../llxml/llcontrol.h"
@@ -56,82 +51,21 @@ std::string LLControlGroup::getString(const std::string& name)
LLControlGroup gSavedSettings("test");
-class LLSecAPIBasicHandler : public LLSecAPIHandler
-{
-protected:
- LLPointer<LLCertificateChain> mCertChain;
- LLPointer<LLCertificate> mCert;
- LLPointer<LLCertificateStore> mCertStore;
- LLSD mLLSD;
-
-public:
- LLSecAPIBasicHandler() {}
-
- virtual ~LLSecAPIBasicHandler() {}
-
- // instantiate a certificate from a pem string
- virtual LLPointer<LLCertificate> getCertificate(const std::string& pem_cert)
- {
- return mCert;
- }
-
-
- // instiate a certificate from an openssl X509 structure
- virtual LLPointer<LLCertificate> getCertificate(X509* openssl_cert)
- {
- return mCert;
- }
-
-
- // instantiate a chain from an X509_STORE_CTX
- virtual LLPointer<LLCertificateChain> getCertificateChain(const X509_STORE_CTX* chain)
- {
- return mCertChain;
- }
-
- // instantiate a cert store given it's id. if a persisted version
- // exists, it'll be loaded. If not, one will be created (but not
- // persisted)
- virtual LLPointer<LLCertificateStore> getCertificateStore(const std::string& store_id)
- {
- return mCertStore;
- }
-
- // persist data in a protected store
- virtual void setProtectedData(const std::string& data_type,
- const std::string& data_id,
- const LLSD& data) {}
-
- // retrieve protected data
- virtual LLSD getProtectedData(const std::string& data_type,
- const std::string& data_id)
- {
- return mLLSD;
- }
-
- virtual void deleteProtectedData(const std::string& data_type,
- const std::string& data_id)
- {
- }
-
- virtual LLPointer<LLCredential> createCredential(const std::string& grid,
- const LLSD& identifier,
- const LLSD& authenticator)
- {
- LLPointer<LLCredential> cred = NULL;
- return cred;
- }
-
- virtual LLPointer<LLCredential> loadCredential(const std::string& grid)
- {
- LLPointer<LLCredential> cred = NULL;
- return cred;
- }
-
- virtual void saveCredential(LLPointer<LLCredential> cred, bool save_authenticator) {}
-
- virtual void deleteCredential(LLPointer<LLCredential> cred) {}
-};
+
+LLSecAPIBasicHandler::LLSecAPIBasicHandler() {}
+void LLSecAPIBasicHandler::init() {}
+LLSecAPIBasicHandler::~LLSecAPIBasicHandler() {}
+LLPointer<LLCertificate> LLSecAPIBasicHandler::getCertificate(const std::string& pem_cert) { return NULL; }
+LLPointer<LLCertificate> LLSecAPIBasicHandler::getCertificate(X509* openssl_cert) { return NULL; }
+LLPointer<LLCertificateChain> LLSecAPIBasicHandler::getCertificateChain(const X509_STORE_CTX* chain) { return NULL; }
+LLPointer<LLCertificateStore> LLSecAPIBasicHandler::getCertificateStore(const std::string& store_id) { return NULL; }
+void LLSecAPIBasicHandler::setProtectedData(const std::string& data_type, const std::string& data_id, const LLSD& data) {}
+LLSD LLSecAPIBasicHandler::getProtectedData(const std::string& data_type, const std::string& data_id) { return LLSD(); }
+void LLSecAPIBasicHandler::deleteProtectedData(const std::string& data_type, const std::string& data_id) {}
+LLPointer<LLCredential> LLSecAPIBasicHandler::createCredential(const std::string& grid, const LLSD& identifier, const LLSD& authenticator) { return NULL; }
+LLPointer<LLCredential> LLSecAPIBasicHandler::loadCredential(const std::string& grid) { return NULL; }
+void LLSecAPIBasicHandler::saveCredential(LLPointer<LLCredential> cred, bool save_authenticator) {}
+void LLSecAPIBasicHandler::deleteCredential(LLPointer<LLCredential> cred) {}
// -------------------------------------------------------------------------------------------
// TUT
@@ -153,7 +87,7 @@ namespace tut
// Tut templating thingamagic: test group, object and test instance
typedef test_group<secapiTest> secapiTestFactory;
typedef secapiTestFactory::object secapiTestObject;
- tut::secapiTestFactory tut_test("llsecapi");
+ tut::secapiTestFactory tut_test("LLSecAPI");
// ---------------------------------------------------------------------------------------
// Test functions
diff --git a/indra/newview/tests/llsechandler_basic_test.cpp b/indra/newview/tests/llsechandler_basic_test.cpp
index fa9fff3ac9..daa10819fc 100644
--- a/indra/newview/tests/llsechandler_basic_test.cpp
+++ b/indra/newview/tests/llsechandler_basic_test.cpp
@@ -4,31 +4,25 @@
* @date 2009-02-10
* @brief Test the 'basic' sec handler functions
*
- * $LicenseInfo:firstyear=2005&license=viewergpl$
- *
- * Copyright (c) 2005-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2005&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
#include "../llviewerprecompiledheaders.h"
@@ -317,7 +311,7 @@ namespace tut
// Tut templating thingamagic: test group, object and test instance
typedef test_group<sechandler_basic_test> sechandler_basic_test_factory;
typedef sechandler_basic_test_factory::object sechandler_basic_test_object;
- tut::sechandler_basic_test_factory tut_test("llsechandler_basic");
+ tut::sechandler_basic_test_factory tut_test("LLSecHandler");
// ---------------------------------------------------------------------------------------
// Test functions
diff --git a/indra/newview/tests/llslurl_test.cpp b/indra/newview/tests/llslurl_test.cpp
index 803020dc7a..f96f79006a 100644
--- a/indra/newview/tests/llslurl_test.cpp
+++ b/indra/newview/tests/llslurl_test.cpp
@@ -4,31 +4,25 @@
* @date 2009-02-10
* @brief Test the sec api functionality
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version maps.secondlife.com2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
#include "../llviewerprecompiledheaders.h"
@@ -79,6 +73,11 @@ LLSD LLControlGroup::getLLSD(const std::string& name)
return LLSD();
}
+LLPointer<LLControlVariable> LLControlGroup::getControl(const std::string& name)
+{
+ ctrl_name_table_t::iterator iter = mNameTable.find(name);
+ return iter == mNameTable.end() ? LLPointer<LLControlVariable>() : iter->second;
+}
LLControlGroup gSavedSettings("test");
@@ -102,7 +101,7 @@ namespace tut
// Tut templating thingamagic: test group, object and test instance
typedef test_group<slurlTest> slurlTestFactory;
typedef slurlTestFactory::object slurlTestObject;
- tut::slurlTestFactory tut_test("llslurl");
+ tut::slurlTestFactory tut_test("LLSlurl");
// ---------------------------------------------------------------------------------------
// Test functions
@@ -151,6 +150,7 @@ namespace tut
ensure_equals(" slurl, region + coords", slurl.getSLURLString(),
"http://maps.secondlife.com/secondlife/my%20region/1/2/3");
+ LLGridManager::getInstance()->setGridChoice("my.grid.com");
slurl = LLSLURL("https://my.grid.com/region/my%20region/1/2/3");
ensure_equals("grid slurl, region + coords - type", slurl.getType(), LLSLURL::LOCATION);
ensure_equals("grid slurl, region + coords", slurl.getSLURLString(),
@@ -207,6 +207,7 @@ namespace tut
ensure_equals("region" , "myregion", slurl.getRegion());
ensure_equals("grid4", "util.aditi.lindenlab.com", slurl.getGrid());
+ LLGridManager::getInstance()->setGridChoice("my.grid.com");
slurl = LLSLURL("https://my.grid.com/app/foo/bar?12345");
ensure_equals("app", slurl.getType(), LLSLURL::APP);
ensure_equals("appcmd", slurl.getAppCmd(), "foo");
@@ -247,6 +248,7 @@ namespace tut
template<> template<>
void slurlTestObject::test<3>()
{
+ LLGridManager::getInstance()->setGridChoice("my.grid.com");
LLSLURL slurl = LLSLURL("https://my.grid.com/region/my%20region/1/2/3");
ensure_equals("login string", slurl.getLoginString(), "uri:my region&amp;1&amp;2&amp;3");
ensure_equals("location string", slurl.getLocationString(), "my region/1/2/3");
diff --git a/indra/newview/tests/lltextureinfo_test.cpp b/indra/newview/tests/lltextureinfo_test.cpp
index 8dfba46262..73ace1de37 100644
--- a/indra/newview/tests/lltextureinfo_test.cpp
+++ b/indra/newview/tests/lltextureinfo_test.cpp
@@ -3,31 +3,25 @@
* @author Si & Gabriel
* @date 2009-03-30
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -74,7 +68,7 @@ namespace tut
// Tut templating thingamagic: test group, object and test instance
typedef test_group<textureinfo_test> textureinfo_t;
typedef textureinfo_t::object textureinfo_object_t;
- tut::textureinfo_t tut_textureinfo("textureinfo");
+ tut::textureinfo_t tut_textureinfo("LLTectureInfo");
// ---------------------------------------------------------------------------------------
diff --git a/indra/newview/tests/lltextureinfodetails_test.cpp b/indra/newview/tests/lltextureinfodetails_test.cpp
index aa2697fb8e..31ec5f9d4e 100644
--- a/indra/newview/tests/lltextureinfodetails_test.cpp
+++ b/indra/newview/tests/lltextureinfodetails_test.cpp
@@ -3,31 +3,25 @@
* @author Si & Gabriel
* @date 2009-03-30
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -73,7 +67,7 @@ namespace tut
// Tut templating thingamagic: test group, object and test instance
typedef test_group<textureinfodetails_test> textureinfodetails_t;
typedef textureinfodetails_t::object textureinfodetails_object_t;
- tut::textureinfodetails_t tut_textureinfodetails("textureinfodetails");
+ tut::textureinfodetails_t tut_textureinfodetails("LLTextureInfoDetails");
// ---------------------------------------------------------------------------------------
diff --git a/indra/newview/tests/lltexturestatsuploader_test.cpp b/indra/newview/tests/lltexturestatsuploader_test.cpp
index 77a3e2c3d8..cfb2c267cc 100644
--- a/indra/newview/tests/lltexturestatsuploader_test.cpp
+++ b/indra/newview/tests/lltexturestatsuploader_test.cpp
@@ -3,31 +3,25 @@
* @author Si
* @date 2009-05-27
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -96,7 +90,7 @@ namespace tut
// Tut templating thingamagic: test group, object and test instance
typedef test_group<texturestatsuploader_test> texturestatsuploader_t;
typedef texturestatsuploader_t::object texturestatsuploader_object_t;
- tut::texturestatsuploader_t tut_texturestatsuploader("texturestatsuploader");
+ tut::texturestatsuploader_t tut_texturestatsuploader("LLTextureStatsUploader");
// ---------------------------------------------------------------------------------------
diff --git a/indra/newview/tests/llviewerhelputil_test.cpp b/indra/newview/tests/llviewerhelputil_test.cpp
index eecc79d36c..a0f1d1c3c3 100644
--- a/indra/newview/tests/llviewerhelputil_test.cpp
+++ b/indra/newview/tests/llviewerhelputil_test.cpp
@@ -3,31 +3,25 @@
* @brief LLViewerHelpUtil tests
* @author Tofu Linden
*
- * $LicenseInfo:firstyear=2001&license=viewergpl$
- *
- * Copyright (c) 2001-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2001&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
// Precompiled header
@@ -115,7 +109,7 @@ namespace tut
typedef test_group<viewerhelputil> viewerhelputil_t;
typedef viewerhelputil_t::object viewerhelputil_object_t;
- tut::viewerhelputil_t tut_viewerhelputil("viewerhelputil");
+ tut::viewerhelputil_t tut_viewerhelputil("LLViewerHelpUtil");
template<> template<>
void viewerhelputil_object_t::test<1>()
diff --git a/indra/newview/tests/llviewernetwork_test.cpp b/indra/newview/tests/llviewernetwork_test.cpp
index 5fba5eb69c..dd7761475e 100644
--- a/indra/newview/tests/llviewernetwork_test.cpp
+++ b/indra/newview/tests/llviewernetwork_test.cpp
@@ -4,31 +4,25 @@
* @date 2009-03-9
* @brief Test the viewernetwork functionality
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- *
- * Copyright (c) 2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2009&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden LregisterSecAPIab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
#include "../llviewerprecompiledheaders.h"
@@ -79,6 +73,11 @@ LLSD LLControlGroup::getLLSD(const std::string& name)
return LLSD();
}
+LLPointer<LLControlVariable> LLControlGroup::getControl(const std::string& name)
+{
+ ctrl_name_table_t::iterator iter = mNameTable.find(name);
+ return iter == mNameTable.end() ? LLPointer<LLControlVariable>() : iter->second;
+}
LLControlGroup gSavedSettings("test");
@@ -128,7 +127,7 @@ namespace tut
// Tut templating thingamagic: test group, object and test instance
typedef test_group<viewerNetworkTest> viewerNetworkTestFactory;
typedef viewerNetworkTestFactory::object viewerNetworkTestObject;
- tut::viewerNetworkTestFactory tut_test("llviewernetwork");
+ tut::viewerNetworkTestFactory tut_test("LLViewerNetwork");
// ---------------------------------------------------------------------------------------
// Test functions
diff --git a/indra/newview/tests/llworldmap_test.cpp b/indra/newview/tests/llworldmap_test.cpp
index 56cf86f6df..b976ac5ea9 100644
--- a/indra/newview/tests/llworldmap_test.cpp
+++ b/indra/newview/tests/llworldmap_test.cpp
@@ -3,31 +3,25 @@
* @author Merov Linden
* @date 2009-03-09
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -150,15 +144,15 @@ namespace tut
// Tut templating thingamagic: test group, object and test instance
typedef test_group<iteminfo_test> iteminfo_t;
typedef iteminfo_t::object iteminfo_object_t;
- tut::iteminfo_t tut_iteminfo("iteminfo");
+ tut::iteminfo_t tut_iteminfo("LLItemInfo");
typedef test_group<siminfo_test> siminfo_t;
typedef siminfo_t::object siminfo_object_t;
- tut::siminfo_t tut_siminfo("siminfo");
+ tut::siminfo_t tut_siminfo("LLSimInfo");
typedef test_group<worldmap_test> worldmap_t;
typedef worldmap_t::object worldmap_object_t;
- tut::worldmap_t tut_worldmap("worldmap");
+ tut::worldmap_t tut_worldmap("LLWorldMap");
// ---------------------------------------------------------------------------------------
// Test functions
diff --git a/indra/newview/tests/llworldmipmap_test.cpp b/indra/newview/tests/llworldmipmap_test.cpp
index 9938175c55..54887ae219 100644
--- a/indra/newview/tests/llworldmipmap_test.cpp
+++ b/indra/newview/tests/llworldmipmap_test.cpp
@@ -3,31 +3,25 @@
* @author Merov Linden
* @date 2009-02-03
*
- * $LicenseInfo:firstyear=2006&license=viewergpl$
- *
- * Copyright (c) 2006-2009, Linden Research, Inc.
- *
+ * $LicenseInfo:firstyear=2006&license=viewerlgpl$
* Second Life Viewer Source Code
- * The source code in this file ("Source Code") is provided by Linden Lab
- * to you under the terms of the GNU General Public License, version 2.0
- * ("GPL"), unless you have obtained a separate licensing agreement
- * ("Other License"), formally executed by you and Linden Lab. Terms of
- * the GPL can be found in doc/GPL-license.txt in this distribution, or
- * online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+ * 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.
*
- * There are special exceptions to the terms and conditions of the GPL as
- * it is applied to this Source Code. View the full text of the exception
- * in the file doc/FLOSS-exception.txt in this software distribution, or
- * online at
- * http://secondlifegrid.net/programs/open_source/licensing/flossexception
+ * 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.
*
- * By copying, modifying or distributing this software, you acknowledge
- * that you have read and understood your obligations described above,
- * and agree to abide by those obligations.
+ * 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
*
- * ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
- * WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
- * COMPLETENESS OR PERFORMANCE.
+ * Linden Research, Inc., 945 Battery Street, San Francisco, CA 94111 USA
* $/LicenseInfo$
*/
@@ -95,7 +89,7 @@ namespace tut
// Tut templating thingamagic: test group, object and test instance
typedef test_group<worldmipmap_test> worldmipmap_t;
typedef worldmipmap_t::object worldmipmap_object_t;
- tut::worldmipmap_t tut_worldmipmap("worldmipmap");
+ tut::worldmipmap_t tut_worldmipmap("LLWorldMipmap");
// ---------------------------------------------------------------------------------------
// Test functions
diff --git a/indra/newview/tests/llxmlrpclistener_test.cpp b/indra/newview/tests/llxmlrpclistener_test.cpp
index c2c7e963b9..4d5df1043e 100644
--- a/indra/newview/tests/llxmlrpclistener_test.cpp
+++ b/indra/newview/tests/llxmlrpclistener_test.cpp
@@ -4,8 +4,25 @@
* @date 2009-03-20
* @brief Test for llxmlrpclistener.
*
- * $LicenseInfo:firstyear=2009&license=viewergpl$
- * Copyright (c) 2009, Linden Research, Inc.
+ * $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$
*/
diff --git a/indra/newview/tests/test_llxmlrpc_peer.py b/indra/newview/tests/test_llxmlrpc_peer.py
index cb8f7d26c4..aeebb0cfd1 100644
--- a/indra/newview/tests/test_llxmlrpc_peer.py
+++ b/indra/newview/tests/test_llxmlrpc_peer.py
@@ -7,8 +7,25 @@
the command line, returning its result code. While that executable is
running, we provide dummy local services for use by C++ tests.
-$LicenseInfo:firstyear=2008&license=viewergpl$
-Copyright (c) 2008, Linden Research, Inc.
+$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$
"""
diff --git a/indra/newview/viewer_manifest.py b/indra/newview/viewer_manifest.py
index 0b30128ff3..949fa3cc1c 100755..100644
--- a/indra/newview/viewer_manifest.py
+++ b/indra/newview/viewer_manifest.py
@@ -4,31 +4,25 @@
# @brief Description of all installer viewer files, and methods for packaging
# them into installers for all supported platforms.
#
-# $LicenseInfo:firstyear=2006&license=viewergpl$
-#
-# Copyright (c) 2006-2009, Linden Research, Inc.
-#
+# $LicenseInfo:firstyear=2006&license=viewerlgpl$
# Second Life Viewer Source Code
-# The source code in this file ("Source Code") is provided by Linden Lab
-# to you under the terms of the GNU General Public License, version 2.0
-# ("GPL"), unless you have obtained a separate licensing agreement
-# ("Other License"), formally executed by you and Linden Lab. Terms of
-# the GPL can be found in doc/GPL-license.txt in this distribution, or
-# online at http://secondlifegrid.net/programs/open_source/licensing/gplv2
+# Copyright (C) 2010, Linden Research, Inc.
#
-# There are special exceptions to the terms and conditions of the GPL as
-# it is applied to this Source Code. View the full text of the exception
-# in the file doc/FLOSS-exception.txt in this software distribution, or
-# online at
-# http://secondlifegrid.net/programs/open_source/licensing/flossexception
+# 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.
#
-# By copying, modifying or distributing this software, you acknowledge
-# that you have read and understood your obligations described above,
-# and agree to abide by those obligations.
+# 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.
#
-# ALL LINDEN LAB SOURCE CODE IS PROVIDED "AS IS." LINDEN LAB MAKES NO
-# WARRANTIES, EXPRESS, IMPLIED OR OTHERWISE, REGARDING ITS ACCURACY,
-# COMPLETENESS OR PERFORMANCE.
+# 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$
import sys
import os.path
@@ -258,7 +252,7 @@ class WindowsManifest(ViewerManifest):
dst=""):
self.enable_crt_manifest_check()
-
+
# Get kdu dll, continue if missing.
try:
self.path('llkdu.dll', dst='llkdu.dll')
@@ -316,12 +310,16 @@ class WindowsManifest(ViewerManifest):
self.path(src="licenses-win32.txt", dst="licenses.txt")
self.path("featuretable.txt")
+ self.path("featuretable_xp.txt")
# For use in crash reporting (generates minidumps)
self.path("dbghelp.dll")
- # For using FMOD for sound... DJS
- self.path("fmod.dll")
+ try:
+ # FMOD for sound
+ self.path("fmod.dll")
+ except:
+ print "Skipping FMOD - not found"
self.enable_no_crt_manifest_check()
@@ -647,8 +645,11 @@ class DarwinManifest(ViewerManifest):
):
self.path(os.path.join(libdir, libfile), libfile)
- #libfmodwrapper.dylib
- self.path(self.args['configuration'] + "/libfmodwrapper.dylib", "libfmodwrapper.dylib")
+ try:
+ # FMOD for sound
+ self.path(self.args['configuration'] + "/libfmodwrapper.dylib", "libfmodwrapper.dylib")
+ except:
+ print "Skipping FMOD - not found"
# our apps
self.path("../mac_crash_logger/" + self.args['configuration'] + "/mac-crash-logger.app", "mac-crash-logger.app")
@@ -831,6 +832,28 @@ class LinuxManifest(ViewerManifest):
# Create an appropriate gridargs.dat for this package, denoting required grid.
self.put_in_file(self.flags_list(), 'etc/gridargs.dat')
+ self.path("secondlife-bin","bin/do-not-directly-run-secondlife-bin")
+ self.path("../linux_crash_logger/linux-crash-logger","bin/linux-crash-logger.bin")
+ self.path("../linux_updater/linux-updater", "bin/linux-updater.bin")
+ self.path("../llplugin/slplugin/SLPlugin", "bin/SLPlugin")
+
+ if self.prefix("res-sdl"):
+ self.path("*")
+ # recurse
+ self.end_prefix("res-sdl")
+
+ # plugins
+ if self.prefix(src="", dst="bin/llplugin"):
+ self.path("../media_plugins/webkit/libmedia_plugin_webkit.so", "libmedia_plugin_webkit.so")
+ self.path("../media_plugins/gstreamer010/libmedia_plugin_gstreamer010.so", "libmedia_plugin_gstreamer.so")
+ self.end_prefix("bin/llplugin")
+
+ try:
+ self.path("../llcommon/libllcommon.so", "lib/libllcommon.so")
+ except:
+ print "Skipping llcommon.so (assuming llcommon was linked statically)"
+
+ self.path("featuretable_linux.txt")
def package_finish(self):
if 'installer_name' in self.args:
@@ -845,6 +868,10 @@ class LinuxManifest(ViewerManifest):
else:
installer_name += '_' + self.channel_oneword().upper()
+ if self.args['buildtype'].lower() == 'release' and self.is_packaging_viewer():
+ print "* Going strip-crazy on the packaged binaries, since this is a RELEASE build"
+ self.run_command("find %(d)r/bin %(d)r/lib -type f | xargs --no-run-if-empty strip -S" % {'d': self.get_dst_prefix()} ) # makes some small assumptions about our packaged dir structure
+
# Fix access permissions
self.run_command("""
find %(dst)s -type d | xargs --no-run-if-empty chmod 755;
@@ -881,36 +908,12 @@ class Linux_i686Manifest(LinuxManifest):
# install either the libllkdu we just built, or a prebuilt one, in
# decreasing order of preference. for linux package, this goes to bin/
- for lib, destdir in ("llkdu", "bin"), ("llcommon", "lib"):
- libfile = "lib%s.so" % lib
- try:
- self.path(self.find_existing_file(os.path.join(os.pardir, lib, libfile),
- '../../libraries/i686-linux/lib_release_client/%s' % libfile),
- dst=os.path.join(destdir, libfile))
- # keep this one to preserve syntax, open source mangling removes previous lines
- pass
- except RuntimeError:
- print "Skipping %s - not found" % libfile
- pass
-
- self.path("secondlife-bin","bin/do-not-directly-run-secondlife-bin")
-
- self.path("../linux_crash_logger/linux-crash-logger","bin/linux-crash-logger.bin")
- self.path("../linux_updater/linux-updater", "bin/linux-updater.bin")
- self.path("../llplugin/slplugin/SLPlugin", "bin/SLPlugin")
- if self.prefix("res-sdl"):
- self.path("*")
- # recurse
- self.end_prefix("res-sdl")
-
- # plugins
- if self.prefix(src="", dst="bin/llplugin"):
- self.path("../media_plugins/webkit/libmedia_plugin_webkit.so", "libmedia_plugin_webkit.so")
- self.path("../media_plugins/gstreamer010/libmedia_plugin_gstreamer010.so", "libmedia_plugin_gstreamer.so")
- self.end_prefix("bin/llplugin")
-
- self.path("featuretable_linux.txt")
- #self.path("secondlife-i686.supp")
+ try:
+ self.path(self.find_existing_file('../llkdu/libllkdu.so',
+ '../../libraries/i686-linux/lib_release_client/libllkdu.so'),
+ dst='bin/libllkdu.so')
+ except:
+ print "Skipping libllkdu.so - not found"
if self.prefix("../../libraries/i686-linux/lib_release_client", dst="lib"):
self.path("libapr-1.so.0")
@@ -928,16 +931,16 @@ class Linux_i686Manifest(LinuxManifest):
self.path("libopenal.so", "libopenal.so.1")
self.path("libopenal.so", "libvivoxoal.so.1") # vivox's sdk expects this soname
try:
- self.path("libkdu_v42R.so", "libkdu.so")
+ self.path("libkdu.so")
pass
except:
- print "Skipping libkdu_v42R.so - not found"
+ print "Skipping libkdu.so - not found"
pass
try:
self.path("libfmod-3.75.so")
pass
except:
- print "Skipping libkdu_v42R.so - not found"
+ print "Skipping libfmod-3.75.so - not found"
pass
self.end_prefix("lib")
@@ -953,10 +956,6 @@ class Linux_i686Manifest(LinuxManifest):
self.path("libvivoxplatform.so")
self.end_prefix("lib")
- if self.args['buildtype'].lower() == 'release' and self.is_packaging_viewer():
- print "* Going strip-crazy on the packaged binaries, since this is a RELEASE build"
- self.run_command("find %(d)r/bin %(d)r/lib -type f | xargs --no-run-if-empty strip -S" % {'d': self.get_dst_prefix()} ) # makes some small assumptions about our packaged dir structure
-
################################################################
if __name__ == "__main__":